Goal
Implement a non-manipulative achievement and badge system that celebrates genuine
learning milestones.
Design Principles
- Badges reward learning behaviours (e.g. "Asked 10 deep questions"), NOT
mere time spent.
- No dark patterns: no badge loss, no artificial scarcity, no FOMO prompts.
- Badges are private by default; sharing is opt-in.
Scope
- Backend (eule-core):
POST /achievements/check endpoint; SQLite table
achievements(id, user_id, badge_slug, earned_at).
- Frontend: Badge showcase screen; toast notification on earn; badge detail
modal with explanation of why it was earned.
- Initial badge set: First Question, First Deep-Dive, Streak 3, Streak 7,
10 Sessions, Subject Explorer (3 subjects), Night Owl, Early Bird.
Acceptance Criteria
References
docs/UX_REDESIGN_STRATEGY.md — Part 5: Gamification System
eule-core/src/storage/sqlite.rs (current schema)
Phase
Phase 3 — Gamification & Progress · Week 1–2
Goal
Implement a non-manipulative achievement and badge system that celebrates genuine
learning milestones.
Design Principles
mere time spent.
Scope
POST /achievements/checkendpoint; SQLite tableachievements(id, user_id, badge_slug, earned_at).modal with explanation of why it was earned.
10 Sessions, Subject Explorer (3 subjects), Night Owl, Early Bird.
Acceptance Criteria
References
docs/UX_REDESIGN_STRATEGY.md— Part 5: Gamification Systemeule-core/src/storage/sqlite.rs(current schema)Phase
Phase 3 — Gamification & Progress · Week 1–2