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]>
This commit is contained in:
Rotimi Best
2026-07-02 12:10:31 +01:00
committed by GitHub
co-authored by Rotimi Best Cursor Agent
parent fe9f8c441f
commit ec61bfe7d9
115 changed files with 19703 additions and 6046 deletions
+9 -9
View File
@@ -1,6 +1,6 @@
---
title: Student Dashboard
description: Learn how students navigate the LMS, including Home, My Learning, Programs, and Explore.
description: Learn how students navigate the LMS, including Home, My Learning, Cohorts, and Explore.
---
import { Callout } from 'fumadocs-ui/components/callout';
@@ -15,7 +15,7 @@ Students reach the LMS after they sign in on your academy. The left sidebar list
| --- | --- | --- |
| **Home** | `/lms` | Enrolled courses with progress |
| **My Learning** | `/lms/mylearning` | Enrolled courses only, grouped by status |
| **Programs** | `/lms/programs` | Programs the student belongs to |
| **Cohorts** | `/lms/cohorts` | Cohorts the student belongs to |
| **Explore** | `/lms/explore` | Published courses they are not enrolled in yet |
| **Exercise** | `/lms/exercises` | Exercises (if enabled for your org) |
| **Community** | `/lms/community` | Community (if enabled for your org) |
@@ -48,17 +48,17 @@ Both show enrolled courses. My Learning adds clearer filtering for students mana
Explore is useful when you want students to discover optional or elective courses without assigning them manually.
## Programs
## Cohorts
**Programs** are separate from individual courses. A program groups courses under shared goals (for example, complete all courses in an onboarding track). Students who belong to a program see it under **Programs** in the LMS.
**Cohorts** are separate from individual courses. A cohort groups courses under shared goals (for example, complete all courses in an onboarding track). Students who belong to a cohort see it under **Cohorts** in the LMS.
| Concept | Where students see it |
| --- | --- |
| Individual enrolled courses | Home, My Learning |
| Courses not yet joined | Explore |
| Multi-course tracks with goals | Programs |
| Multi-course tracks with goals | Cohorts |
For how admins create programs and set goals, see [Programs](/docs/programs).
For how admins create cohorts and set goals, see [Cohorts](/docs/cohorts).
## What students see right after enrolling
@@ -71,18 +71,18 @@ When a student enrolls in a course (from a landing page, invite link, or admin a
If you added them from **People** but they have not signed in yet, they may show as **Pending** in the admin People list until they accept the invite or create an account.
## Courses vs programs: quick comparison
## Courses vs cohorts: quick comparison
| Question | Answer |
| --- | --- |
| Where do I see courses I am taking? | **Home** or **My Learning** |
| Where do I find courses I have not joined? | **Explore** |
| Where do I see structured learning paths? | **Programs** |
| Where do I see structured learning paths? | **Cohorts** |
| Can one student use all three views? | Yes. They work together. |
## Related guides
- [How Course Enrollment Works](/docs/course-enrollment) — how students join courses and what settings control access
- [How to Invite Students](/docs/invite-students) — send enrollment links by email
- [Programs](/docs/programs) — multi-course tracks and goals for admins
- [Cohorts](/docs/cohorts) — multi-course tracks and goals for admins
- [Create a Course Landing Page](/docs/course-landingpage) — what prospects see before enrolling