Skip to content

[Phase 3.3] XP & Level Progression System #58

Description

@robinson

Goal

Implement an experience-point (XP) and levelling system that reflects depth of
learning, not just quantity of interactions.

XP Sources (examples)

Action XP
Complete a Socratic exchange 20
Earn an achievement badge 50
Finish a session > 15 min 30
Correct answer in Assessment mode 10
Ask a follow-up question 5

Scope

  • Backend: xp_events table; GET /progress/:userId returns total XP,
    current level, XP to next level.
  • Frontend: XP progress bar in sidebar; level-up animation; level badge on
    profile.
  • Level thresholds: 0→100 (Level 1), 100→250 (Level 2), 250→500 … (soft cap
    at Level 20 for now).

Acceptance Criteria

  • XP events are recorded per action type with timestamp.
  • Progress bar fills and triggers level-up animation at threshold.
  • XP totals survive app restarts (persisted in SQLite).
  • No XP can be farmed by rapid repeated identical actions (rate limit: same
    action type max once per 60s).

References

  • docs/UX_REDESIGN_STRATEGY.md — Part 5: Gamification (XP & Level Progression)

Phase

Phase 3 — Gamification & Progress · Week 3–5

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