Integrating Assessments in the Academy

Learn how to spice up the Academy with interactive assessments that keep learners engaged.

Layer5 Cloud Academy implements Learning Paths, Challenges, and Certifications to enrich the learner experience. We support multi-level assessments to guide and evaluate progress. The content structure is hierarchical and modular, enabling scalable learning design.

Think of it as a botanical garden:

  • Learning Path = the comprehensive plant collection
    • Courses = themed sections within the garden
      • Modules = individual plant exhibits or plots
  • Challenges = the garden competition - focused skill challenges
  • Certifications = master gardener diploma - expertise validation

Our assessment strategy is like conducting growth check-ins throughout the garden. As a content developer, you have the flexibility to place assessments anywhere – after a single activity, at the end of a module, or as a final course assessment

In Layer5 Academy, assessments are more than just tests; they are integral checkpoints in the learning journey. They provide a structured way to validate understanding and build confidence, serving as a bridge that ensures a learner has mastered key concepts before advancing.

Well-designed assessments are crucial because they:

  • Reinforce Knowledge: Help lock in new information and improve long-term retention.
  • Enable Self-Checks: Allow learners to accurately gauge their own understanding and confirm they are ready to move on to more complex topics.
  • Provide Instant Feedback: Offer an immediate opportunity to learn from mistakes, understand why an answer was incorrect, and solidify the correct concepts.

Inside Layer5 Cloud Academy, to avoid confusion and clearly distinguish between assessment types at each level, we use specific naming conventions:

  • First Level (Root Level): Exam - assesses learning outcomes at root level
    • Second Level: Test - measures understanding within a course
      • Third Level: Quiz - short assessments tied to specific modules
Layer5 Cloud Academy
β”œβ”€β”€ Learning Path                               β†’ 🎯 Exam
β”‚      β”œβ”€β”€ Course 1 (Rose Garden)               β†’ 🎯 Test
β”‚      β”‚    β”œβ”€β”€ Module A (Rose Bed 1)           β†’ 🎯 Quiz
β”‚      β”‚    β”‚   └── [quiz.md]
β”‚      β”‚    β”œβ”€β”€ Module B (Rose Bed 2)           β†’ 🎯 Quiz
β”‚      β”‚    β”‚   └── [quiz.md]
β”‚      β”‚    └── [test.md]
β”‚      β”œβ”€β”€ Course 2  
β”‚      β”‚    β”œβ”€β”€ Module A
β”‚      β”‚    β”‚   └── [quiz.md]
β”‚      β”‚    β”œβ”€β”€ Module B
β”‚      β”‚    β”‚   └── [quiz.md]
β”‚      β”‚    └── [test.md]
β”‚      └── [exam.md]
β”œβ”€β”€ Challenge                                  β†’ 🎯 Exam
β”‚      └── [exam.md]
└── Certification                              β†’ 🎯 Exam
       └── [exam.md]

Each mandatory section must contain at least one assessment.

Take Learning Path as an example:

  • Learning Path Level: At leat one exam (exam.md)
  • Course Level: At leat one test (test.md)
  • Module Level: At leat one quiz (quiz.md)

All assessment files follow the same format regardless of which level they’re placed in. Whether it’s a module quiz or learning path exam, the structure stays consistent.

By default, all assessments are required. This means learners must pass each assessment to unlock the next level.

Take Learning Path as an example:

  • Pass all Module quizzes β†’ Unlock Course test
  • Pass all Course tests β†’ Unlock Learning Path exam

Making assessments optional:

You can make any assessment optional by adding this to its frontmatter:

isOptional: true

This means the Optional sections are excluded from prerequisite checks.

What this means:

  • Optional assessments don’t block progress.
  • Learners can skip them and still advance.
  • Example: If all modules in a course are optional, learners can go straight to the course test.

Each assessment file must contain the following YAML frontmatter:

---
title: "Assessment Example"
id: "assessment-id"
passPercentage: 70
type: "test"
layout: "test"
isOptional: true
final: false
questions:
  - id: "q1"
    text: "Your question text here"
    type: "single-answer"
    marks: 2
    options:
      - id: "a"
        text: "Option A text"
      - id: "b"
        text: "Option B text"
        isCorrect: true
---

In this table, fields marked with βœ… are required, while those marked with – are optional.

