- Admin: per-block "Break Time" checkbox + duration (min) setting; new
Break Activities section (global list, same pattern as Morning Routine)
- Dashboard: break timer section appears on blocks with break enabled;
Start/Pause/Resume/Reset controls work independently of the main timer
- TV: left column switches to amber break badge + countdown during break;
center column shows configurable Break Activities list
- Backend: break_time_enabled/break_time_minutes columns on schedule_blocks
(auto-migrated on startup); break_activity_items table + CRUD router;
break timer events (break_start/pause/resume/reset) stored as TimerEvents
and broadcast via WebSocket; break_activities included in dashboard
snapshot and session_update broadcast
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a per-user Morning Routine item list that appears in the TV
dashboard Activities panel during the "Good Morning" countdown
(before the first block starts).
- morning_routine_items table (auto-created on startup)
- CRUD API at /api/morning-routine (auth-required)
- Items included in the public DashboardSnapshot so TV gets them
without auth
- Morning Routine section in Admin page (same add/edit/delete UX
as subject options)
- TV Activities column shows routine items when no block is active,
switches to subject options once a block starts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Record a StrikeEvent row whenever a strike is added or removed,
and surface them in the activity log timeline with timestamp,
child name, and whether the strike was added or removed.
- New strike_events table (auto-created on startup)
- children router records prev/new strikes on every update
- GET /api/logs/strikes and DELETE /api/logs/strikes/:id endpoints
- Log view merges strike entries into the timeline (red dot,
"✕ Strike added (2/3)" / "↩ Strike removed (1/3)")
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Subject options:
- New subject_options table (auto-created on startup)
- SubjectOut now includes options list; all eager-loading chains updated
- Admin: Options panel per subject with add, inline edit, and delete
- WS broadcast and dashboard API include options in block subject data
TV dashboard:
- Three equal columns: Timer | Activities | Schedule
- Activities column shows current subject's options in large readable text
- Activities area has subject-colored border and tinted background
- Subject name and label displayed correctly using embedded subject data
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Full-stack homeschool web app with FastAPI backend, Vue 3 frontend,
MySQL database, and Docker Compose orchestration. Includes JWT auth,
WebSocket real-time TV dashboard, schedule builder, activity logging,
and multi-child support.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>