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

Static Action Diversification (Feature Spec)

DomainsDOL EnglishUX1.350 words7 min read
active

Context: Enhancing Smart Search v3 to support multi-layer navigation (Generic vs. Specific) for Course Management. Parent Document: CM_FEATURE_Smart_Search.md (Tổng hợp nội dung & Architecture).

Học viên tương tác với hệ thống quản lý khóa học qua 4 trụ cột chính:

  1. Learning (Học tập): Bài tập, Tài liệu, Tự học.
  2. Logistics (Vận hành): Lịch học, Phòng học, Điểm danh.
  3. Performance (Kết quả): Điểm số, Feedback, Chứng chỉ.
  4. Admin (Hành chính): Học phí, Bảo lưu, Xin nghỉ.

Hệ thống Search cần đáp ứng cả nhu cầu “Tìm đường” (Generic) và “Giải quyết nhanh” (Specific).

2. Detailed Action Matrix (Ma trận hành động)

Phần tiêu đề “2. Detailed Action Matrix (Ma trận hành động)”
EntityGeneric Action (Page Level)Specific / Contextual Action (Deep-link)User Need (Why?)
AssignmentsACT_ASSIGNMENT -> “Danh sách BTVN”- “BTVN chưa làm (Due Today)” (Urgent)
- “BTVN vừa được chấm” (Feedback)
Ưu tiên làm bài sắp hết hạn hoặc xem điểm số.
Online TestsACT_ONLINE_TEST -> “Phòng thi Online”- “Bài kiểm tra 15p sắp diễn ra” (Upcoming)
- “Bài thi giữa kỳ đang mở” (Active)
Truy cập nhanh vào phòng thi đúng giờ, tránh trễ giờ.
AI MockACT_AI_MOCK_TEST -> “Sảnh thi thử AI”- “Thi thử Speaking Full Test” (Start Now)
- “Xem kết quả bài Mock hôm qua” (Review)
Luyện tập ngay lập tức khi có hứng thú.
VocabACT_VOCAB -> “Kho từ vựng”- “Từ vựng Unit 5 (Bài hiện tại)”
- “Ôn tập 20 từ yếu nhất (Flashcard)“
Tập trung ôn đúng trọng tâm bài học hiện tại.
ExercisesACT_EXERCISE -> “Kho bài luyện tập”- “Luyện tập: Matching Headings” (Skill Drill)
- “Luyện tập: Map Labelling”
Cải thiện kỹ năng cụ thể thay vì làm bài hỗn hợp.
DictationACT_DICTATION -> “Luyện nghe chép”- “Nghe chép: Unit 5 Part 1” (New)
- “Resume bài nghe hôm qua”
Tiếp tục mạch luyện nghe liên tục.
MaterialsACT_MATERIAL -> “Kho tài liệu”- “Slide bài học tối nay” (Session Slide)
- “File nghe Unit 5” (Audio)
Tải nhanh tài liệu để mang đi học.
EntityGeneric Action (Page Level)Specific / Contextual Action (Deep-link)User Need (Why?)
ScheduleACT_SCHEDULE -> “Xem lịch học”- “Buổi học tiếp theo” (Next Class Info)
- “Link Zoom lớp online” (Join Action)
- “Lịch học bù đã book”
Cần biết ngay tối nay học gì, ở đâu, phòng nào.
AttendanceACT_ATTENDANCE -> “Lịch sử điểm danh”- “Tình trạng điểm danh hôm nay” (Checked-in?)
- “Số buổi vắng còn lại” (Warning)
Kiểm tra xem mình có bị đánh vắng nhầm không.
BookingACT_BOOKING -> “Trang đặt lịch”- “Book lịch thi lại Speaking”
- “Đăng ký lớp bổ trợ tối mai”
Thao tác đăng ký nhanh các slot có hạn.
EntityGeneric Action (Page Level)Specific / Contextual Action (Deep-link)User Need (Why?)
ResultACT_RESULT -> “Bảng điểm tổng”- “Điểm thi thử mới nhất” (Latest Score)
- “Biểu đồ kỹ năng Writing” (Skill Detail)
User thường chỉ quan tâm đến kết quả vừa có.
CertificateACT_CERTIFICATE -> “Kho chứng chỉ”- “Tải chứng chỉ IELTS [Mới nhất]” (Direct Download)Cần file PDF ngay để nộp hồ sơ/CV.
FeedbackACT_FEEDBACK -> “Lời phê giáo viên”- “Feedback mới nhất từ thầy Alex”Tò mò xem thầy nhận xét gì về bài làm hôm qua.
EntityGeneric Action (Page Level)Specific / Contextual Action (Deep-link)User Need (Why?)
FinanceACT_PAYMENT -> “Thông tin học phí”- “Hạn đóng học phí kế tiếp” (Due Date)
- “Tải hóa đơn VAT”
Chuẩn bị tài chính hoặc làm thủ tục thanh toán.

