Backend d'un jeu incremental en ASP.NET Core. Les joueurs progressent via des clics, des upgrades, des achievements et des resets, avec un etat persistant cote serveur.
- Apercu
- Architecture
- Demarrage rapide
- Configuration
- Authentification
- Documentation API et SignalR
- Gameplay et progression
- Base de donnees
- Tests
- Architecture (schema)
- Structure du projet
- Video demo
- Contributeurs
Le projet met l'accent sur la gestion d'etat, les mecaniques incrementales et une architecture backend claire.
Fonctionnalites principales :
- Progression par clic avec rate limiting.
- Revenu passif periodique.
- Systemes d'upgrades et multiplicateurs.
- Achievements bases sur des paliers.
- Persistance serveur.
- API REST consommee par un client frontend.
Architecture modulaire avec responsabilites claires :
- UI (Frontend externe) : clics, resets, achats.
- Game Logic : boucle de jeu et regles de progression.
- Resource/Inventory : gestion des objets et bonus.
- Achievement System : suivi des paliers.
- Persistence : sauvegarde et restauration.
- SignalR : chat et evenements temps reel.
Prerequis :
- .NET SDK 7.0+
Build :
dotnet restore
dotnet buildRun :
dotnet run --project GameServerApiEnsuite : http://localhost:5000
Details complets dans docs/Configuration.md.
Points importants :
- Le JWT est configure en dur dans
GameServerApi/Services/JwtService.csetGameServerApi/Program.cs. - CORS est limite a
https://csharp.nouvet.fr,http://localhost:3000,http://localhost:5173. - SQLite utilise
ProjectDB.dba la racine.
POST /api/User/RegisterouPOST /api/User/Login.- Recuperer le
tokenJWT. - Ajouter
Authorization: Bearer <token>sur les routes protegees.
- API complete :
docs/API.md - SignalR (ChatHub) :
docs/SignalR.md
- Regles de progression, formules, reset, items, revenu passif :
docs/Gameplay.md
- Migrations EF Core, seed items :
docs/Database.md
- Lancer les tests :
docs/Testing.md - Pour lancer les tests en collectant les données de couverture, utilisez l’option
--collect:dotnet test --collect:"XPlat Code Coverage"
- Pour générer le rapport :
reportgenerator -reports:TestResults/**/coverage.cobertura.xml -targetdir:coveragereport -reporttypes:Html
Rapport HTML : GameServerApi.Tests/coveragereport/index.html
- Schema d'architecture :
docs/Architecture.md
Incremental_Game/
├── GameServerApi/
├── GameServerApi.Tests/
├── docs/
├── coveragereport/
├── IncrementalGame.sln
└── README.md
BAANI Maroia(F5), ISMAILI M'HAMDI Mouad(F2), EL ALLALI Achraf(F2)