Skip to content

[Phase 3.2] Study Streak System & Calendar #57

Description

@robinson

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

  • Streak increments once per calendar day on any learning activity.
  • Calendar heatmap renders correctly for a 90-day window.
  • Streak freeze activates automatically on first missed day after a 7-day run.
  • Streak counter visible on Home Dashboard.

References

  • docs/UX_REDESIGN_STRATEGY.md — Part 5: Gamification (Study Streak Tracking)

Phase

Phase 3 — Gamification & Progress · Week 2–3

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions