🎬 Simulate:
Specialization Detail
Specialization
Full Stack Web Development Path
Web Development
JavaScript
Frontend
Backend
4 courses
1,250 learners
Description and Objectives
Description
The Full Stack Web Development specialization covers everything from HTML/CSS/JavaScript fundamentals through to Node.js and databases. Complete all 4 courses in sequence to earn a Specialization Certificate that validates your full-stack development skills end-to-end.
Objectives
- Build full-stack web applications from UI through API to database
- Use JavaScript confidently on both frontend and backend
- Understand professional software development workflow (version control, deployment)
- Earn a combined certificate that demonstrates full-stack expertise
Member Course List
1
Web Development Fundamentals
Dr. Khamla Souvanh · Beginner
Free
View Details
2
JavaScript Essentials
Dr. Virath Phatthana · Intermediate
Paid
View Details
3
Node.js & REST APIs
Dr. Virath Phatthana · Intermediate
Paid
View Details
4
Databases & Deployment
Dr. Khamla Souvanh · Advanced
Paid
View Details
Screen Flow (from flow.puml):
📝 Spec notes — UC-LMS.07 / SCR-LMS.25 (fields, actions, requirements)
Identity
- Screen: SCR-LMS.25 — Specialization Detail
- Use case: UC-LMS.07 — Enroll in Course (AF-1A entry)
Brief description
The Specialization (course bundle) detail page — publicly accessible without login. Shows title, description, objectives, tags, and the ordered list of member courses. A logged-in learner who is not yet enrolled sees an "Enroll in Specialization" button that starts UC-LMS.07 AF-1A; a learner who is already enrolled (active) sees a "Continue Learning" button instead.
Regions
- Specialization header — title, tags, stats (course count + learner count)
- Description and objectives — description and learning objectives
- Member course list — ordered member courses with link to SCR-LMS.02
- Enrollment CTA — Enroll / Continue Learning button (dynamic based on enrollment state)
Fields
title"Specialization title" — text · data_ref: Specialization.title · always · read-only · Specialization headertags"Tags" — enum · data_ref: Tag.id via SpecializationTag · always · read-only · Specialization headermember_course_count_label"Course count" — text · computed from SpecializationCourse count · always · read-only · Specialization headerenrollment_count_label"Learner count" — text · computed from Enrollment count · always · read-only · Specialization headerdescription"Description" — textarea · data_ref: Specialization.description · always · read-only · Description and objectivesobjectives"Objectives" — textarea · data_ref: Specialization.objectives · always · read-only · Description and objectives
Member course card (per AR-1)
- Sequence order — SpecializationCourse.sequence
- Course title — Course.title
- Difficulty level — difficulty
- Free / Paid badge — Course.access_mode
- (Logged-in users only) Enrolled badge + % progress if enrolled in that course
- "View Details" button → SCR-LMS.02
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 → SCR-LMS.27open_course_detail"View Details" — always · navigate → SCR-LMS.02 of the selected member course
Additional requirements
- Member course card shows per course: sequence, course title, difficulty, Free/Paid badge; (logged-in users) Enrolled badge + % progress if enrolled
- CTA is dynamic — (1) not logged in: "Enroll" button → redirect to login first (AF-2A); (2) logged in + not enrolled: "Enroll" button starts enrollment immediately; (3) logged in + enrolled active: "Continue Learning" button instead
- Visitors (not logged in) can access this page — they do not see the Enrolled badge or % progress [refs: NFR-10]
- URL is slug-based for shareability, e.g. /specializations/{slug}