-
Notifications
You must be signed in to change notification settings - Fork 1
Tests and Practice
The test engine is a full assessment tool, separate from rubrics and essays. It covers multiple-choice to audio-response questions, ungraded practice sets, adaptive placement testing, and a live proctoring monitor.
Access: Assessments → Tests
Test list (/tests) shows every test with its due date, mode, and assigned classes. From here you can open a builder, duplicate, delete, or run the "Generate from bank" wizard.
Test Builder (/tests/new or open an existing test) lets you:
- Give the test a name, duration, due date, and grade scale
- Set the Mode — Assessment / Practice / Placement (see below)
- Set a target CEFR level and skill for the test
- Build sections (with optional rich-text stimulus/passages and shared audio clips) and add questions to each
- Link each question to standards, CEFR descriptors, or grammar items (same pickers as the Rubric Builder)
- Attach an image to a question or to individual answer options, or an audio URL to make it a listening question
- Add an optional Safe Exam Browser gate (
requireSEB) — an advisory, UA-based deterrent, not enforced lockdown
📷 Screenshot needed — manual capture:
images/test-builder-question-types.png— the question-type dropdown. See Manual Capture.
| Type | Notes |
|---|---|
| Multiple-choice | One correct option; options can carry images |
| Multiple-response | "Select all that apply" |
| True / False | — |
| Short-answer | Auto-scored, case-insensitive; supports alternative answers (pipe-separated list) |
| Open (essay) | Graded manually |
| Fill-the-gap (cloze) |
{{gap}} syntax or the click-to-insert gap pill in the rich-text prompt; optional dropdown variants |
| Hot text |
[[clickable fragment]] passages |
| Matching | Pair items; pairs can be shuffled per student |
| Ordering | Drag to order; optional images/hints |
| Categorize | Group items into categories |
| Numeric | Auto-scored with a tolerance range |
| Audio-response | Student records a spoken answer in the browser (teacher-configurable recording cap); played back and graded manually |
Question prompts and section passages use the same rich-text editor as essays (bold, tables, sub/superscript, links). Every question type has an in-context help button explaining how to author and answer it.
📷 Screenshot needed — manual capture:
images/test-builder-cloze-gap.png— the gap pill in a cloze prompt. See Manual Capture.
Graded, one attempt per student, with a due date. Scores feed the same graded CEFR/statistics aggregations as rubrics.
Ungraded and retakeable (allowMultipleAttempts). Great for formative work:
- Per-question explanations (authored in the question editor) are shown after submission
- Results appear in a separate, dashed-border practice-progress panel on the student's CEFR overview — they never blend into the graded chart
- Practice tests can be tagged with a category: Listening, Reading, or Grammar
- Grammar practice questions tagged with a grammar item feed the student's grammar practice recommendations on the learning path
Adaptive testing with three calibration-free engines (no IRT — designed to work from day one without item-calibration data):
| Engine | How it works |
|---|---|
| Multistage (MST) | Author fixed stages: a routing section, then easy/medium/hard second stages; a score cut-off decides which section a student sees next. One section at a time. |
| Staircase | Tag sections with CEFR levels as question pools. Every student starts at A2, moves up after 2 correct in a row, down after a miss, and the run ends once the level settles. One question at a time, no going back. |
| Generator | Skip authoring sections entirely: set a CEFR range, skills, and min/max question count. Questions are pulled live from the question bank at runtime by the server-authoritative next-placement-question edge function, using staircase adaptivity plus Elo item ordering. |
All engines produce a provisional CEFR estimate (with an uncertainty band), clearly badged as provisional, that feeds the student's CEFR overview and learning path until a real graded assessment replaces it. Results show the exact path taken. The Statistics page's student view plots placement progress across attempts on an Elo-scaled, CEFR-banded axis.
Elo ratings: a question assigned to a CEFR-level pool can carry a teacher-set Elo rating that decides which question is served first within the pool; left blank, self-calibration adjusts it from real response data over time. Elo ratings are teacher-only — never exposed to students. During a generator run, the Live Monitor shows the student's current level and Elo score, and a teacher can nudge the level up or down for the next question.

The Mode selector with Placement.
Assign a test to a class — each student gets a unique share link (no account needed). With Supabase connected, test-taking goes through anonymous-auth edge functions; without it, share links work from localStorage too (per-device). The due date shows in the test list and defaults into each assignment's deadline.
Access: the share link, or the student portal (/portal/:studentId)
- A sticky question palette — colour-coded answered / unanswered / flagged / unseen — with a legend and a per-question flag for review toggle (adaptive staircase/generator runs show no palette)
- Optional timer with draft autosave
- Audio player above listening questions
- Reading/listening sections presented above their questions
- Optional Safe Exam Browser gate
📷 Screenshot needed — manual capture:
images/student-test-taking.png— student test page with palette and timer. See Manual Capture.
Access: Tests → open a test → Results (/tests/:testId/results/:studentTestId)
- Auto-scoring for MC, multiple-response, true/false, short-answer (incl. alternative answers), cloze, hot text, matching, ordering, categorize, and numeric questions; open and audio-response questions are graded manually
- Per-question accuracy plus a strong/developing/weak breakdown by linked standard or CEFR descriptor
- Item analysis — discrimination index (upper/lower split) and distractor pull per item
- Time-on-task per student and per class, derived from proctor heartbeats, with an outlier badge
-
Late badge when
submittedAt > dueDate(visibility only) - Class-average adjustment — a reversible, audited curve; raw scores are always preserved alongside the adjustment
- Summary export — PDF or Word summary for one student or the whole class; whole-class CSV with per-question and per-skill accuracy columns
- Grade-scale mapping to final marks

Results with per-question accuracy and item analysis.
Access: Tests → open a test → Monitor (/tests/:testId/monitor; essays have the equivalent at /essays/:assignmentId/monitor)
- Presence — who's connected and where they are in the test
- A live response grid
- Proctoring telemetry — tab switches, copy/paste, battery status, heartbeat, Safe Exam Browser status
- Placement runs: the student's current CEFR level and Elo score, with a teacher level nudge control
- Offline fallback: if the connection drops, the monitor switches to a post-hoc event-log review instead of live updates
📷 Screenshot needed — manual capture:
images/live-monitor.png— live monitor with presence and proctoring flags. See Manual Capture.
Access: Library → Question Bank (/question-bank)
- Save to bank: bookmark icon in the Test Builder's question editor — saves any question for reuse
- Insert from bank: pull saved questions (or whole section bundles) into any test
- Section bundles: a whole reading/listening passage (title, rich-text content, audio, and its questions) saved as one reusable unit; re-inserts as a fully-formed section
- Import: bulk-load questions or section bundles from a JSON file (a downloadable sample shows the shape, including the optional Elo field)
- Export: the whole bank back to that JSON shape, for backup or handing to a colleague
- Manage: search (indexes option/answer text, passage content, standards, grammar items) with CEFR-level/kind/type filters and tag chips; bulk actions — delete (behind confirmation), tag add/remove, CEFR-level set
- Generate from bank: from the Tests list — a wizard that assembles a new test from bank items matching teacher-picked criteria (tags, CEFR level, count per criterion), optionally organising the result into CEFR-level sections (the exact shape the Staircase engine's level pools expect). Opens in the normal Test Builder pre-filled for review.

The question bank with search facets.