Today
Tomorrow
Timeline
Enter results as they land. Standing, best/worst case and the solver run each module's own published formula — every figure below is an estimate until the department releases official marks.
Triage — what to work on
pressure = weight × effort ÷ days leftSemester load
bar = total assessment weight due that week (cross-module points)Prep runway
opt an event in below; milestones appear on the timeline and in the full .icsWeekly rhythm
This week's topics
Pomodoro
Effort ledger
bar = hours logged · tick = module's share of marks still liveSync
Sync is not configured in this build, so this device is on its own — exactly like v3. Add VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY to .env and rebuild (README §3). Until then, the JSON backup below is your only copy.
One account, yours. Signing in on a second device merges that device's data with the server record-by-record — newest edit of each item wins; nothing is wholesale overwritten.
Open gaps & provenance
Everything below is either an explicit unknown or an event whose date / weight is not yet ● confirmed. This list is derived from the events themselves — fix the event and the gap retires itself.
Backup & restore
Data lives in this browser's localStorage and, when sync is on, on the server too. Sync is not a backup: a mistake syncs just as faithfully as a correction, so keep taking JSON backups. v2 and v3 Command Board backups import cleanly here.
Calendar export (.ics)
Stable UIDs — re-importing updates events instead of duplicating them. Note: Google Calendar sometimes strips embedded VALARM reminders on import; verify on one event before trusting it.
In-page reminders
Fire only while this tab is open. Per-event lead times are set in the event editor; the reliable path is the .ics export into your real calendar.
Quick add syntax
Press n anywhere. One line, e.g. cs344 Sprint 1 demo 12 Sep 14:00 15% — module, title, date (12 Sep / 12/09 / 2026-09-12), optional time, optional weight. Nothing is saved until you confirm the parse.