# Dashboard UI Coverage Roadmap — Closing All 55 Gaps > **Source:** [`DASHBOARD_UI_GAP_ANALYSIS.md`](DASHBOARD_UI_GAP_ANALYSIS.md) > **Created:** 2026-03-21 > **Owner:** Platform Engineering > **Target:** Full UI coverage of all 43+ platform-service modules across admin-web, user-dashboard-web, and tracker-web --- ## Review Errata (2026-03-21 self-audit) | # | Bug | Severity | Fix Applied | | :-: | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | -------------------------------------------- | | R1 | **Gap 1.2.3 (Predictive Analytics — campaign execution) missing from all phases** | HIGH | Added as Phase 4.12 | | R2 | **Gap 1.2.4 (Kill switch verification for all 11 products) missing from all phases** | MEDIUM | Added to Phase 0.3 | | R3 | **Phase 1 labeled "1 week" but effort totals 10 days (2 weeks)** | HIGH | Fixed header to "2 weeks", adjusted timeline | | R4 | **Admin sidebar target 59 is wrong** — actual sum is 27 + 7 + 4 + 7 + 7 = 52 (Phase 6 items add more when triggered) | MEDIUM | Fixed Scope Summary to 52 | | R5 | **Phase 4 claims "9 new sidebar items" but 4 items are expansions** of existing pages (IP rules, maintenance, diagnostics, sessions) — no new sidebar entries | MEDIUM | Fixed to 7 new sidebar items + 4 expanded | | R6 | **Dependency graph incorrect** — Phase 4 shown only reachable from Phase 2, but Phase 4 items are independent and can start after Phase 1 | MEDIUM | Fixed graph | | R7 | **Success Metrics denominator misleading** — "27/79 modules" conflates sidebar items with matrix rows (many rows are OK/tracker/infra) | LOW | Clarified metric | | R8 | **No grand total effort stated** — individual phase totals exist but no rollup | LOW | Added grand total row | | R9 | **No completion tracking mechanism** — doc says "update as phases complete" but has no status column | LOW | Added status column to Execution Timeline | | R10 | **Phase 2 API route count "8" unexplained** — 7 pages but jobs+runs need 2 routes | LOW | Added clarification note | --- ## Overview The gap analysis identified **55 hidden/underexposed features** across three dashboards. This roadmap converts those findings into a concrete, phased execution plan with clear deliverables, acceptance criteria, effort estimates, and dependency chains. ### Scope Summary | Dashboard | Current State | Target State | Delta | | -------------------------------- | :-----------: | :----------: | :-----------: | | **Admin-web** sidebar items | 27 | 52 | +25 | | **Admin-web** pages | 38 | ~63 | +25 new pages | | **Admin-web** API proxy routes | 39 | ~65 | +26 routes | | **User-dashboard** sidebar items | 11 | 19 | +8 | | **User-dashboard** pages | 12 | ~20 | +8 new pages | | **Tracker-web** | OK | OK | minor | ### Priority Framework | Priority | Criteria | SLA | | :------: | ------------------------------------------------------------------ | :--------: | | **P0** | Critical bugs, security gaps, zero-effort wins (sidebar wiring) | Sprint 0–1 | | **P1** | High business value — revenue, support, AI management | Sprint 2–3 | | **P2** | Operational excellence — observability, compliance, infrastructure | Sprint 4–5 | | **P3** | Future-facing — features not yet needed but backend exists | Sprint 6+ | --- ## Phase 0 — Quick Wins (1 day) **Goal:** Fix the 1 critical backend bug + wire 7 hidden pages into the sidebar. Zero new pages to build. ### 0.1 Fix Backend Bug: Register `ai-diagnostics` routes | Item | Detail | | ---------- | -------------------------------------------------------------------- | | **File** | `services/platform-service/src/server.ts` | | **Change** | Add import + `app.register(aiDiagnosticsRoutes, { prefix: '/api' })` | | **Risk** | LOW — module already exists, just not mounted | | **Test** | `GET /api/ai-diagnostics/clusters` returns 200 | | **Effort** | 5 min | ### 0.2 Wire 7 Hidden Pages into Admin Sidebar All these pages already exist in `dashboards/admin-web/src/app/(dashboard)/` — they just need entries in `sidebar-nav.tsx`. | # | Sidebar Label | Path | Section | Icon | | :-: | ---------------- | --------------------- | --------- | -------------- | | 1 | Users | `/users` | Core | `Users` | | 2 | Debug Sessions | `/debug-sessions` | Ops | `Bug` | | 3 | Health Dashboard | `/health-dashboard` | Ops | `HeartPulse` | | 4 | Extraction | `/extraction` | Ops | `FileSearch` | | 5 | Experiments | `/experiments` | Growth | `FlaskConical` | | 6 | Predictive | `/predictive/at-risk` | Analytics | `TrendingDown` | | 7 | AI Diagnostics | `/ai-diagnostics` | Ops | `BrainCircuit` | **Acceptance Criteria:** - [ ] `ai-diagnostics` routes registered in server.ts, health check passes - [ ] All 7 items visible in sidebar, pages load without errors - [ ] Sidebar total: 34 items (was 27) ### 0.3 Verify Kill Switch Coverage for All Products | Item | Detail | | ----------- | ------------------------------------------------------------------------------ | | **Gap Ref** | 1.2.4 | | **Check** | Verify `/api/settings/kill-switch` works for all 11 products, not just LysnrAI | | **Action** | If missing, add product selector to existing kill switch UI in `/settings` | | **Effort** | 2 hours (investigation + potential UI tweak) | **Effort (Phase 0 total):** 4 hours (sidebar-nav.tsx edits + server.ts fix + kill switch audit + smoke test) --- ## Phase 1 — Critical Admin Gaps (2 weeks) **Goal:** Build 4 high-impact admin pages for modules that admins need daily. ### 1.1 Organizations & Workspaces Page | Item | Detail | | ------------------- | ----------------------------------------------------------------------- | | **Backend Module** | `orgs` — 14 endpoints | | **New Files** | `(dashboard)/organizations/page.tsx`, `api/orgs/[...path]/route.ts` | | **Page Components** | Org list table, org detail drawer, member list + invite, workspace list | | **Effort** | 3 days | **Acceptance Criteria:** - [ ] List orgs with search/filter - [ ] View org detail: members, workspaces - [ ] Add/remove members, create/delete workspaces - [ ] Sidebar item added ### 1.2 Support Cases Page | Item | Detail | | ------------------- | ----------------------------------------------------------------------------------------------------- | | **Backend Module** | `support-cases` — 12 endpoints | | **New Files** | `(dashboard)/support/page.tsx`, `(dashboard)/support/[id]/page.tsx`, `api/support/[...path]/route.ts` | | **Page Components** | Case list with status filters, case detail with notes timeline, escalation panel | | **Effort** | 3 days | **Acceptance Criteria:** - [ ] List cases with status/priority filters - [ ] View case detail: notes, escalation events - [ ] Add notes, close/reopen, escalate - [ ] Sidebar item added ### 1.3 AI Budgets & Cost Management Page | Item | Detail | | ------------------- | ----------------------------------------------------------------------------------- | | **Backend Module** | `ai-budgets` — 11 endpoints | | **New Files** | `(dashboard)/ai-budgets/page.tsx`, `api/ai-budgets/[...path]/route.ts` | | **Page Components** | Cost dashboard (spend chart, budget bars), policy CRUD, alerts table, spend history | | **Charts** | Recharts: spend over time (area), budget utilization (bar), cost by product (pie) | | **Effort** | 2 days | **Acceptance Criteria:** - [ ] Dashboard with total spend, budget utilization, active alerts - [ ] Create/edit/delete budget policies - [ ] View spend history with date range filter - [ ] Sidebar item added ### 1.4 Waitlist Management Page | Item | Detail | | ------------------- | ----------------------------------------------------------------------------------- | | **Backend Module** | `waitlist` — 12 endpoints | | **New Files** | `(dashboard)/waitlist/page.tsx`, `api/waitlist/[...path]/route.ts` | | **Page Components** | Entry list table, stats cards (total, invited, converted), batch invite, CSV export | | **Effort** | 1.5 days | **Acceptance Criteria:** - [ ] List waitlist entries with position/status - [ ] Stats cards: total signups, invited count, conversion rate - [ ] Batch invite selected entries - [ ] CSV export button - [ ] Sidebar item added ### Phase 1 Totals | Metric | Count | | -------------------- | :------: | | New pages | 5 | | New API proxy routes | 4 | | New sidebar items | 4 | | Effort estimate | ~10 days | --- ## Phase 2 — High-Value Admin Pages (2 weeks) **Goal:** Build 7 admin pages for integration management, AI quality, and content workflow. ### 2.1 Webhooks Management Page | Item | Detail | | ------------------- | --------------------------------------------------------------------------- | | **Backend Module** | `webhooks` — 8 endpoints | | **Page Components** | Subscription list, delivery log table, test webhook button, secret rotation | | **Effort** | 2 days | ### 2.2 Knowledge Bases Page | Item | Detail | | ------------------- | --------------------------------------------------------------------------- | | **Backend Module** | `knowledge` — 13 endpoints | | **Page Components** | KB list, source management, chunk browser with search, retrieval test panel | | **Effort** | 3 days | ### 2.3 Agent Evaluations Page | Item | Detail | | ------------------- | ------------------------------------------------------------------------------------------- | | **Backend Module** | `agent-evals` — 15 endpoints | | **Page Components** | Suite list, test case editor, run trigger, results table with pass/fail badges, trend chart | | **Effort** | 2.5 days | ### 2.4 Reviews & Approval Queue Page | Item | Detail | | ------------------- | -------------------------------------------------------------------------------------------- | | **Backend Module** | `reviews` — 9 endpoints | | **Page Components** | Review queue with filters, detail drawer, approve/reject/request-changes actions, assignment | | **Effort** | 2 days | ### 2.5 Marketplace Admin Page | Item | Detail | | ------------------- | ------------------------------------------------------------------------------------------- | | **Backend Module** | `marketplace` — 29 endpoints (largest module!) | | **Page Components** | Listing management table, purchase history, review moderation, featured/category management | | **Effort** | 3 days | ### 2.6 Delivery Log Page | Item | Detail | | ------------------- | ------------------------------------------------------------------------------------------------- | | **Backend Module** | `delivery` — 8 endpoints | | **Page Components** | Email delivery log, template preview, retry failed, delivery stats (success/bounce/failure rates) | | **Effort** | 1.5 days | ### 2.7 Scheduled Jobs & Runs Page | Item | Detail | | ------------------- | ----------------------------------------------------------------------------- | | **Backend Module** | `jobs` (5 endpoints) + `runs` (7 endpoints) | | **Page Components** | Job list with status, manual trigger, run history table, run detail with logs | | **Effort** | 2 days | ### Phase 2 Totals | Metric | Count | | -------------------- | :------: | | New pages | 7 | | New API proxy routes | 8 | | New sidebar items | 7 | | Effort estimate | ~16 days | > **Note:** API proxy route count is 8 (not 7) because item 2.7 needs separate routes for both `jobs` and `runs` modules. --- ## Phase 3 — User Dashboard Gaps (1.5 weeks) **Goal:** Fill the 12 missing user-facing features + expand Settings into a comprehensive security/privacy hub. ### 3.1 Security Settings Page (MFA + Passkeys + Devices) | Item | Detail | | ------------------- | ------------------------------------------------------------------------------------------------------------------------- | | **Gap Refs** | 2.1.2, 2.1.3, 2.1.4, 2.2.3 | | **New Files** | `(portal)/settings/security/page.tsx`, API routes for MFA setup/passkeys/devices | | **Page Components** | TOTP setup wizard (QR code + verify), recovery code display, passkey registration, device list with revoke, login history | | **Effort** | 4 days | **Acceptance Criteria:** - [ ] TOTP setup: generate secret → show QR → verify code → enable - [ ] Recovery codes: view (once), regenerate - [ ] Passkey: register new, list existing, delete - [ ] Devices: list trusted/active, revoke individual, revoke all - [ ] Login history: last 50 login events with IP/device/location - [ ] Sidebar item added under Settings ### 3.2 Support / Help Page | Item | Detail | | ------------------- | ------------------------------------------------------------- | | **Gap Ref** | 2.1.9 | | **New Files** | `(portal)/support/page.tsx`, `api/support/[...path]/route.ts` | | **Page Components** | Create ticket form, ticket list, ticket detail with notes | | **Effort** | 2 days | ### 3.3 Usage Stats Page | Item | Detail | | ------------------- | ---------------------------------------------------------------------------------------------- | | **Gap Ref** | 2.1.10 | | **New Files** | `(portal)/usage/page.tsx`, `api/usage/[...path]/route.ts` | | **Page Components** | Usage breakdown cards (API calls, storage, tokens), usage over time chart, current plan limits | | **Effort** | 1.5 days | ### 3.4 Invitations Page | Item | Detail | | ------------------- | -------------------------------------------------------------------- | | **Gap Ref** | 2.1.1 | | **New Files** | `(portal)/invitations/page.tsx` | | **Page Components** | Pending invitations list, accept/decline buttons, invitation history | | **Effort** | 1 day | ### 3.5 Changelog / What's New Page | Item | Detail | | ------------------- | ----------------------------------------------------------------- | | **Gap Ref** | 2.1.6 | | **New Files** | `(portal)/changelog/page.tsx`, `api/changelog/[...path]/route.ts` | | **Page Components** | Release notes list, version badges, "New" indicator in sidebar | | **Effort** | 1 day | ### 3.6 Profile Enhancements: Connected Accounts + Account Deletion | Item | Detail | | ------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | **Gap Refs** | 2.1.5, 2.2.1 | | **Change** | Expand existing `/profile` page | | **Additions** | "Connected Accounts" section (link/unlink Google, Microsoft, Apple), "Delete Account" with confirmation modal + 7-day cooldown notice | | **Effort** | 1.5 days | ### 3.7 Notification Preferences | Item | Detail | | ------------- | -------------------------------------------------------------------- | | **Gap Ref** | 2.2.2 | | **Change** | Expand existing `/settings` page | | **Additions** | Notification preference grid: email/push/in-app toggles per category | | **Effort** | 1 day | ### Phase 3 Totals | Metric | Count | | -------------------- | :-------------------: | | New pages | 5 | | Expanded pages | 3 | | New API proxy routes | 4 | | New sidebar items | 5 + expanded Settings | | Effort estimate | ~12 days | --- ## Phase 4 — Operational Admin Pages (2 weeks) **Goal:** Complete operational tooling — event bus, security, compliance, observability. ### 4.1 Event Bus / Subscriptions Page | Item | Detail | | ------------------- | ----------------------------------------------------------------------- | | **Backend Module** | `event-subscriptions` — 10 endpoints | | **Page Components** | Subscription CRUD, DLQ viewer with replay/purge, event log with filters | | **Effort** | 2 days | ### 4.2 SCIM Provisioning Page | Item | Detail | | ------------------- | ------------------------------------------------------------- | | **Backend Module** | `scim` — 14 endpoints | | **Page Components** | Connector CRUD, sync status dashboard, provisioning event log | | **Effort** | 2 days | ### 4.3 IP Rules (expand `/ops/security`) | Item | Detail | | ------------------ | --------------------------------------------------------------------------------- | | **Backend Module** | `ip-rules` — 5 endpoints | | **Change** | Add IP rules tab to existing `/ops/security` page | | **Components** | IP rule list, add allow/deny rule with CIDR input, expiry picker, test IP checker | | **Effort** | 1 day | ### 4.4 Backups Page | Item | Detail | | ------------------- | ------------------------------------------------------------------------------------------- | | **Backend Module** | `backups` — 6 endpoints | | **Page Components** | Backup list with size/date, create backup button, restore confirmation modal, download link | | **Effort** | 1.5 days | ### 4.5 Data Retention Page | Item | Detail | | ------------------- | ----------------------------------------------------------------------------------------------------- | | **Backend Module** | `retention` — 5 endpoints | | **Page Components** | Policy list, create policy form (entity type, retention days, scope), dry-run preview, execute button | | **Effort** | 1.5 days | ### 4.6 Maintenance Mode (expand Mission Control) | Item | Detail | | ------------------ | ---------------------------------------------------------------------------------------------- | | **Backend Module** | `maintenance` — 6 endpoints | | **Change** | Add maintenance card to existing `/ops` Mission Control page | | **Components** | Mode selector (off/read-only/maintenance/emergency), bypass roles/IPs, scheduled window picker | | **Effort** | 1 day | ### 4.7 Status Page / Incident Management | Item | Detail | | ------------------- | --------------------------------------------------------------------------------- | | **Backend Module** | `status` — 9 endpoints | | **Page Components** | Incident list, create/edit incident form, component status board, subscriber list | | **Effort** | 2 days | ### 4.8 GDPR Exports Page | Item | Detail | | ------------------- | ------------------------------------------------------------------------------------------------ | | **Backend Module** | `exports` — 5 endpoints | | **Page Components** | Export job list, trigger export (user ID + entity types), download completed, job status polling | | **Effort** | 1 day | ### 4.9 Onboarding Funnel Analytics | Item | Detail | | ------------------- | ---------------------------------------------------------------------------------- | | **Backend Module** | `onboarding` — 4 endpoints | | **Page Components** | Funnel chart (step-by-step conversion), step drop-off analysis, per-product filter | | **Effort** | 1.5 days | ### 4.10 Diagnostics Expansion: Session Replay + Performance Profiles | Item | Detail | | ------------------- | ------------------------------------------------------------------------------ | | **Backend Modules** | `diagnostics` sub-routes: session-replay, performance-profile, crash-trigger | | **Change** | Add sub-pages to existing `/debug-sessions` | | **New Pages** | `/debug-sessions/replay`, `/debug-sessions/performance`, `/ops/crash-triggers` | | **Effort** | 3 days | ### 4.11 User Sessions Admin (expand user detail) | Item | Detail | | ------------------ | ----------------------------------------------------------------------------- | | **Backend Module** | `sessions` — 5 endpoints | | **Change** | Add "Active Sessions" tab to user detail view (accessible from `/users/[id]`) | | **Components** | Session list with device/IP/location, revoke button, revoke-all | | **Effort** | 1 day | ### 4.12 Predictive Analytics — Campaign Execution Verification | Item | Detail | | ------------------ | ------------------------------------------------------------------------------------- | | **Gap Ref** | 1.2.3 | | **Backend Module** | `predictive-analytics` | | **Change** | Verify campaign execution/send is wired on existing `/predictive/campaigns` page | | **Additions** | If missing: add campaign send button, cohort comparison chart, execution status table | | **Effort** | 1 day | ### Phase 4 Totals | Metric | Count | | -------------------- | :--------------------: | | New pages | 7 | | Expanded pages | 5 (was 4 + predictive) | | New API proxy routes | 11 | | New sidebar items | 7 new + 5 expanded | | Effort estimate | ~19 days | --- ## Phase 5 — User Dashboard Polish (1 week) **Goal:** Lower-priority user features — feedback, org membership, marketplace browse, GDPR. ### 5.1 Feedback Widget | Item | Detail | | ------------------ | -------------------------------------------------------------------- | | **Gap Ref** | 2.1.7 | | **Implementation** | Floating feedback button (bottom-right) → modal with category + text | | **Effort** | 0.5 days | ### 5.2 Organization Membership Page | Item | Detail | | ------------------- | -------------------------------------------- | | **Gap Ref** | 2.1.8 | | **Conditional** | Only visible if user belongs to an org | | **Page Components** | Org info card, member list, leave org button | | **Effort** | 1 day | ### 5.3 Marketplace Browse Page | Item | Detail | | ------------------- | --------------------------------------------------------------- | | **Gap Ref** | 2.1.12 | | **Page Components** | Browse listings, search/filter, purchase flow, purchase history | | **Effort** | 2 days | ### 5.4 Export My Data (GDPR) | Item | Detail | | -------------- | --------------------------------------------- | | **Gap Ref** | 2.1.11 | | **Change** | Add "Export My Data" button to `/settings` | | **Components** | Trigger export, status polling, download link | | **Effort** | 0.5 days | ### Phase 5 Totals | Metric | Count | | ----------------- | :-----: | | New pages | 2 | | Expanded pages | 1 | | New sidebar items | 3 | | Effort estimate | ~4 days | --- ## Phase 6 — Future-Facing (backlog) These backend modules exist but features aren't urgently needed. Build when product requires them. | # | Feature | Backend Module | Endpoints | Trigger Condition | | :-: | ---------------------------------- | --------------------- | :-------: | --------------------------------------- | | 1 | CDN Management | `cdn` | 7 | When CDN pipeline is active | | 2 | Dunning Campaigns | `dunning` | 6 | When payment failure rate >2% | | 3 | API Version Management | `api-versioning` | 5 | When v2 API ships | | 4 | Multi-Tenant Admin | `tenants` | ~5 | When multi-tenant launches | | 5 | Universal Search | `search` | 5 | When admin page count exceeds 50 | | 6 | Agent Executor UI | `agents/executor` | 10 | When agent orchestration goes live | | 7 | Billing Checkout Admin | `billing-checkout` | ~4 | When checkout analytics needed | | 8 | Auth: Push Approvals | `auth/push-approvals` | 4 | When ByteLyst Auth app ships | | 9 | Auth: QR Auth | `auth/qr-auth` | 3 | When ByteLyst Auth app ships | | 10 | Auth: Enterprise SSO | `auth/enterprise` | 8 | When first enterprise customer onboards | | 11 | Auth: Magic Link | `auth/magic-link` | 3 | When passwordless flow is prioritized | | 12 | Tracker: Comment Threading | `comments` (reply) | — | When tracker usage grows | | 13 | Tracker: Vote Visualization | `votes` | — | When public roadmap gets traction | | 14 | Experiments: A/B Assignment Viewer | `ab-testing` | — | When experiments are actively used | --- ## Execution Timeline ``` Week 1 ┃ Phase 0 (1 day) ── Fix backend bug + wire 7 sidebar items + kill switch audit ┃ Phase 1 (start) ── Organizations, Support Cases ┃ Week 2 ┃ Phase 1 (finish) ── AI Budgets, Waitlist ┃ Week 3-4 ┃ Phase 2 ── Webhooks, Knowledge, Agent Evals, Reviews, ┃ Marketplace, Delivery, Jobs ┃ Week 5 ┃ Phase 3 (start) ── User Security (MFA+Passkeys+Devices), Support, ┃ Usage, Invitations, Changelog ┃ Week 6 ┃ Phase 3 (finish) ── Profile enhancements, Notification prefs ┃ Week 7-8 ┃ Phase 4 ── Event Bus, SCIM, IP Rules, Backups, Retention, ┃ Maintenance, Status/Incidents, GDPR, Onboarding, ┃ Diagnostics expansion, User sessions, Predictive ┃ Week 9 ┃ Phase 5 ── Feedback widget, Org membership, Marketplace ┃ browse, GDPR export ┃ Week 10+ ┃ Phase 6 ── Backlog items as triggered by product needs ``` **Grand total effort: ~60 dev-days (~12 calendar weeks with 1 developer, ~6 weeks with 2 parallel).** --- ## Dependency Graph ``` Phase 0 ──→ Phase 1 ──┬──→ Phase 2 ──→ Phase 5 (user polish) │ ├──→ Phase 3 ──→ Phase 5 (user polish) │ └──→ Phase 4 ──→ Phase 6 (backlog) ``` **Hard dependencies:** - Phase 0 **must** complete before Phase 1 (sidebar restructure affects all subsequent page additions) - Phase 0 item 0.1 (backend fix) **must** complete before AI Diagnostics sidebar item is useful - Phase 3.1 (Security page) depends on user-dashboard API routes for MFA/passkeys/devices — needs new proxy routes - Phase 5 depends on both Phase 2 (admin marketplace built first) and Phase 3 (user features) **No dependencies between (can run in parallel):** - Phase 2, Phase 3, and Phase 4 — all can start independently after Phase 1 - Any items within Phase 4 (all are independent of each other) --- ## Per-Page Template Every new page follows this pattern: ### 1. API Proxy Route ``` dashboards//src/app/api//[...path]/route.ts ``` - Proxy to `PLATFORM_SERVICE_URL/api//*` - Forward auth cookie as `Authorization: Bearer ` - Handle 401/403/500 consistently ### 2. Client Library ``` dashboards//src/lib/-client.ts ``` - Typed fetch functions for each endpoint - Use `createApiClient()` from `@bytelyst/api-client` where applicable ### 3. Page Component ``` dashboards//src/app/(dashboard|portal)//page.tsx ``` - Server component by default, `'use client'` only for interactive parts - Use shadcn/ui components + TailwindCSS v4 - Use Recharts for charts ### 4. Sidebar Entry ``` dashboards//src/components/sidebar-nav.tsx ``` - Add to `navItems` array with correct section, icon, and path ### 5. Tests - E2E: Playwright navigation + basic CRUD flow - Unit: Client library functions (mock fetch) --- ## Success Metrics | Metric | Before | After Phase 5 | Target | | ------------------------ | :----------------: | :------------------: | :-------------: | | Admin sidebar items | 27 | 52 | 52 + Phase 6 | | Admin module UI coverage | ~40% | ~85% | 100% at Phase 6 | | User page coverage | 12 pages | 20 pages | 20 pages | | Backend bugs | 1 (ai-diagnostics) | 0 | 0 | | Hidden/unreachable pages | 7 | 0 | 0 | | GDPR compliance (export) | ❌ | ✅ | ✅ | | Support ticketing UI | ❌ | ✅ (both dashboards) | ✅ | | AI cost visibility | ❌ | ✅ | ✅ | --- ## Risk Register | Risk | Likelihood | Impact | Mitigation | | --------------------------------------------------------------- | :--------: | :----: | --------------------------------------------------------- | | Backend module APIs have breaking changes during build | LOW | MEDIUM | Pin API contracts, run backend tests before each phase | | Scope creep — "while we're here" additions | MEDIUM | MEDIUM | Strict per-sprint scope, defer to Phase 6 backlog | | Designer bottleneck for new pages | MEDIUM | HIGH | Use existing shadcn/ui patterns, no custom design needed | | Auth proxy routes leak sensitive data | LOW | HIGH | All proxy routes must strip secrets, use httpOnly cookies | | Phase 2+3 parallelism causes merge conflicts in sidebar-nav.tsx | MEDIUM | LOW | Coordinate sidebar additions in daily standup | --- _This roadmap should be updated as phases complete. Reference the [gap analysis](DASHBOARD_UI_GAP_ANALYSIS.md) for detailed endpoint lists and module descriptions._