Description
Create the base Next.js route for an internal analytics dashboard with a loading state and layout shell (nav + content area), gated behind an authenticated admin check.
Why this matters
None of the individual chart widgets below have anywhere to render without this page and layout existing first.
Files to touch
frontend/src/app/analytics/page.tsx
frontend/src/app/analytics/layout.tsx
Acceptance Criteria
Notes
This issue is part of the new analytics module effort (tracking, aggregation,
and reporting on player/game activity). Please keep new code inside
backend/src/analytics/ following the same module/controller/service/provider
layout used by existing modules (e.g. progress, streak, quests).
Description
Create the base Next.js route for an internal analytics dashboard with a loading state and layout shell (nav + content area), gated behind an authenticated admin check.
Why this matters
None of the individual chart widgets below have anywhere to render without this page and layout existing first.
Files to touch
frontend/src/app/analytics/page.tsxfrontend/src/app/analytics/layout.tsxAcceptance Criteria
Notes
This issue is part of the new
analyticsmodule effort (tracking, aggregation,and reporting on player/game activity). Please keep new code inside
backend/src/analytics/following the same module/controller/service/providerlayout used by existing modules (e.g.
progress,streak,quests).