Applicable ToFieldRequiredDescription
Assessmenttitle-A short, descriptive name for the assessment (e.g., “Final Exam” or “Module 3 Quiz”).
id-Unique identifier for the assessment. If omitted, the build generates one from the file path. Set a readable value so grade history stays traceable.
passPercentageβœ…Minimum score required to pass the assessment (e.g., 70).
typeβœ…Metadata type for the assessment. The value must be test.
layout-Metadata type for the assessment. The value must be test.
isOptional-A boolean value. If true, the assessment can be skipped without affecting completion.
timeLimit-Duration of the test in minutes. Use 0 (the default) for no limit.
maxAttempts-Attempts allowed per learner and registration. 0 means unlimited. When a question bank is configured and you do not set this, the number of retries defaults to the number of generated sets. Starting an attempt counts whether or not the learner submits it.
numberOfQuestions-Size of each question set when the test should draw from a larger question bank. Total questions must be a multiple of this value.
final-A boolean flag. Set to true if this assessment determines the completion for its parent course or path.
questionsβœ…An array containing one or more question objects.
Question Objectidβœ…Unique identifier for the question within the assessment (e.g., q1, q2).
textβœ…The text of the question prompt.
typeβœ…The type of question. The scoring service evaluates single-answer, multiple-answers, and short-answer. Any other type, including true-false, is shown but never scores, so a learner cannot earn its marks.
marksβœ…The number of points awarded for a correct answer.
instructions-Custom instruction for each question
options-An array of answer options.

Layer5 Academy scores three question formats. For a true or false question, use single-answer with two options. A true-false type is shown and never scored.

Single Choice Questions

  • Single correct answer
  • True or false, authored as single-answer with two options
Examples: type: single-answer
---
questions:
  - id: "question1"
    text: "Test single choice question"
    type: "single-answer"             # choose the type
    marks: 1
    instructions: "Only one option is correct"
    options:
      - id: "a"
        text: "Option A"
        isCorrect: true    # correct option
      - id: "b"
        text: "Option B"
---

Examples: true or false as type: single-answer
---
questions:
  - id: "question2"
    text: "Kubernetes Pods can contain multiple containers."
    type: "single-answer"          # true or false is a single-answer question
    marks: 1
    options:
      - id: "true"
        text: "True"
        isCorrect: true    # correct option
      - id: "false"
        text: "False"
---

Multiple Choice Questions

  • Multiple correct answers
Examples: type: multiple-answers
---
questions:
  - id: "question3"
    text: "Test multiple choice question"
    type: "multiple-answers"             # choose the type
    marks: 2
    instructions: "More then one answer can be correct"
    options:
      - id: "a"
        text: "Option A"
        isCorrect: true    # correct option
      - id: "b"
        text: "Option B"
      - id: "c"
        text: "Option C"
        isCorrect: true    # correct option
---

Short Answer Questions

  • Fill-in-the-blank responses
  • Direct text input
Examples: type: short-answer
---
questions:
  - id: "question4"
    text: "In Kubernetes, ___ is the default namespace."
    type: "short-answer"                # choose the type
    marks: 2
    instructions: "Just type the command"
    correctAnswer: "default"           # expected answer

  - id: "question5"
    text: "Which kubectl command lists all pods?"
    type: "short-answer"                # choose the type
    marks: 2
    correctAnswer: "kubectl get pods"  # expected answer
---

Post-Frontmatter πŸ”—

After the frontmatter, you can add some content for learner orientation:

---
questions:

---
This assessment allows you to review your educational progress. Give it a try!
  • A final exam is the exam that evaluates whether a root section (with mandatory children) is complete.
  • A final exam can only be taken after all mandatory sibling and childern pages are complete.
  1. If only one exam exists in a section, it is treated as the final exam.
  2. If multiple exams exist:
    • One may be explicitly marked as final using:
      final: true
      
    • If none are marked, the last exam (by file path) is treated as final.
    • There must be only one explicitly marked final exam per section.
  3. A final exam cannot be optional.
    • This applies even when only one exam is present β€” it cannot have isOptional: true.

A exam is considered final if:

  • It has final: true in its front matter.
  • It is the only exam under its parent section.
  • It is the last exam (ordered by File.Path) among sibling exams, and no other exam is explicitly marked as final.
  • If any sibling exam is marked as final: true, no other exam will be considered final β€” even if it’s last.

Instructions are a way to help or clarify what the question is trying to ask , and user doesnt get confused .

Instructions are defaultly defined for each question type :

  • single-answer: Select one answer
  • multiple-answers: Select all that apply
  • short-answer: Type your answer below

Instructions can be override in frontmatter by defining a custom intruction for each question.

