Tài liệu dự án · Sách ôn thi Hybrid TNTHPT

#05 – User flow & thiết kế trải nghiệm

Giai đoạn: Thiết kế UX · Nguồn: [UF], [MT], 03 – SRS · Phiên bản 0.1 – 29/10/2026

Các luồng dưới đây chuyển từ sơ đồ draw.io [UF] sang Mermaid, bổ sung các bước còn thiếu (đánh dấu ★) theo phát hiện F1–F7 ở 02 §3.3.

#1. Nguyên tắc thiết kế

# Nguyên tắc Áp dụng cụ thể
1 Ô nhập ID là trung tâm Ô nhập ID chiếm vị trí đầu trang chủ và có trên thanh đầu trang mọi màn hình; bàn phím tự bật chữ hoa
2 Ba chạm tới nội dung Quét QR → nội dung (1 chạm); mở web → nhập ID → nội dung (≤ 3 chạm)
3 Luôn có đường quay về sách Cuối mỗi tài nguyên: "Học tiếp trên sách – trang X, mục Y"
4 Kết quả luôn dẫn tới hành động Màn hình kết quả có khối "Ôn gì tiếp" với ID tương ứng trên sách
5 Thiết kế cho điện thoại, 4G chập chờn Tự lưu, trạng thái ngoại tuyến, ảnh/video tải theo nhu cầu
6 Không làm học sinh mất bài Không có thao tác nào xoá câu trả lời mà không xác nhận
7 Tôn trọng thói quen làm đề trên giấy Chế độ Phiếu trả lời và Tra đáp án ngang hàng với Làm trên máy

#2. User flow

#2.1 Kích hoạt sách lần đầu

★ Luồng bổ sung, không có trong [UF].

flowchart TD
    A(["Mua sách, cào tem/quét QR kích hoạt"]) --> B{"Đã đăng nhập?"}
    B -- "Chưa" --> C["Đăng nhập / Đăng ký<br/>(giữ mã kích hoạt)"]
    C --> D
    B -- "Rồi" --> D["Trang kích hoạt<br/>mã điền sẵn"]
    D --> E{"Kiểm tra mã"}
    E -- "Hợp lệ" --> F["Xác nhận thông tin sách"]
    F --> G["Kích hoạt thành công<br/>Hướng dẫn dùng ID trên sách"]
    G --> H(["Sách của tôi"])
    E -- "Không tồn tại" --> I["Báo lỗi, gợi ý ký tự dễ nhầm"] --> D
    E -- "Đã dùng bởi tài khoản này" --> H
    E -- "Đã dùng bởi tài khoản khác" --> J["Báo lỗi + mã tham chiếu<br/>Liên hệ hỗ trợ"]
    E -- "Sai quá nhiều lần" --> K["Captcha / khoá tạm 15 phút"]

#2.2 Toán (chuyển từ [UF], bổ sung ★)

flowchart TD
    subgraph GIAY["📖 Sách giấy"]
        G1(["Mở sách giấy"]) --> G2["Xem mind map lý thuyết"]
        G2 -- "đã hiểu" --> G3["Xem ví dụ minh hoạ"]
        G3 -- "đã hiểu" --> G4["Làm bài tập thực hành"]
        G5["Làm đề thi thử"]
    end
    subgraph SO["📱 Nền tảng số"]
        S1["Nhập ID mind map"] --> S2["Xem giải thích lý thuyết<br/>(text, video)"]
        S3["Nhập ID ví dụ"] --> S4["Xem video giải thích"]
        S5["Nhập ID bài tập"] --> S5a{"★ Chọn chế độ"}
        S5a -- "Làm trên máy" --> S5b["★ Làm bài tương tác"] --> S6
        S5a -- "Đã làm trên giấy" --> S6["Xem đáp án, giải thích"]
        S6 --> S7["Nhận đề xuất kiến thức"]
        S8["★ Nhập ID đề"] --> S8a{"★ Chọn chế độ"}
        S8a -- "Làm trên máy (90 phút)" --> S8b["★ Làm đề"] --> S9["★ Kết quả, đáp án, giải thích"]
        S8a -- "Đã làm trên giấy" --> S9
        S9 --> S7
        S10["★ Gói đề mở rộng (P3)"]
    end
    G2 -- "cần chi tiết" --> S1
    S2 --> G3
    G3 -- "cần chi tiết" --> S3
    S4 --> G4
    G4 --> S5
    S7 -- "chuyên đề yếu" --> S2
    S6 --> G5
    G5 --> S8
    S9 -- "★ làm hết đề trong sách" --> S10

