Skip to main content

Course Lesson Management

Admins can add lessons to any section/module of a course.
Lessons can include content, quizzes, or coding activities to make learning interactive.


Add a New Lesson

  1. Go to Course → Sections.
  2. Click on the Section/Module where you want to add lessons.
  3. Click New Course Lesson.
  4. Fill in the required fields.

Lesson Fields

FieldTypeRequiredNotes
Lesson TypeEnumYeslesson, quiz, project, code-blank-fill, etc.
NameStringYesTitle of the lesson (3–80 characters).
XPNumberYesExperience points rewarded for completion.
GoldNumberOptionalIn-app currency reward.

Course Activities

Each lesson can contain activities. Admins can add:

  • Content Lessons → instructional material.
  • Quizzes → knowledge checks.
  • Code Blank Fill → coding exercises with fill-in-the-blank.

Add Lessons (Content Type)

  • Content: Written with CKEditor (supports rich text + Markdown).
  • Programming Language: Optional, choose if content includes coding.
  • Code Content: CKEditor with code block support (syntax highlighting).
{
"lessonType": "lesson",
"name": "Variables in Python",
"xp": 20,
"gold": 5,
"content": "<p>Variables are containers for storing data values.</p>",
"programmingLanguage": "Python",
"codeContent": "x = 5\nprint(x)"
}

Add Quiz

Choose Quiz Type:

Quiz (Multiple Choice)

Code Blank Fill

1. Quiz (Multiple Choice)
Field Type Notes
Content Text/CKEditor Quiz question text.
Programming Language Optional Only if code included.
Code Content CKEditor Code snippet shown in quiz.
Answers Array Multiple answers allowed. One must be marked true.
Explanation Text Each answer can have its own explanation.

Example:

{
"quizType": "multiple-choice",
"content": "What is the output of print(2 + 3)?",
"programmingLanguage": "Python",
"codeContent": "print(2 + 3)",
"answers": [
{"text": "23", "isCorrect": false, "explanation": "This would be string concatenation."},
{"text": "5", "isCorrect": true, "explanation": "Correct! 2 + 3 = 5."}
]
}

2. Quiz (Code Blank Fill)
Field Type Notes
Content Text/CKEditor Instructions to learner.
Answer Rich Text (CKEditor) Correct solution (can add multiple blanks).
Programming Language Enum e.g., Python, C++, Java.
Code Content (with blanks) CKEditor + code highlighting Insert blank placeholders in code.
Compile Boolean Whether code should be compiled/tested.
Compile Code String The code shown to user with blanks.
Output String Expected program output.

Blank Markup: Use {blank} in code where learners must fill.

Example:

{
"quizType": "code-blank-fill",
"content": "Fill in the missing keyword to define a function in Python.",
"programmingLanguage": "Python",
"codeContent": "{blank} greet():\n print('Hello')",
"answers": [
{"blank": "def"}
],
"compile": true,
"compileCode": "def greet():\n print('Hello')",
"output": "Hello"
}

Best Practices

Keep XP and Gold rewards balanced across lessons.

Use Content → Quiz → Coding flow for structured learning.

For quizzes, always add explanations (why correct/incorrect).

For code blanks:

Limit to 13 blanks per question for clarity.

Enable compile = true only if you want automatic code testing.

Provide clear output expectations.

Lesson Hierarchy Example

Section: Python Basics

Lesson: Variables (Content + Code snippet)

Quiz: Multiple choice (What is 2+3?)

Quiz: Code Blank Fill (Fill in def)

Lesson: Control Flow (Content)

✅ With Lesson Management, admins can design interactive, gamified, and coding-friendly lessons that make learning engaging.