📄 dispatch-coach-retool.md 3,207 bytes Sunday 12:23 📋 Raw

Dispatch: Coach Dashboard Retool + AD View

To: Daedalus (frontend), Socrates (backend)
From: Wadsworth
Date: 2026-05-03
Priority: High — Refines LAT demo scope


Problem

Current Coach dashboard shows multi-sport roster. Real coaches manage ONE sport. Need:
1. Coach Dashboard retool → single-sport focus
2. AD View → multi-sport overview (new)

Decision

Implement BOTH:
- Coach view: single sport, clean roster, quick status
- AD view: all sports summary, drill-down capability

Files

  • shared/build-20260501/frontend/templates/coach/dashboard.html — Retool this
  • shared/build-20260501/frontend/templates/ad/dashboard.html — Create new
  • shared/build-20260501/backend/app/api/dashboard.py — Add endpoints
  • shared/project-docs/rtsport/coach-retool-spec.md — Full spec

Backend Tasks (Socrates)

  1. Update User model — Add assigned_sports and assigned_teams arrays
  2. New endpoint: GET /api/v1/dashboard/coach?sport=Football
    - Returns roster filtered to that sport
    - Includes team grouping (Varsity/JV/Freshman)
  3. New endpoint: GET /api/v1/dashboard/ad
    - Returns all sports summary (athlete counts, out/modified/cleared)
    - Recent activity across all sports
  4. Seed data: Add test coaches:
    - coach_fb@preble.k12.wi.us — Football only
    - coach_bb@preble.k12.wi.us — Basketball only
    - ad@preble.k12.wi.us — AD role

Frontend Tasks (Daedalus)

Coach Dashboard (Retool)

  • Header: Show sport name with dropdown selector (if multi-sport coach)
  • Quick stats: Out / Modified / Cleared for THIS SPORT ONLY
  • Roster: Filtered to selected sport, grouped by team
  • Athlete detail: Position info, grade, sport-specific context
  • Actions: Message AT, View Timeline

AD View (New)

  • Header: "AD Overview" — no sport selector
  • School stats: Total athletes, active cases, out today
  • Sport cards: Grid of all sports with counts
  • Recent activity: Cross-sport feed
  • Tap sport card: Drill down to that sport's coach view

Design Notes

  • Keep existing CSS tokens and color system
  • Mobile-first — coaches check this on phones on the sideline
  • AD view can be desktop-friendly (they're at a desk)
  • Sport icons: 🏈 Football, 🏀 Basketball, ⚽ Soccer, etc.

Test Script

1. Login as coach_fb  see only Football roster
2. Switch sport dropdown  Basketball  roster reloads
3. Login as ad  see all sports summary
4. Tap Football card  see Football coach view
5. Verify stats are sport-scoped (not school-wide)

Success Criteria

  • [ ] Coach sees only their sport's athletes
  • [ ] Sport selector works (if multi-sport assigned)
  • [ ] AD sees all sports summary
  • [ ] Drill-down from AD to sport view works
  • [ ] All data loads from API (no hardcoded mock)

ETA

  • Backend API: May 10
  • Frontend retool: May 12
  • Integration test: May 14

Matt's open questions (answer if you have opinions):
1. Coach sport assignment: Manual by AT? Self-selected? Imported?
2. Assistant coaches: Full team or position group?
3. AD permissions: View-only or can edit?
4. Phase 1 priority: Coach first, AD second?