#2.3 Tiếng Anh (chuyển từ [UF], bổ sung ★)

flowchart TD
    subgraph GIAY["📖 Sách giấy"]
        G1(["Mở sách giấy"]) --> G2["Đọc hướng dẫn làm test"]
        G2 -- "không test" --> G3["Xem tổng hợp kiến thức (lý thuyết)"]
        G3 -- "bỏ qua chi tiết" --> G4["Xem cấu trúc đề, dạng bài"]
        G4 --> G5["Xem đề luyện tập"]
    end
    subgraph SO["📱 Nền tảng số"]
        S1["Nhập ID test (1–5)"] --> S2["Làm mini test 20 câu<br/>một câu/màn hình, đo thời gian"]
        S2 --> S3["Xem kết quả, đáp án, giải thích"]
        S3 --> S4["Nhận đề xuất kiến thức<br/>(chuyên đề trong 12 chuyên đề)"]
        S4 --> S6
        S5["Nhập ID chuyên đề"] --> S6["Xem video giải thích 3–5 phút"]
        S6 --> S7["Làm bài tập thực hành 5–10 câu"]
        S8["Nhập ID đề luyện tập"] --> S8a{"★ Chọn chế độ"}
        S8a -- "Làm trên máy (50 phút)" --> S9["Làm đề luyện tập"]
        S8a -- "Đã làm trên giấy" --> S10
        S9 --> S10["★ Kết quả, key, giải thích"]
        S10 --> S11["★ Đề xuất chủ đề/dạng bài sai nhiều"]
        S11 --> S6
    end
    G2 -- "làm test" --> S1
    G3 -- "xem chi tiết" --> S5
    S7 -- "muốn xem cấu trúc đề" --> G4
    S7 -- "muốn làm đề" --> S8
    G5 -- "muốn làm đề" --> S8

#2.4 Ngữ văn (suy ra từ [MT])

flowchart TD
    subgraph GIAY["📖 Sách giấy"]
        G1(["Mở sách giấy"]) --> G0["Đọc phân tích cấu trúc đề thi"]
        G0 --> G2["Xem mind map kỹ năng"]
        G2 -- "đã hiểu" --> G3["Đọc ví dụ và đáp án ngắn gọn"]
        G3 -- "đã hiểu" --> G4["Đọc đề bài tập vận dụng"]
        G6["Đọc đề thi thử (5–10 đề)"]
    end
    subgraph SO["📱 Nền tảng số"]
        S1["Nhập ID kỹ năng"] --> S2["Xem video tóm tắt lý thuyết"]
        S3["Nhập ID ví dụ"] --> S4["Xem video hướng dẫn làm bài"]
        S5["Nhập ID bài / đề"] --> S5a{"Chọn chế độ"}
        S5a -- "Viết trên máy" --> S5b["Soạn bài / tải ảnh bài viết tay"] --> S6
        S5a -- "Đã viết trên giấy" --> S6["Xem đáp án, hướng dẫn giải"]
        S6 --> S7["Tự chấm theo rubric (P1)"]
        S7 --> S8["Gợi ý kỹ năng cần ôn lại"]
        S8 --> S2
    end
    G2 -- "cần chi tiết" --> S1
    S2 --> G3
    G3 -- "cần chi tiết" --> S3
    S4 --> G4
    G4 --> S5
    S6 --> G6
    G6 --> S5

#2.5 Làm bài và nhận đề xuất (dùng chung 3 môn)

stateDiagram-v2
    [*] --> GioiThieu: Mở bằng ID / QR / bài được giao
    GioiThieu --> TraDapAn: "Đã làm trên giấy"
    GioiThieu --> DangLam: "Bắt đầu" (chọn chế độ hiển thị)
    GioiThieu --> DangLam: "Tiếp tục lượt đang làm"
    DangLam --> DangLam: Trả lời → tự lưu
    DangLam --> NgoaiTuyen: Mất mạng
    NgoaiTuyen --> DangLam: Có mạng, đồng bộ
    DangLam --> DaNop: Nộp bài / hết giờ
    TraDapAn --> PhieuTraLoi: "Nhập đáp án để biết chuyên đề cần ôn"
    PhieuTraLoi --> DaNop
    DaNop --> KetQua: Chấm câu khách quan
    KetQua --> TuCham: Có câu tự luận
    TuCham --> DeXuat
    KetQua --> DeXuat
    DeXuat --> HocLieu: Mở lý thuyết / ví dụ / bài tập
    DeXuat --> SachGiay: "Học tiếp trên sách"
    KetQua --> GioiThieu: Làm lại
    HocLieu --> [*]
    SachGiay --> [*]

