Skip to content

Track 1: MVP

Progress

Status Count
Done 0
In Progress 0
To Do 242
Total 242
Complete 0%

Tasks

ID Title Status Repo
BE-001 Add unique constraint on (user_id, device_id, metric_type, ... | [ ] |backend-api`
BE-002 Handle conflict in POST /devices/{id}/sync — on duplicate,... [ ] backend-api
BE-003 Add integration test for dedup sync [ ] backend-api
BE-004 Add field-level validation to POST /health/metrics/bulk [ ] backend-api
BE-005 Partial success support — valid rows inserted, invalid rows ... [ ] backend-api
BE-006 Add validation tests for all metric types [ ] backend-api
BE-007 Update last_sync_at on device after successful sync [ ] backend-api
BE-008 Set connection_status = 'connected' on sync [ ] backend-api
BE-009 Add DB trigger or cron: set connection_status = 'disconnect... | [ ] |backend-api`
BE-010 Add sync_count column to user_devices — increment on eac... [ ] backend-api
BE-011 Fix POST /devices upsert — same device_identifier update... [ ] backend-api
BE-012 Return is_new: true/false in registration response [ ] backend-api
BE-013 Add device_type detection from name — "X3B" → ring, "JVC" ... [ ] backend-api
BE-014 Increase payload limit on POST /devices/{id}/sync to accep... [ ] backend-api
BE-015 Add is_backfill: bool flag to sync request [ ] backend-api
BE-016 Track backfill progress in user_devices.meta [ ] backend-api
BE-017 Fix GET /health/summary — aggregate steps as SUM, HR as AV... [ ] backend-api
BE-018 Add sleep duration to summary — sum sleep stages [ ] backend-api
BE-019 Add calories and active_minutes to summary [ ] backend-api
BE-020 Handle empty data gracefully — return nulls, not errors [ ] backend-api
BE-021 Implement readiness score calculation [ ] backend-api
BE-022 Implement strain score calculation [ ] backend-api
BE-023 Implement recovery score calculation [ ] backend-api
BE-024 Add trend arrows — compare today vs yesterday [ ] backend-api
BE-025 GET /health/metrics?metric_type=sleep returns structured s... [ ] backend-api
BE-026 Add 7-day sleep trend endpoint — GET /health/sleep/trend?da... | [ ] |backend-api`
BE-027 Sleep insights text generation [ ] backend-api
BE-028 Daily activity rollup — GET /health/activity?date=... [ ] backend-api
BE-029 Weekly activity rollup — GET /health/activity?period=weekly... | [ ] |backend-api`
BE-030 Monthly activity rollup — GET /health/activity?period=month... | [ ] |backend-api`
BE-031 Pattern detection — correlate sleep with next-day HRV [ ] backend-api
BE-032 Return empty array (not error) when insufficient data [ ] backend-api
BE-033 Anomaly detection — flag unusual readings [ ] backend-api
BE-034 Enforce can_view_health flag on health endpoints [ ] backend-api
BE-035 Enforce can_view_body flag on body endpoints [ ] backend-api
BE-036 Enforce can_view_workouts flag on training endpoints [ ] backend-api
BE-037 Enforce can_view_food flag on nutrition endpoints [ ] backend-api
BE-038 Enforce can_view_devices flag on device endpoints [ ] backend-api
BE-039 Enforce can_view_goals flag on goals endpoints [ ] backend-api
BE-040 Integration test for all 6 permission flags [ ] backend-api
BE-041 POST /coach/sessions — create session with validation [ ] backend-api
BE-042 PUT /sessions/{id}/start — transition to live [ ] backend-api
BE-043 POST /sessions/{id}/join — add participant [ ] backend-api
BE-044 PUT /sessions/{id}/end — complete session [ ] backend-api
BE-045 POST /sessions/{id}/reserve — book a spot with payment [ ] backend-api
BE-046 POST /agora/token generates valid RTC token [ ] backend-api
BE-047 Validate session exists and user is participant [ ] backend-api
BE-048 POST /coach/managed-clients — create offline client [ ] backend-api
BE-049 GET /coach/managed-clients — list all managed clients [ ] backend-api
BE-050 PUT /coach/managed-clients/{id} — update client info [ ] backend-api
BE-051 DELETE /coach/managed-clients/{id} — soft delete [ ] backend-api
BE-052 POST /coach/managed-clients/{id}/metrics — log health data... [ ] backend-api
BE-053 Intake forms CRUD — POST/GET/PUT/DELETE /coach/portal/intak... | [ ] |backend-api`
BE-054 Client journey — GET /coach/portal/clients/{id}/journey [ ] backend-api
BE-055 Messaging — POST/GET /coach/portal/messages [ ] backend-api
BE-056 Billing — POST/GET /coach/portal/billing [ ] backend-api
BE-057 Notes — POST/GET/PUT/DELETE /coach/portal/clients/{id}/note... | [ ] |backend-api`
BE-058 POST /push/register — store FCM token per device [ ] backend-api
BE-059 DELETE /push/{token} — invalidate token [ ] backend-api
BE-060 FCM send function — deliver push via Firebase [ ] backend-api
BE-061 Health alert notification — abnormal HR/SpO2 [ ] backend-api
BE-062 Session reminder notification — 30 min before [ ] backend-api
BE-063 Sync reminder notification — no sync in 24h [ ] backend-api
BE-064 Create activities table migration [ ] backend-api
BE-065 POST /activities — save completed activity with GPS route [ ] backend-api
BE-066 GET /activities — list user activities [ ] backend-api
BE-067 GET /activities/{id} — get activity detail with route [ ] backend-api
BE-068 DELETE /activities/{id} — delete activity [ ] backend-api
BE-069 GET /activities/stats — activity summary stats [ ] backend-api
BE-070 Live activity endpoint — POST /activities/live — save GPS ... [ ] backend-api
BE-071 POST /activities/start — begin live activity [ ] backend-api
BE-072 POST /activities/{id}/finish — complete live activity [ ] backend-api
SDK-001 Buddy challenge CRUD — create, list, get, update, delete [ ] athion-sdk
SDK-002 Buddy matching — find, request, accept, reject [ ] athion-sdk
SDK-003 Buddy messaging — send, list messages, mark read [ ] athion-sdk
SDK-004 Buddy sessions — create, join, leave, complete [ ] athion-sdk
SDK-005 Buddy stats and leaderboard — get stats, rankings [ ] athion-sdk
SDK-006 Buddy models — all request/response types [ ] athion-sdk
SDK-007 Managed client CRUD — create, list, get, update, delete [ ] athion-sdk
SDK-008 Managed client health — log metrics, get summary, get histor... [ ] athion-sdk
SDK-009 Managed client notes and progress — notes CRUD, progress tra... [ ] athion-sdk
SDK-010 Managed client models [ ] athion-sdk
SDK-011 Intake service — form templates CRUD, assign, get responses [ ] athion-sdk
SDK-012 Journey service — get timeline, add event [ ] athion-sdk
SDK-013 Messaging service — send, list threads, list messages, mark ... [ ] athion-sdk
SDK-014 Notes service — CRUD [ ] athion-sdk
SDK-015 Sessions service — CRUD, manage participants [ ] athion-sdk
SDK-016 Locations service — CRUD for training locations [ ] athion-sdk
SDK-017 Billing service — create invoice, list, get, mark paid [ ] athion-sdk
SDK-018 Payouts service — request, list, get status [ ] athion-sdk
SDK-019 Campaigns service — create, list, update, delete, get stats [ ] athion-sdk
SDK-020 Analytics service — revenue, clients, sessions, retention [ ] athion-sdk
SDK-021 Coach portal models — all request/response types [ ] athion-sdk
SDK-022 Circle challenges — create, list, join, leave, complete [ ] athion-sdk
SDK-023 Circle milestones and activities — remaining endpoints [ ] athion-sdk
SDK-024 Add ActivityService — CRUD for GPS activities [ ] athion-sdk
SDK-025 Add activity models [ ] athion-sdk
AU-001 Add reconnect logic in ble_manager.dart — retry connection... [ ] app-user
AU-002 Show reconnecting UI state in device_screen.dart [ ] app-user
AU-003 Test: toggle Bluetooth off/on → app reconnects within 30s [ ] app-user
AU-004 iOS: configure CBCentralManager for background BLE restora... [ ] app-user
AU-005 Android: create foreground service for BLE sync [ ] app-user
AU-006 Sync data to backend while backgrounded [ ] app-user
AU-007 Save partial sync data locally on BLE disconnect [ ] app-user
AU-008 Show user-friendly error messages for BLE failures [ ] app-user
AU-009 No app crash on any BLE error path [ ] app-user
AU-010 On first pair, trigger full history download from device [ ] app-user
AU-011 Show backfill progress UI [ ] app-user
AU-012 Post backfill data to backend with is_backfill: true [ ] app-user
AU-013 Read firmware version on BLE connect [ ] app-user
AU-014 Compare against minimum version and show warning banner [ ] app-user
AU-015 Set useMockDataProvider = false and fix all null/error sta... [ ] app-user
AU-016 Dashboard tab → wire to GET /health/summary [ ] app-user
AU-017 Health tab → wire to health metrics API [ ] app-user
AU-018 Training tab → wire to training API [ ] app-user
AU-019 Community tab → wire to community API [ ] app-user
AU-020 Profile tab → wire to profile API [ ] app-user
AU-021 Current HR widget — show live value when device connected [ ] app-user
AU-022 Resting HR card — show from daily summary [ ] app-user
AU-023 HR zones chart — today's time in each zone [ ] app-user
AU-024 7-day HR trend — line chart [ ] app-user
AU-025 Sleep score circle — large score 0-100 with color [ ] app-user
AU-026 Sleep stages breakdown — stacked bar [ ] app-user
AU-027 Sleep duration and bed/wake times [ ] app-user
AU-028 7-day sleep trend — bar chart [ ] app-user
AU-029 Activity rings/progress — steps, calories, active minutes [ ] app-user
AU-030 Today's stats cards — steps, distance, calories, active minu... [ ] app-user
AU-031 Weekly activity bar chart [ ] app-user
AU-032 HRV current value + 7-day trend [ ] app-user
AU-033 Stress indicator from HRV [ ] app-user
AU-034 SpO2 current reading + overnight trend [ ] app-user
AU-035 Personal info step saves to API [ ] app-user
AU-036 Country/language step saves to API [ ] app-user
AU-037 Fitness level step saves [ ] app-user
AU-038 Training objective step saves [ ] app-user
AU-039 Training days step saves [ ] app-user
AU-040 Daily goals step saves [ ] app-user
AU-041 Hobbies/sports step saves [ ] app-user
AU-042 Final submit — all steps sent to PUT /profile [ ] app-user
AU-043 Skip behavior — skipped steps use defaults [ ] app-user
AU-044 Register FCM token on login [ ] app-user
AU-045 Handle incoming push — show system notification [ ] app-user
AU-046 Deep link from notification tap [ ] app-user
AU-047 Scan QR code from web → extract session token [ ] app-user
AU-048 Call POST /auth/qr/verify with session token [ ] app-user
AU-049 Show success/error feedback [ ] app-user
AU-050 List training programs from API [ ] app-user
AU-051 Program detail → series → exercises [ ] app-user
AU-052 Mark exercises complete and save workout [ ] app-user
AU-053 Post feed — list posts from friends [ ] app-user
AU-054 Create post — text and image [ ] app-user
AU-055 Stories — view and create [ ] app-user
AU-056 Friend requests — send, accept, reject [ ] app-user
AU-057 Show wallet balance from GET /wallet [ ] app-user
AU-058 Transaction history list [ ] app-user
AU-059 Request location permissions (iOS + Android) [ ] app-user
AU-060 Activity start screen — select type (run/cycle/walk/hike) [ ] app-user
AU-061 Live GPS tracking during activity [ ] app-user
AU-062 Live metrics display — pace, distance, HR, elevation [ ] app-user
AU-063 Auto-pause detection [ ] app-user
AU-064 Send live GPS points to backend [ ] app-user
AU-065 Activity completion screen — summary + map [ ] app-user
AU-066 Activity history list [ ] app-user
AU-067 Activity detail screen — full map + splits [ ] app-user
AU-068 Activity stats screen — totals and records [ ] app-user
AD-001 Serial port discovery — scan for connected equipment [ ] app-device
AD-002 Connection stability — maintain serial connection during ses... [ ] app-device
AD-003 Reconnect on disconnect — auto-retry with user feedback [ ] app-device
AD-004 Parse serial data packets — force, power, HR, reps [ ] app-device
AD-005 Display live metrics on workout screen — <500ms latency [ ] app-device
AD-006 Heart rate display from equipment sensor [ ] app-device
AD-007 Resistance slider sends serial command to motor [ ] app-device
AD-008 Support all 5 resistance modes [ ] app-device
AD-009 Remote control button handling — power up/down [ ] app-device
AD-010 Start/stop workout session with timer [ ] app-device
AD-011 Post workout summary to backend [ ] app-device
AD-012 Show workout summary screen [ ] app-device
AD-013 Launch KinesteX SDK with camera [ ] app-device
AD-014 Rep counting and form scoring [ ] app-device
AD-015 Save AI training results to backend [ ] app-device
AD-016 Device configuration screen — equipment type, mirror, power,... [ ] app-device
AD-017 10-step onboarding flow completes and saves [ ] app-device
AD-018 Join live coaching session from home screen [ ] app-device
CA-001 Application form — bio, specializations, certifications, doc... [ ] coach-app
CA-002 Application status tracking [ ] coach-app
CA-003 Create session form — title, date, time, duration, price, ma... [ ] coach-app
CA-004 Dashboard tabs — Upcoming, Live, Pending, History [ ] coach-app
CA-005 Edit upcoming session [ ] coach-app
CA-006 Cancel/delete session [ ] coach-app
CA-007 Start session — initiate Chime meeting [ ] coach-app
CA-008 Video/audio during session — both directions [ ] coach-app
CA-009 End session — close for all participants [ ] coach-app
CA-010 Client list — show connected clients [ ] coach-app
CA-011 Client health summary — HR, sleep, activity, body comp [ ] coach-app
CA-012 Permission-denied state — "No permission" for restricted met... [ ] coach-app
CA-013 Stats cards — total sessions, participants, revenue, live co... [ ] coach-app
CA-014 Register FCM token on coach login [ ] coach-app
CA-015 Handle session-related pushes [ ] coach-app
CA-016 Create managed client — name, goals, notes [ ] coach-app
CA-017 Log metrics for managed client [ ] coach-app
CA-018 Edit and delete managed client [ ] coach-app
CA-019 Replace api_client.dart Dio calls with athion_sdk calls [ ] coach-app
CA-020 Auth token management via SDK [ ] coach-app
CA-021 Verify all screens still work after migration [ ] coach-app
WEB-001 Replace hardcoded values in widget components with Supabase ... [ ] champion-stats-hub
WEB-002 Add empty states for all widgets [ ] champion-stats-hub
WEB-003 Demo mode preserves mock data [ ] champion-stats-hub
WEB-004 Connection status from user_devices table [ ] champion-stats-hub
WEB-005 Today's ring metrics — HR, HRV, SpO2, sleep, steps, temp [ ] champion-stats-hub
WEB-006 7-day trend charts for ring metrics [ ] champion-stats-hub
WEB-007 Band-specific metrics — SOS, strain, workout modes [ ] champion-stats-hub
WEB-008 Last night's sleep display — score, duration, stages chart [ ] champion-stats-hub
WEB-009 Weekly sleep trend [ ] champion-stats-hub
WEB-010 Sleep insights text [ ] champion-stats-hub
WEB-011 Readiness, strain, recovery, fitness score gauges [ ] champion-stats-hub
WEB-012 Trend arrows and deltas [ ] champion-stats-hub
WEB-013 Score breakdown on click [ ] champion-stats-hub
WEB-014 Generate QR code from backend session [ ] champion-stats-hub
WEB-015 Poll for scan completion [ ] champion-stats-hub
WEB-016 Today's activity from Supabase [ ] champion-stats-hub
WEB-017 Weekly bar chart and calendar heatmap [ ] champion-stats-hub
WEB-018 Workout history list [ ] champion-stats-hub
WEB-029 GPS activity list with route maps [ ] champion-stats-hub
WEB-030 Activity detail page with full map [ ] champion-stats-hub
WEB-031 Activity stats dashboard [ ] champion-stats-hub
WEB-019 Chat sends to ai-coach Edge Function [ ] champion-stats-hub
WEB-020 Conversation history persistence [ ] champion-stats-hub
WEB-021 Context includes user health data [ ] champion-stats-hub
WEB-022 Client list from Supabase [ ] champion-stats-hub
WEB-023 Client health summary view [ ] champion-stats-hub
WEB-024 Session schedule and management [ ] champion-stats-hub
WEB-025 Revenue dashboard [ ] champion-stats-hub
WEB-026 "Add to Home Screen" works on iOS Safari [ ] champion-stats-hub
WEB-027 "Add to Home Screen" works on Android Chrome [ ] champion-stats-hub
WEB-028 Offline fallback page [ ] champion-stats-hub
GOR-001 Gorillas BLE protocol analysis — identify characteristics, d... [ ] backend-api + app-user
GOR-002 Add Gorillas device type to backend — update device_type enu... [ ] backend-api
GOR-003 Gorillas BLE service in app-user — scan, connect, read metri... [ ] app-user
GOR-004 Gorillas data mapping — map device metrics to health_metrics... [ ] backend-api + app-user
GOR-005 Gorillas device screen in app-user [ ] app-user
GOR-006 Gorillas web dashboard page [ ] champion-stats-hub
GOR-007 Gorillas integration test — end-to-end sync flow [ ] backend-api + app-user