📄 phase1-mvp-cut.md 5,134 bytes Sunday 03:48 📋 Raw

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.