#2.6 Giáo viên giao bài ★

sequenceDiagram
    actor GV as Giáo viên
    participant LMS as LMS Hoclieu
    participant SYS as Nền tảng hybrid
    actor HS as Học sinh
    GV->>SYS: Đăng nhập (SSO Hoclieu)
    SYS->>LMS: Lấy danh sách lớp, học sinh
    GV->>SYS: Chọn đề trong sách, chọn lớp, đặt hạn nộp
    SYS-->>HS: Thông báo "Bài được giao"
    HS->>SYS: Làm bài, nộp
    SYS->>SYS: Chấm, gắn lượt với bài giao
    SYS-->>LMS: Đồng bộ điểm (nếu LMS hỗ trợ)
    GV->>SYS: Xem tiến độ, phổ điểm, câu sai nhiều
    GV->>SYS: Giao bài tập củng cố chuyên đề yếu (P2)

#2.7 Sản xuất nội dung và ID cho sách in ★

flowchart LR
    A["BTV biên soạn<br/>bản thảo sách"] --> B["Nhập/Import câu hỏi,<br/>lời giải, video lên CMS"]
    B --> C["Gắn tag<br/>ma trận kiến thức"]
    C --> D["Sinh ID cho tài nguyên"]
    D --> E["Trưởng ban duyệt<br/>& KHOÁ ID"]
    E --> F["Xuất Excel ID + ảnh QR<br/>+ lô mã kích hoạt"]
    F --> G["Dàn trang chèn ID/QR<br/>Nhà in in tem kích hoạt"]
    G --> H["Kiểm tra liên kết<br/>(mọi ID mở được)"]
    H --> I["Xuất bản nội dung số"]
    I --> J(["Sách phát hành"])
    H -- "Lỗi" --> B

Điểm kiểm soát quan trọng: sau bước E, ID không được đổi. Nội dung đích của ID vẫn sửa được trên hệ thống đến trước và sau khi phát hành.

#3. Sơ đồ trang (Sitemap)

flowchart TD
    HOME["SCR-01 Trang chủ<br/>(ô Nhập ID)"] --> AUTH["SCR-02 Đăng nhập / Đăng ký"]
    HOME --> ACT["SCR-03 Kích hoạt sách"]
    HOME --> MY["SCR-04 Sách của tôi"]
    MY --> LIB["SCR-22 Thư viện học liệu (P2)"]
    HOME --> RES{{"Tài nguyên theo ID"}}
    RES --> TH["SCR-05 Lý thuyết"]
    RES --> EX["SCR-06 Ví dụ minh hoạ"]
    RES --> INT["SCR-08 Giới thiệu bài làm"]
    INT --> T1["SCR-09 Làm bài – đề thi"]
    INT --> T2["SCR-10 Làm bài – phiếu trả lời"]
    INT --> T3["SCR-11 Làm bài – một câu/màn hình"]
    INT --> KEY["SCR-13 Đáp án & lời giải"]
    T1 & T2 & T3 --> RS["SCR-12 Kết quả"]
    RS --> KEY
    RS --> SG["SCR-14 Tự chấm tự luận"]
    RS --> REC["SCR-15 Đề xuất củng cố"]
    HOME --> HIS["SCR-16 Lịch sử làm bài"]
    HOME --> PRO["SCR-17 Tiến bộ (biểu đồ)"]
    HOME --> ASG["SCR-23 Bài được giao"]
    HOME --> PKG["SCR-18 Gói đề mở rộng"] --> PAY["SCR-19 Thanh toán"]
    HOME --> ME["SCR-21 Tài khoản"]
    RES -.-> ERR["SCR-20 Không tìm thấy ID /<br/>Chưa kích hoạt"]

#4. Danh mục màn hình

#4.1 Học sinh (web mobile-first)

