Goal
Track and display daily study streaks with a calendar heatmap that motivates
consistent studying without punishing missed days.
Design Principles
- Streaks restart gracefully — no shame messaging on break.
- "Freeze" mechanic: student earns one streak freeze per 7-day streak.
- Calendar shows activity density (light/medium/dark green), not raw scores.
Scope
- Backend:
streaks table in SQLite; GET /streaks/:userId endpoint returns
current streak, longest streak, and 90-day activity map.
- Frontend: Calendar heatmap widget (12-week view); streak counter in
Home Dashboard; "streak saved" animation when freeze is used.
Acceptance Criteria
References
docs/UX_REDESIGN_STRATEGY.md — Part 5: Gamification (Study Streak Tracking)
Phase
Phase 3 — Gamification & Progress · Week 2–3
Goal
Track and display daily study streaks with a calendar heatmap that motivates
consistent studying without punishing missed days.
Design Principles
Scope
streakstable in SQLite;GET /streaks/:userIdendpoint returnscurrent streak, longest streak, and 90-day activity map.
Home Dashboard; "streak saved" animation when freeze is used.
Acceptance Criteria
References
docs/UX_REDESIGN_STRATEGY.md— Part 5: Gamification (Study Streak Tracking)Phase
Phase 3 — Gamification & Progress · Week 2–3