Bỏ qua để đến nội dung

DOL Kid LMS - Sitemap

DomainsDOL KidUX2.294 words11 min read
activebyDOL Product Design

Phạm vi: Logged-in KID LMS sau khi phụ huynh đã chọn đúng child context. Focus hiện tại: LMS Home shell, Learning Stats, Kho đề / Test Bank, lane học theo khóa, và lane Exercise. Coverage note: Assignment W/SAI-powered Exercise đã được canon hóa ở logic layer, nhưng chưa được route-expand đầy đủ trong sitemap v1 này. Non-goals: Exercise Bank, top-level Results/Stats/Leaderboard/Certificate pages, analytics phụ huynh trong Course Detail.


Parent Dashboard
└─→ LMS Home
└─→ Course List
└─→ Course Detail
├─→ (via Overview / Learn / Practice tab)
└─→ Exercise Home
└─→ Exercise Detail [Do Exercise]
└─→ Exercise Detail [Done / Xem điểm]
└─→ (update progress) Exercise Home
└─→ (update progress) Course Detail

URL pattern: /kid/lms Vai trò: Home shell sau child-context selection, trả lời “bé đang học gì, sắp học gì, đã đạt được gì, và nên làm gì tiếp theo”.

StateTriggerNội dung chính
normalCó ít nhất 1 khóa đang họcTab Overview default, summary gọn + preview cards + điểm vào Khóa học
no_course_assignedChưa mua / chưa được assign khóa nàoEmpty state, hướng phụ huynh tới trang khóa học
TabVai tròGhi chú
OverviewTab mặc định, chứa summary + Việc cần làm section + snapshot rail cô đọng từ các tab khác + reminder cardSnapshot chỉ nhắc tín hiệu quan trọng nhất của tab owner
Khóa họcChứa course-specific snapshot + next action + course stripEntry chính vào Course List
Kho đềKho tự luyện đề theo level và dạng đềKhông phụ thuộc syllabus của khóa
Lịch họcChỉ xem schedule sắp tớiKhông đi sâu vào nội dung bên trong buổi học
Thành tíchXem certificate, badge, vinh danh học viên của thángTab động lực, không phải analytics
Kỷ niệmThư viện hình ảnh/kỷ niệmLater

CTA chính từ tab Overview: đưa user sang tab Khóa học. CTA phụ hợp lệ: mở Learning Stats. CTA chính từ tab Khóa học: Đưa user vào Course List. Global top bar: Active child chip + Active course chip + nút ”↩ Parent Dashboard”.

ElementMô tả
Level gateChỉ mở Starter / Movers / Flyers phù hợp với child hiện tại
Type groupsFull Test, Reading & Writing, Listening, Speaking
Item listDanh sách đề trong group đang chọn với trạng thái available / in_progress / done

Rule: Kho đề là lane tự luyện độc lập với course syllabus. Không dùng tab này để hiển thị homework hay progress của khóa học.


URL pattern: /kid/lms/learning-stats Vai trò: Trả lời “bé đang tiến bộ tới đâu, vừa làm được gì gần đây, và nên tập trung điều gì tiếp theo” theo cách nhẹ, child-friendly.

StateTriggerNội dung chính
new_learnerDữ liệu học tập còn ítcopy tích cực + focus vào bắt đầu chặng học đầu tiên
active_progressCó khóa và có dữ liệu gần đâyLearning Pulse Hero + progress snapshot + focus next
between_tasksVừa hoàn thành một hoạt độngrecent completion + next focus
no_course_assignedChưa có khóaempty state nhẹ, không tạo stats giả
ClusterMô tả
Learning Pulse Hero1 insight chính, không nhiều KPI ngang hàng
Current Course Progresskhóa hiện tại, đang ở topic/chặng nào, đã đi được bao xa
Recent Learning Activitysnapshot ngắn của exercise/test gần đây
Focus Now1 gợi ý tiếp theo dễ hiểu cho trẻ

Rule: Learning Stats là secondary view của LMS Home, không phải top-level tab thứ 7 và không thay vai trò của Thành tích hoặc Parent Dashboard.


URL pattern: /kid/lms/courses Vai trò: Trả lời “bé đang có những khóa nào và vào khóa nào bây giờ”.

