Skip to content

Commit c2148ce

Browse files
authored
Merge pull request #753 from zihanKuang/add-certification
docs: Add guide for building certification
2 parents 89f4233 + d7dee08 commit c2148ce

File tree

5 files changed

+187
-23
lines changed

5 files changed

+187
-23
lines changed
147 KB
Loading
260 KB
Loading
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
title: Building Certifications
3+
weight: 5
4+
description: >
5+
A step-by-step guide to building a professional certification in the Academy.
6+
categories: [Academy]
7+
tags: [Academy]
8+
---
9+
10+
In [Layer5 Academy](https://cloud.layer5.io/academy/), a **Certification** is a formal assessment designed to validate a learner's professional skills in a specific domain. Unlike a Learning Path, which guides a user through a curriculum, a Certification's primary goal is evaluation.
11+
12+
The successful completion of a Certification results in an official, shareable **Certificate of Completion** and a valuable badge, signifying a verified level of proficiency.
13+
14+
![example image](./images/index-page.png)
15+
16+
### When to Use a Certification
17+
18+
To understand its unique role, here is a comparison with other content types in the Academy. Use this table to decide if a Certification is the right format for your content.
19+
20+
| Feature | Learning Path | Challenge | Certification |
21+
| :--- | :--- | :--- | :--- |
22+
| Primary Goal | To teach and guide through a comprehensive curriculum. | To solve a specific, hands-on problem in a competitive scenario. | To validate and prove existing knowledge through formal examination. |
23+
| Structure | Hierarchical (Path → Courses → Modules). | Typically a single, scenario-based task. | Flat; a collection of one or more exams. |
24+
| Main Content | Lessons, informational pages, labs, and progressive assessments. | A set of instructions for a practical task and a validation mechanism. | A series of exams, potentially with a brief study guide. |
25+
| Outcome | Acquired knowledge and skills. | A score, rank status. | An optional, paid official certificate and a verifiable badge.|
26+
27+
{{< alert type="info" title="Certification: Focus on Assessment, Not Instruction" >}}
28+
A Certification is ideal when the main objective is to test, not teach. It assumes learners have prior knowledge and are ready to prove their expertise.
29+
{{< /alert >}}
30+
31+
## How to Create Your Certification
32+
33+
Building a new certification involves setting up the correct directory structure and defining its properties through Markdown frontmatter.
34+
35+
### 1. Set Up the Directory Structure
36+
37+
All content for a new certification must reside within the `content/certifications/orgID` directory. To keep content organized, each certification has its own folder named with a descriptive, URL-friendly slug.
38+
39+
The final URL will follow this pattern: `https://cloud.layer5.io/academy/content/certifications/orgID/<certification-folder-name>/`
40+
41+
Below is the standard file structure:
42+
43+
```
44+
content/certifications/
45+
└── orgID/layer5-certification-exam/ <-- The <certification-name> directory
46+
├── _index.md <-- Defines the certification's metadata
47+
├── exam-1.md <-- (Optional) A standard content page for introduction
48+
├── optional-exam-2.md <-- An optional supplementary exam
49+
└── exam-3.md <-- A mandatory exam, accessible after completing all previous required units.
50+
```
51+
52+
**Key Files:**
53+
- **`_index.md`**: The entry point for your certification containing all metadata (title, description, banner, etc.)
54+
- **Exam Files (`*.md`)**: Individual Markdown files containing the exams. Order and optional status are controlled by frontmatter, not filename.
55+
56+
### 2. Define the Certification with Frontmatter
57+
58+
The `_index.md` file's frontmatter controls how the certification is presented to users..
59+
60+
Here's a complete example of the YAML frontmatter for a certification's `_index.md` file:
61+
62+
```yaml
63+
---
64+
type: "certification"
65+
id: "445a80d2-1234-1234-1234-2329c5ddcdec"
66+
title: "Layer5 Network Certification"
67+
description: "Validate your expertise in Layer5 networking technologies through comprehensive assessment"
68+
banner: "images/layer5-icon.svg"
69+
weight: 1
70+
tags: [layer5, cloud, infrastructure]
71+
level: "beginner"
72+
categories: "platform"
73+
---
74+
```
75+
76+
#### Frontmatter Fields Reference
77+
78+
> In this table, fields marked with ✅ are required, while those marked with – are optional.
79+
80+
| Field | Required | Description |
81+
| :--- | :--- | :--- |
82+
| `type` || Must be set to `"certification"` to identify this content correctly. |
83+
| `id` || A globally unique identifier (UUID) for the certification. |
84+
| `title` || The human-readable title that will be displayed to users. |
85+
| `description` || A comprehensive summary of the certification's scope and objectives. |
86+
| `weight` | - | Controls the display order (lower numbers appear first). Items are sorted alphabetically by title if not specified.|
87+
| `banner` | - | Path to an image in the `static` folder, e.g., `images/icon.svg`. |
88+
| `tags` | - | Keywords for content discovery. Multiple tags can be selected. |
89+
| `level` | - | A string for the intended difficulty (`beginner`, `intermediate`, `advanced`). Default: `beginner`. |
90+
| `categories` | - | A string that assigns the certification to a specific category. |
91+
92+
### 3. Add Content and Exams
93+
94+
A certification is primarily composed of exams. However, you can also include standard content pages to provide context.
95+
96+
- **Exams:** The core assessable components. A certification can contain one or multiple exams.
97+
- **Informational Pages:** Standard Markdown pages that can serve as an introduction, a study guide, or a list of helpful resources.
98+
99+
{{< alert type="info" title="How to Create and Configure Exams" >}}
100+
Every "Exam" file within a certification follows the unified Academy assessment standard.
101+
102+
For detailed instructions on how to write an exam file, define various question types, set scoring and passing percentages, and use advanced options, please refer to our comprehensive [Integrating Assessments in the Academy](../integrating-assessments-in-the-academy/) guide.
103+
{{< /alert >}}
104+
105+
## Learner Outcomes: Badges and Certificates
106+
107+
Successfully completing a certification provides learners with valuable, verifiable credentials.
108+
109+
### Badges
110+
111+
Upon successful completion of all mandatory exams, learners are awarded a digital badge. This badge serves as a verifiable credential that is perfect for sharing on professional profiles to showcase the achievement.
112+
113+
See a live example on a [user's profile](https://cloud.layer5.io/user/a5eb9e0a-c9e3-4b66-890c-8f018e729306?tab=badges)
114+
115+
![example badge image](./images/badge.png)
116+
117+
### Official Certificates
118+
119+
The ultimate outcome of a certification is an **official Certificate of Completion**.
120+
121+
A key feature unique to the Certification content type is that while the learning materials and exams are offered for free, the **issuance of the official certificate is a paid feature**. This model allows anyone to learn and validate their skills at no cost, with the option to purchase the formal certificate to document their accomplishment.
122+
123+
124+
## Frequently Asked Questions
125+
126+
<details>
127+
<summary>Can my certification have only one exam?</summary>
128+
129+
Yes, it can. The simplest form of a certification consists of a single final exam. You can also include multiple independent exams if you wish to assess different skills.
130+
</details>
131+
132+
<details>
133+
<summary>When should I choose to create a "Certification" instead of a "Learning Path"?</summary>
134+
135+
You should choose a Certification when your primary goal is to **test and assess** a learner's existing knowledge, rather than **teaching them** from scratch. A Learning Path focuses on instruction, while a Certification focuses on assessment.
136+
</details>
137+
138+
<details>
139+
<summary>What does an "Optional" exam mean, and how does it affect a learner's progress?</summary>
140+
141+
An optional exam is supplementary material. Learners can take it, but they **do not** have to pass it to earn the final certificate. Its score **does not count** towards the certification's passing requirements. This is typically used for extra practice or to test non-core knowledge.
142+
</details>
143+
144+
<details>
145+
<summary>How do I set an exam as "Optional"?</summary>
146+
147+
You need to add a specific field, `is_optional: true`, to the front matter of the exam's `.md` file. This field tells the system that the exam is not a mandatory requirement to pass the certification.
148+
</details>
149+
150+
<details>
151+
<summary>Can I control the order of multiple exams within a certification?</summary>
152+
153+
Yes, you can. Each exam file's front matter has a `weight` field. Lower numbers result in an earlier display order. If you don't set a `weight`, the exams will be sorted alphabetically by file title by default.
154+
</details>
155+
156+
<details>
157+
<summary>As a content creator, do I need to handle the certificate payment process?</summary>
158+
159+
No, you don't. The payment and certificate issuance process is handled by the Layer5 platform. You only need to focus on creating high-quality assessment content.
160+
</details>

content/en/cloud/academy/creating-content/creating-your-learning-path/index.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -146,20 +146,22 @@ You can find and copy your Organization UUID from your organization page on [Aca
146146
---
147147
```
148148
149+
> In this table, fields marked with ✅ are required, while those marked with – are optional.
150+
149151
**Summary of Required Fields**
150152
151153
| Applicable To | Field | Required | Notes |
152154
| ----------------------------- | ------------- | :------: | ------------------------------------------------------------------------------------------------------------- |
153-
| All | `title` | ✅ | The main display title. |
154-
| All | `description` | ✅ | A brief summary of the content. |
155-
| All | `weight` | | Controls the display order (lower numbers appear first). |
156-
| All | `draft` | | If `true`, the page will not be published. |
157-
| All | `type` | ✅ | Defines the content's role. Optional values: `challenge`, `learning-path`, `course`, `module`, `page`, `test`, or `lab`. |
158-
| **Course** | `level` | | The difficulty level of the content. Optional values: `beginner`, `intermediate`, `advanced`. |
159-
| **Learning Path** | `id` | ✅ | **Crucial.** A stable UUID for tracking progress. **Do not change.** [^1] |
160-
| **Learning Path**, **Course**, **module** | `tags` | | Keywords for content discovery. Multiple tags can be selected. |
161-
| **Learning Path**, **Course**, **module** | `categories` | | The main categories for the content. Only one can be selected. |
162-
| **Learning Path**, **Course** | `banner` | | Path to an image in the `static` folder, e.g., `images/icon.svg`. |
155+
| All | `title` | ✅ | The main display title. |
156+
| All | `description` | ✅ | A brief summary of the content. |
157+
| All | `weight` | - | Controls the display order (lower numbers appear first). Items are sorted alphabetically by title if not specified.|
158+
| All | `draft` | - | If `true`, the page will not be published. |
159+
| All | `type` | ✅ | Defines the content's role. Optional values: `challenge`, `learning-path`, `certification`, `course`, `module`, `page`, `test`, or `lab`. |
160+
| **Course** | `level` | - | A string for the intended difficulty (`beginner`, `intermediate`, `advanced`). Default: `beginner`. |
161+
| **Learning Path** | `id` | ✅ | **Crucial.** A stable UUID for tracking progress. **Do not change.** [^1] |
162+
| **Learning Path**, **Course**, **module** | `tags` | - | Keywords for content discovery. Multiple tags can be selected. |
163+
| **Learning Path**, **Course**, **module** | `categories` | - | The main categories for the content. Only one can be selected. |
164+
| **Learning Path**, **Course** | `banner` | - | Path to an image in the `static` folder, e.g., `images/icon.svg`. |
163165

164166
> For a complete list of all predefined variables and advanced usage, please refer to the official [Hugo Front Matter documentation](https://gohugo.io/content-management/front-matter/).
165167

content/en/cloud/academy/creating-content/integrating-assessments-in-the-academy/index.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -130,21 +130,23 @@ questions:
130130

131131
### Assessment Frontmatter Fields
132132

133+
> In this table, fields marked with ✅ are required, while those marked with – are optional.
134+
133135
| Applicable To | Field | Required | Description |
134136
| :--- | :--- | :--- | :--- |
135-
| **Assessment** | `title` | No | A short, descriptive name for the assessment (e.g., "Final Exam" or "Module 3 Quiz"). |
136-
| | `id` | No | Unique identifier for the assessment. If omitted, a UUID will be auto-generated. |
137-
| | `passing_percentage` | Yes | Minimum score required to pass the assessment (e.g., `70`). |
138-
| | `type` | Yes | Metadata type for the assessment. The value must be `test`. |
139-
| | `layout` | No | Metadata type for the assessment. The value must be `test`. |
140-
| | `is_optional` | No | A boolean value. If `true`, the assessment can be skipped without affecting completion. |
141-
| | `final` | No | A boolean flag. Set to `true` if this assessment determines the completion for its parent course or path. |
142-
| | `questions` | Yes | An array containing one or more question objects. |
143-
| **Question Object** | `id` | Yes | Unique identifier for the question within the assessment (e.g., `q1`, `q2`). |
144-
| | `text` | Yes | The text of the question prompt. |
145-
| | `type` | Yes | The type of question. Accepted values are `single-answer`, `multiple-answers` or `short_answer`. |
146-
| | `marks` | Yes | The number of points awarded for a correct answer. |
147-
| | `options` | No | An array of answer options. |
137+
| **Assessment** | `title` | - | A short, descriptive name for the assessment (e.g., "Final Exam" or "Module 3 Quiz"). |
138+
| | `id` | - | Unique identifier for the assessment. If omitted, a UUID will be auto-generated. |
139+
| | `passing_percentage` | | Minimum score required to pass the assessment (e.g., `70`). |
140+
| | `type` | | Metadata type for the assessment. The value must be `test`. |
141+
| | `layout` | - | Metadata type for the assessment. The value must be `test`. |
142+
| | `is_optional` | - | A boolean value. If `true`, the assessment can be skipped without affecting completion. |
143+
| | `final` | - | A boolean flag. Set to `true` if this assessment determines the completion for its parent course or path. |
144+
| | `questions` | | An array containing one or more question objects. |
145+
| **Question Object** | `id` | | Unique identifier for the question within the assessment (e.g., `q1`, `q2`). |
146+
| | `text` | | The text of the question prompt. |
147+
| | `type` | | The type of question. Accepted values are `single-answer`, `multiple-answers` or `short_answer`. |
148+
| | `marks` | | The number of points awarded for a correct answer. |
149+
| | `options` | - | An array of answer options. |
148150

149151
{{< alert type="warning" title="Quick heads up" >}}
150152
Remember: `type: "test"` are fixed values that cannot be modified. The system needs these exact words to work properly.

0 commit comments

Comments
 (0)