Quản lý khóa học - Activity Model
DomainsDOL EnglishUX792 words4 min read
Quản lý khóa học - Activity Model (Learning Management)
Phần tiêu đề “Quản lý khóa học - Activity Model (Learning Management)”Purpose
Phần tiêu đề “Purpose”- Vấn đề: Dữ liệu tác vụ khóa học phân tán theo nhiều nguồn khiến ưu tiên hành động không nhất quán.
- Đối tượng chính: Learner, Teacher operation và hệ thống hiển thị Worklist/Course Hub.
- Tín hiệu thành công: Danh sách hành động nhất quán giữa tab, deeplink chính xác và giảm tỷ lệ task bị bỏ sót.
Elements / Scope
Phần tiêu đề “Elements / Scope”- Định nghĩa
Activity: đơn vị hành động hoặc kết quả gắn với khóa. - Types (mở rộng):
Class session(Offline/Online/Hybrid)Homework item(Syllabus)Assignment(bắt buộc)Practice(Exercises/Vocab/Online test/AI mock/Sample W/S)Final test/Mock test/CheckpointFeedback(GV/AI)Result(kết quả test/bài quan trọng)Reminder(tái luyện sau kết quả)Extra classLeaderboard pulse(thăng/giảm hạng, huy hiệu mới, trạng thái chốt hạng)
- Metadata tối thiểu:
resourceType/resourceId(link SSOT)courseId,courseType,activityType,titleskill(nếu có),required(true/false)startAt/endAt,dueAt(nếu có)state(xem bên dưới),progressdeeplink(đến tab/màn chứa activity)reason(lý do hiển thị / lý do bị khoá)version(rule/chấm điểm, nếu là Result)
Logic
Phần tiêu đề “Logic”- Mọi tab (Home, Courses hub, Schedule, Test History, Certificates) là view khác của
Activity[]hoặc snapshot liên quan. - Worklist/Quick search chỉ dùng activity có
deeplinkrõ; luôn kèmreasonđể tránh blackbox. - Reminder từ kết quả: tạo
Practiceoptional với dueAt gợi ý (ví dụ +3 ngày). - Result: khi
Done, tạo recordResultvới version chấm; nếu regrade → cập nhật version, giữ lịch sử. - Leaderboard pulse: nhận từ event leaderboard/gamification, dùng cho Home info strip và deeplink sang Achievements/Leaderboard read-only.
Data model / API touchpoints
Phần tiêu đề “Data model / API touchpoints”- SSOT: Course Detail + Schedule/Syllabus/Tests/Results.
Activity[]normalize: mỗi activity trỏ về 1 resource gốc quaresourceType/resourceId.deeplinkderive từ loại:session→ Schedule;task/practice→ Course Detail/Focus Flow;result→ Test Result;certificate→ Certificates;badge→ Achievements.- Event đề xuất cho pulse:
rank_up/rank_downbadge_earnedrank_locked
State model / Edge cases
Phần tiêu đề “State model / Edge cases”Locked: chưa mở/khóa điều kiện.Available: có thể làm.In progress: đang làm.Done: hoàn thành.Expired: quá hạn/hết quyền.Cancelled: hủy/đổi lịch (session).Archived: lưu lịch sử, không actionable.- Edge cases:
deeplinkkhông hợp lệ: fallback về tab gần nhất có cùngactivityType.- Activity trễ đồng bộ: hiển thị
reason = "sync_pending"và khoá CTA tới khi có trạng thái cuối. - Result regrade: giữ lịch sử version cũ, hiển thị version mới là active.
flowchart TD classDef green fill:#00332c,stroke:#00b894,color:#e6fffa,rx:8,ry:8; classDef red fill:#4a0f0f,stroke:#ff7675,color:#fff5f5,rx:8,ry:8; classDef blue fill:#0c2d48,stroke:#0984e3,color:#e3f2fd,rx:8,ry:8; classDef grey fill:#2c3e50,stroke:#8b9bb4,color:#ecf0f1,rx:8,ry:8;
Locked["Locked\n(Chưa mở)"] -->|unlock| Available["Available\n(Có thể làm)"] Available -->|start| InProgress["In progress\n(Đang làm)"] InProgress -->|resume| InProgress InProgress -->|submit/complete| Done["Done\n(Hoàn thành)"] Available -->|expire| Expired["Expired\n(Hết hạn)"] InProgress -->|expire| Expired Available -->|cancel| Cancelled["Cancelled\n(Đã hủy)"] InProgress -->|cancel| Cancelled Done -->|archive| Archived["Archived\n(Lưu lịch sử)"] Expired -->|archive| Archived Cancelled -->|archive| Archived
class Locked,Archived grey; class Available,InProgress blue; class Done green; class Expired,Cancelled red;UI / Behavior
Phần tiêu đề “UI / Behavior”- Activity card:
title,skill,state,required,dueAt/startAt,reason; CTA theo state (Start/Resume/Join/View). - Flow chính (Home/Worklist) chỉ show
Available/In progress; trạng thái đặc biệt hiển thị ở view chi tiết (Schedule/History). - Highlight item khi deeplink từ search/notification trong 5s (ring).
Dependencies / Integration
Phần tiêu đề “Dependencies / Integration”- Tích hợp:
Register,Payment,Zoom/Video Course; timezone-aware; quiet hours cho notifications. - Completion events nuôi Achievements/Certificates/Leaderboard snapshots.
- Leaderboard events nuôi Home pulse strip; snapshot chốt nuôi Achievements và Memory Capsule (class showcase read-only).
Metrics / Analytics
Phần tiêu đề “Metrics / Analytics”activity_card_action_rate: tỷ lệ click CTA theo từngactivityType/state.deeplink_success_rate: tỷ lệ deeplink mở đúng resource đích.activity_sync_delay_ms: độ trễ đồng bộ trạng thái từ SSOT sangActivity[].reminder_to_completion_rate: tỷ lệ hoàn thành task sau khi tạoReminder.
Change log
Phần tiêu đề “Change log”- 2026-02-11: Bổ sung
Leaderboard pulsevào Activity model để chuẩn hóa luồng event Home <-> Achievements <-> Leaderboard. - 2026-02-07: Chuẩn hóa template v2, đổi heading Data/State chuẩn, bổ sung edge cases và metrics vận hành.
- 2026-01-20: Bổ sung Result/Reminder, version chấm, highlight deeplink, mapping deeplink đa view.
- 2026-01-18: Khởi tạo Activity Model cho Course Management.