F4.1 — Dashboard
Build the static WPP fieldwork dashboard app: a rebuild matching the WPP BAV “Fieldwork Command Centre” prototype design (share link — a design guide, not a contract; we do not reuse its source), consuming the per-market MetricsSnapshot JSON produced by fieldwork-processing (F3.3 / BOUN-11442). No backend: the page reads S3-served JSON only.
The static dashboard app (fieldwork-dashboard#1) is built and merged, covering market switching, quota meters, LOI, daily completes, and snapshot polling against the demo-QC fixtures. JIRA marks the story Done, but it has sat 31 days in staged with no release gate found confirming it reached production hosting yet.
- Since last activity
- 11d
- Oldest staged work
- 31d
- Acceptance criteria covered
- 5/7
- PRs open
- 0
Release gate: main → no release PR found— never assumed shipped.
Stories
- Done, unverified
1 tracked · 1 done, unverified
Acceptance criteria
- The app is typed against the versioned MetricsSnapshotSchema and renders a clear update-required state for an unknown schema versionpartialBOUN-11465partially covered
- Clean, minimal UI with bold/er fonts for labels and emphasispartialBOUN-11465partially covered
- The app polls latest.json on a ~60s interval with no per-request recompute path and no direct Firestore accessBOUN-11465covered
- Market overview renders the full v1 content blocks (completes vs target, IR%, screen-out, QC counts, research-defender counts, quota-cell fill, LOI, daily completes, grade/region tallies)BOUN-11465covered
- Derived values are computed client-side rather than stored in the snapshotBOUN-11465covered
- The app works against demo-QC snapshots so UI development doesn't wait on the QC portBOUN-11465covered
- Unit tests cover the derived-value computations and a real-schema fixture snapshot drives component testsBOUN-11465covered
Gaps
Criteria are read from the ticket description on every run. A gap closes on its own once a story or PR matching it appears — nothing here is closed by hand.