Quiz Module
The Quiz module is an interactive activity module that allows instructors to create assessments with auto-grading capabilities. This module type is ideal for tests, exams, quizzes, and other assessments that need automated scoring.
Overview
Section titled “Overview”Quiz modules enable instructors to create assessments with 10 distinct question types, 7 scoring configurations, and support for both single-page quizzes and multi-section exams. The system uses TypeScript discriminated unions extensively for type safety and stores all configuration in a rawQuizConfig JSON field.
Quiz modules are interactive modules that require user participation and track submissions. They support:
- 10 question types: From informative articles to interactive whiteboards
- 7 scoring configurations: Simple, weighted, rubric, manual, partial match, ranking, and matrix scoring
- Two quiz architectures: Regular quizzes and container (nested) quizzes for multi-section exams
- Visual quiz builder: Drag-and-drop interface for creating quizzes
- Auto-grading: Automatic scoring for objective questions
- Timed assessments: Set time limits for quizzes
- Attempt tracking: Monitor student attempts and performance
Quiz Architecture
Section titled “Quiz Architecture”Quizzes support two distinct structures that are mutually exclusive:
Regular Quiz
Section titled “Regular Quiz”Contains a pages array directly with questions organized across multiple pages:
- Single continuous quiz experience with one optional global timer
- Linear navigation through pages
- Questions are organized into pages for better organization and user experience
Container Quiz (Nested)
Section titled “Container Quiz (Nested)”Contains a nestedQuizzes array for multi-section exams:
- Each nested quiz has independent timer and grading configuration
- Sequential or free-order access control via
sequentialOrderboolean - Allows instructors to create complex exams with multiple sections
- Each section can have its own settings, timing, and scoring
Question Types
Section titled “Question Types”The system supports 10 question types with distinct input mechanisms:
Informative
Section titled “Informative”article- Rich text content (TipTap editor) for providing context or instructions
Single-Select
Section titled “Single-Select”multiple-choice- Radio buttons with options for selecting one correct answer
Text Input
Section titled “Text Input”short-answer- Single-line text input for brief responseslong-answer- Multi-line textarea for longer written responses
Multi-Input
Section titled “Multi-Input”fill-in-the-blank- Multiple inline text inputs for completing sentenceschoice- Checkbox group for multiple selections
Ordering
Section titled “Ordering”ranking- Drag-and-drop list using@dnd-kitfor arranging items in order
Matrix
Section titled “Matrix”single-selection-matrix- Radio buttons in table layout for selecting one option per rowmultiple-selection-matrix- Select dropdowns per row for multiple selections in a matrix format
Drawing
Section titled “Drawing”whiteboard- Excalidraw canvas with auto-save for drawing-based responses
Scoring System
Section titled “Scoring System”Quizzes support 7 scoring configurations using discriminated unions:
Simple
Section titled “Simple”All-or-nothing points for questions like multiple choice and short answer. The student either gets full points or zero points based on correctness.
Weighted
Section titled “Weighted”Partial credit with three modes:
- All-or-nothing: Full points or zero (like Simple but with weight multipliers)
- Partial-with-penalty: Partial credit with penalties for incorrect answers
- Partial-no-penalty: Partial credit without penalties
Rubric
Section titled “Rubric”Links to a rubric for manual grading. Used for subjective questions that require instructor evaluation.
Manual
Section titled “Manual”Instructor assigns points manually after reviewing the student’s response. No automatic scoring is applied.
Partial Match
Section titled “Partial Match”Text matching with configurable threshold and case sensitivity. Useful for short answer questions where exact matches aren’t required.
Ranking
Section titled “Ranking”Points awarded based on correct order:
- Exact order: Full points only if all items are in the correct order
- Partial credit per position: Points awarded for each correctly positioned item
Matrix
Section titled “Matrix”Points per row with configurable modes:
- Each row can have its own scoring configuration
- Supports both single-selection and multiple-selection matrices
- Flexible scoring based on row-level correctness
Visual Quiz Builder
Section titled “Visual Quiz Builder”Instructors create quizzes using a drag-and-drop interface:
Regular Quiz Builder
Section titled “Regular Quiz Builder”Single scrollable list with page breaks:
- Questions and page breaks can be reordered via drag handles
- Inline editing of prompts, options, and scoring
- Visual organization of questions into pages
Container Quiz Builder
Section titled “Container Quiz Builder”Tab navigation for nested quizzes:
- Create and manage multiple nested quizzes (sections)
- Each tab represents a different section of the exam
- Configure independent settings for each nested quiz
Builder Features
Section titled “Builder Features”- Drag-and-drop reordering: Easily rearrange questions and pages
- Inline editing: Edit question content, options, and settings directly
- Real-time preview: See how the quiz will appear to students
- Question type selection: Choose from all 10 question types
- Scoring configuration: Configure scoring for each question type
Creating a Quiz Module
Section titled “Creating a Quiz Module”To create a quiz module:
- Navigate to your course or module library
- Click “Add Module” or “Create Activity”
- Select “Quiz” from the module types
- Choose between Regular Quiz or Container Quiz (for multi-section exams)
- Use the visual quiz builder to add questions and configure settings
- Configure scoring for each question using the appropriate scoring type
- Set timing and attempt limits if needed
- Save as draft or publish when ready
Quiz Settings
Section titled “Quiz Settings”When creating a quiz, you can configure:
Timing
Section titled “Timing”- Time limit: Set a maximum time for completing the quiz (global timer for regular quizzes)
- Nested quiz timers: Each nested quiz in a container quiz has its own independent timer
- Time warnings: Notify students when time is running out
- Auto-submit: Automatically submit when time expires
- Open/Close dates: Control when the quiz is available
Attempts
Section titled “Attempts”- Unlimited attempts: Students can take the quiz multiple times
- Limited attempts: Set a maximum number of attempts
- Single attempt: Students can only take the quiz once
- Attempt scoring: Keep highest, latest, or average score
Access Control
Section titled “Access Control”For container quizzes:
- Sequential order: Force students to complete sections in order (
sequentialOrder: true) - Free order: Allow students to access sections in any order (
sequentialOrder: false)
Module Status
Section titled “Module Status”Quiz modules follow the standard module lifecycle:
- Draft: Quiz is being created; visible only to creator and granted users
- Published: Quiz is ready for students; visible to enrolled students
- Archived: Quiz is preserved but no longer active; hidden from students
Best Practices
Section titled “Best Practices”When creating quiz modules:
- Choose the right architecture: Use regular quizzes for simple assessments and container quizzes for multi-section exams
- Select appropriate question types: Match question types to the learning objectives being assessed
- Configure scoring carefully: Choose the scoring configuration that best fits each question type
- Use the visual builder: Take advantage of the drag-and-drop interface for efficient quiz creation
- Set realistic time limits: Allow students enough time to complete all questions thoughtfully
- Test your quiz: Preview and test the quiz before publishing to students
- Review scoring settings: Ensure auto-grading configurations are correct for objective questions
