Files
classroomio/apps/docs/content/docs/cohorts.mdx
T
ec61bfe7d9 feat(cohorts): rename Programs to Cohorts with data migration (#694)
* feat(cohorts): rename Programs to Cohorts with data migration

- Add cohort database tables and Drizzle migration alongside legacy program tables
- Introduce migrate-programs-to-cohorts script to copy existing program data safely
- Rename API routes (/cohort), services, queries, validation, and error codes
- Rename dashboard feature module, routes (/cohorts), navigation, and translations
- Update docs, emails, and internal compliance cron endpoints for cohort terminology
- Keep legacy program tables in place for rollback until explicitly removed

Co-authored-by: Rotimi Best <[email protected]>

* fix(db): restore migrate:answer-data script alongside cohort migration

Co-authored-by: Rotimi Best <[email protected]>

* fix(db): cast program enums when migrating data to cohort tables

Co-authored-by: Rotimi Best <[email protected]>

* fix(db): truncate cohort tables before program-to-cohort copy

Co-authored-by: Rotimi Best <[email protected]>

* fix(db): report accurate row counts in programs-to-cohorts migration

Co-authored-by: Rotimi Best <[email protected]>

---------

Co-authored-by: Cursor Agent <[email protected]>
Co-authored-by: Rotimi Best <[email protected]>
2026-07-02 12:10:31 +01:00

55 lines
2.4 KiB
Plaintext

---
title: Cohorts
description: Learn what Cohorts are in ClassroomIO, how goals work, and what students see in the Cohorts view.
---
import { Callout } from 'fumadocs-ui/components/callout';
**Cohorts** group multiple courses into a structured learning path. Use them when students need to complete a set of courses toward a shared outcome (onboarding, certification prep, role-based training). Individual courses still live in the LMS; cohorts add goals and a dedicated **Cohorts** view for students.
## Cohorts vs courses
| Concept | Scope | Student view |
| --- | --- | --- |
| **Course** | Single content container with lessons | **Home**, **My Learning**, **Explore** |
| **Cohort** | Multiple courses with shared goals | **Cohorts** in the LMS |
A student can be enrolled in courses without belonging to a cohort, and in a cohort that references several courses. See [Student Dashboard](/docs/student-dashboard) for how those views fit together.
## Admin workflow
From the admin dashboard:
1. Create a cohort and add courses to it.
2. Configure cohort **Settings** (metadata, visibility, assignments).
3. Add **Goals** that define what success looks like.
4. Assign students to the cohort (existing students or by email invite).
Students assigned to a cohort see it under **Cohorts** in the LMS.
## Cohort goal types
Goals measure progress across the cohort's courses. Supported types:
| Type | What it measures |
| --- | --- |
| **Complete all** | Every selected course is completed |
| **N of M** | A minimum number of selected courses completed |
| **Score** | Per-learner score threshold on every selected course |
| **Pass rate** | Team-wide pass-rate threshold |
| **Readiness** | No deadline; tracks completion without a due date |
Deadlines can be absolute, relative to when the student joins, recurring, or none.
## Student experience
In the LMS, students open **Cohorts** to see cohorts they belong to. Each cohort hub includes:
- **Newsfeed** — updates from instructors
- **Courses** — linked courses with progress
- **Goals** — personal goal status when goals are configured
<Callout type="info">
Legacy deployments may still have data in the original `program` tables. Run the migration script `pnpm --filter @cio/db migrate:programs-to-cohorts` after applying the cohort schema migration to copy existing data into the new tables without dropping the legacy tables.
</Callout>