Achievements & Badges
Published Jul 8, 2026
Praxis924 tracks a lot about how you learn: lessons you finish, challenges you pass, streaks you keep alive. Achievements turn that quiet progress into something you can see and celebrate. As you move through the curriculum, the platform unlocks badges from a curated achievement catalog and pins them to your dashboard and public profile. This guide is for learners who want to understand what triggers each badge, how to earn them deliberately, and where they show up. You don't configure anything — you just learn, and the system verifies and awards each achievement against your real activity.
How achievements work
Every badge in Praxis924 comes from a fixed catalog defined in the backend (achievement_catalog.py). Each catalog entry describes a badge and the condition that earns it. When you do something that could qualify — finish a lesson, pass a coding challenge, extend a streak — the platform checks your real progress against those conditions and, when one is met, writes a UserAchievement record tying that badge to your account. That persistence matters: an unlock is permanent and tied to verified activity, not a temporary UI flourish.
Because triggers read from the same data that powers your Progress page — LessonProgress (completion and challenge-passed) and ExerciseAttempt — you can't fake a badge. If your completion count says you've finished ten lessons, the badge fires; if it doesn't, it won't.
Note: Achievements are awarded automatically. There's no "claim" button and nothing to enable in settings. Keep learning and they appear on their own.
Step 1: Find your achievements
Log in and open your dashboard. Alongside your completion percentage, accuracy, and streak, you'll see the achievements you've unlocked. Your public profile shows them too, so anyone who visits your profile (or finds you through member search and follows you) sees which badges you've earned. Locked badges give you a target; unlocked ones are your track record.
Step 2: Earn your first completion badges
The most direct achievements reward finishing work:
- Go to
/learnand open a published lesson in the focused lesson viewer. - Read all four sections —
main_explanation,practical_explanation,key_principles, andsummary. - Head to
/practice/[lessonId]to work the exercises (mcq,fill_blank,calculation) and attempt the coding challenge. Passing the challenge sets the challenge-passed flag on yourLessonProgress. - Mark the lesson complete so it counts toward your completion total.
Completion-based badges trigger off exactly these signals, so finishing lessons end-to-end — not just skimming them — is what moves the needle.
Step 3: Build and hold a streak
Some of the most satisfying badges reward consistency. Your streak counter lives on the Progress summary and increments when you keep showing up. To chase streak achievements:
- Do at least a little each day — read a section, clear a few exercises, or pass one challenge.
- Watch the streak number on your dashboard so you know how close you are to the next threshold.
- Use the spaced-review schedule that resurfaces lessons: reviewing a resurfaced lesson keeps you active and reinforces retention at the same time.
Tip: A short daily session beats one long weekly cram for streak badges. The trigger cares that you were active, not for how many hours.
Step 4: Get notified when you unlock one
When a badge unlocks, Praxis924 sends you an email on unlock, so you find out even if you're not staring at the dashboard. You'll also see it reflected in-app the next time you open your dashboard or profile. Make sure the email you registered and verified is one you actually read, and check that unlock emails aren't landing in spam.
When it goes wrong
Most "missing badge" reports come down to a signal that didn't get recorded, not a broken trigger.
| Symptom | Likely cause | What to do |
|---|---|---|
| Finished a lesson but no badge | Lesson not marked complete | Reopen the lesson and mark it complete so LessonProgress updates |
| Passed the challenge, badge didn't fire | Challenge-passed flag not set | Re-run the coding challenge in /practice/[lessonId] and confirm it graded as passed |
| Streak badge didn't unlock | A gap day broke the streak | Check the streak count on your dashboard; rebuild from the current day |
| Badge shows on dashboard but not profile | Viewing a stale page | Refresh your public profile; unlocks are persisted, so they'll appear |
| No unlock email arrived | Unverified or filtered email | Confirm your email is verified and check spam |
Warning: Achievements only reflect progress the platform actually recorded. If you close a lesson without marking it complete or leave a challenge ungraded, that activity won't count toward a badge even though you did the work.
What you get
Achievements give your learning a visible shape: a growing shelf of verified badges on your dashboard and profile that map to lessons finished, challenges passed, and streaks kept. Because every unlock is backed by a UserAchievement record and a real progress signal, the badges are a credible record other members can see when they visit your profile or follow you.
Next
Pair achievements with the rest of the social layer: follow other learners to compare progress, share a lesson you're proud of, and let the spaced-review schedule keep your streak alive. Then open /learn, pick your next lesson, and go earn the next badge.