# 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")