# Junior Developer — Frontend MVP Completion TODO **Owner:** Junior developer **Status:** Ready to implement (tackle **after** `frontend_polish.md`) **Goal:** Close the gap between the bare happy path and the app described in `ARCHITECTURE.md` — a usable shell with navigation, a working settings page, calendar planning, the manual-data fallback, and partner planning. > **Why this plan exists:** the current dashboard has no header nav, no logged-in user, no child indicator, no logout, and no reachable settings — so features that already exist in code (Calendar, Tips, Settings, manual entry) are stranded. The backend endpoints for all of this already exist; this is almost entirely **frontend wiring**. > > Work in tiers, top to bottom. **Tier 1 is the highest value** (it's what makes the app feel like an app). Keep `tsc`/lint/tests green per task. CSS stays optional — structure and function over looks. --- ## TIER 1 — App shell: navigation, identity, working settings ### T1.1 — Real header (user, current child + switcher, nav, logout) **Problem:** `components/layout/Header.tsx` already accepts `onLogout` / `onWorkspaceSelect`, but pages only pass `{ title }`, so the nav is empty. There's no way to log out, switch pages, or see who/which child you're viewing. **Do — extend `Header` and wire it via `Layout` on every page:** - **Logged-in identity:** show the current parent's name. ⚠️ `GET /api/auth/context` does **not** currently return the parent's display name (only `personal_data_uuid`, `workspace_id`, `children`). Either show the email from `GET /api/auth/me`, or **ask the senior to add `name` to the `/auth/context` payload** (small, preferred). Don't hardcode. - **Current child + switcher:** `useWorkspace()` exposes `children`, `selectedChildId`, `selectChild()`. Render a `