Manage Cohort › Cohort Editor
๐ŸŽฌ Simulate: UC-LMS.04 harness ยท 4 scenarios

Create Cohort

Cohort Information
Filtered to courses where you are a Course Staff (owner / co-instructor)
Please select a Version Major
Loaded from published versions of the selected course
Please enter a cohort name
Please enter a start date
End date must be after start date
Leave blank for unlimited
Features
Enable forum for learners in this cohort
On โ†’ students are pending until Instructor approves; Off โ†’ auto-approved
Co-instructors

No co-instructors yet โ€” click "Add Co-Instructor" to select from the course's instructor list

Cancel

Screen Flow (from flow.puml):

โ†’ Save (success) / Cancel โ†’ Cohort List โ†’ Validation fail (see additional requirement #10) โ†’ self (stay on form)
๐Ÿ“ Spec notes โ€” UC-LMS.04 / SCR-LMS.17 (fields, actions, requirements)
Identity
  • Screen: SCR-LMS.17 โ€” Manage Cohort Editor
  • Use case: UC-LMS.04 โ€” Manage Cohort
Brief description

Form page for Instructors to create or edit a cohort. Consolidates all cohort data on a single page โ€” cohort name, description, application window, start/end dates, maximum enrollment, Forum option, and Require Approval option โ€” along with a co-instructor list the Instructor can add from this page.

Fields
  • course "Course" โ€” enum (auto-complete dropdown) ยท required ยท cohort mode: editable (filter: CourseStaff of logged-in instructor) / self-paced: read-only (pre-filled from context)
  • version_major "Version Major" โ€” enum ยท required when course_type == cohort ยท visible only for cohort mode ยท options loaded from published CourseVersions of selected course ยท reloads on course change
  • current_version_display "Version" โ€” text (read-only) ยท visible only for self-paced ยท always shows "Latest Version (Auto)"
  • name "Cohort Name" โ€” text ยท required ยท min_length:1 max_length:200
  • description "Description" โ€” textarea ยท optional
  • apply_start_date "Application Open Date" โ€” date ยท optional
  • apply_end_date "Application Close Date" โ€” date ยท optional ยท validation: apply_end_date >= apply_start_date if both set
  • start_date "Start Date" โ€” date ยท required
  • end_date "End Date" โ€” date ยท required ยท validation: end_date > start_date
  • max_members "Maximum Enrollment" โ€” number ยท optional ยท min:1 ยท null = unlimited
  • institution_id "Institution" โ€” lookup ยท optional
  • has_forum "Enable Discussion Forum" โ€” boolean ยท default: false
  • require_approval "Require Instructor Approval Before Joining" โ€” boolean ยท default: false
  • co_instructor_list "Co-Instructors" โ€” enum ยท optional ยท filter: instructors already assigned to this course, excludes logged-in user
Actions
  • save "Save" โ€” enabled when name != '' AND start_date != null AND end_date != null AND end_date > start_date AND (course_type == self_paced OR version_major != null) ยท triggers UC-LMS.04-M-8
  • cancel "Cancel" โ€” always ยท navigate โ†’ SCR-LMS.16 (without saving)
  • add_co_instructor "Add Co-Instructor" โ€” always ยท triggers SUC-LMS.04.01-M-2 โ†’ opens SCR-LMS.42 (embedded modal above)
  • remove_co_instructor "Remove" โ€” per row ยท triggers SUC-LMS.04.01-A-1B-1 โ†’ opens SCR-LMS.43 (embedded modal above)
Additional requirements
  1. Co-instructors that can be added must already be in the course's instructor list โ€” dropdown filters list, excludes logged-in user [refs: none]
  2. Save failure (see UC-LMS.04 additional requirement #10) โ€” system shows inline error: (a) name empty: "Please enter a cohort name" (b) duplicate name in course: "This name already exists in this Course" (c) end date invalid: "End date must be after start date" (d) version_major not selected (cohort mode): "Please select a Version Major" [refs: none]
โ†ณ Embedded dialog: SCR-LMS.42 โ€” Co-Instructor Picker Dialog

Brief: Search-and-select pop-up for adding a co-instructor, opened from the "Add Co-Instructor" button on this screen. Shows only instructors in the course's instructor list who have not yet been added to this cohort.

Fields
  • search_query "Search (name or email)" โ€” text ยท max_length:100 ยท not required
  • selected_instructor_id "Selected Instructor" โ€” enum ยท single select ยท required
Actions
  • confirm "Confirm" โ€” enabled when selected_instructor_id != null ยท triggers SUC-LMS.04.01-M-5
  • cancel "Cancel" โ€” always ยท triggers SUC-LMS.04.01-A-5A-1
โ†ณ Embedded dialog: SCR-LMS.43 โ€” Remove Co-Instructor Confirmation Dialog

Brief: Confirmation window for removing a co-instructor. Shows the instructor's name; removal takes effect when the cohort edit page is saved. Uses a fixed overlay โ€” not dismissible via Escape or clicking outside.

Fields
  • instructor_name "Instructor Name" โ€” text ยท read-only
Actions
  • confirm "Confirm" โ€” always ยท triggers SUC-LMS.04.01-A-1B-3
  • cancel "Cancel" โ€” always ยท triggers SUC-LMS.04.01-A-1B.3A-1
โš  Entity gap (pending /analyze-entities)
  • CourseVersion (course_id, version_major, published_at, is_latest) โ€” not yet in entities.puml