Examples: Instruction
---
questions:
  - id: "question4"
    text: "In Kubernetes, ___ is the default namespace."
    type: "short-answer"                
    marks: 2
    instructions: "Just type the command" #custom instruction
    correctAnswer: "default"           

  questions:                              # will display the default instructions for question type
  - id: "question3"
    text: "Test multiple choice question"
    type: "multiple-answers"             # choose the type
    marks: 2
    options:
      - id: "a"
        text: "Option A"
        isCorrect: true    # correct option
      - id: "b"
        text: "Option B"
      - id: "c"
        text: "Option C"
        isCorrect: true    # correct option
---

The scoring process is handled automatically by the backend system. As a content creator, your main responsibility is to define the marks for each question and the overall passPercentage for the assessment. Here is how the system processes the scores:

  1. Total Possible Marks: The total score for a assessment is automatically calculated by summing the marks value of every question within that assessment. You do not need to define this total manually.
  2. Learner’s Score: A learner’s final score is the sum of the marks from all the questions they answered correctly.
  3. Pass/Fail Status: The system calculates the final percentage using the formula (Learner's Score / Total Possible Marks) * 100. If this percentage is greater than or equal to the passPercentage you set, the assessment is marked as “Passed”.
  • Multiple-Choice Questions: For questions with a single correct answer, the logic is straightforward. For multiple-answer questions, the scoring is strict: the learner must select all correct options and none of the incorrect options to earn the marks. There is no partial credit.
  • Short Answer Questions: The learner’s input is compared against the correctAnswer field. The comparison is always case-insensitive. Layer5 Cloud has no case-sensitive mode, so write correctAnswer as the one canonical form you accept. Leading and trailing whitespace is ignored. A blank answer is wrong. Scoring is all or nothing: an unanswered question scores zero, and a multiple-answers question gives no partial credit.

After an assessment is submitted and scored, a detailed result record is permanently saved to the learner’s grade history. If the assessment is a designated test for a Course or an exam for a Learning Path and the result is “Passed”, it will trigger the completion of that Course or Learning Path in the learner’s progress tracker.

BehaviorRule
Time limitThe attempt expires timeLimit minutes after it starts. A late submission fails with Test submission has expired. 0 means no limit.
Attempt limitStarting another attempt past maxAttempts fails with Maximum attempts reached for this test.
ResubmissionA submitted attempt cannot be submitted again.
OwnershipA learner can submit only their own attempt, and only against their own registration.
Payload sizeA submission larger than 1 MiB is rejected.
PrerequisitesA submission whose prerequisites are incomplete is rejected with Prerequisites not completed.
Question bankWith numberOfQuestions set, attempt 1 gets questions 1 to N, attempt 2 gets the next N, and after the last window the sequence restarts. Keep the bank an exact multiple of N so the last window is not short.
Answers in the browserThe server never sends correct answers to the learner’s browser.

Renaming or moving an assessment file after launch makes the new path a different assessment. Earlier attempts and passes recorded against the old path no longer count, so attempt limits reset and prerequisites that depended on the old path stay unmet.

1. Is the id field required in the file's front matter?

No, the id field is optional. If omitted, the system auto-generates a unique ID based on the file path (e.g., 7a4af2222daae1111acfac539f657724). However, we strongly recommend specifying a human-readable, globally unique ID (e.g., test-intro-meshery, quiz-containers, test-intro-kubernetes) for better traceability and debugging.

2. Why is an assessment required for every Course and Learning Path?

Completion is triggered by passing the final assessment of that section. Without one, nothing marks the level complete or awards its badge. Passing a non-final quiz or test completes only that assessment. A course with no test, or a learning path with no exam, has no event that can mark it complete.

3. Can I fully test the assessment (including scoring) locally?

You can preview the test layout locally, but scoring and evaluation are handled by the backend server. Submission, grading, attempt counting, and completion are not available in local previews. Publish a version and use a dedicated test learner in a non-production organization so practice passes do not appear in your real metrics.

4. How are multiple-answer questions scored? Is partial credit given?

No partial credit is awarded. To receive points, the learner must select all correct options and avoid all incorrect ones. Selecting a wrong option or missing a correct one results in zero marks for that question.

5. Can a learner retake an assessment even after scoring 100%?

Yes, until maxAttempts is reached. The server does not block a retake because of an earlier score, including 100%. When maxAttempts is 0, retakes are unlimited. When a question bank is in use and you leave maxAttempts unset, retries default to the number of generated sets, and further attempts cycle through those sets.

Related Reading