# RTSport — Phase 1 MVP Feature Cut **Date:** 2026-05-03 **Status:** Draft — Pending Director Approval **Target:** Functional demo for LAT validation by May 23 --- ## Philosophy **Minimum Viable Product = minimum code that demonstrates the core loop.** The core loop: An athletic trainer logs an injury in 3 taps, and relevant stakeholders (coach, parent) see updates. If it doesn't serve that loop, it's not in Phase 1. --- ## ✅ IN (Phase 1) ### Authentication - [ ] JWT login with email/password - [ ] Role assignment (AT/Coach/Parent) - [ ] School-scoped data (tenant isolation) - **Owner:** Socrates - **ETA:** May 9 (done) ### Dashboard (AT View) - [ ] Active cases list (severity, attention, phase) - [ ] Quick stats (full/modified/out counts) - [ ] FAB for 3-tap entry - [ ] Real data from API - **Owner:** Daedalus - **ETA:** May 16 ### 3-Tap Sideline Entry - [ ] Tap 1: Athlete selection (searchable) - [ ] Tap 2: Body part picker (6 categories) - [ ] Tap 3: Severity + removed toggle - [ ] Submit to live API - [ ] Confirmation toast - **Owner:** Daedalus - **ETA:** May 16 ### Athlete Detail Overlay - [ ] Bottom sheet with real data - [ ] Phase bar with milestones - [ ] Timeline with events - [ ] Case status + severity - **Owner:** Daedalus - **ETA:** May 16 ### Coach Dashboard (Functional Demo) - [ ] Tonight's game alert (real schedule data) - [ ] Per-team roster with restriction tags - [ ] Tap athlete → see restriction details - [ ] Real data from API (not hardcoded) - **Owner:** Daedalus - **ETA:** May 16 ### Parent Dashboard (Functional Demo) - [ ] Child selector (if multiple children) - [ ] Recovery plan with milestones - [ ] Timeline with visibility-appropriate events - [ ] Care team contacts - [ ] Real data from API (not hardcoded) - **Owner:** Daedalus - **ETA:** May 16 --- ## ❌ OUT (Post-Phase 1) | Feature | Why Out | Phase | |---------|---------|-------| | **Offline support** | ServiceWorker + IndexedDB = complex. Core loop works online first. | Phase 2 | | **SSO (Clever/Google)** | Nice-to-have. Email login works for demo. | Phase 2 | | **File attachments** | Injury photos, doctor notes. Adds storage complexity. | Phase 2 | | **Email/SMS notifications** | In-app only for Phase 1. External delivery later. | Phase 2 | | **CSV roster import** | Manual entry acceptable for first school. | Phase 2 | | **FERPA audit logging** | Critical for production, not for demo. | Phase 3 | | **SOC 2 compliance** | Required for schools, but not for beta. | Phase 3 | | **Parent onboarding flow** | Assume parents invited by AT. Full flow later. | Phase 2 | | **Coach dashboard** | AT dashboard is the core. Coach view is secondary. | Phase 2 | | **Parent dashboard** | Same as above. Core loop is AT-driven. | Phase 2 | | **FERPA audit logging** | Critical for production, not for demo. | Phase 3 | | **SOC 2 compliance** | Required for schools, but not for beta. | Phase 3 | | **Data retention policies** | 7-year archive. Production requirement. | Phase 3 | | **Mobile app** | PWA first. Native apps if traction proven. | Phase 4 | --- ## 📋 Phase 1 Success Criteria By May 23, an LAT can: 1. Log in as an athletic trainer 2. See their school's active cases 3. Tap FAB → select athlete → body part → severity → submit 4. See the new case appear in the dashboard 5. Tap the case → see athlete details + timeline 6. **Switch to Coach view** → see roster with restriction tags 7. **Switch to Parent view** → see child's recovery plan 8. **Say "I would use this"** (validation) **Demo script:** Show the LAT all three views (AT/Coach/Parent) so they understand the stakeholder communication loop. --- ## 🎯 Acceptance Test Script ``` Setup: Open hoffdesk.com/rtsport/at on a phone 1. Login with test credentials → See dashboard with real data 2. Tap FAB (bottom right +) → Bottom sheet opens with athlete search 3. Type "Jake" → tap Jake Larson → Body part categories appear 4. Tap "Lower Body" → tap "Ankle - Right" → Severity selector appears 5. Tap "Moderate" → toggle "Removed from play" → Tap "Submit" 6. See confirmation toast: "Case created for Jake Larson" → Dashboard updates with new case 7. Tap new case row → Bottom sheet shows athlete details + timeline Success: LAT completes flow in <30 seconds without prompting ``` --- ## 🚧 Dependencies | Dependency | Blocks | Status | |------------|--------|--------| | Backend API v0.3 | Everything | ✅ Done | | Frontend-Backend integration | Demo | ⏳ Daedalus | | LAT recruitment | Validation | ⏳ Matt | --- ## 📝 Decision Log | Date | Decision | Rationale | |------|----------|-----------| | 2026-05-03 | Email auth only (no SSO) | SSO adds complexity without validating core loop | | 2026-05-03 | No offline for Phase 1 | Sideline use is important but not the first test | | 2026-05-03 | Coach/Parent dashboards deferred | Core loop is AT-driven; other roles are secondary | | 2026-05-03 | SQLite for Phase 1 | PostgreSQL migration after validation | --- *Next action: Matt approves feature cut, Daedalus begins integration.*