Build journal
COREPractice 5 min read

Practice Workspace

Published Jul 6, 2026

A dedicated space to actually use what you read — interactive MCQ, fill-in-the-blank, and calculation exercises.

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 in pending/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:

TypeWhat you doHow it's checked
mcqPick the correct option from a multiple-choice listMatched against the correct choice
fill_blankType the missing word or phrase into the blankCompared to the expected answer
calculationCompute a numeric result and enter itChecked 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:

SymptomLikely causeFix
Redirected away / prompted to log inWorkspace is login-gatedSign in, then reopen /practice/[lessonId]
"No exercises" or an empty setLesson isn't published, or exercises weren't generatedConfirm the lesson is published with generated status; an admin can run Fill gaps to add missing exercise kinds
Exercises won't load at allFirst-load fetch failedRefresh the page; the lazy-load retries and then caches
A whole exercise type is missingThat kind was never generatedAdmin-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."

Published in build journal