diff --git a/README.md b/README.md new file mode 100644 index 0000000..499d0ad --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# Pick'n'Play + +Pick'n'Play is a .NET 10 ASP.NET Core Minimal API app with a static HTML/CSS/JS frontend and SQLite persistence. + +## Quick Start + +1. Restore and build: + `dotnet build GameList.sln` +2. Run tests: + `dotnet test GameList.Tests/GameList.Tests.csproj` +3. Run locally: + `dotnet run --project GameList.csproj` +4. Open: + `http://localhost:5000` (or the URL shown by `dotnet run`) + +## Core Behavior + +- Authentication: username/password with HttpOnly `player` cookie. +- Admin authorization: authenticated account with `IsAdmin=true`. +- Gameplay phases: `Suggest`, `Vote`, `Results`. +- Storage: SQLite database under `App_Data/gamelist.db`. + +## Module Ownership + +- `Program.cs`: startup wiring, middleware order, route registration. +- `Endpoints/`: HTTP endpoint transport + request orchestration. +- `Infrastructure/`: filters, middleware, identity helpers. +- `Data/`: EF Core `DbContext` and migrations. +- `Domain/`: entities and enums. +- `Contracts/`: request/response DTOs. +- `wwwroot/`: static frontend assets. +- `GameList.Tests/`: integration and helper tests. +- `scripts/`: deployment scripts. + +## Operations + +- API surface and endpoint contract: `API.md` +- Product/feature expectations: `SPEC.md` +- IIS deployment notes: `IIS.md` +- Test strategy details: `TESTS.md` + +## CI + +GitHub Actions workflow: `.github/workflows/ci.yml` + +- Restores dependencies +- Builds with warnings treated as errors +- Runs `GameList.Tests`