Files
classroomio/apps/docs/content/docs/guides/course-progression.mdx
T
Abdulmuizz HamzatandRotimi Best b599f1a017 chore(docs): migrate the docs site from Fumadocs to Blume (#753)
* Update documentation for ClassroomIO: change Fumadocs to Blume, revise MDX format conventions, and clarify sidebar navigation requirements.

* docs: update README and scripts for improved preview and error handling

* docs: update Discord link in configuration and documentation

* docs: add token-auth route and update documentation formatting

* Fix formatting in auto-comment-issues.yml

* Fix JSON syntax by adding a comma

* fix(docs): declare Blume's Astro build deps so Cloudflare build resolves them

blume build generates an Astro project under apps/docs/.blume/ that imports
astro, @astrojs/mdx, @tailwindcss/vite, tailwindcss, @tailwindcss/typography,
@shikijs/twoslash and @scalar/astro. Under pnpm's isolated node_modules these
are nested inside blume and not resolvable from the docs app, so a clean
--frozen-lockfile build (Cloudflare) fails at 'Cannot find module astro/config'.
Declare them directly in @cio/docs, pinned to blume's resolved versions.

* refactor(docs): update API reference paths and documentation for clarity

* fix: change platofrm url to docs home page

* Refactor documentation for self-hosting ClassroomIO

- Removed the Supabase Cloud setup guide as it is no longer needed.
- Updated the Enterprise SSO documentation to include a reference link for SSO & licensing.
- Added new documentation for Content Security Policy (CSP) configuration.
- Created a new section for configuring SMTP for email notifications.
- Introduced a comprehensive configuration index for self-hosted ClassroomIO, detailing environment variables and their usage.
- Added documentation for optional integrations including Google OAuth, OpenAI, and Unsplash.
- Documented the generation and usage of required secrets for ClassroomIO.
- Created a section for SSO & licensing, detailing the requirements for Enterprise features.
- Added object storage configuration documentation, covering both bundled MinIO and external S3-compatible services.
- Documented versioning and upgrade processes for ClassroomIO.
- Updated the Coolify and Docker self-hosting guides to streamline configuration references and upgrade instructions.
- Enhanced the Railway self-hosting guide with links to relevant configuration sections.
- Updated token authentication documentation to reference SSO & licensing.

* Add comprehensive guides for ClassroomIO features and functionalities

- Introduced a new guide for the Student Dashboard, detailing navigation and features available to students.
- Added a guide on using Tags for organizing and filtering courses within ClassroomIO.
- Created a guide on how to take attendance in courses, including marking attendance and related functionalities.
- Developed a Terminology guide to clarify key terms used throughout ClassroomIO.
- Implemented a Token Auth guide for signing users into ClassroomIO from external applications using JWT.
- Added instructions for using math in the editor with LaTeX support.
- Created a guide for customizing the welcome email sent to students upon enrollment in courses.
- Added a guide explaining what ClassroomIO is and its key features.
- Updated the home documentation to provide a clearer overview of ClassroomIO and its resources.
- Enhanced self-hosted configuration documentation with a new guide for deploying ClassroomIO on Dokploy.
- Updated links in the self-hosted configuration documentation for better navigation.
- Added new images to support the Dokploy deployment guide.
- Updated asset packaging script to handle redirects for the new guide structure.
- Fixed footer link to point to the correct Getting Started guide.

* chore: uprage version

* feat(docs): add DigitalOcean deployment guide and flatten guides structure

- Add a guide for deploying ClassroomIO on DigitalOcean using Docker Compose
  and Caddy for automatic HTTPS.
- List DigitalOcean as a deployment option in the self-hosting index.
- Move guides out of content/docs/guides into content/docs (student-dashboard,
  tags, terminology, token-auth, what-is-classroomio, audience, cohorts,
  community, course, enterprise-sso, mcp, organization, quickstart/*).
- Rename home.mdx to index.mdx.
- Update package-assets script to emit redirects for the old guides paths.

---------

Co-authored-by: Rotimi Best <[email protected]>
2026-07-22 22:30:10 +01:00

101 lines
4.4 KiB
Plaintext

---
title: Control Course Progression
description: Require students to move through a course in order, with lessons and exercises that only complete when your rules are met.
---
By default students can open any unlocked item in any order. With **sequential** progression they must finish each item
before the next one unlocks, and you decide what "finished" means for every lesson and exercise. This is the backbone of
a structured training flow: watch the video, pass the quiz, earn the certificate.
## Choose a progression mode
In the course's **Settings** tab, find the **Student progression** section and pick one:
| Mode | Behavior |
| --- | --- |
| **Free** | Students open any unlocked item in any order and mark lessons complete themselves. |
| **Sequential** | The next item stays locked until the current (or previous) item is complete. |
![Student progression setting with Free and Sequential options](/docs/progression-mode.webp)
:::info
If a course is just a video and a quiz, turn off **Content grouping** in the same settings so the content list is a
flat list instead of grouped sections.
:::
## Set how a lesson completes
Open a lesson, go to its **Settings** tab, and choose a **Completion rule**:
| Rule | Completes when |
| --- | --- |
| **Manual** | The student clicks to mark the lesson complete. |
| **Video watch** | The student watches the selected videos. Set the **Watch threshold (%)** (for example 95%). |
| **None** | The lesson never blocks progression. |
![Lesson Completion rule options with Manual, Video watch, and None](/docs/progression-completion-rule.webp)
:::warning
**Video watch** only enforces uploaded videos. While the rule is active the player blocks skipping ahead and pauses when
the student switches tabs, so the watch percentage reflects real viewing. The lesson completes once the threshold is reached.
:::
## Set how an exercise completes
Open an exercise, go to its **Settings** tab, and choose a **Completion rule**:
- **Submitted**: the exercise completes as soon as the student submits any answer.
- **Passed**: the exercise completes only when the student's score meets the **Pass threshold (%)** you set.
Use **Passed** when an exercise must be cleared before the course can continue or a certificate can be issued.
## Gate the certificate
In the course's **Certificates** settings, turn on certificate download and set **Minimum completion (%)** (for example
100%). The certificate unlocks only after the student completes that share of the course, which, under sequential
progression, means they have watched the videos and finished the exercises in order.
See [How to Create Certificates](/guides/certificates) for templates, signatures, and the certificate ID.
## What students see
<Steps>
<Step>
### Locked items
Under **Sequential** progression, the next item stays locked until the student completes the one before it. For example, a
quiz that follows a lesson stays locked until that lesson is complete. In the course content list a locked item is greyed
out with a lock icon and cannot be opened; it unlocks automatically once the previous required item is done. If a student
opens a not-yet-available item directly, they see a **Complete previous content first** notice.
![Locked exercise in the content list with a lock icon](/docs/progression-locked.webp)
</Step>
<Step>
### A video they cannot skip
On a **Video watch** lesson, the progress percentage climbs as they watch. Trying to jump ahead shows a "you cannot skip
ahead" notice, and the video pauses if they leave the tab.
![Video player showing the "You cannot skip ahead on this video" notice](/docs/progression-cant-skip.webp)
</Step>
<Step>
### Completion and the certificate
Reaching the watch threshold marks the lesson complete and unlocks the next item. After they finish the final
requirement, the course is complete and they can view and download their certificate.
![Course requirements complete modal showing congratulations and View certificate button](/docs/progression-student-course-complete.webp)
</Step>
</Steps>
## Related guides
- [Course Types](/guides/course-types): Self-paced, Live class, Compliance, and Public
- [How to Create an Exercise](/guides/create-exercise): build the quiz that gates progression
- [How to Create Certificates](/guides/certificates): what students earn at the end
- [Run a Live Class](/guides/live-class): schedule live sessions alongside on-demand content