2.5. Cross-Context Expansion (NEW - Multi-Course & Hybrid)

Phần tiêu đề “2.5. Cross-Context Expansion (NEW - Multi-Course & Hybrid)”

Hệ thống cần hỗ trợ học viên tham gia nhiều lớp hoặc hoạt động cùng lúc (VD: Lớp chính + Lớp bổ trợ + CLB).

EntityContextGeneric ActionSpecific / Contextual Action (Deep-link)
HomeworkIELTS IntensiveACT_PRACTICE[Priority] “Writing Task 1: Bar Chart” (Due Today)
SAT Foundation”Math: Algebra Practice” (New Assignment - Cross-Course)
Workshop”Prep: Speaking Topic” (Optional Activity)
ScheduleMain ClassACT_SCHEDULE[Priority] “Buổi học: Unit 6” (19:30 Today)
Extra Event”Lịch thi thử Mock Test” (Saturday)
Activity”Tham gia Workshop: Pronunciation” (Tomorrow)

2.6. Multi-Course Context Resolution (New Strategy)

Phần tiêu đề “2.6. Multi-Course Context Resolution (New Strategy)”

Để giải quyết vấn đề “Ambiguity” (Mơ hồ) khi học viên học nhiều khóa cùng lúc (VD: IELTS + SAT), hệ thống áp dụng cơ chế “Context-Aware Forking”.

Khi detect một Intent generic (như ACT_ASSIGNMENT), hệ thống kiểm tra số lượng Active Course của User:

  1. Single Course: Trả về 1 kết quả duy nhất (Behavior cũ).
  2. Multi Course: “Nhân bản” Action đó thành nhiều instances gắn với từng Context.

Example Input: “bài tập”

  • Result 1: AssignmentsIELTS Intensive (Context: course_ielts_01)
  • Result 2: AssignmentsSAT Math (Context: course_sat_02)

Hệ thống chấm điểm (Scoring) để sắp xếp thứ tự dựa trên Vị trí hiện tại (Local Context) của User:

  • Nếu User đang đứng ở trang IELTS Dashboard -> Boost IELTS results lên đầu (+5 điểm).
  • Nếu User đang ở trang chủ (Global Dashboard) -> Sắp xếp theo Last Accessed Time.

C. Chiến lược Hiển thị (UI Disambiguation)

Phần tiêu đề “C. Chiến lược Hiển thị (UI Disambiguation)”
  • Format: [Action Name] + [Course Badge]
  • Visual: Badge tên khóa học hiển thị nhạt (Secondary Text) ở bên phải hoặc dưới tên Action để user dễ phân biệt.

2.7. Hybrid Scope Resolution (Dual-Nature Handling)

Phần tiêu đề “2.7. Hybrid Scope Resolution (Dual-Nature Handling)”

Dành cho các Action vừa có tính toàn cục vừa có tính cục bộ (như ACT_LEADERBOARD, ACT_CERTIFICATE, ACT_RESULT).

  1. Global Aggregator: Luôn tạo ra 1 kết quả dẫn về trang tổng hợp (Hub).
    • Example: “Bảng xếp hạng thành tích (Tổng hợp)” -> Link: /leaderboard/global
  2. Context Instances: Forking ra kết quả cho từng khóa học (nếu User enrolled > 0).
    • Example: “BXH • Lớp IELTS Intensive” -> Link: /course/ielts/leaderboard
    • Example: “BXH • Lớp SAT Math” -> Link: /course/sat/leaderboard

Để tránh rối mắt, kết quả Hybrid sẽ được gom nhóm:

  • Group: Global Actions -> Chứa kết quả Aggregator.
  • Group: Your Courses -> Chứa kết quả Context Instances.

Để phân biệt giữa Generic và Specific, UI sẽ hiển thị khác nhau:

  • Generic Item: Icon + Title ngắn gọn + Badge “Page”.
    • [Calendar Icon] Xem lịch học
  • Specific Item: Icon + Title chi tiết + Subtitle ngữ cảnh + Action Button.
    • [Calendar Icon] Buổi học tối nay: Writing Task 1
    • Subtitle: 19:30 - Phòng 302 - GV: Ms. Hoa
    • CTA: [Check-in]

Sẽ nâng cấp hàm resolve của từng Action trong Registry để trả về mảng kết hợp:

// Pseudo-code for ACT_SCHEDULE resolve
resolve: async () => {
return [
{ type: 'deep-link', title: 'Next Class: Unit 5', subtitle: 'Tonight 19:30', ... }, // Specific (Priority High)
{ type: 'nav', title: 'Full Schedule', subtitle: 'View Calendar', ... } // Generic (Fallback)
]
}