Specialization Detail
Specialization header
Full Stack Development Path
Programming
Web Development
📚 3 courses
👥 1,240 learners
Specialization cover
Description and objectives
A curriculum bundle covering everything needed to become a Full Stack Developer, from HTML/CSS/JS fundamentals to backend APIs and databases
- Build frontend web applications with HTML/CSS/JavaScript
- Develop REST APIs with Node.js and Express
- Design and manage databases with SQL
Member course list
Enrollment CTA
Screen Flow (from flow.puml):
📝 Spec notes — UC-LMS.06 / SCR-LMS.25 (fields, actions, requirements)
Identity
- Screen: SCR-LMS.25 — Specialization Detail
- Use case: UC-LMS.06 — Browse Course Catalog
Brief description
Specialization detail page accessible to all users without login. Displays title, description, objectives, tags, and the ordered list of member courses. Logged-in users who have not enrolled see an "Enroll in Specialization" button. Enrolled users see a "Continue Learning" button instead.
Fields
title"Specialization title" — text · data_ref: Specialization.title · read-only · alwaystags"Tag" — enum · data_ref: Tag.id (via SpecializationTag junction) · read-only · alwaysmember_course_count_label"Course count" — text · computed from SpecializationCourse count · read-only · alwaysenrollment_count_label"Learner count" — text · computed from Enrollment count · read-only · alwaysdescription"Description" — textarea · data_ref: Specialization.description · read-only · alwaysobjectives"Objectives" — textarea · data_ref: Specialization.objectives · read-only · alwayscourse_sequence"Sequence" — number · Member course list · data_ref: SpecializationCourse.sequence · read-onlymember_course_title"Course Title" — text · Member course list · data_ref: Course.title · read-onlymember_course_difficulty"Difficulty Level" — enum [beginner, intermediate, advanced] · Member course list · read-onlymember_course_price_badge"Free/Paid Badge" — enum [free, paid] · Member course list · computed · read-onlymember_course_enrolled_badge"Enrolled Badge" — boolean · Member course list · computed · read-only · visible when logged_in==truemember_course_progress_pct"Progress %" — number · Member course list · computed · read-only · visible when logged_in==true && enrolled==true
Actions
enroll"Enroll in Specialization" — enabled when enrollment.status != active · triggers UC-LMS.07-A-1A-1continue_learning"Continue Learning" — enabled when enrollment.status == active → navigate to SCR-LMS.27open_course_detail"View course details" — always enabled → navigate to SCR-LMS.02 of the selected member course
Additional requirements
- Member course card content per item: sequence (field 7), title (field 8), difficulty (field 9), Free/Paid badge (field 10), Enrolled badge (field 11) + % progress (field 12) (logged-in only if enrolled)
- CTA dynamic — 3 states: (1) not logged-in → "Enroll in Specialization" redirects to login (UC-LMS.07 AF-2A); (2) logged-in + not enrolled → immediate enrollment flow; (3) logged-in + enrolled active → "Continue Learning" replaces button
- Guests see no Enrolled badges or % progress on member course cards [refs: NFR-10]
- URL slug-based: /specializations/{slug} → resolve to correct Specialization for sharing