StateTriggerLayout
one_courseChỉ 1 khóaHero card lớn, CTA trực tiếp vào Course Detail
many_coursesTừ 2 khóa trở lênGrid / list card, highlight khóa đang active

Navigation đi ra: → Course Detail (chọn một khóa cụ thể).


URL pattern: /kid/lms/courses/:courseId Vai trò: Trả lời “trong khóa này bé đang ở đâu và nên đi tiếp vào lane nào”.

Course Detail chỉ có 3 tab cố định:

URL pattern: /kid/lms/courses/:courseId/overview

ElementMô tả
Course progress bar% hoàn thành tổng khóa
Lesson progressDanh sách bài học + trạng thái
Exercise summary stripSố bài exercise chưa làm / đã xong - CTA → Exercise Home
CTA chính”Tiếp tục học” → Exercise Home hoặc bài học tiếp theo

URL pattern: /kid/lms/courses/:courseId/learn

ElementMô tả
Topic / lesson syllabusDanh sách học theo 24 topic với trạng thái (locked / in-progress / done)
CTA mỗi bài”Xem bài” → Player (ngoài scope hiện tại)
Exercise shortcutLink phụ → Exercise Home

URL pattern: /kid/lms/courses/:courseId/practice

ElementMô tả
Exercise library viewNhìn khóa theo hướng kho bài tập
Exercise entry pointCard / banner → Exercise Home
Practice types (future / next expansion)Online Test, Dictation, Vocab, Assignment W/S, AI-powered Exercise - placeholder nếu chưa mở

Rule: User KHÔNG nhảy thẳng từ Course Detail vào một attempt. Phải đi qua Exercise Home trước.

Navigation đi ra từ mọi tab: → Exercise Home.


URL pattern: /kid/lms/courses/:courseId/exercises Vai trò: Trả lời “trong khóa này có những bài exercise nào, bài nào cần làm ngay, bài nào đã xong, điểm hiện tại ra sao”.

StateTriggerUI
loadingĐang fetch dataSkeleton cards
emptyKhông có bài nào được assignEmpty state, message + nút quay lại Course Detail
errorFetch thất bạiError state, nút retry
successCó dữ liệuDanh sách exercise cards
Card statusHiển thị
Bắt buộc, chưa làmBadge “Cần làm”, no score
Đang làm dởBadge “Tiếp tục”, progress %
Đã xongBadge “Hoàn thành” + điểm (nếu có)
Bài ôn / làm thêmBadge “Ôn lại”, no priority highlight
  1. Bài bắt buộc chưa làm
  2. Bài đang làm dở
  3. Bài vừa xong / cần xem điểm
  4. Bài ôn lại hoặc làm thêm

Post-completion update: Sau khi hoàn thành Exercise Detail, hệ thống phải:

  • Cập nhật card bài tương ứng trong Exercise Home
  • Cập nhật summary strip của Exercise Home
  • Cập nhật progress lane exercise trong Course Detail

Navigation đi ra: → Exercise Detail / Do Exercise. Return path: → Course Detail | → LMS Home.


URL pattern: /kid/lms/courses/:courseId/exercises/:exerciseId Vai trò: Nơi làm bàixem kết quả của chính bài đó.

Exercise Detail có 2 state chính:

State: do_exercise

ElementMô tả
Exercise playerCâu hỏi / task của bài
Progress indicatorCâu x / tổng số câu
Submit CTA”Nộp bài” → chuyển sang state done_xem_diem
ExitNút thoát → về Exercise Home (progress giữ nguyên)

State: done_xem_diem

ElementMô tả
Score displayĐiểm số / kết quả bài
Feedback / reviewĐáp án đúng/sai (nếu enabled)
CTA chính”Quay về danh sách bài” → Exercise Home
CTA phụ (tuỳ chọn)“Làm lại” → reset về state do_exercise

Rule: Done / Xem điểm không là một page/module riêng. Nó là state thứ 2 của Exercise Detail. Không tạo route mới cho state này.


