Practice Workspace
Published Jul 6, 2026
Reading a lesson tells you a concept exists. Doing something with it tells you whether you actually understand it. That gap is exactly what the Practice Workspace closes. Every published lesson in Praxis924 comes with its own hands-on workspace at /practice/[lessonId] — a login-gated space where you work through the lesson's exercises, get immediate feedback, and quietly build up the progress record that powers your dashboard. This walkthrough shows learners how to find it, use all three exercise types, and read the results.
What you'll need
- A Praxis924 account, signed in. The workspace is login-gated — your attempts are tied to your account so they can feed your progress.
- A lesson that is published and has generated exercises. If an admin has only saved a lesson as
draft, or generation left it inpending/failed, there won't be a practice set to load yet. - Nothing to install. The workspace is a page in the app; exercises are lazy-loaded the first time you open it and cached afterward, so re-visits are fast.
Note: Practice lives in its own workspace, not as a tab inside the reading view. Keeping the focused lesson viewer for reading and /practice/[lessonId] for doing means neither screen fights the other — you read, then you practice.
Step 1 — Read the lesson first
Open the lesson from /learn and read through its four sections: main_explanation, practical_explanation, key_principles, and summary. The exercises are written against this material, so a five-minute read pays off directly in the number you get right. When you're ready to apply it, head to the practice workspace for that lesson.
Step 2 — Open the Practice Workspace
Navigate to the lesson's practice space at /practice/[lessonId] (the lessonId is the same lesson you were just reading). Because you're signed in, the page loads your exercise set and prepares to record what you do. The first load pulls the exercises in; after that they're cached, so bouncing between reading and practicing doesn't re-fetch each time.
Step 3 — Work the three exercise types
A lesson can carry any number of exercises across three kinds. Each behaves a little differently:
| Type | What you do | How it's checked |
|---|---|---|
| mcq | Pick the correct option from a multiple-choice list | Matched against the correct choice |
| fill_blank | Type the missing word or phrase into the blank | Compared to the expected answer |
| calculation | Compute a numeric result and enter it | Checked against the expected value |
Answer each one and submit. You'll see whether you got it right straight away — that immediate signal is the whole point, so you correct a misunderstanding while the concept is still fresh rather than discovering it later in an interview.
Tip: If a calculation answer is marked wrong but you're sure of the math, re-check formatting — a stray unit, rounding, or extra character can make a correct number miss an exact match. Re-enter the bare value and resubmit.
Step 4 — Let your attempts build your progress
Every submission is saved as an ExerciseAttempt. You don't do anything extra for this — it happens as you practice. Those attempts roll up into your Progress summary: accuracy (how many attempts you got right), your contribution to completion %, and your streak. Over time, Praxis924's spaced-review schedule uses this history to resurface lessons at the right moment, so practicing today directly shapes what you're nudged to revisit later.
When it goes wrong
Most "problems" here are really state problems — the lesson isn't ready, or you're not signed in. Quick reference:
| Symptom | Likely cause | Fix |
|---|---|---|
| Redirected away / prompted to log in | Workspace is login-gated | Sign in, then reopen /practice/[lessonId] |
| "No exercises" or an empty set | Lesson isn't published, or exercises weren't generated | Confirm the lesson is published with generated status; an admin can run Fill gaps to add missing exercise kinds |
| Exercises won't load at all | First-load fetch failed | Refresh the page; the lazy-load retries and then caches |
| A whole exercise type is missing | That kind was never generated | Admin-side Fill gaps regenerates only the missing kinds — no full re-run needed |
Note: Fill gaps is an admin action. If you're a learner and a lesson is thin on exercises, that's the button to ask for — it adds only what's missing and makes zero LLM calls when a lesson is already complete, so it's cheap to run.
What you get
By the end of a practice session you've turned passive reading into checked understanding: a set of graded attempts, instant right/wrong feedback on mcq, fill_blank, and calculation items, and a progress record that reflects real work rather than pages scrolled.
From here, keep the loop going:
- Chat with Lucy if an exercise exposed a gap — opened from the lesson, she folds that lesson's content into her answers, so you get grounded help instead of generic advice.
- Take the coding challenge for lessons that have one — your code runs in a real sandbox and gets AI graded with line-level feedback.
- Watch your Progress page — as accuracy and streak climb, the spaced-review schedule will bring lessons back around exactly when you're about to forget them.
Reading gets you to "I've seen this." The Practice Workspace is how you get to "I can do this."