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

Quản lý khóa học - Activity Model

DomainsDOL EnglishUX792 words4 min read
activebyDOL Product Design

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)”
  • 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.
  • Đị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 / Checkpoint
    • Feedback (GV/AI)
    • Result (kết quả test/bài quan trọng)
    • Reminder (tái luyện sau kết quả)
    • Extra class
    • Leaderboard 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, title
    • skill (nếu có), required (true/false)
    • startAt/endAt, dueAt (nếu có)
    • state (xem bên dưới), progress
    • deeplink (đế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)
  • 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ó deeplink rõ; luôn kèm reason để tránh blackbox.
  • Reminder từ kết quả: tạo Practice optional với dueAt gợi ý (ví dụ +3 ngày).
  • Result: khi Done, tạo record Result vớ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.
  • SSOT: Course Detail + Schedule/Syllabus/Tests/Results.
  • Activity[] normalize: mỗi activity trỏ về 1 resource gốc qua resourceType/resourceId.
  • deeplink derive 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_down
    • badge_earned
    • rank_locked
  • 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:
    • deeplink không hợp lệ: fallback về tab gần nhất có cùng activityType.
    • 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;
  • 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).
  • 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).
  • activity_card_action_rate: tỷ lệ click CTA theo từng activityType/state.
  • deeplink_success_rate: tỷ lệ deeplink mở đúng resource đích.
  • activity_sync_delay_ms: độ trễ đồng bộ trạng thái từ SSOT sang Activity[].
  • reminder_to_completion_rate: tỷ lệ hoàn thành task sau khi tạo Reminder.
  • 2026-02-11: Bổ sung Leaderboard pulse và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.