/kid/lms → LMS Home
/kid/lms/learning-stats → Learning Stats
/kid/lms/courses → Course List
/kid/lms/courses/:courseId → Course Detail (default: Overview tab)
/kid/lms/courses/:courseId/overview → Course Detail / Overview
/kid/lms/courses/:courseId/learn → Course Detail / Learn
/kid/lms/courses/:courseId/practice → Course Detail / Practice
/kid/lms/courses/:courseId/exercises → Exercise Home
/kid/lms/courses/:courseId/exercises/:exerciseId → Exercise Detail
(state: do_exercise | done_xem_diem)

KeyMục đích
child_idGiữ đúng child context
course_idGiữ đúng khóa học
exercise_idXác định đúng bài
source_contextBiết user đi từ lms_home, course_overview, course_learn, course_practice, hay result_next_step
returnToĐảm bảo quay lại đúng context sau khi hoàn thành
  • Nếu returnTo hết hạn hoặc không hợp lệ, fallback về Exercise Home.
  • Nếu thiếu context để vào Exercise Home, fallback về Course Detail / Practice.
  • Sitemap v1 chỉ khóa cứng routing-context cho lane Exercise; các lane khác sẽ được bổ sung khi route-expand.

[Parent Dashboard]
[LMS Home] ──────────────────────────────────────────────────────┐
│ CTA chính │
▼ │
[Course List] │
│ chọn khóa │
▼ │
[Course Detail] ◄──────────────────────────────────────┐ │
┌────┴─────────────────────┐ │ │
│ Overview │ Learn │ Practice │ │
└────────────────┬─────────┘ │ │
│ CTA (từ bất kỳ tab nào) │ │
▼ │ │
[Exercise Home] ◄──────────────────────────────┤ │
│ chọn bài │ │
▼ │ │
[Exercise Detail] │ │
state: do_exercise │ │
│ nộp bài │ │
▼ │ │
[Exercise Detail] │ │
state: done_xem_diem │ │
│ quay về │ │
└───────────────────────────────────►┘ │
[LMS Home] ◄──────────────────────────────────────────────────────┘

ScreenStates
LMS Homenormal · no_course_assigned · tab Overview(default) · tab Khóa học · tab Kho đề · tab Lịch học · tab Thành tích · tab Kỷ niệm(later)
Learning Statsnew_learner · active_progress · between_tasks · no_course_assigned
Course Listone_course · many_courses
Course Detailoverview · learn · practice
Exercise Homeloading · empty · error · success
Exercise Detaildo_exercise · done_xem_diem

  • ❌ Exercise Bank (top-level, cross-course)
  • ❌ Top-level analytics-heavy Results / Stats / Leaderboard / Certificate pages
  • Done / Xem điểm as a separate route/module
  • ❌ Analytics phụ huynh trong Course Detail
  • ❌ Search / filter / sort phức tạp trong Exercise Home (baseline)

LanePath / shapeƯu tiênGhi chú
Assignment W/S/kid/lms/courses/:id/assignmentsP1Logic-approved; chưa route-expand trong sitemap v1
AI-powered Exercise/kid/lms/courses/:id/ai-practiceP1Logic-approved; cần contract riêng trước khi route-expand
Online Test/kid/lms/courses/:id/testsP2Sau khi Exercise lane ổn định
Dictation/kid/lms/courses/:id/dictationP2Practice Launcher future
Vocab/kid/lms/courses/:id/vocabP2Practice Launcher future

  • 2026-03-24: Bổ sung Learning Stats như secondary view learner-facing ở cấp LMS Home; không mở thêm top-level tab mới.
  • 2026-03-23: Chuyển LMS Home sang 5-tab shell; Overview là tab riêng và là default, còn Khóa học trở thành tab quyết định chính trước Course List.
  • 2026-03-23: Làm rõ Overview là tab summary mặc định của LMS Home; tab Lịch học chỉ focus vào schedule, còn stats khóa học nằm ở tab Khóa học.
  • 2026-03-16: Tạo sitemap đầu tiên cho logged-in KID LMS từ Logic Handoff. Focus: lane Course + Exercise.
  • 2026-03-17: Làm rõ đây là sitemap v1 cho Exercise route family; Assignment W/SAI-powered Exercise là logic-approved backlog, chưa route-expand đầy đủ.
  • 2026-03-17: Bổ sung Routing Context Contract để flow/parity review có đủ dữ liệu về source_contextreturnTo.