Enroll in Course › Select Cohort
๐ŸŽฌ Simulate:

Select Cohort

โ† Back
Course Summary

Python Programming for TVET

v2.1

Dr. Sumali Hakrian

Free

Learning Mode & Cohort Selection
Cohort-based Set by admin โ€” not changeable by learner
Order Summary
Enrollment fee Free

Total Free

Free or subscription-covered โ€” access starts immediately after confirmation.

๐Ÿ“ Spec notes โ€” UC-LMS.07 / SCR-LMS.05 (fields, actions, requirements)
Identity
  • Screen: SCR-LMS.05 โ€” Enrollment Confirmation
  • Use case: UC-LMS.07 โ€” Enroll in Course (M-3 to M-10 / AF-1A / AF-7A / AF-10A)
Brief description

Opens after learner clicks "Enroll" from Course Detail (SCR-LMS.04) or Specialization Detail (SCR-LMS.25). Displays course/specialization summary and shows the admin-configured learning mode (read-only). If cohort-based โ†’ shows available cohort list for learner to pick. For Specialization โ†’ shows member course list with per-course cohort selectors. On confirm: free/subscription โ†’ enrollment created immediately (โ†’ M-10 return to SCR-LMS.04 with ?enrolled=1); paid โ†’ redirect to UC-BIL.01.

Fields
  • enrollment_subject_title "Course / Specialization Name" โ€” text ยท Course.title or Specialization.title ยท always ยท read-only
  • content_version "Content Version" โ€” text ยท CourseVersion.version_major ยท visible when is_specialization == false ยท read-only
  • instructor_name "Instructor Name" โ€” text ยท cross-module InstructorProfile.display_name ยท visible when is_specialization == false ยท read-only
  • price_display "Price" โ€” text ยท cross-module Billing ยท fallback "Free" ยท always ยท read-only
  • learning_mode "Learning Mode" โ€” enum [self_paced, cohort] ยท configured by Program Admin, read-only to learner ยท visible when !is_specialization
  • available_cohorts "Open Cohorts" โ€” list ยท Cohort.id ยท visible when learning_mode == cohort ยท filter: open, not full, not started
  • selected_cohort "Selected Cohort" โ€” enum ยท CohortMember.cohort_id ยท required when cohort mode
  • cohort_full_alert "Cohort Full Message" โ€” text ยท visible when cohort_full_race_condition == true (AF-7A)
  • specialization_member_courses "Member Course List" โ€” list ยท SpecializationCourse.course_id ยท visible when is_specialization == true ยท read-only + cohort dropdown per course
Actions
  • select_cohort "Select Cohort" โ€” enabled when learning_mode == cohort ยท triggers UC-LMS.07-M-7
  • confirm_enrollment "Confirm Enrollment" โ€” enabled when required_fields_valid ยท triggers UC-LMS.07-M-8 (โ†’ M-10 if free; โ†’ AF-10A if paid)
  • cancel "Cancel" โ€” always enabled
Additional requirements
  1. Cohort filter: status=open, member_count < max_members, start_date > today โ€” sorted by start_date ASC
  2. Specialization member row: course name + admin-set learning mode badge + cohort dropdown (if cohort-based)
  3. Race condition (AF-7A): cohort full during confirm โ†’ refresh cohort list + clear selected_cohort + show cohort_full_alert in-page without redirect
  4. Price rule: price=0 โ†’ "Free"; covered by subscription โ†’ "Covered by membership package"; paid โ†’ "Paid" badge (no amount shown here โ€” amount shown on SCR-BIL.04 after redirect) (cross-module: Billing)
  5. Specialization enrollment is atomic โ€” if any member course fails to register, no enrollments are saved
โš  Open issues (UC-LMS.07)
  • Subscription entitlement check โ€” verified by LMS directly or received from Billing module?
  • Enrollment stuck at "Awaiting payment" โ€” auto-cancel after 24h or keep indefinitely?
  • Re-enrollment after course completion โ€” allowed or not?