🎬 Simulate:
Manage Course
Manage free tags, course sharing, and grading settings for courses in your institution
SCR-LMS.03 · UC-LMS.11
5 courses
| Course Name | Course Type | Pricing Type | Tag | Owner | Last Updated |
|---|---|---|---|---|---|
|
P
Introduction to Python Programming
|
Not Set | Free |
Python
Programming
|
S
Inst. Somchai Jaidee
|
21 May 2026 |
|
W
Web Development Fundamentals
|
Self-paced | Paid |
Web Development
TVET
|
S
Inst. Sumalee Rakrian
|
20 May 2026 |
|
D
Data Science for Beginners
|
Cohort | — |
Data Science
|
P
Inst. Prasert Doenthang
|
19 May 2026 |
|
C
Cybersecurity Basics
|
Self-paced | Paid |
Cybersecurity
|
P
Inst. Piya Srisard
|
15 May 2026 |
|
C
Cloud Computing Essentials
|
Not Set | — | — |
S
Inst. Siriporn Mangmee
|
10 May 2026 |
Showing 5 items
Click a course to manage Free Tags
Uses sub-flows:
Screen Flow (from flow.puml):
📝 Spec notes — UC-LMS.11 / SCR-LMS.03 (fields, actions, requirements)
Identity
- Screen: SCR-LMS.03 — Course List
- Use case: UC-LMS.11 — Manage Course
Brief description
Admin course list page showing only published courses. Program Admin sees only courses within their institution's scope. Super Admin sees all institutions. Click on a course row to open the Course Admin Detail page (SCR-LMS.06).
Fields
search_query"Course Search" — text · max 200 chars · not required · free-text search on course titlefilter_tags"Tag" — enum multi-select · data_ref: Tag.id · not required · default: []result_count_label"Result Count" — computed · read-only · always visiblecourse_type"Course Type" — enum [self-paced, cohort] · data_ref: Course.course_type · fallback "Not Set" · read-only (per row)pricing_type"Pricing Type" — enum [free, paid] · data_ref: Course.access_mode · fallback "Not Set" · read-only (per row)tags"Tag" — tags · data_ref: Tag.name · fallback [] · read-only (per row)
Actions
search"Search" — always enabled · filters course list by titleopen_course_detail"(click row)" — per row · navigate to SCR-LMS.06 · triggers UC-LMS.11-M-2
Additional requirements
- Visibility scope — Program Admin sees only courses in their institution; Super Admin sees all institutions; enforce server-side [refs: NFR-10]
- Table columns: Course Name, Course Type (course_type), Pricing Type (access_mode), Tag (chips for multiple tags; "—" if none), Owner (CourseInstructor.role=owner), Last Updated; add Institution column for Super Admin only; do not show Status column
- Navigation — click any course row to open SCR-LMS.06; no Edit/Delete/Create buttons on this page
- Empty state — display message + link to course review page when no published courses are found or search returns no results
- Success notification — when returning from SCR-LMS.06 after saving Free Tags successfully, show alert + refresh Tags column (UC-LMS.11 step 8)
⚠ Open issues (UC-LMS.11)
- The scope enforcement rule "Program Admin sees only Courses in their institution" is a cross-module pattern reused in UC-CCM.06, UC-LMS.01, UC-LMS.02, UC-LMS.03, and Analytics UCs — decide whether to create SS-02 or inline in each UC
↳ Embedded dialog: SCR-LMS.51 — Course Catalog Picker
Opens when: "New Course" button is clicked (action new_course — triggers UC-LMS.18)
Fields
search_query"Course Name Search" — text · max 200 chars · Filter barfilter_institution"Institution" — enum · default "all" · dynamic options (my institution + shared others) · Filter barcourse_title"Course Title" — text · data_ref: Course.title · read-only · Course tableinstitution_name"Institution" — computed from Course.institution_id → Institution.name · read-only · Course tablecourse_version_label"Version" — computed "v{major}.{minor}" from CourseVersion · read-onlyapproved_date"Approved Date" — date · data_ref: CoursePublishRequest.closed_at (status=approved) · read-onlyalready_added_indicator"Status" — boolean · computed (course_id exists in InstitutionCourse) · row disabled + "Already Added" badge when true
Actions
search"Search" — always enabled · triggers UC-LMS.18-M-2select_course"(click course row)" — enabled when already_added_indicator == false · triggers UC-LMS.18-M-3 → closes dialog + opens SCR-LMS.06 in "Add from Catalog" modecancel"Cancel" — data-bs-dismiss="modal" · triggers UC-LMS.18-A-4A-1
Additional requirements
- Rows where already_added_indicator == true show badge "Already Added" and are disabled; enforce server-side too (AF 3A)
- Only courses with is_shared = true appear in "Shared by Others" group — server-side filter
- Table has 2 group rows: "My Institution" (sorted by approved_date desc) and "Shared by Others" (sorted by institution name then approved_date); hide empty group separator
- Empty state (AF 1A): no courses available → show "No courses available to add" + link to Course Authoring
- Pagination: if rows per institution exceed 50, use pagination (25 rows/page)