Initial commit

This commit is contained in:
2026-03-09 14:58:48 -07:00
parent b0de3ebedc
commit 09b0e52dee
+52
View File
@@ -0,0 +1,52 @@
# Backend TODO
## Phase 1 — MVP (Prototype)
- [x] Set up TMDB proxy service (protect API key from client exposure)
- [x] Movie search endpoint (GET /api/v1/movies/search?q=)
- [x] Person search endpoint (GET /api/v1/persons/search?q=)
- [x] Movie credits endpoint (GET /api/v1/movies/:id/credits)
- [x] Person movie credits endpoint (GET /api/v1/persons/:id/movie-credits)
- [x] Movie details endpoint (GET /api/v1/movies/:id)
- [x] Person details endpoint (GET /api/v1/persons/:id)
- [x] Response caching with Redis (TMDB data doesn't change frequently)
- [x] Rate limiting with ThrottlerModule
- [x] Health check endpoint
- [x] Basic error handling and logging
## Phase 2 — Scoring & Polish
- [x] Game session creation endpoint (POST /api/v1/games)
- [x] Game session retrieval endpoint (GET /api/v1/games/:id)
- [x] Score calculation service (base + chain + time + obscurity - penalties)
- [x] Game completion endpoint (POST /api/v1/games/:id/complete)
- [x] Prisma migrations for GameSession model
- [x] Input validation with class-validator across all endpoints
## Phase 3 — Daily Challenge & Social
- [x] Daily challenge generation service (BFS shortest path via TMDB data)
- [x] Daily challenge queue job (BullMQ + RabbitMQ for background processing)
- [x] Daily challenge endpoint (GET /api/v1/daily-challenges/today)
- [x] Daily challenge history endpoint (GET /api/v1/daily-challenges)
- [x] Leaderboard endpoints (GET /api/v1/leaderboards/daily, weekly, all-time)
- [x] Leaderboard entry submission (POST /api/v1/leaderboards)
- [x] User authentication (JWT + passport-local for login, passport-jwt for protected routes)
- [x] User registration endpoint (POST /api/v1/auth/register)
- [x] User login endpoint (POST /api/v1/auth/login)
- [x] User profile endpoint (GET /api/v1/users/me)
- [x] Streak tracking service
- [x] Prisma migrations for DailyChallenge, LeaderboardEntry models
## Phase 4 — Multiplayer & Expansion
- [x] Versus mode matchmaking (WebSocket gateway or RabbitMQ-based)
- [x] Real-time game sync for versus mode
- [x] Difficulty tier configuration and movie pool management
- [x] Achievement/badge system (define achievements, track progress, award)
- [x] User profile CRUD (update display name, avatar)
- [x] Global leaderboard aggregation (daily, weekly, all-time)
- [x] Admin endpoints for challenge curation and moderation
- [x] Prisma migrations for Achievement, UserAchievement models
- [x] PII field encryption audit (ensure @encrypted annotations on sensitive data)
- [x] API documentation with Swagger (complete all endpoint descriptions)