Summary
The entire frontend/ workspace currently consists of one component: frontend/src/components/analytics/OnboardingFunnelChart.tsx. There are no pages/routes, no API client, and no auth flow - yet CI builds and type-checks it, and the README describes a player-facing product (IQ survey onboarding, adaptive puzzles, leaderboards). The backend exposes the needed surface via its Swagger-documented REST API, so the gap is purely frontend scaffolding.
Proposal (phased)
Phase 1 - shell:
- Confirm the stack implied by root dependencies (
@tanstack/react-query, framer-motion) - i.e. a React/Vite app - and scaffold routing + layout.
- Typed API client generated from the Swagger document (
/api-json) or a hand-rolled fetch wrapper with error normalization.
- Auth screens against the existing
auth endpoints (Google OAuth server-side support exists via passport-google-oauth20; guest sessions via guest-session.provider.ts).
Phase 2 - core loops:
4. Puzzle browsing/solving view wired to puzzles + progress endpoints.
5. Streak & XP surfaces fed by streak/users endpoints.
6. Integrate the existing OnboardingFunnelChart into a dashboard route rather than leaving it orphaned.
Acceptance criteria
Summary
The entire
frontend/workspace currently consists of one component:frontend/src/components/analytics/OnboardingFunnelChart.tsx. There are no pages/routes, no API client, and no auth flow - yet CI builds and type-checks it, and the README describes a player-facing product (IQ survey onboarding, adaptive puzzles, leaderboards). The backend exposes the needed surface via its Swagger-documented REST API, so the gap is purely frontend scaffolding.Proposal (phased)
Phase 1 - shell:
@tanstack/react-query,framer-motion) - i.e. a React/Vite app - and scaffold routing + layout./api-json) or a hand-rolled fetch wrapper with error normalization.authendpoints (Google OAuth server-side support exists viapassport-google-oauth20; guest sessions viaguest-session.provider.ts).Phase 2 - core loops:
4. Puzzle browsing/solving view wired to
puzzles+progressendpoints.5. Streak & XP surfaces fed by
streak/usersendpoints.6. Integrate the existing
OnboardingFunnelChartinto a dashboard route rather than leaving it orphaned.Acceptance criteria
npm --workspace frontend run devserves a navigable app.