Build Log — Parent Dashboard Backend
Build: 2026-05-06 01:44 UTC
Files Created
/home/hoffmann_admin/.openclaw/shared/build-20260506-parent/backend/rtsport_parent_api.py— Main API file (~20KB)
Files Modified
/home/hoffmann_admin/.openclaw/workspace-socrates/hoffdesk-api/main_v2.py— Added parent API router mount
What Was Built
6 Endpoints:
| # | Method | Path | Purpose |
|---|---|---|---|
| 1 | GET | /api/v1/dashboard/parent?school_id=X&athlete_id=Y |
Full parent dashboard: athlete info, case, milestones, care team, activity feed |
| 2 | GET | /api/v1/dashboard/parent/children?school_id=X |
List children linked to parent |
| 3 | GET | /api/v1/dashboard/parent/timeline?school_id=X&athlete_id=Y |
FERPA-filtered timeline events |
| 4 | GET | /api/v1/messages/parent?athlete_id=Y |
Conversations with unread counts |
| 5 | GET | /api/v1/messages/parent/{contact_id}?before=X |
Message thread history |
| 6 | POST | /api/v1/messages/parent/{contact_id} |
Send message to care team |
Auth: Bearer JWT (mock — same pattern as coach API)
Mock Data:
- 2 children: Jake Larson (football, active ankle case) + Emma Larson (soccer, healthy/cleared)
- Active case with 4 milestones, restrictions, care team (AT + Coach)
- Activity feed: 5 events (milestone, message, restriction, assessment, clearance)
- Timeline: 5 events (milestone, message, restriction, assessment, clearance) + FERPA compliance (no clinical_note type)
- Messages: per-contact threads for Jake's AT (LJ) and Coach Andrews, empty for Emma
Integration:
- Shares message store with coach API (rtsport_coach_api.MESSAGES) — bidirectional visibility
- POST also mirrors message into coach store for AT/coach to see
- Mounted on family_app, dev_app, and blog_app via main_v2.py