G010: Leaderboard data is fully mocked — no API integration or real persistence #17

Closed
opened 2026-05-09 00:21:14 +00:00 by Mark · 1 comment
Owner

Severity: Low (infrastructure)
File: app/src/pages/Leaderboard.tsx

The entire leaderboard (lines 109-146), personal bests (lines 152-158), and stat cards display hardcoded mock data generated by generateLeaderboardData(). There is no API integration, no localStorage persistence, and no connection to any backend.

Key issues:

  • LEADERBOARD_DATA is generated once at module load time with Math.random() — it changes on every page reload
  • Personal bests reference tracks that don't exist as game levels ("Nebula Descent", "Frozen Pass", "Desert Ruins", "Sky Sanctuary", "Deep Trench")
  • Mode filters reference modes ("Boss Rush", "Daily", "Endurance") that have no corresponding game implementation
  • The count-up animation on stat cards is cosmetic only

Note: This overlaps with M001 (code-splitting) since three.js is loaded for this page.

**Severity:** Low (infrastructure) **File:** `app/src/pages/Leaderboard.tsx` The entire leaderboard (lines 109-146), personal bests (lines 152-158), and stat cards display hardcoded mock data generated by `generateLeaderboardData()`. There is no API integration, no localStorage persistence, and no connection to any backend. Key issues: - `LEADERBOARD_DATA` is generated once at module load time with `Math.random()` — it changes on every page reload - Personal bests reference tracks that don't exist as game levels ("Nebula Descent", "Frozen Pass", "Desert Ruins", "Sky Sanctuary", "Deep Trench") - Mode filters reference modes ("Boss Rush", "Daily", "Endurance") that have no corresponding game implementation - The count-up animation on stat cards is cosmetic only **Note:** This overlaps with M001 (code-splitting) since three.js is loaded for this page.
Author
Owner

Fixed in commit. Closing.

Fixed in commit. Closing.
Mark closed this issue 2026-05-17 05:39:43 +00:00
Sign in to join this conversation.
No description provided.