Overview
KnowledgeCheckr supports four distinct question types, each designed for different assessment needs. Every question includes core properties like points, category assignment, and accessibility controls.
Base Question Properties
All questions share these common fields:
{
id : string , // Unique identifier (UUID)
points : number , // Must be positive
category : string , // Assigned category (default: 'general')
question : string , // The question text (minimum 3 words)
accessibility : 'all' | 'practice-only' | 'exam-only'
}
Use the accessibility field to control where questions appear. Set to practice-only for learning exercises or exam-only for formal assessments.
Question Types
Single Choice
Multiple Choice
Drag & Drop
Open-Ended
Single Choice Questions Single choice questions require selecting exactly one correct answer from multiple options. Perfect for testing clear-cut knowledge where only one answer is correct. Structure {
type : 'single-choice' ,
answers : [
{
id: string , // Unique UUID
answer: string , // Answer text
correct: boolean // Exactly one must be true
}
]
}
Example {
"id" : "q1" ,
"type" : "single-choice" ,
"question" : "What is the capital of France?" ,
"points" : 5 ,
"category" : "geography" ,
"accessibility" : "all" ,
"answers" : [
{ "id" : "a1" , "answer" : "London" , "correct" : false },
{ "id" : "a2" , "answer" : "Paris" , "correct" : true },
{ "id" : "a3" , "answer" : "Berlin" , "correct" : false },
{ "id" : "a4" , "answer" : "Madrid" , "correct" : false }
]
}
Validation Rules
At least one answer must be provided
Exactly one answer must be marked as correct
All answers must have unique text (case-insensitive)
All answer IDs must be unique UUIDs
Answer text cannot be empty
What Users See Users see a list of options with radio buttons, allowing them to select only one answer. The interface clearly indicates that exactly one option should be chosen. Multiple Choice Questions Multiple choice questions allow selecting one or more correct answers. Use these when multiple answers can be valid simultaneously. Structure {
type : 'multiple-choice' ,
answers : [
{
id: string , // Unique UUID
answer: string , // Answer text
correct: boolean // One or more can be true
}
]
}
Example {
"id" : "q2" ,
"type" : "multiple-choice" ,
"question" : "Which of these are programming languages?" ,
"points" : 10 ,
"category" : "technology" ,
"accessibility" : "all" ,
"answers" : [
{ "id" : "a1" , "answer" : "Python" , "correct" : true },
{ "id" : "a2" , "answer" : "HTML" , "correct" : false },
{ "id" : "a3" , "answer" : "JavaScript" , "correct" : true },
{ "id" : "a4" , "answer" : "CSS" , "correct" : false }
]
}
Validation Rules
At least one answer must be provided
At least one answer must be marked as correct
All answers must have unique text (case-insensitive)
All answer IDs must be unique UUIDs
Answer text cannot be empty
Unlike single choice, multiple choice questions can have multiple correct answers. The user must select all correct options to receive full points.
What Users See Users see checkboxes next to each option, signaling they can select multiple answers. The interface may display a hint indicating “Select all that apply.” Drag-Drop Questions Drag-drop questions require users to arrange items in the correct order. Ideal for testing sequential knowledge, procedures, or rankings. Structure {
type : 'drag-drop' ,
answers : [
{
id: string , // Unique UUID
answer: string , // Item text
position: number // Correct position (0-indexed)
}
]
}
Example {
"id" : "q3" ,
"type" : "drag-drop" ,
"question" : "Arrange the software development lifecycle phases in order" ,
"points" : 15 ,
"category" : "software-engineering" ,
"accessibility" : "exam-only" ,
"answers" : [
{ "id" : "a1" , "answer" : "Requirements" , "position" : 0 },
{ "id" : "a2" , "answer" : "Design" , "position" : 1 },
{ "id" : "a3" , "answer" : "Implementation" , "position" : 2 },
{ "id" : "a4" , "answer" : "Testing" , "position" : 3 },
{ "id" : "a5" , "answer" : "Deployment" , "position" : 4 }
]
}
Validation Rules
Positions must start at 0
Positions must be continuous (no gaps)
Each position must be unique
For n answers, positions must be 0 through n-1
All answers must have unique text
All answer IDs must be unique UUIDs
Position validation is strict. If you have 5 items, positions must be exactly [0, 1, 2, 3, 4] with no duplicates or gaps.
What Users See Users see a randomized list of draggable items. They can click and drag to reorder items into the sequence they believe is correct. Visual feedback shows the drag action and drop zones. Open-Ended Questions Open-ended questions allow free-form text responses. These require manual grading but provide the richest insight into user understanding. Structure {
type : 'open-question' ,
expectation : string | undefined // Optional guidance for graders
}
Example {
"id" : "q4" ,
"type" : "open-question" ,
"question" : "Explain the concept of polymorphism in object-oriented programming" ,
"points" : 20 ,
"category" : "programming-concepts" ,
"accessibility" : "all" ,
"expectation" : "Answer should mention method overriding, interface implementation, and how objects of different types can be treated uniformly"
}
Expectation Field The expectation field is optional but highly recommended. It helps graders evaluate responses consistently and can be shown to users as guidance.
expectation : "Expected answer should include: 1) Definition 2) Example 3) Practical application"
What Users See Users see a large text area where they can type their answer. If provided, the expectation may be displayed as guidance. Word counts or character limits can be configured in the UI. Grading Considerations
Open-ended questions require manual review by instructors
Use the expectation field to standardize grading criteria
Consider assigning higher point values due to the complexity
Suitable for essays, explanations, and critical thinking
Question Configuration
Point Values
Assign points based on question difficulty and importance:
points : number // Must be positive
Consider assigning higher points to:
Multiple choice with many options
Drag-drop questions requiring precise ordering
Open-ended questions requiring detailed responses
Accessibility Control
Control where each question appears:
all Appears in both practice and examination modes
practice-only Only visible during practice sessions
exam-only Only visible during formal examinations
accessibility : 'all' | 'practice-only' | 'exam-only'
Use this to:
Reserve harder questions for exams
Provide easier practice questions for learning
Create separate question pools for different contexts
Answer Ordering
You can configure how answers are displayed through the knowledge check settings:
settings : {
examination : {
answerOrder : 'create-order' | 'random'
}
}
create-order : Displays answers in the order you created them
random : Shuffles answers for each user attempt
Randomizing answers helps prevent pattern memorization and reduces cheating.
Best Practices
Writing Quality Questions
Be Clear and Concise : Questions must be at least 3 words but should clearly state what’s being asked
Avoid Ambiguity : Ensure only the intended answers are correct
Unique Answers : All answers within a question must be distinct
Appropriate Length : Keep answers reasonably short for choice questions
Choosing Question Types
Use Single Choice For
Use Multiple Choice For
Use Drag-Drop For
Use Open-Ended For
Facts with one correct answer
True/false questions
Definition matching
Simple recall
Questions with several correct options
“Select all that apply” scenarios
Testing comprehensive knowledge
Identifying characteristics
Sequential processes
Chronological ordering
Priority rankings
Step-by-step procedures
Explanations and reasoning
Essays and analysis
Creative responses
Complex synthesis
Common Pitfalls
Don’t use duplicate answer text (case-insensitive comparison)
Ensure drag-drop positions are continuous starting from 0
Single choice must have exactly one correct answer
Multiple choice must have at least one correct answer
Questions must be assigned to existing categories
Example: Mixed Question Set
[
{
"type" : "single-choice" ,
"question" : "What does HTML stand for?" ,
"points" : 5 ,
"category" : "web-basics" ,
"accessibility" : "all" ,
"answers" : [
{ "answer" : "Hyper Text Markup Language" , "correct" : true },
{ "answer" : "High Tech Modern Language" , "correct" : false }
]
},
{
"type" : "multiple-choice" ,
"question" : "Which are JavaScript frameworks?" ,
"points" : 8 ,
"category" : "web-frameworks" ,
"accessibility" : "exam-only" ,
"answers" : [
{ "answer" : "React" , "correct" : true },
{ "answer" : "Angular" , "correct" : true },
{ "answer" : "Django" , "correct" : false },
{ "answer" : "Vue" , "correct" : true }
]
},
{
"type" : "drag-drop" ,
"question" : "Order the HTTP request lifecycle" ,
"points" : 12 ,
"category" : "networking" ,
"accessibility" : "exam-only" ,
"answers" : [
{ "answer" : "DNS Resolution" , "position" : 0 },
{ "answer" : "TCP Connection" , "position" : 1 },
{ "answer" : "Send Request" , "position" : 2 },
{ "answer" : "Receive Response" , "position" : 3 }
]
},
{
"type" : "open-question" ,
"question" : "Explain the difference between GET and POST requests" ,
"points" : 15 ,
"category" : "http-methods" ,
"accessibility" : "exam-only" ,
"expectation" : "Should discuss data transmission, idempotency, caching, and use cases"
}
]
Next Steps
Practice Mode Let users practice with instant feedback
Examination Mode Set up formal timed assessments
Categories Organize questions into categories
Knowledge Checks Back to knowledge check overview