Static Action Diversification (Feature Spec)
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).
1. Context Map & User Needs
Phần tiêu đề “1. Context Map & User Needs”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:
- Learning (Học tập): Bài tập, Tài liệu, Tự học.
- Logistics (Vận hành): Lịch học, Phòng học, Điểm danh.
- Performance (Kết quả): Điểm số, Feedback, Chứng chỉ.
- 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)”2.1. Learning Domain (Học tập)
Phần tiêu đề “2.1. Learning Domain (Học tập)”| Entity | Generic Action (Page Level) | Specific / Contextual Action (Deep-link) | User Need (Why?) |
|---|---|---|---|
| Assignments | ACT_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 Tests | ACT_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 Mock | ACT_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ú. |
| Vocab | ACT_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. |
| Exercises | ACT_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. |
| Dictation | ACT_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. |
| Materials | ACT_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. |
2.2. Logistics Domain (Vận hành)
Phần tiêu đề “2.2. Logistics Domain (Vận hành)”| Entity | Generic Action (Page Level) | Specific / Contextual Action (Deep-link) | User Need (Why?) |
|---|---|---|---|
| Schedule | ACT_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. |
| Attendance | ACT_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. |
| Booking | ACT_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. |
2.3. Performance Domain (Kết quả)
Phần tiêu đề “2.3. Performance Domain (Kết quả)”| Entity | Generic Action (Page Level) | Specific / Contextual Action (Deep-link) | User Need (Why?) |
|---|---|---|---|
| Result | ACT_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ó. |
| Certificate | ACT_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. |
| Feedback | ACT_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. |
2.4. Admin Domain (Hành chính)
Phần tiêu đề “2.4. Admin Domain (Hành chính)”| Entity | Generic Action (Page Level) | Specific / Contextual Action (Deep-link) | User Need (Why?) |
|---|---|---|---|
| Finance | ACT_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).
| Entity | Context | Generic Action | Specific / Contextual Action (Deep-link) |
|---|---|---|---|
| Homework | IELTS Intensive | ACT_PRACTICE | [Priority] “Writing Task 1: Bar Chart” (Due Today) |
| SAT Foundation | ”Math: Algebra Practice” (New Assignment - Cross-Course) | ||
| Workshop | ”Prep: Speaking Topic” (Optional Activity) | ||
| Schedule | Main Class | ACT_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”.
A. Logic Phân nhánh (Action Forking)
Phần tiêu đề “A. Logic Phân nhánh (Action Forking)”Khi detect một Intent generic (như ACT_ASSIGNMENT), hệ thống kiểm tra số lượng Active Course của User:
- Single Course: Trả về 1 kết quả duy nhất (Behavior cũ).
- 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: Assignments • IELTS Intensive (Context:
course_ielts_01) - Result 2: Assignments • SAT Math (Context:
course_sat_02)
B. Logic Ưu tiên (Context Bias)
Phần tiêu đề “B. Logic Ưu tiên (Context Bias)”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).
Logic Phân giải (Resolution Flow):
Phần tiêu đề “Logic Phân giải (Resolution Flow):”- 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
- Example: “Bảng xếp hạng thành tích (Tổng hợp)” -> Link:
- 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
- Example: “BXH • Lớp IELTS Intensive” -> Link:
UI Grouping Strategy
Phần tiêu đề “UI Grouping Strategy”Để 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.
3. UI Visualization Strategy
Phần tiêu đề “3. UI Visualization Strategy”Để 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 1Subtitle: 19:30 - Phòng 302 - GV: Ms. HoaCTA: [Check-in]
4. Implementation Logic Update
Phần tiêu đề “4. Implementation Logic Update”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 resolveresolve: 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) ]}