2.1 KiB
2.1 KiB
CoopGameChooser Task List
- Initialize git repository.
Foundation
- Add
.gitignorefor .NET / IIS publish artifacts. - Scaffold .NET 10 minimal API project with static file hosting (
wwwroot). - Configure SQLite connection pointing to
App_Datawith EF Core migrations folder underData/. - Define domain models in
Domain/:Player,Suggestion,Vote,AppState,Phaseenum. - Implement
AppDbContextinData/with DbSets and simple seeding ofAppState.
Identity & Middleware
- Middleware to issue/read HttpOnly
playercookie with Guid; SameSite=Strict; secure in production. - Minimal API helpers to resolve current player and ensure existence in DB.
- Global exception handling and basic logging.
Phase Enforcement
- Store current phase in
AppState; default to Suggest. - Central guard ensuring endpoints respect allowed phase (server-side blindness, no client trust).
API Endpoints (see API.md)
GET /api/statereturns phase and counts.GET /api/meandPOST /api/me/nameto set display name.- Suggestion endpoints: mine/create/all with per-player visibility rules.
- Vote endpoints: mine/create with per-player visibility and phase gating.
- Results endpoint aggregates totals and vote counts (optionally averages) sorted desc.
- Admin endpoints: switch phase, reset data; protect via env password.
Frontend (wwwroot)
index.htmlshell with phase-driven sections.app.jsAPI client, polling, and render functions per phase; enforce blindness in UI.styles.cssbasic responsive layout (desktop + mobile).
Persistence & Migrations
- Create initial EF Core migration for SQLite schema.
- Add startup migration application.
Testing & Quality
- Happy-path smoke test script (manual or minimal automated) for phase flow.
- Lint/format via
dotnet format(optional) and ensure build succeeds.
Deployment
- Add minimal publish profile/notes for IIS (respect
ASPNETCORE_ENVIRONMENT, admin password env var, writable App_Data).
Stretch (removed for now)
(none)