Mã Màn hình Thành phần chính FR Release
SCR-01 Trang chủ Ô Nhập ID + nút quét QR, Sách của tôi, Bài được giao, Tiếp tục học FR-02.01 MVP1
SCR-02 Đăng nhập / Đăng ký SSO Hoclieu, SĐT/email, quên mật khẩu, đồng ý điều khoản FR-01.01 MVP1
SCR-03 Kích hoạt sách Ô mã (điền sẵn từ QR), thông tin sách, xác nhận, trạng thái lỗi FR-01.02–04 MVP1
SCR-04 Sách của tôi Thẻ sách, hạn dùng, ô nhập ID theo sách FR-01.05 MVP1
SCR-05 Lý thuyết Tiêu đề chuyên đề, video, nội dung text, "Cùng chuyên đề", "Học tiếp trên sách" FR-03.01 MVP1
SCR-06 Ví dụ minh hoạ Đề ví dụ, video, đáp án/phân tích (thu gọn) FR-03.02 MVP1
SCR-07 Trình phát video (thành phần) HLS, tốc độ, toàn màn hình, tiếp tục xem FR-03.03 MVP1
SCR-08 Giới thiệu bài làm Số câu, thời gian, cấu trúc phần, chọn chế độ, "Đã làm trên giấy – xem đáp án", lượt đang làm dở FR-04.02–05, 05.06 MVP1
SCR-09 Làm bài – giao diện đề thi Đồng hồ, câu hỏi, bảng điều hướng, trạng thái lưu, nộp bài FR-04.02 MVP1
SCR-10 Làm bài – phiếu trả lời Lưới câu theo phần, ô A–D / Đ–S / ô số FR-04.03 MVP1
SCR-11 Làm bài – một câu/màn hình Thanh tiến độ 1/20, câu hỏi, nút Tiếp FR-04.04 MVP1
SCR-12 Kết quả Điểm, điểm theo phần, thời gian, đúng/sai/bỏ trống, khối "Ôn gì tiếp" FR-05.01, 05.02 MVP1
SCR-13 Đáp án & lời giải Danh sách câu, lọc câu sai, lời giải, video FR-05.03, 05.06 MVP1
SCR-14 Tự chấm tự luận Bài làm, hướng dẫn giải, rubric chọn mức, tổng điểm "Tự đánh giá" FR-05.04, 05.05 MVP1 / R1
SCR-15 Đề xuất củng cố Danh sách chuyên đề yếu, tỷ lệ sai, liên kết lý thuyết/ví dụ/bài tập + ID sách FR-06.x MVP1 (TA) / R1
SCR-16 Lịch sử làm bài Bộ lọc môn/loại, danh sách lượt FR-07.01–02 R1
SCR-17 Tiến bộ Biểu đồ điểm theo môn FR-07.03–04 R1
SCR-18 Gói đề mở rộng Danh sách gói, giá, đề mẫu FR-08.01 P3
SCR-19 Thanh toán Chọn phương thức, kết quả thanh toán FR-08.02–04 P3
SCR-20 Lỗi ID / Chưa kích hoạt Thông báo, gợi ý, hình vị trí ID, nút Kích hoạt FR-02.05–06 MVP1
SCR-21 Tài khoản Hồ sơ, đổi mật khẩu, xoá tài khoản, điều khoản FR-01.07 MVP1 / R1
SCR-22 Thư viện học liệu Cây sách → phần → chuyên đề, trạng thái đã học FR-03.05–06 R1
SCR-23 Bài được giao Danh sách bài GV giao, hạn nộp, trạng thái FR-09.03 R1

#4.2 Giáo viên

Mã Màn hình FR Release
SCR-GV-01 Lớp của tôi (đồng bộ LMS / mã lớp) FR-09.01 R1
SCR-GV-02 Giao bài FR-09.02 R1
SCR-GV-03 Báo cáo bài giao: tiến độ, phổ điểm, bảng điểm FR-09.04–05, 09.07 R1
SCR-GV-04 Phân tích câu/chuyên đề sai nhiều FR-09.06 R1

#4.3 CMS (BTV, Trưởng ban) và Quản trị (Admin HEID)

Mã Màn hình FR Release
SCR-CMS-01 Cây nội dung sách FR-10.01 MVP1
SCR-CMS-02 Ngân hàng câu hỏi (lọc theo môn, tag, trạng thái) FR-10.02 MVP1
SCR-CMS-03 Soạn câu hỏi (LaTeX, hình, lời giải, video, rubric) FR-10.02, 10.10 MVP1
SCR-CMS-04 Import hàng loạt + xem trước lỗi FR-10.03 MVP1
SCR-CMS-05 Soạn bài làm/đề FR-10.07 MVP1
SCR-CMS-06 Thư viện video FR-10.04 MVP1
SCR-CMS-07 Ma trận kiến thức FR-10.06, 10.12 MVP1
SCR-CMS-08 Quản lý ID & xuất QR FR-10.05 MVP1
SCR-CMS-09 Lô mã kích hoạt FR-10.09 MVP1
SCR-CMS-10 Kiểm tra liên kết ID FR-10.14 MVP1
SCR-CMS-11 Hàng chờ duyệt & lịch sử phiên bản FR-10.08 R1
SCR-CMS-12 Báo lỗi nội dung từ học sinh FR-03.07 R1
SCR-CMS-13 Người dùng CMS & phân quyền FR-10.13 MVP1
SCR-ADM-01 Dashboard tổng quan FR-11.02 R1
SCR-ADM-02 Báo cáo hiệu quả học liệu FR-11.03 R1
SCR-ADM-03 Báo cáo kinh doanh, quản lý gói FR-11.04, 08.06 P3
SCR-ADM-04 Hỗ trợ người dùng FR-11.06 R1

