RTSport Polish Sprint โ May 6-12
Sprint Goal
Ship RTSport v1.0 โ polished, production-ready dashboards for all roles.
Schedule
| Day | Focus | Owner |
|---|---|---|
| Wed (Today) | ๐จ Polish Sweep โ Nav consistency, Coach Status, Parent+AD nav | Daedalus |
| Thu | ๐ Systemd service โ auto-restart on boot | Matt + Wadsworth |
| Fri | ๐จ UX pass โ Loading states, error retry, pull-to-refresh | Daedalus |
| Mon | ๐งช Integration test โ End-to-end play session | Wadsworth |
| Tue | ๐ Bug bash โ Fix integration test findings | Wadsworth + Daedalus |
| Wed | ๐ข Ship v1.0 โ Clean up, tag release | Wadsworth |
Polish Sweep โ Daedalus Task
Source: POLISH.md (this file) + existing templates at shared/build-20260501/frontend/templates/
Backend: RTSport API running at localhost:8001, proxied through https://hoffdesk.com/api/v1/
Design tokens: Below
Build directory: shared/build-20260501/
Role templates to edit in-place.
1. Bottom Nav Visual Consistency
All four dashboards (AT, Coach, Parent, AD) need a unified bottom nav. Current state:
AT Dashboard โ Wired โ needs visual polish
- Current:
dashboard-tabs.css+dashboard-tabs.js - Icons are inline SVGs of varying styles
- Active state: just a color change โ add subtle indicator (underline, dot, or animated bar)
- "New Entry" tab needs distinctive treatment (green or accent highlight over red/sport colors)
Coach Dashboard โ Nav exists โ needs visual pass
- Current tabs: Roster (wired), Status (placeholder toast), Messages (placeholder toast)
- Proposed: Roster ยท Status ยท Messages (3 tabs, no Timeline)
- Status tab should show summary: "๐ซ X out ยท โ ๏ธ Y restricted" per sport
- Wire the Status tab to roster API, group by sport + status
- Wire Messages tab to a placeholder (or stub notification view)
Parent Dashboard โณ Partial nav โ needs completion
- Nav JS exists (
parent-tabs.js) but not fully wired - Proposed: Home (status card + next milestone) ยท Timeline (recovery phases) ยท Message (chat with AT)
- Single-child view โ no child switcher needed
- Wire Home tab to athlete case API
- Wire Timeline tab to case timeline data
- Wire Message tab to placeholder
AD Dashboard โ Needs nav from scratch
- Proposed: Overview (current dashboard stats) ยท Cases (all active across sports) ยท Reports (compliance/incident placeholder)
- Wire Overview to dashboard API
- Wire Cases to cases API (filtered all-sport)
- Wire Reports to placeholder
2. Cross-Dashboard UX Fixes
- Filter button highlight persistence โ quick action buttons should clear highlight when sport changes (reported bug from May 3)
- "New Reports" count mismatch โ
showNewCases()should respect current sport filter - Skeleton loading โ show placeholder shimmer during API fetches
- Error retry โ retry failed API calls 2x with 1s delay
Design Tokens
--bg-deep: #08080f
--bg-surface: #0f0f1a
--text-primary: #e8e8f0
--text-secondary: #9090a8
--text-muted: #606078
--at-accent: #00d4aa
--coach-accent: #4a9eff
--parent-accent: #ff6b9d
--status-full: #00d4aa
--status-modified: #fbbf24
--status-out: #ef4444
Success Criteria
- All 4 dashboards have bottom nav with working tabs
- Nav icons are consistent style
- Active tab has clear visual indicator
- Coach Status tab shows real data (grouped by sport + status)
- Parent nav fully wired to real data
- AD nav shows overview stats + all-sport cases
- Filter highlight bug is fixed
- "New Reports" shows correct count for current sport
- Skeleton loading visible during API fetches
- Error retry works on simulated API failure