Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
A TypeScript dashboard (any framework) over a public API: typed fetch layer, loading/error/empty states, client-side caching, at least one chart, and unit tests for the data layer.
Strict TS; API responses validated at the boundary.
Loading/error/empty handled everywhere data renders.
Data layer unit-tested incl. failure paths.
Clear module boundaries; no god components.
Use this README structure to make the work reviewable.
# Interactive dashboard with a typed data layer ## Goal A TypeScript dashboard (any framework) over a public API: typed fetch layer, loading/error/empty states, client-side caching, at least one chart, and unit tests for the data layer. ## Acceptance criteria - [ ] Type safety: Strict TS; API responses validated at the boundary. - [ ] State handling: Loading/error/empty handled everywhere data renders. - [ ] Tests: Data layer unit-tested incl. failure paths. - [ ] Code organization: Clear module boundaries; no god components. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.