Files

60 lines
2.7 KiB
Markdown

# Frontend TODO
## Phase 1 — MVP (Prototype)
- [x] Set up TMDB API client with axios (api key handling, base URL, interceptors)
- [x] Build debounced autocomplete search component (actors and movies)
- [x] Create movie card component (poster, title, year)
- [x] Create actor card component (photo, name)
- [x] Build chain builder UI (alternating actor/movie input)
- [x] Implement real-time TMDB validation for each link
- [x] Create basic chain visualization (list or simple node graph)
- [x] Implement game state store with Zustand (chain, current step, validation)
- [x] Build Home page with "Start Game" flow
- [x] Build Game page with chain builder and visualization
- [x] Support hardcoded or randomly selected movie pairs
- [x] Basic score calculation (base + chain length bonus)
- [x] Display score on completion
## Phase 2 — Scoring & Polish
- [x] Full scoring system (time bonus, obscurity bonus, duplicate penalties)
- [x] Timer component with visual countdown
- [x] Animated chain display with CSS slide-in, glow, and confetti
- [x] Movie poster and actor photo nodes in the chain display
- [x] Undo functionality (step back one link)
- [x] Hint system (reveal 3 random actors from a movie's cast)
- [x] Sound effects (valid link, invalid attempt, completion)
- [x] Celebration animation on loop completion
- [x] Score breakdown summary screen
- [x] Mobile-responsive design pass
- [x] Error handling and edge case coverage
- [x] Loading states and skeleton screens
## Phase 3 — Daily Challenge & Social
- [x] Daily Challenge page (fetches today's puzzle from backend)
- [x] Shareable results card (text-based summary for social media)
- [x] Streak tracking UI (consecutive days played)
- [x] Personal stats and history (local storage + backend sync)
- [x] Leaderboard page (daily, weekly, all-time)
- [x] SEO and Open Graph meta tags
- [x] Login/signup pages (connect to backend auth)
- [x] Profile page (stats, streaks, history)
## Phase 4 — Multiplayer & Expansion
- [x] Versus mode UI (real-time or async)
- [x] Difficulty tier selection on Home page
- [x] User profile page with persistent data
- [x] Global leaderboards (daily, weekly, all-time tabs)
- [x] Achievement/badge system UI
- [x] Endless/practice mode with genre and decade filters
- [x] Accessibility improvements (keyboard nav, screen reader, ARIA)
- [x] Themed weeks/events UI
## Backlog
- [x] Set daily challenge cron job to explicit UTC timezone (`{ timeZone: 'UTC' }` on `@Cron` in `daily-challenges.service.ts`) — currently uses system timezone
- [x] Add reset time disclaimer to Daily Challenge page — show "New challenge at midnight UTC" and convert to the user's local timezone (e.g. "7:00 PM EST / 4:00 PM PST")