#5. Mô tả khung màn hình quan trọng (wireframe dạng chữ)

SCR-01 – Trang chủ (mobile)

┌────────────────────────────────┐
│ ☰  Ôn thi Hybrid        👤     │
├────────────────────────────────┤
│  Nhập ID trên sách             │
│ ┌───────────────────┐ ┌──────┐ │
│ │ VD: TV012         │ │ 📷QR │ │
│ └───────────────────┘ └──────┘ │
│        [ Mở nội dung ]         │
├────────────────────────────────┤
│ ▶ Tiếp tục: Đề thi thử Toán 3  │
│   Còn 42:10 · Câu 15/22        │
├────────────────────────────────┤
│ Bài được giao (2)          >   │
├────────────────────────────────┤
│ Sách của tôi                   │
│ [Toán 2027] [Anh 2027] [+ Kích hoạt] │
├────────────────────────────────┤
│ Ôn gì tiếp: Nguyên hàm (sai 67%)│
└────────────────────────────────┘

SCR-08 – Giới thiệu bài làm

┌────────────────────────────────┐
│ ← Đề thi thử Toán số 3 · TD003 │
├────────────────────────────────┤
│ 22 câu · 90 phút · Thang 10    │
│ Phần I: 12 câu trắc nghiệm     │
│ Phần II: 4 câu đúng/sai        │
│ Phần III: 6 câu trả lời ngắn   │
├────────────────────────────────┤
│ Cách làm:                      │
│ (•) Xem đề trên máy            │
│ ( ) Phiếu trả lời – đề ở sách  │
│ [✓] Tính giờ 90 phút           │
│        [ Bắt đầu làm bài ]     │
├────────────────────────────────┤
│ Đã làm trên giấy?              │
│   [ Xem đáp án & lời giải ]    │
├────────────────────────────────┤
│ Bạn đã làm 2 lần · cao nhất 7,25│
└────────────────────────────────┘

SCR-12 – Kết quả

┌────────────────────────────────┐
│ Kết quả · Đề thi thử Toán số 3 │
│         7,25 / 10              │
│ Đúng 14 · Sai 6 · Bỏ trống 2   │
│ Thời gian 78 phút              │
│ Phần I 2,5/3 · II 2,75/4 · III 2/3│
├────────────────────────────────┤
│ ÔN GÌ TIẾP                     │
│ 1. Nguyên hàm – Tích phân  67% │
│    Lý thuyết TL021 · Ví dụ TV045│
│    [Mở lý thuyết] [Bài tập]    │
│ 2. Xác suất có điều kiện   50% │
├────────────────────────────────┤
│ [Xem lời giải]  [Làm lại]      │
│ Học tiếp trên sách: trang 112  │
└────────────────────────────────┘

#6. Kế hoạch prototype cho mốc M1 (15/11)

Hạng mục Nội dung Công cụ
Design system tối thiểu Màu, chữ, nút, ô nhập, thẻ, trạng thái Figma
Luồng demo 1 Quét QR kích hoạt → Sách của tôi → Nhập ID ví dụ Toán → Video Figma prototype
Luồng demo 2 Nhập ID đề Toán → Phiếu trả lời → Kết quả → Đề xuất → Lý thuyết Figma prototype
Luồng demo 3 Placement test Tiếng Anh một câu/màn hình → Đề xuất chuyên đề → Video Figma prototype
Luồng demo 4 Ngữ văn: Nhập ID bài vận dụng → Viết → Hướng dẫn giải → Tự chấm Figma prototype
Màn hình CMS Import câu hỏi, Quản lý ID & xuất QR (2–3 màn hình tĩnh) Figma
Bản chạy thật (nếu kịp) Nhập ID → xem lời giải/video với nội dung mẫu Môi trường staging

Nội dung mẫu cần HEID cung cấp trước 08/11: 1 chuyên đề Toán (mind map, 2 ví dụ, 1 bộ bài tập, 1 đề), 1 placement test Tiếng Anh, 1 bài vận dụng Ngữ văn kèm hướng dẫn chấm, 3–5 video.