Skip to main content

Chapter Tests

A chapter test is a single-chapter MCQ assessment. The student unlocks it by completing the chapter's videos in their Learning Journey, takes it once (no retakes), and gets a score. On the teacher side, every chapter the school covers shows up with class-wide performance and a classification of students by score band — and the teacher can launch a targeted class test for any band in two taps.

Don't confuse chapter tests with Quick Tests. Both are chapter-scoped, but a chapter test is a one-shot assessment tied to the Learning Journey unlock; a quick test is unlimited student practice.

At a glance

Who can do thisStudents take · Teachers view performance + escalate to a class test
Where it livesStudent app /dashboard/chapter-test/:testId/* (entry from chapter detail) · Teacher app /dashboard/chapter-tests/*
Triggers notifications?No — the unlock and result are silent (only the parent's class-test notifications carry over)
Related featuresClass Tests · Learning Journey · Syllabus

How it flows

Status lifecycle

Step-by-step

1. Student progresses through chapter videos

  • App / route: Student app → /dashboard/learning-journey/:subjectId/:chapterId
  • The chapter detail page lists videos. Each video is sequential — video N+1 is locked until video N is marked complete.
  • Below the video list, a ChapterTestCard is rendered.

2. ChapterTestCard states

The card is the gateway to the chapter test and renders one of these states:

  • Locked: shown when not all videos are complete. Shows "Complete N more videos to unlock" plus an overall progress bar.
  • Eligible (not started): shows a CTA "Take Chapter Test" with quick facts: "10–13 questions (MCQ) · 30 minutes duration · No retakes allowed".
  • Generating: the card silently hides itself (renders null) while the backend builds the question paper. The card polls every 2 seconds and reappears when ready.
  • Published / In Progress: shows "Take Chapter Test" or "Continue Test" CTA.
  • Completed: shows a green check + "View Results" link.

3. Student takes the test

  • App / route: /dashboard/chapter-test/:testId (instructions) → /dashboard/chapter-test/:testId/:questionIndex (per-question UI) → /dashboard/chapter-test/:testId/results (final result).
  • Instructions page validates that status === 'published' before letting the student start.
  • Question UI mirrors the prep / class test UI: timer, hint button, MCQ tap, navigation between questions.
  • On submit, MCQs auto-grade, the result page renders.

4. Teacher sees chapter-wide performance

  • App / route: Teacher app → /dashboard/chapter-tests
  • Lists every chapter in the school with: total students, completed count, in-progress count, average score, total questions, average %.
  • Filterable by class, by subject, and by free-text search.
  • Tap a chapter → /dashboard/chapter-tests/:chapterId/students.

5. Per-chapter student classification

  • App / route: /dashboard/chapter-tests/:chapterId/students
  • Students grouped by classification:
    • Good — 60 % or higher. Strong understanding.
    • Average — 40–59 %. Needs reinforcement.
    • Needs Improvement — below 40 %. Requires remedial support.
    • Uncategorised — student has not yet attempted the chapter test.
  • Each group has summary stats and an expandable student list (name, section, score, percentage, completion date).

6. Escalate to a targeted class test

  • From any classification group, the teacher can tap Create Test for that group.
  • This stashes {chapterName, chapterId, subject, className, classification, classificationLabel, studentProfileIds, studentNames} into sessionStorage under chapterTestStudents, then navigates to /dashboard/class-tests/create?fromChapterTest=true&sectionId=…&subjectId=…&chapterId=….
  • The class-test creation page reads this and:
    • Pre-selects the section, subject, chapter.
    • Pre-fills a title like {Chapter} - {Classification} Group Test.
    • Adapts difficulty based on classification (Good → Hard, Average → Medium, Needs Improvement → Easy).
    • Pre-targets only those students for the assign step.
  • See Class Tests for the rest of the flow.

7. Per-test results view (teacher)

  • App / route: /dashboard/chapter-tests/:testId/results — opens the per-attempt question breakdown for one student's chapter test.

Edge cases & things to test

  • Last-video completion edge: completing the final video must immediately surface the eligible CTA on the chapter detail page (no refresh needed).
  • Generation hangs: card is in generating state for >60 s — user has no visible state because the card hides itself. Confirm there is a fallback or that the polling eventually surfaces a retry.
  • Mid-generation app close: student starts the test, app is killed during AI generation — when they return, polling must resume, not restart from zero.
  • Mid-attempt app close: student answers 5/10 and closes the app — reopening should resume from question 5 with the timer continuing from the original startedAt.
  • No retakes: confirm a student who completed a chapter test can only "View Results" and cannot start a new attempt.
  • Locked videos cheat path: try to navigate directly to /dashboard/chapter-test/:testId for a chapter the student has not unlocked — instructions page must reject (test status not published for them).
  • Classification thresholds: a student exactly on 40 % or 60 % — confirm which band they fall into.
  • Empty chapter (uncategorised only): a chapter where no student has attempted yet — teacher list should still render with all 4 groups, just empty.
  • Targeted class-test handoff: launch a class test from "Needs Improvement", then on the create page deselect the chapter banner — the targeted student set must clear from sessionStorage.
  • Section / class change mid-flow: if the teacher backs out of the class-test creation and re-enters from a different chapter group, sessionStorage must be replaced, not appended.
  • Score 0 with answers blank: student submits without answering anything — recorded as Completed with score 0, classified as Needs Improvement.
  • Subject / class filter combination: filter by both subject + class on /dashboard/chapter-tests — only chapters matching both should show.
  • Class Tests — the natural escalation path from a chapter-test classification group
  • Learning Journey — completing chapter videos is what unlocks the chapter test
  • Prep & Quick Tests — student-initiated practice (Quick Test is also chapter-scoped)
  • Syllabus — chapters are sourced from the school class syllabus