Skip to main content

Usage Examples

Question-Level Submission

Each question is submitted individually with immediate feedback:

const config = {
id: 'quiz-1',
submissionMode: 'question-level',
questions: [/* ... */],
showFeedbackOnSubmit: true,
};

Quiz-Level Submission

All questions submitted together at the end:

const config = {
id: 'quiz-2',
submissionMode: 'quiz-level',
questions: [/* ... */],
requireAllAnswered: true,
allowReview: true,
};

Timed Quiz

const config = {
id: 'quiz-3',
timeLimit: 300, // 5 minutes in seconds
showTimer: true,
questions: [/* ... */],
};

Linear Quiz (No Back Navigation)

const config = {
id: 'quiz-4',
allowNavigation: false,
allowSkip: false,
questions: [/* ... */],
};

TypeScript Support

Full TypeScript definitions are included:

import type { 
QuizConfig,
QuestionConfig,
MultipleChoiceConfig,
TrueFalseConfig,
ShortAnswerConfig,
EssayConfig,
QuizResult,
QuestionAnswer,
LoadedQuizResult
} from '@scinforma/picolms';

const config: MultipleChoiceConfig = {
id: 'q1',
type: 'multiple-choice',
question: 'Sample question',
points: 10,
options: [/* ... */],
};

const handleSubmit = (result: QuizResult) => {
console.log(result.score, result.isPassed);
};