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.