Build journal
APPMotivation 5 min read

Achievements & Badges

Published Jul 8, 2026

Unlock achievements from a curated catalogue as you learn — momentum you can see.

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:

  1. Go to /learn and open a published lesson in the focused lesson viewer.
  2. Read all four sections — main_explanation, practical_explanation, key_principles, and summary.
  3. 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 your LessonProgress.
  4. 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.

SymptomLikely causeWhat to do
Finished a lesson but no badgeLesson not marked completeReopen the lesson and mark it complete so LessonProgress updates
Passed the challenge, badge didn't fireChallenge-passed flag not setRe-run the coding challenge in /practice/[lessonId] and confirm it graded as passed
Streak badge didn't unlockA gap day broke the streakCheck the streak count on your dashboard; rebuild from the current day
Badge shows on dashboard but not profileViewing a stale pageRefresh your public profile; unlocks are persisted, so they'll appear
No unlock email arrivedUnverified or filtered emailConfirm 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.

Published in build journal