Skip to content

📄 TÀI LIỆU ĐẶC TẢ CHỨC NĂNG ICS

HỆ THỐNG ICS


1. Giới thiệu hệ thống

ICS (Inside Connection System) là hệ thống quản lý nội bộ toàn diện dành cho các trung tâm đào tạo ngoại ngữ, được thiết kế để hỗ trợ tối ưu hóa quy trình vận hành, giảng dạy và quản lý tài nguyên. Hệ thống tập trung vào việc số hóa các hoạt động như:

  • Quản lý lớp học, học viên, giáo viên
  • Quản lý bài học, lịch dạy, điểm danh, bài tập, kiểm tra
  • Quản lý khảo sát, họp lớp và đánh giá chất lượng
  • Quản lý hóa đơn, doanh thu (theo dõi học phí, đối soát thanh toán và báo cáo doanh số)
  • Quản lý khóa học và tài liệu (tạo, cập nhật chương trình học và tài liệu giảng dạy như PDF, video)

ICS giúp đảm bảo tính thống nhất, minh bạch và hiệu quả trong điều hành đào tạo tại nhiều trung tâm thành viên, đồng thời tích hợp các công cụ hỗ trợ như quản lý tài chính, chăm sóc học viên và phát triển chương trình học.


Ứng dụng học tập trung tâm ngoại ngữ là ứng dụng di động chuyên biệt hỗ trợ học viên luyện thi JLPT từ cấp độ N5 đến N2, bao gồm hai phiên bản:

  • Phiên bản mở: Dành cho người dùng phổ thông không phải học viên trung tâm ngoại ngữ, hỗ trợ tự học tiếng Nhật qua các tính năng: từ vựng, ngữ pháp, bảng chữ cái, flashcard, bài tập, kiểm tra và lộ trình cá nhân hóa. Người dùng có thể nâng cấp VIP để mở khóa toàn bộ nội dung và loại bỏ quảng cáo.

  • Phiên bản dành riêng cho học viên trung tâm ngoại ngữ: Đồng bộ dữ liệu trực tiếp từ ICS, cho phép học viên theo dõi lịch học, bài học, bài tập về nhà, kiểm tra, điểm danh và tiến độ lớp học thực tế. Phiên bản này yêu cầu tài khoản trung tâm ngoại ngữ và hỗ trợ tương tác hai chiều như gửi góp ý hoặc nhận thông báo từ hệ thống.


ICS và ứng dụng học tập trung tâm ngoại ngữ tương tác chặt chẽ thông qua API nhằm đảm bảo dữ liệu luôn được cập nhật theo thời gian thực:

  • ICS đẩy dữ liệu bài học, bài tập và lịch dạy sang ứng dụng học tập trung tâm ngoại ngữ.
  • Ứng dụng học tập trung tâm ngoại ngữ gửi lại kết quả bài làm, góp ý và tiến độ tự học về ICS.

Hệ sinh thái khép kín này hỗ trợ đồng thời cho quản lý nội bộ và trải nghiệm học tập cá nhân hóa.

🎯 Mục tiêu hệ thống:

  • Số hóa toàn bộ quy trình vận hành
  • Giảm thiểu lỗi thủ công, tăng hiệu suất
  • Theo dõi tiến độ học tập chi tiết
  • Cải thiện trải nghiệm người dùng
  • Đảm bảo tính minh bạch, bảo mật và khả năng mở rộng

1.1 Trung tâm áp dụng ICS & Ứng dụng học tập trung tâm ngoại ngữ

ICS hiện được triển khai tại 6 trung tâm đào tạo ngoại ngữ, với ứng dụng học tập trung tâm ngoại ngữ hỗ trợ chính cho tiếng Nhật tại Nhật Ngữ Sakumi (bao gồm phiên bản mở). Các trung tâm khác cũng có thể tích hợp ứng dụng học tập tương tự tùy theo ngôn ngữ đào tạo.

Trung tâm Ngôn ngữ đào tạo Hỗ trợ ICS
Betreux Deutsch Tiếng Đức
Creatis Français Tiếng Pháp
Creative English Tiếng Anh
SaeChang Tiếng Hàn
Hoa Ngữ Đắc Nhân Tiếng Trung
Nhật Ngữ Sakumi Tiếng Nhật

1.2 Vai trò người dùng trong hệ thống

Vai trò Mô tả chức năng chính
Master Người dùng cấp cao nhất, có toàn quyền quản lý toàn bộ hệ thống, bao gồm tạo/sửa tài khoản với các trạng thái (Đang kích hoạt, Vô hiệu, Xóa) cho các vai trò: Admin, Support, QC, Financial Management, Curriculum Development, v.v.
Admin Quản lý toàn bộ giảng dạy: lớp học, học viên, giáo viên, bài học, lịch dạy, điểm danh, bài tập, kiểm tra, khảo sát, họp lớp và đánh giá chất lượng giảng dạy.
Support Hỗ trợ học viên và giáo viên về kỹ thuật, học vụ; ghi nhận tương tác, cảnh báo rủi ro và báo cáo tình trạng học viên.
QC (Quality Control) Giám sát chất lượng giảng dạy, nội dung đào tạo; khảo sát đánh giá và đảm bảo tiêu chuẩn lớp học được tuân thủ.
Financial Management Theo dõi học phí, hóa đơn, đối soát thanh toán, trạng thái nợ phí và quản lý ưu đãi/voucher.
Curriculum Development Quản lý nội dung đào tạo: khóa học, bài học, cấp độ, tiêu chuẩn lớp, hướng dẫn giảng dạy và khảo sát đánh giá chất lượng học tập.
Sale Tư vấn khóa học, đăng ký học viên mới, theo dõi lượt sử dụng ưu đãi và quản lý hóa đơn.
Assistant Teacher Hỗ trợ giáo viên trong điểm danh, theo dõi sĩ số, giao bài, và theo dõi tiến độ học tập. Quyền hạn giới hạn hơn giáo viên.
App Handler Quản lý và hỗ trợ kỹ thuật cho ứng dụng học tập trung tâm ngoại ngữ, xử lý lỗi và đồng bộ dữ liệu giữa ICS và ứng dụng.
Sale Manager Giám sát đội ngũ bán hàng, theo dõi doanh số.
Curriculum Development Runner Hỗ trợ phát triển chương trình học, tạo bài học, cập nhật tài liệu đào tạo.
Teacher Xem và cập nhật lịch học, quản lý lớp học được phân công, điểm danh, chấm bài, ghi chú buổi học và theo dõi học viên.
Học viên Truy cập bài học, bài tập, kiểm tra, thư viện học tập và lộ trình cá nhân hóa qua ứng dụng học tập trung tâm ngoại ngữ.

1.3 Tính năng nổi bật

  • Quản lý vận hành giảng dạy theo vai trò, đảm bảo phân quyền rõ ràng
  • Đồng bộ dữ liệu thời gian thực giữa ICS và ứng dụng học tập trung tâm ngoại ngữ
  • Theo dõi tiến độ học tập, điểm danh, bài tập và kết quả kiểm tra
  • Quản lý lịch học, tài liệu giảng dạy và khảo sát đánh giá
  • Tích hợp công cụ hỗ trợ học viên luyện thi qua ứng dụng học tập trung tâm ngoại ngữ

🔐 Ghi chú quan trọng:

  • Mỗi vai trò người dùng chỉ có thể thao tác trong phạm vi chức năng được cấp quyền.
  • ICS là hệ thống dành cho nội bộ trung tâm, trong khi ứng dụng học tập trung tâm ngoại ngữ là nền tảng dành riêng cho học viên.

2. Quản lý Lớp Học

2.1 Tổng quan lớp học

Tổng quan lớp học
Trường dữ liệu Nội dung
Tên chức năng Tổng quan lớp học
Vai trò Giáo viên, Support
Mô tả Cho phép Giáo viên và Support xem tổng quan lớp học, bao gồm thống kê các chỉ số học tập trung bình của lớp (sĩ số, đi học, bài tập về nhà, điểm kiểm tra, điểm BTVN, thời gian học) với biểu đồ đường, và danh sách học viên với thông tin chi tiết (tên bài học gần đây, ghi chú, trạng thái điểm danh, điểm số, thời gian, đánh giá tổng). Hỗ trợ tìm kiếm học viên và xem ghi chú bất thường (ví dụ: học kém, cảnh báo nghỉ học). Trạng thái điểm danh bao gồm: Có mặt, Vào trễ, Ra sớm, Vào trễ & ra sớm, Nghỉ có phép (cp), Nghỉ không phép (kp), Chưa điểm danh. Điểm số có các trạng thái: Điểm số cụ thể, Chưa nộp, Chưa chấm. Đánh giá tổng của học viên hiển thị dưới dạng badge (F, D, E) với màu sắc tương ứng (đỏ cho F, nâu cho D, cam cho E). Bài học gần đây nhất có 3 trạng thái: đi học và làm bài tập về nhà, đi học nhưng không làm bài tập về nhà, vắng học nhưng làm bài tập về nhà.
Giao diện liên quan - Trang chi tiết lớp học (truy cập từ tab "Lớp học" khi chọn một lớp cụ thể)
- Tab "Tổng quan" trong lớp học, hiển thị:
 • Thống kê tổng quan: Sĩ số (Số học viên đang học / tổng), Đi học (%), Bài tập về nhà (%), Điểm kiểm tra (trung bình), Điểm BTVN (trung bình), Thời gian học (hh/mm/ss) với biểu đồ đường.
 • Danh sách học viên: Tên bài học (gần đây), Ghi chú, Trạng thái (điểm danh với icon), Điểm số (số điểm hoặc Chưa nộp/Chưa chấm), Thời gian (hh/mm/ss), Tên học viên (với icon bất thường và badge đánh giá tổng F/D/E), Icon ghi chú/chat.
- Ô tìm kiếm "Tìm kiếm..." để lọc học viên.
Luồng thao tác chính 1. Người dùng (Giáo viên hoặc Support) truy cập hệ thống ICS và chọn một lớp học từ danh sách lớp.
2. Trong giao diện lớp học, tab "Tổng quan" được chọn mặc định.
3. Hệ thống tính toán và hiển thị thống kê trung bình lớp với biểu đồ đường cho từng chỉ số.
4. Hiển thị danh sách học viên với thông tin chi tiết về bài học gần đây và badge đánh giá tổng.
5. Để tìm kiếm: Nhập tên hoặc email vào ô tìm kiếm → danh sách lọc theo kết quả.
6. Để xem ghi chú: Nhấn icon ghi chú bên cạnh học viên → mở popup xem/đăng ghi chú bất thường.
7. Dữ liệu cập nhật thời gian thực từ hoạt động học viên (đi học, nộp BTVN, điểm số).
Điều kiện - Người dùng (Giáo viên hoặc Support) phải được phân quyền xem tổng quan lớp.
- Lớp phải tồn tại và có học viên đang học để tính thống kê (chỉ lấy dữ liệu từ học viên hoạt động).
- Các giá trị trung bình làm tròn tới 2 chữ số thập phân.
- Biểu đồ: Dữ liệu từ các buổi học gần nhất hoặc theo thời gian.
- Ghi chú bất thường: Chỉ hiển thị nếu có (icon đỏ cho cảnh báo).
Kết quả hiển thị - Thống kê lớp: Sĩ số (ví dụ: 11/15), Đi học (97%), Bài tập về nhà (15%), Điểm kiểm tra (1.5), Điểm BTVN (0.6), Thời gian học (00:00:46) với biểu đồ đường.
- Danh sách học viên: Hiển thị tên bài học gần đây, ghi chú, trạng thái điểm danh, điểm số (số điểm hoặc Chưa nộp/Chưa chấm), thời gian, tên học viên với badge đánh giá tổng (F đỏ, D nâu, E cam), icon ghi chú.
- Tìm kiếm: Danh sách lọc theo từ khóa.
- Thông báo nếu không có dữ liệu: "Không có học viên đang theo học trong lớp này." và ẩn biểu đồ.
Trường hợp không có dữ liệu - Nếu không có học viên: Hiển thị "Không có học viên đang theo học trong lớp này." và ẩn biểu đồ thống kê.
- Nếu không có dữ liệu chỉ số (chưa học): Giá trị 0 hoặc N/A, biểu đồ trống.
- Nếu tìm kiếm không khớp: Danh sách trống với thông báo "Không tìm thấy học viên."

2.2 Thêm Lớp Học

Thêm Lớp Học
Trường dữ liệu Nội dung
Mô tả luồng Luồng này mô tả quy trình tạo lớp học mới và quản lý khóa học trong hệ thống ICS. Luồng được áp dụng cho vai trò Support, cho phép tạo lớp với các trạng thái và loại lớp khác nhau, bao gồm lớp chính thức và không chính thức (dùng để testing). Danh sách lớp hiển thị các thông tin tổng quan để dễ quản lý. Sau khi tạo lớp, hỗ trợ hiển thị thống kê chi tiết từng lớp học, bao gồm trung bình các chỉ số học tập và danh sách học viên.
Vai trò liên quan - Support: Tạo lớp học mới, chỉnh sửa trạng thái lớp (chính thức/không chính thức), quản lý khóa học, xem thống kê chi tiết lớp.
- Quản trị viên: Theo dõi và chỉnh sửa lớp nếu cần, xem thống kê chi tiết lớp.
Bước thực hiện 🔹 1. Support truy cập hệ thống ICS, vào tab "Lớp học".
🔹 2. Nhấn nút "Thêm lớp mới" để mở popup tạo lớp.
🔹 3. Điền thông tin lớp: Chọn khóa học (dropdown các khóa học có sẵn hoặc tạo mới nếu cần), Mã lớp (tự động generate hoặc nhập thủ công), Loại lớp (Lớp chung / Lớp 1-1), Ngày bắt đầu, Ngày kết thúc, Ghi chú (tuỳ chọn), Checkbox "Lớp không chính thức" (nếu tick, lớp dùng để testing).
🔹 4. Nhấn "Thêm mới" để tạo lớp với trạng thái "Mới tạo".
🔹 5. Lớp mới được thêm vào danh sách lớp, có thể chỉnh sửa trạng thái lớp (Mới tạo → Đang học, Tạm dừng, Hoàn thành, Hủy) và loại chính thức/không chính thức sau này.
🔹 6. Danh sách lớp hiển thị các cột: Mã lớp, Khóa học, Đi học, BTVN, Sĩ Số, Điểm kiểm tra (trung bình của lớp), Điểm BTVN (trung bình của lớp), Đánh giá.
🔹 7. Xem thống kê chi tiết lớp: Người dùng (Support, Giáo viên, Trợ giảng) chọn một lớp từ danh sách lớp đang phụ trách, hệ thống hiển thị thống kê chi tiết của lớp, gồm 2 phần chính:
 • (1) Thống kê tổng quan lớp: Sĩ số (Số học viên đang học / tổng học viên), Đi học (Trung bình tỷ lệ điểm danh của học viên), Bài tập về nhà (Trung bình phần trăm hoàn thành bài tập), Điểm kiểm tra (Điểm trung bình của các bài kiểm tra nếu có), Điểm BTVN (Trung bình điểm của bài tập về nhà đã được chấm), Thời gian học (Trung bình thời lượng học của học viên).
 • (2) Danh sách học viên: Họ tên học viên, Mã học viên, Email, Ghi chú bất thường nếu có (ví dụ học kém, cảnh báo nghỉ học, chưa đóng học phí v.v.). Cách tính toán: Chỉ lấy dữ liệu từ học viên đang học (trạng thái hoạt động). Các giá trị được làm tròn tới 2 chữ số thập phân. Nếu không có học viên: Hiển thị thông báo “Không có học viên đang theo học trong lớp này.” và ẩn biểu đồ thống kê.
Điều kiện và kết quả - Điều kiện: Khóa học phải tồn tại hoặc được tạo mới, Mã lớp không trùng, Ngày bắt đầu < Ngày kết thúc, Support có quyền tạo lớp, lớp có học viên đang học để hiển thị thống kê.
- Kết quả: Lớp mới được tạo với trạng thái "Mới tạo", hiển thị trong danh sách với các cột thống kê (ban đầu các giá trị như Điểm kiểm tra, Điểm BTVN có thể là 0), có thể cập nhật trạng thái (Mới tạo, Đang học, Tạm dừng, Hoàn thành, Hủy) và loại (chính thức/không chính thức). Nếu là lớp không chính thức, dùng để testing mà không ảnh hưởng đến dữ liệu thực. Khi chọn lớp, hiển thị thống kê chi tiết với các chỉ số trung bình và danh sách học viên.
Tương tác với Sakumi - Hệ thống ICS đồng bộ lớp học mới và trạng thái sang ứng dụng Sakumi để học viên xem danh sách lớp và khóa học.
- Nếu lớp chuyển trạng thái (ví dụ: Đang học), cập nhật đồng bộ để học viên truy cập bài học tương ứng.
- Không có tương tác trực tiếp với Sakumi cho việc chấm điểm hoặc bài tập ở luồng này.

2.3 Chỉnh sửa thông tin Lớp Học

Chỉnh sửa thông tin lớp học
Trường dữ liệu Nội dung
Tên chức năng Chỉnh sửa thông tin lớp học
Vai trò Support
Mô tả Cho phép Support chỉnh sửa các thông tin cơ bản của lớp học, bao gồm: checkbox "Lớp không chính thức", Link Google Meet, Ghi chú, Mã lớp, Ngày bắt đầu, Ngày kết thúc, Loại lớp, Trạng thái lớp. Các thay đổi được lưu lại để đảm bảo thông tin lớp học luôn cập nhật và chính xác.
Giao diện liên quan - Trang chi tiết lớp học (truy cập từ tab "Lớp học" khi chọn một lớp cụ thể)
- Tab "Cài đặt" trong lớp học
- Giao diện form chỉnh sửa thông tin lớp (hiển thị sau khi nhấn vào các trường có thể chỉnh sửa)
Luồng thao tác chính 1. Support truy cập hệ thống ICS và chọn một lớp học từ danh sách lớp.
2. Trong giao diện lớp học, chuyển sang tab "Cài đặt".
3. Hệ thống hiển thị các trường thông tin lớp: Checkbox "Lớp không chính thức", Link Google Meet (input text), Ghi chú (textarea), Mã lớp (input text), Ngày bắt đầu (datepicker), Ngày kết thúc (datepicker), Loại lớp (dropdown: Lớp chung / Lớp 1-1), Trạng thái lớp (dropdown: Mới tạo / Đang học / Tạm dừng / Hoàn thành / Hủy).
4. Support chỉnh sửa các trường cần thay đổi (ví dụ: tick checkbox để đánh dấu lớp không chính thức, nhập link Google Meet mới, cập nhật ngày bắt đầu/kết thúc).
5. Nhấn nút "Lưu thông tin" để xác nhận thay đổi.
6. Hệ thống kiểm tra tính hợp lệ (ví dụ: Ngày bắt đầu < Ngày kết thúc, Mã lớp không trùng) và lưu cập nhật.
7. Hiển thị thông báo thành công hoặc lỗi nếu có vấn đề.
Điều kiện - Support phải được phân quyền chỉnh sửa lớp học.
- Lớp học phải tồn tại và đang ở trạng thái cho phép chỉnh sửa (không phải trạng thái "Hoàn thành" hoặc "Hủy" trừ khi cần mở lại).
- Các trường bắt buộc (Mã lớp, Ngày bắt đầu, Ngày kết thúc, Loại lớp, Trạng thái lớp) phải được điền đầy đủ và hợp lệ.
Kết quả hiển thị - Thông tin lớp được cập nhật và hiển thị ngay trên giao diện.
- Nếu checkbox "Lớp không chính thức" được tick, lớp sẽ được đánh dấu dùng cho testing và không ảnh hưởng đến dữ liệu chính thức.
- Các thay đổi như Link Google Meet hoặc Ghi chú được lưu và hiển thị cho các vai trò liên quan (Giáo viên, Trợ giảng).
- Thông báo thành công: "Thông tin lớp học đã được cập nhật thành công."
Trường hợp không có dữ liệu - Nếu lớp không tồn tại: Hiển thị thông báo "Lớp học không tồn tại."
- Nếu trường bắt buộc bị bỏ trống: Hiển thị lỗi "Vui lòng điền đầy đủ thông tin bắt buộc."
- Nếu ngày bắt đầu > ngày kết thúc: Hiển thị lỗi "Ngày bắt đầu phải trước ngày kết thúc."

2.4 Thêm/Xóa/Sửa học viên vào lớp học

Thêm/Xóa/Sửa học viên vào lớp học
Trường dữ liệu Nội dung
Tên chức năng Thêm/Xóa/Sửa học viên vào lớp học
Vai trò liên quan - Support: Thực hiện thêm và chỉnh sửa học viên trong lớp.
- Học viên: Xem cập nhật lớp học mới trên app Sakumi sau khi được thêm vào lớp.
Mô tả Cho phép Support thêm học viên hiện có hoặc tạo học viên mới vào lớp học. Học viên mới có thể được tạo với thông tin cơ bản như họ tên, mã học viên, số điện thoại, email, nơi cư trú, tag (cho quản lý hoặc testing), học phí (với ràng buộc <= tổng hóa đơn của học viên, vì một hóa đơn có thể dùng cho nhiều lớp; khi thêm/chỉnh sửa học phí, cần chọn loại hóa đơn từ dropdown). Hỗ trợ tạo học viên cho mục đích testing (ví dụ: gắn tag "Testing"). Sau khi thêm, danh sách học viên của lớp sẽ hiển thị các cột: Tên, Email, Đăng ký (ngày đăng ký), Vào lớp (ngày thêm vào lớp), Trạng thái (mặc định: Đang học), Tag (hiển thị số lượng tag như #3), Học phí (số tiền hoặc trạng thái thanh toán). Có thể chỉnh sửa tag, học phí (với chọn loại hóa đơn), và trạng thái học viên trong danh sách. Trạng thái học viên bao gồm: Dự thính (chỉ xem buổi học, không tương tác trên app), Chỉ xem (quyền xem chỉ, không làm bài), Nghỉ học (khóa học không hiển thị trên app), Xóa (khóa học không hiển thị trên app), Kiểm thử (dành cho account QC Testing). Tag được thêm từ dropdown nhóm (ví dụ: NGHI HOC, HOC TIEP KI/KHOA, LY DO DROP, THOI GIAN...), hiển thị dưới dạng chip có X để xóa; khi hover/click vào tag của học viên cụ thể, mở popup nhóm tag đó để thêm/xóa/sửa tag tùy ý. Thêm mới tag có thể chỉnh sửa (sửa tên tag), nhưng không có thêm icon sao để chỉnh sửa. Sau khi thêm học viên vào lớp hoặc chỉnh sửa trạng thái, hệ thống đồng bộ dữ liệu với app Sakumi để học viên thấy khóa học/lớp học mới hiển thị trên app (hoặc ẩn đi tùy trạng thái).
Giao diện liên quan - Trang chi tiết lớp học (truy cập từ tab "Lớp học" khi chọn một lớp cụ thể)
- Tab "Học viên" trong lớp học
- Popup "Danh sách học viên" với nút "Chọn học viên" và "Tạo học viên mới"
- Popup "Chọn học viên" với ô tìm kiếm và danh sách học viên hiện có
- Popup "Tạo học viên mới" với các trường: Họ và tên, Mã học viên, Số điện thoại, Email, Nơi cư trú (dropdown), Tag (dropdown chọn từ nhóm hoặc tạo mới), Học phí (input số với ràng buộc <= hóa đơn, và dropdown chọn loại hóa đơn)
- Phần "Tag quản lý" trong popup chỉnh sửa: Dropdown "Nhóm" để chọn nhóm tag (NGHI HOC, HOC TIEP KI/KHOA, LY DO DROP, THOI GIAN...), sau khi chọn hiển thị dropdown tag con để thêm; "Tag đã chọn" hiển thị chip với X để xóa (ví dụ: HEN 1 THANG, PHAN VAN, BAT BUOC LEN KI)
- Trong danh sách học viên: Cột Tag hiển thị số lượng như #3; hover/click vào tag → mở popup nhóm tag tương ứng để thêm/xóa/sửa; Cột Trạng thái (dropdown để chỉnh: Dự thính, Chỉ xem, Nghỉ học, Xóa, Kiểm thử...)
- Popup "Thêm" hoặc chỉnh sửa học phí: Dropdown "Chọn hóa đơn", Input "Giá trị" (phải <= giá trị hóa đơn), Nút "Hủy" và "Thêm"
Luồng thao tác chính 1. Support truy cập hệ thống ICS và chọn một lớp học từ danh sách lớp.
2. Trong giao diện lớp học, chuyển sang tab "Học viên".
3. Nhấn nút "Tạo học viên mới" hoặc "Thêm học viên" để mở popup "Danh sách học viên".
4. Tại popup, chọn một trong hai phương án:
 a. Chọn học viên hiện có:
  - Mở popup "Chọn học viên" với ô tìm kiếm "Tìm kiếm theo tên, mã học viên h.v...".
  - Hệ thống hiển thị danh sách học viên: Tên - Mã học viên - Email - Tag (nếu có).
  - Tick chọn một hoặc nhiều học viên.
  - Nhấn "Thêm mới" để thêm vào lớp.
 b. Tạo học viên mới:
  - Mở popup "Tạo học viên mới".
  - Điền thông tin: Họ và tên (bắt buộc), Mã học viên (bắt buộc, không trùng), Số điện thoại (tùy chọn), Email (bắt buộc, hợp lệ), Nơi cư trú (dropdown), Tag (chọn từ dropdown nhóm tag hoặc tạo mới, ví dụ: "Testing" cho mục đích test), Học phí (input số, bắt buộc <= tổng hóa đơn của học viên, và chọn loại hóa đơn từ dropdown).
  - Nhấn "Thêm mới" để tạo và thêm học viên vào lớp.
5. Hệ thống kiểm tra tính hợp lệ (email không trùng, mã không trùng, học phí <= hóa đơn) và thêm học viên.
6. Danh sách học viên cập nhật với các cột: Tên, Email, Đăng ký (ngày đăng ký), Vào lớp (ngày thêm vào lớp), Trạng thái (mặc định: Đang học), Tag (hiển thị số lượng như #3), Học phí (số tiền hoặc trạng thái thanh toán).
7. Để chỉnh sửa tag: Trong danh sách học viên, hover/click vào cột Tag của học viên → mở popup "Tag quản lý" với dropdown "Nhóm" (chọn nhóm như NGHI HOC...), sau chọn tag con từ dropdown để thêm; Tag đã chọn hiển thị chip với X để xóa; Nếu thêm tag mới, có thể chỉnh sửa tên tag trực tiếp (không có icon sao riêng); Nhấn "Cập nhật" để lưu, tag mới sẽ hiển thị và cập nhật số lượng (#số).
8. Để thêm/chỉnh sửa học phí: Nhấn vào cột Học phí hoặc nút "+" → mở popup "Thêm" với dropdown "Chọn hóa đơn" (danh sách hóa đơn của học viên), input "Giá trị" (phải <= giá trị hóa đơn đã chọn), nhấn "Thêm" để lưu; Nếu giá trị > hóa đơn, hiển thị lỗi "Giá trị <= [số] VND".
9. Để chỉnh sửa trạng thái học viên: Trong danh sách học viên, click vào cột Trạng thái của học viên → mở dropdown chọn trạng thái mới (Dự thính, Chỉ xem, Nghỉ học, Xóa, Kiểm thử, Đang học...); Nhấn lưu để cập nhật.
10. Sau khi thêm học viên vào lớp hoặc chỉnh sửa trạng thái, hệ thống đồng bộ dữ liệu với app Sakumi: Học viên sẽ thấy khóa học/lớp học mới hiển thị trên app của họ (hoặc ẩn đi tùy trạng thái: Dự thính/Chỉ xem chỉ xem không tương tác; Nghỉ học/Xóa ẩn khóa học; Kiểm thử cho QC Testing).
Điều kiện - Support phải được phân quyền thêm và chỉnh sửa học viên trong lớp.
- Học viên hiện có phải không trùng trong lớp.
- Thông tin học viên mới phải hợp lệ: Email đúng định dạng và không trùng, Mã học viên không trùng, Học phí <= tổng hóa đơn (vì hóa đơn có thể dùng cho nhiều lớp), Các trường bắt buộc phải điền đầy đủ.
- Đối với testing: Có thể gắn tag "Testing" để phân biệt.
- Khi thêm/chỉnh học phí: Phải chọn loại hóa đơn từ dropdown, và giá trị <= giá trị hóa đơn đó.
- Khi thêm tag: Tag phải thuộc nhóm đã chọn, không trùng tag hiện có; Thêm mới tag có thể chỉnh sửa tên trực tiếp.
- Khi chỉnh trạng thái: Trạng thái mới phải hợp lệ, và đồng bộ thay đổi quyền trên app Sakumi.
- Đồng bộ với Sakumi: Học viên phải có tài khoản trên app Sakumi để thấy cập nhật.
Kết quả hiển thị - Học viên được thêm vào danh sách lớp và hiển thị ngay với các cột tương ứng.
- Nếu là học viên testing, tag "Testing" được hiển thị.
- Tag được chỉnh sửa: Hiển thị dưới dạng chip trong cột Tag, số lượng tag cập nhật (#số), có thể thêm/xóa/sửa (sửa tên tag nếu mới) qua popup nhóm.
- Học phí được cập nhật: Hiển thị số tiền mới trong cột Học phí, với loại hóa đơn đã chọn.
- Trạng thái được cập nhật: Hiển thị trạng thái mới trong cột Trạng thái; Đồng bộ với app Sakumi (Dự thính/Chỉ xem: chỉ xem; Nghỉ học/Xóa: ẩn khóa học; Kiểm thử: cho QC).
- Thông báo thành công: "Học viên đã được thêm/chỉnh sửa thành công."
- Danh sách học viên cập nhật thời gian thực.
- Trên app Sakumi: Học viên thấy lớp học mới trong danh sách khóa học của họ (hoặc thay đổi theo trạng thái).
Trường hợp không có dữ liệu - Nếu không có học viên hiện có phù hợp: Popup "Chọn học viên" hiển thị trống hoặc thông báo "Không tìm thấy học viên."
- Nếu thông tin mới không hợp lệ (email trùng, mã trùng, học phí > hóa đơn): Hiển thị lỗi "Email/Mã học viên đã tồn tại." hoặc "Giá trị vượt quá hóa đơn của học viên."
- Nếu bỏ trống trường bắt buộc: Không cho lưu và hiển thị lỗi "Vui lòng điền đầy đủ thông tin bắt buộc."
- Nếu bỏ trống nhóm khi thêm tag: Không cho thêm tag con.
- Nếu không có hóa đơn cho học viên: Dropdown "Chọn hóa đơn" trống, không cho thêm học phí.
- Nếu đồng bộ Sakumi thất bại: Không ảnh hưởng đến ICS, nhưng học viên không thấy cập nhật trên app (có thể ghi log lỗi).

2.5 Thêm/xóa giáo viên vào lớp học

Thêm/xóa giáo viên vào lớp học
Trường dữ liệu Nội dung
Tên chức năng Thêm giáo viên vào lớp học
Vai trò Support
Mô tả Cho phép Support thêm giáo viên hiện có hoặc tạo giáo viên mới vào lớp học, đánh dấu phụ trách chính (chỉ giáo viên phụ trách chính mới có thể chấm điểm cho học viên), và xóa giáo viên khỏi lớp. Giáo viên mới có thể được tạo với thông tin như họ tên, mã giáo viên, email, số điện thoại, trạng thái (Training/Chính thức/Thử việc), ghi chú. Mỗi lớp chỉ có duy nhất một giáo viên phụ trách chính. Hỗ trợ tạo giáo viên cho testing (ví dụ: trạng thái Testing). Sau khi thêm, danh sách giáo viên hiển thị các cột: Tên, Email, Phụ trách chính (checkbox), Xóa (icon thùng rác).
Giao diện liên quan - Trang chi tiết lớp học (truy cập từ tab "Lớp học" khi chọn một lớp cụ thể)
- Tab "Giáo viên" trong lớp học
- Popup "Vui lòng lựa chọn" với nút "Chọn giáo viên" và "Tạo giáo viên mới"
- Popup "Chọn giáo viên" với ô tìm kiếm và danh sách giáo viên hiện có (Tên - Mã giáo viên - Email)
- Popup "Tạo giáo viên mới" với các trường: Họ và tên, Mã giáo viên, Email, Số điện thoại, Trạng thái (dropdown: Training/Chính thức/Thử việc), Ghi chú
- Trong danh sách giáo viên: Checkbox "Phụ trách chính", Icon thùng rác để xóa
Luồng thao tác chính 1. Support truy cập hệ thống ICS và chọn một lớp học từ danh sách lớp.
2. Trong giao diện lớp học, vào "Cài đặt" chuyển sang tab "Giáo viên".
3. Nhấn nút "Thêm giáo viên vào lớp" để mở popup "Vui lòng lựa chọn".
4. Tại popup, chọn một trong hai phương án:
 a. Chọn giáo viên hiện có:
  - Mở popup "Chọn giáo viên" với ô tìm kiếm "Tìm kiếm theo tên, mã giáo viên...".
  - Hệ thống hiển thị danh sách: Tên - Mã giáo viên - Email.
  - Tick chọn một hoặc nhiều giáo viên.
  - Nhấn "Thêm mới" để thêm vào lớp.
 b. Tạo giáo viên mới:
  - Mở popup "Tạo giáo viên mới".
  - Điền thông tin: Họ và tên (bắt buộc), Mã giáo viên (bắt buộc, không trùng), Email (bắt buộc, hợp lệ), Số điện thoại (tùy chọn), Trạng thái (dropdown, bắt buộc), Ghi chú (tùy chọn).
  - Nhấn "Thêm mới" để tạo và thêm giáo viên vào lớp.
5. Hệ thống kiểm tra tính hợp lệ (email không trùng, mã không trùng) và thêm giáo viên.
6. Danh sách giáo viên cập nhật: Tên, Email, Checkbox Phụ trách chính (chỉ tick một giáo viên), Icon xóa.
7. Để đánh dấu phụ trách chính: Tick checkbox "Phụ trách chính" của giáo viên → tự động bỏ tick giáo viên cũ (nếu có); Chỉ giáo viên phụ trách chính mới chấm điểm được.
8. Để xóa giáo viên: Nhấn icon thùng rác → xóa ngay mà không xác nhận (lớp phải còn ít nhất 1 giáo viên).
9. Sau khi thêm/xóa/đánh dấu, hệ thống cập nhật danh sách và quyền (ví dụ: chấm điểm chỉ cho phụ trách chính).
Điều kiện - Support phải được phân quyền thêm/chỉnh sửa giáo viên trong lớp.
- Giáo viên hiện có phải không trùng trong lớp.
- Thông tin giáo viên mới phải hợp lệ: Email đúng định dạng và không trùng, Mã giáo viên không trùng, Trạng thái bắt buộc.
- Đối với testing: Có thể gắn trạng thái "Thử việc" hoặc tag riêng.
- Phụ trách chính: Chỉ một giáo viên/lớp, và chỉ giáo viên này mới chấm điểm được.
- Xóa: Lớp phải còn ít nhất 1 giáo viên sau xóa.
Kết quả hiển thị - Giáo viên được thêm vào danh sách lớp và hiển thị ngay.
- Checkbox phụ trách chính: Tick cho một giáo viên, cập nhật quyền chấm điểm.
- Icon xóa: Giáo viên bị xóa khỏi lớp (không xóa khỏi hệ thống).
- Thông báo thành công: "Giáo viên đã được thêm/cập nhật/xóa thành công."
- Danh sách giáo viên cập nhật thời gian thực.
Trường hợp không có dữ liệu - Nếu không có giáo viên hiện có phù hợp: Popup "Chọn giáo viên" hiển thị trống hoặc thông báo "Không tìm thấy giáo viên."
- Nếu thông tin mới không hợp lệ (email trùng, mã trùng): Hiển thị lỗi "Email/Mã giáo viên đã tồn tại."
- Nếu bỏ trống trường bắt buộc: Không cho lưu và hiển thị lỗi "Vui lòng điền đầy đủ thông tin bắt buộc."
- Nếu xóa hết giáo viên: Không cho phép, hiển thị lỗi "Lớp phải có ít nhất một giáo viên."

2.6 Thêm/Xóa trợ giảng trong lớp

Thêm/Xóa trợ giảng trong lớp
Trường dữ liệu Nội dung
Tên chức năng Thêm/Xóa trợ giảng trong lớp
Vai trò Support
Mô tả Cho phép Support thêm trợ giảng có sẵn vào lớp học từ danh sách hệ thống (có thể chọn nhiều người một lúc, hỗ trợ tìm kiếm theo tên hoặc email), và xóa trợ giảng khỏi lớp bằng cách nhấn icon "X" (không yêu cầu xác nhận). Trợ giảng được thêm sẽ hiển thị trong danh sách với tên, email, và icon xóa. Trợ giảng hỗ trợ giáo viên trong lớp, có quyền xem và hỗ trợ quản lý nhưng không chấm điểm chính thức.
Giao diện liên quan - Trang chi tiết lớp học (truy cập từ tab "Lớp học" khi chọn một lớp cụ thể)
- Vào "Cài đặt" chọn Tab "Trợ giảng" trong lớp học
- Popup "Chọn trợ giảng" với ô tìm kiếm "Tìm kiếm theo tên, mã trợ giảng..." và danh sách trợ giảng hiện có (Tên - Mã trợ giảng - Email)
- Trong danh sách trợ giảng: Tên, Email, Icon "X" để xóa
Luồng thao tác chính 1. Support truy cập hệ thống ICS và chọn một lớp học từ danh sách lớp.
2. Trong giao diện lớp học, chuyển sang tab "Trợ giảng".
3. Nhấn nút "Thêm trợ giảng" để mở popup "Chọn trợ giảng".
4. Trong popup:
 a. Sử dụng ô tìm kiếm để tìm trợ giảng theo tên hoặc email.
 b. Tick chọn một hoặc nhiều trợ giảng từ danh sách (Tên - Mã trợ giảng - Email).
 c. Nhấn "Thêm mới" để thêm trợ giảng vào lớp.
5. Hệ thống kiểm tra (không trùng trợ giảng) và thêm trợ giảng.
6. Danh sách trợ giảng cập nhật: Tên, Email, Icon "X".
7. Để xóa trợ giảng: Nhấn icon "X" bên cạnh tên trợ giảng → xóa ngay mà không xác nhận (lớp có thể không có trợ giảng).
Điều kiện - Support phải được phân quyền thêm/xóa trợ giảng trong lớp.
- Trợ giảng hiện có phải không trùng trong lớp.
- Tìm kiếm: Hỗ trợ theo tên hoặc email.
- Xóa: Không yêu cầu xác nhận, lớp có thể không có trợ giảng sau xóa.
Kết quả hiển thị - Trợ giảng được thêm vào danh sách và hiển thị ngay với tên, email, icon "X".
- Sau xóa: Trợ giảng bị xóa khỏi danh sách lớp (không xóa khỏi hệ thống).
- Thông báo thành công: "Trợ giảng đã được thêm/xóa thành công."
- Danh sách trợ giảng cập nhật thời gian thực.
Trường hợp không có dữ liệu - Nếu không có trợ giảng phù hợp: Popup "Chọn trợ giảng" hiển thị trống hoặc thông báo "Không tìm thấy trợ giảng."
- Nếu danh sách trợ giảng rỗng sau xóa: Hiển thị thông báo "Không có trợ giảng trong lớp."

2.7 Lịch dạy của lớp

Lịch dạy của lớp
Trường dữ liệu Nội dung
Tên chức năng Lịch dạy
Vai trò liên quan - Support: Thêm và chỉnh sửa lịch dạy cho lớp.
- Giáo viên: Xem lịch dạy tổng của mình với filter theo lớp, loại lớp, trình độ, học kỳ.
Mô tả Cho phép Support thêm lịch dạy cố định (màu xanh, tính theo số buổi học của khóa học, ví dụ: khóa 15 buổi, chia 3 buổi/tuần thì 5 tuần với 3 buổi) và lịch dạy đột xuất (màu xám) cho giáo viên trong lớp học. Lịch dạy cố định khi hủy chuyển sang màu cam và vẫn hiển thị. Lịch dạy đột xuất khi hủy sẽ mất khỏi lịch dạy. Mỗi lịch bao gồm ngày, giờ bắt đầu, thời gian học, giáo viên, trạng thái (Đang đợi, Hủy, Xóa). Lịch dạy hiển thị theo tuần với các ngày từ Thứ Hai đến Chủ Nhật, click vào label tuần để mở dropdown chọn tuần khác, nút + trên mỗi ô ngày để thêm lịch đột xuất, và nút "Thêm lịch dạy cố định" để thêm lịch cố định. Đối với giáo viên, khi đăng nhập và chọn tab "Lịch dạy", hiển thị lịch dạy tổng của mình, có thể filter theo lớp (Theo Lớp), loại lớp (Loại Lớp), trình độ (Trình Độ), học kỳ (Học Kỳ).
Giao diện liên quan - Trang chi tiết lớp học (truy cập từ tab "Lớp học" khi chọn một lớp cụ thể)
- Tab "Lịch dạy" trong lớp học (cho Support), hiển thị lịch theo tuần (ví dụ: Ngay 04/08/2025 - 10/08/2025) với label tuần (click mở dropdown chọn tuần), nút "Thêm lịch dạy cố định" (màu cam), và nút + trên mỗi ô ngày
- Popup "Thêm lịch cố định" với trường: Thứ (checkbox các ngày trong tuần), Giờ bắt đầu (timepicker), Thời gian học (dropdown phút), Giáo viên (dropdown)
- Popup "Thêm lịch đột xuất" với trường: Thứ/Ngày cụ thể, Giờ bắt đầu (timepicker), Giáo viên (dropdown), Thời gian học (dropdown: 0 phút, 5 phút,...), Trạng thái (dropdown: Đang đợi, Hủy, Xóa), Nút "Hủy" và "Xác nhận"
- Lịch cố định: Màu xanh (bình thường), màu cam (hủy)
- Lịch đột xuất: Màu xám (bình thường), biến mất khi hủy
- Đối với giáo viên: Tab "Lịch dạy" hiển thị lịch theo tuần với filter (Theo Lớp, Loại Lớp, Trình Độ, Học Kỳ), và danh sách lịch (lớp, giờ, trạng thái).
Luồng thao tác chính 1. Support truy cập hệ thống ICS và chọn một lớp học từ danh sách lớp.
2. Trong giao diện lớp học, chuyển sang tab "Lịch dạy".
3. Hệ thống hiển thị lịch theo tuần; Click label tuần để mở dropdown chọn tuần khác.
4. Để thêm lịch đột xuất: Nhấn nút + trên ô ngày cụ thể → mở popup "Thêm lịch đột xuất".
5. Trong popup đột xuất:
 a. Chọn Giờ bắt đầu (timepicker, ví dụ: 09:00).
 b. Chọn Giáo viên từ dropdown.
 c. Chọn Thời gian học từ dropdown (ví dụ: 90 phút).
 d. Chọn Trạng thái từ dropdown (Đang đợi mặc định).
6. Nhấn "Xác nhận" để lưu → lịch đột xuất thêm vào ô ngày với màu xám.
7. Để thêm lịch cố định: Nhấn nút "Thêm lịch dạy cố định" → mở popup "Thêm lịch cố định".
8. Trong popup cố định:
 a. Tick checkbox các Thứ trong tuần (ví dụ: Thứ Ba, Thứ Năm, Thứ Bảy).
 b. Chọn Giờ bắt đầu, Thời gian học, Giáo viên.
 c. Hệ thống tự tính số tuần dựa trên tổng buổi khóa học (ví dụ: 15 buổi / 3 thứ = 5 tuần).
9. Nhấn "Xác nhận" để lưu → lịch cố định thêm vào các ô ngày tương ứng với màu xanh.
10. Để hủy lịch: Chỉnh trạng thái sang "Hủy" → cố định chuyển màu cam và vẫn hiển thị; đột xuất biến mất.
11. Để xóa lịch: Chọn trạng thái "Xóa" → lịch mất khỏi hiển thị.
12. Hệ thống cập nhật lịch dạy thời gian thực.
13. Đối với giáo viên: Đăng nhập, chọn tab "Lịch dạy" → hiển thị lịch dạy tổng theo tuần.
14. Sử dụng filter (Theo Lớp, Loại Lớp, Trình Độ, Học Kỳ) để lọc lịch → danh sách cập nhật theo filter.
Điều kiện - Support phải được phân quyền thêm/chỉnh sửa lịch dạy.
- Lịch cố định: Phải tick ít nhất một Thứ, có giáo viên, thời gian học >0, trạng thái hợp lệ; Tự tính số tuần dựa trên tổng buổi khóa học.
- Lịch đột xuất: Có thể thêm cho ngày cụ thể, phải có giờ bắt đầu và giáo viên.
- Hủy/Xóa: Chỉ áp dụng cho lịch đã thêm, và đồng bộ thay đổi hiển thị (cam cho cố định hủy, mất cho đột xuất hủy).
- Không trùng lịch: Không cho thêm lịch trùng giờ trong ngày.
- Tổng buổi: Lịch cố định phải phù hợp với số buổi còn lại của khóa học.
- Đối với giáo viên: Chỉ xem lịch của mình, không chỉnh sửa; Filter phải hợp lệ để hiển thị lịch tương ứng.
Kết quả hiển thị - Lịch mới được thêm vào ô ngày với màu xanh (cố định) hoặc xám (đột xuất), hiển thị giáo viên và giờ (ví dụ: GV Đắc Nhân 19:00-20:30).
- Khi hủy: Cố định chuyển màu cam và vẫn hiển thị; Đột xuất biến mất.
- Khi xóa: Lịch mất khỏi hiển thị.
- Thông báo thành công: "Lịch dạy đã được thêm/cập nhật."
- Lịch dạy cập nhật thời gian thực theo tuần, tự tính và phân bổ lịch cố định qua các tuần.
- Đối với giáo viên: Lịch dạy tổng hiển thị theo tuần với filter áp dụng, ví dụ: lọc theo lớp cụ thể chỉ hiển thị lịch của lớp đó.
Trường hợp không có dữ liệu - Nếu không có giáo viên: Dropdown "Giáo viên" trống, không cho thêm.
- Nếu bỏ trống trường bắt buộc (giờ, giáo viên): Không cho lưu, hiển thị lỗi "Vui lòng điền đầy đủ thông tin."
- Nếu lịch trùng giờ: Hiển thị lỗi "Lịch dạy trùng giờ trong ngày."
- Nếu không có lịch: Ô ngày hiển thị trống với nút +.
- Nếu số buổi khóa học không đủ cho lịch cố định: Lỗi "Số buổi không đủ để phân bổ lịch cố định."
- Đối với giáo viên: Nếu không có lịch, hiển thị "Không có lịch dạy" hoặc ô trống; Filter không phù hợp hiển thị không có kết quả.

2.8 Thêm/Xóa/Sửa bài học

Thêm/Xóa/Sửa bài học
Trường dữ liệu Nội dung
Tên chức năng Thêm/Xóa/Sửa bài học
Vai trò liên quan - Support: Thêm (một hoặc nhiều), xóa, sửa bài học trong lớp.
- Teacher (Giáo viên): Bắt đầu bài học (chuyển trạng thái mở), liên quan đến việc khóa chỉnh sửa sau khi bắt đầu; Xem chi tiết bài học kết thúc với danh sách học viên, đi học, BTVN, ghi chú, tiến độ hoàn thành.
- Cả Support và Teacher đều thấy được nội dung bài học kết thúc.
Mô tả Cho phép Support thêm một hoặc nhiều bài học mới, chỉnh sửa hoặc xóa bài học trong lớp học. Bài học bao gồm tiêu đề, mô tả, nội dung, thời gian học, bài học trước/sau (liên kết). Khi thêm bài học mới, có thể chỉnh sửa hoặc xóa, nhưng khi giáo viên bắt đầu bài học (trạng thái mở), không thể chỉnh sửa hoặc xóa nữa. Đối với lớp không chính thức, có chức năng mở toàn bộ bài học để thuận tiện testing (mở tất cả bài học cùng lúc). Lớp chính thức không có chức năng mở toàn bộ. Danh sách bài học hiển thị số thứ tự, tiêu đề, thời gian, tiến độ (hoàn thành BTVN/Học kỳ), trạng thái (mở/khóa). Đối với bài học kết thúc, hiển thị chi tiết nội dung bao gồm danh sách học viên với họ tên, đi học (số buổi), BTVN (hoàn thành), ghi chú, và tiến độ hoàn thành (vòng tròn phần trăm cho đi học và BTVN).
Giao diện liên quan - Trang chi tiết lớp học (truy cập từ tab "Lớp học" khi chọn một lớp cụ thể)
- Tab "Bài học" trong lớp học, hiển thị danh sách bài học với các cột: STT, Tiêu đề, Thời gian, Hoàn thành BTVN, Học kỳ, Nút chỉnh sửa/xóa (cho bài chưa mở)
- Chi tiết bài học kết thúc: Danh sách học viên với cột STT, Họ và tên, Đi học, BTVN, Ghi chú, Vòng tròn tiến độ (phần trăm hoàn thành đi học và BTVN)
- Popup "Thêm bài học mới" với trường cho nhiều bài: Tiêu đề (input cho từng bài), Khóa học (dropdown), Bài học (dropdown), Mô tả (textarea), Nội dung (editor), Thời gian học (dropdown giờ/phút), Bài học trước (dropdown bài trước đó), Bài học sau (dropdown bài sau), Nút "Hủy" và "Thêm"
- Nút "Thêm bài học mới" và "Mở bài học" (chỉ cho lớp không chính thức)
- Popup xác nhận xóa bài học: "Bạn có chắc muốn xóa bài học này?"
Luồng thao tác chính 1. Support truy cập hệ thống ICS và chọn một lớp học từ danh sách lớp.
2. Trong giao diện lớp học, chuyển sang tab "Bài học".
3. Hệ thống hiển thị danh sách bài học (STT, Tiêu đề, Thời gian, Hoàn thành BTVN/Học kỳ).
4. Để thêm bài học mới (một hoặc nhiều): Nhấn nút "Thêm bài học mới" → mở popup "Thêm bài học mới".
5. Trong popup:
 a. Điền cho từng bài (có thể thêm dòng mới cho nhiều bài): Tiêu đề (bắt buộc), Khóa học (dropdown), Bài học (dropdown), Mô tả, Nội dung, Thời gian học (bắt buộc), Chọn Bài học trước/sau từ dropdown.
 b. Nhấn "Thêm" để lưu → bài học thêm vào danh sách với trạng thái khóa (chưa mở).
6. Để chỉnh sửa bài học: Nhấn icon chỉnh sửa bên cạnh bài chưa mở → mở popup tương tự thêm, chỉnh thông tin và lưu.
7. Để xóa bài học: Nhấn icon xóa bên cạnh bài chưa mở → mở popup xác nhận → xác nhận để xóa.
8. Đối với lớp không chính thức: Nhấn nút "Mở bài học" → mở toàn bộ bài học cho testing (tất cả bài chuyển trạng thái mở).
9. Khi giáo viên bắt đầu bài học: Trạng thái tự chuyển sang mở, khóa chỉnh sửa/xóa.
10. Để xem chi tiết bài học kết thúc (Support hoặc Teacher): Click vào bài học kết thúc → hiển thị danh sách học viên với họ tên, đi học, BTVN, ghi chú, tiến độ hoàn thành (vòng tròn phần trăm).
11. Hệ thống cập nhật danh sách bài học thời gian thực, đồng bộ với app Sakumi (học viên thấy bài học mới/mở).
Điều kiện - Support phải được phân quyền thêm/chỉnh sửa bài học.
- Bài học mới: Tiêu đề và thời gian học bắt buộc, liên kết trước/sau hợp lệ (không vòng lặp).
- Thêm nhiều: Có thể thêm nhiều dòng trong popup, mỗi dòng một bài học.
- Chỉnh sửa/Xóa: Chỉ cho bài học chưa mở (trạng thái khóa).
- Mở toàn bộ: Chỉ áp dụng cho lớp không chính thức, chuyển tất cả bài sang mở cho testing.
- Lớp chính thức: Không có nút mở toàn bộ, bài học mở dần theo tiến độ.
- Xem chi tiết kết thúc: Chỉ cho bài học đã kết thúc, hiển thị dữ liệu học viên (đi học, BTVN, ghi chú, tiến độ).
- Đồng bộ: Bài học thêm/mở phải đồng bộ quyền xem/làm bài trên app Sakumi.
Kết quả hiển thị - Bài học mới (một hoặc nhiều) thêm vào danh sách với STT, Tiêu đề, Thời gian, trạng thái khóa ban đầu.
- Chỉnh sửa: Thông tin bài học cập nhật trong danh sách.
- Xóa: Bài học mất khỏi danh sách.
- Mở toàn bộ (lớp không chính thức): Tất cả bài chuyển trạng thái mở, học viên thấy toàn bộ trên app.
- Khi bắt đầu bởi giáo viên: Trạng thái mở, không còn nút chỉnh sửa/xóa.
- Chi tiết bài học kết thúc: Hiển thị danh sách học viên với dữ liệu đi học, BTVN, ghi chú, vòng tròn tiến độ.
- Thông báo thành công: "Bài học đã được thêm/chỉnh sửa/xóa thành công."
- Danh sách bài học cập nhật thời gian thực.
Trường hợp không có dữ liệu - Nếu không có bài học: Danh sách trống, hiển thị "Chưa có bài học" hoặc nút thêm.
- Nếu thông tin mới không hợp lệ (tiêu đề trống): Không cho lưu, hiển thị lỗi "Vui lòng điền đầy đủ thông tin bắt buộc."
- Nếu bài học đã mở: Không hiển thị nút chỉnh sửa/xóa, thông báo "Bài học đã mở, không thể chỉnh sửa."
- Nếu lớp chính thức: Không hiển thị nút mở toàn bộ.
- Nếu bài học chưa kết thúc: Không hiển thị chi tiết học viên, hoặc hiển thị "Bài học chưa bắt đầu."

3. Quy Trình Giảng Dạy

3.1 Giảng dạy - Giao Bài Tập Về Nhà - Chấm Điểm

Giảng dạy - Giao Bài Tập Về Nhà - Chấm Điểm
Trường dữ liệu Nội dung
Mô tả luồng Luồng này mô tả quy trình giảng dạy một buổi học từ giáo viên đến học viên, bao gồm mở bài học, điểm danh, kết thúc buổi học và giao làm bài tập về nhà. Luồng được áp dụng cho vai trò giáo viên trong hệ thống ICS (Inside Connection System), với đồng bộ sang ứng dụng Sakumi để học viên làm bài tập về nhà. Luồng đảm bảo buổi học diễn ra mượt mà, ghi nhận đầy đủ dữ liệu như điểm danh và ghi chú, hỗ trợ học viên tiếp tục học tập qua ứng dụng Sakumi. Ngoài ra, role Support có chức năng thiết lập lại kết quả nộp bài của học viên, dùng để reset điểm bài tập về nhà (BTVN) của học viên cụ thể, cho phép học viên làm lại bài và giáo viên chấm lại điểm.
Vai trò liên quan - Giáo viên: Mở bài học, điểm danh, kết thúc buổi học, giao bài tập về nhà.
- Trợ giảng: Hỗ trợ điểm danh và theo dõi buổi học.
- Học viên: Nhận bài tập về nhà và làm trên ứng dụng Sakumi.
- Quản trị viên/Support: Theo dõi tổng quan lớp học và can thiệp nếu cần như xem thống kê sau buổi học, thiết lập lại kết quả nộp bài của học viên để reset điểm BTVN.
Bước thực hiện 🔹 1. Giáo viên truy cập hệ thống ICS, chọn lớp học và bài học có trạng thái Chưa học.
🔹 2. Xem dặn dò trước buổi học dưới dạng danh sách các nội dung cần lưu ý, ghi chú từ buổi học trước và xác nhận Tôi đã đọc ghi chú để bắt đầu buổi học.
🔹 3. Chuyển sang giao diện điểm danh: Hệ thống liệt kê danh sách học viên, giáo viên chọn trạng thái cho từng học viên như Có mặt, Nghỉ có phép, Vào trễ, Ra sớm, Vào trễ & ra sớm, Nghỉ không phép, Chưa điểm danh, nhập ghi chú chung cho lớp học nếu cần. (Nếu buổi học đã bắt đầu nhưng chưa điểm danh, hệ thống sẽ chuyển trực tiếp vào bước điểm danh này).
🔹 4. Nhấn Kết thúc buổi học sau khi điểm danh hoàn tất, hệ thống hiển thị popup xác nhận tắt record Google Meet trước khi kết thúc buổi học nếu áp dụng.
🔹 5. Hoàn tất buổi học: Giao diện hiển thị lại danh sách học viên để nhập ghi chú riêng cho từng học viên như ghi chú gửi cho team Support hoặc ghi chú gửi cho học viên, đồng thời nhập ghi chú tổng cho lớp học như ghi chú gửi cho team Support hoặc ghi chú gửi cho giáo viên kế tiếp, tick chọn Không có ghi chú gì nếu không cần nhập. Nhấn hoàn thành buổi học, hệ thống hiển thị popup xác nhận tắt record Google Meet trước khi kết thúc buổi học nếu áp dụng. Khi kết thúc bài học, bài tập về nhà sẽ tự động mở và giao cho học viên. (Nếu buổi học đã bắt đầu và đã điểm danh nhưng chưa hoàn thành, hệ thống sẽ chuyển trực tiếp vào bước hoàn thành buổi học này).
🔹 6. Bài tập sẽ tự động giao cho học viên sau khi hoàn thành buổi học.
🔹 7. Học viên truy cập ứng dụng Sakumi, chọn khóa học đang học cụ thể, sau đó chọn tab bài học, chọn bài học đã học và đã điểm danh, rồi chọn Bài Tập Về Nhà, chọn bài tập về nhà, làm lần lượt các loại bài tập (30 câu hoặc tùy mỗi bài) như viết chữ Hán từ phiên âm và nghĩa, nối từ vựng với nghĩa tương ứng, sắp xếp thành câu hoàn chỉnh, điền từ vào chỗ trống, chọn câu trả lời đúng, chọn câu tiếng Nhật tương ứng với nghĩa tiếng Việt, nghe đoạn ghi âm và chọn đáp án đúng, đọc to từ được yêu cầu, đặt câu với từ cho trước, đặt câu với cấu trúc cho trước, nói đoạn văn gồm 3–5 câu, sau khi làm xong chuyển sang màn hình hiển thị kết quả.
🔹 8. Giáo viên chấm bài tập về nhà trong hệ thống ICS sau khi nhận kết quả từ ứng dụng Sakumi.
- Khi truy cập ICS để xem trạng thái bài tập về nhà (BTVN) của buổi học, hệ thống sẽ hiển thị 3 trạng thái chính: "Đã chấm", "Chưa chấm", hoặc "Đang đợi nộp bài" (chỉ cần một học viên nộp bài là trạng thái sẽ chuyển sang "Chưa chấm"). Ngoài ra, hiển thị số bài đã nộp / tổng số bài và phần trăm tiến độ đã chấm bài và hiển thị tổng số bài chưa chấm. Các cột thống kê bao gồm: điểm số, tên học viên, thời gian làm bài, thời gian nộp bài, và số câu đã bỏ qua.
- Khi chọn bài "Chưa chấm" cụ thể, hệ thống cung cấp bộ lọc học viên chưa chấm, hiển thị tên học viên, bộ lọc theo tên học viên, và bộ lọc những câu chưa chấm hoặc đã chấm. Giáo viên chấm điểm trên thang 10, với chức năng nhận xét kèm theo audio, file, hoặc text. Bên cạnh đó, có chức năng sao chép ở mục nhận xét để giúp giáo viên chấm bài nhanh hơn: giáo viên chỉ cần đính kèm nhận xét (audio, file, hoặc text), nhấn sao chép, rồi dán vào học viên khác là toàn bộ nội dung (bao gồm audio và file) sẽ được chuyển sang. Ngoài ra, hiển thị tỉ lệ điểm số / tổng số câu (ví dụ: nếu một học viên làm được 10 điểm cho câu đó và một học viên làm được 0 điểm thì tỉ lệ là 50%).
- Đối với những bài đã chấm, giáo viên vẫn có thể sửa lại điểm số và nhận xét nếu cần. Khi giáo viên chấm xong tất cả bài của học viên, trạng thái bài tập sẽ chuyển sang "Đã chấm" và điểm số của từng học viên sẽ được hiển thị trên ứng dụng Sakumi.
🔹 9. Support thiết lập lại kết quả nộp bài: Chọn học viên cụ thể và bài BTVN, nhấn reset để xóa kết quả nộp bài, điểm số, cho phép học viên làm lại và giáo viên chấm lại.
Điều kiện và kết quả - Điều kiện: Buổi học phải ở trạng thái Chưa bắt đầu, có học viên trong lớp học, giáo viên được phân công cho lớp, phải xác nhận đọc ghi chú trước khi bắt đầu, bài tập về nhà phải đã được cấu hình sẵn trong hệ thống. Đối với reset: Bài BTVN đã nộp và chấm, Support có quyền reset.
- Kết quả: Buổi học chuyển trạng thái sang Đã hoàn tất, điểm danh và ghi chú được lưu trữ, bài tập về nhà được giao và đồng bộ, tiến độ lớp học cập nhật như phần trăm hoàn thành bài tập, thống kê lớp học được tính lại như sĩ số, phần trăm đi học, nếu không hoàn tất thì buổi học giữ trạng thái Đã bắt đầu hoặc Đã điểm danh. Sau reset, kết quả nộp bài của học viên bị xóa, trạng thái BTVN quay về "Đang đợi nộp bài", học viên có thể làm lại.
Tương tác với Sakumi - Hệ thống ICS đẩy bài tập về nhà và trạng thái buổi học như điểm danh, ghi chú sang ứng dụng Sakumi để học viên xem tổng quan lớp học và danh sách bài tập. Trạng thái điểm danh của học viên cũng được hiển thị trên ứng dụng Sakumi.
- Ứng dụng Sakumi gửi kết quả bài tập về nhà về hệ thống ICS để giáo viên chấm điểm. Nếu học viên chưa làm bài tập về nhà, ứng dụng Sakumi sẽ hiển thị nợ bài tập về nhà; nếu đã làm xong thì không hiển thị nữa.
- Nếu học viên gửi góp ý qua ứng dụng Sakumi trong buổi học thì đồng bộ về hệ thống ICS cho Support xử lý.
- Sau reset ở ICS, đồng bộ sang Sakumi để học viên thấy BTVN có thể làm lại, kết quả cũ bị xóa.

3.2 Giao Bài Kiểm Tra - Chấm Điểm

Giao Bài Kiểm Tra - Chấm Điểm
Trường dữ liệu Nội dung
Mô tả luồng Luồng này mô tả quy trình giáo viên giao bài kiểm tra cho học viên qua hệ thống ICS, đồng bộ sang ứng dụng Sakumi để học viên làm bài, và chấm bài sau khi nhận kết quả. Luồng được áp dụng cho vai trò giáo viên, đảm bảo bài kiểm tra được quản lý riêng biệt, không phụ thuộc vào việc bắt đầu buổi học. Giáo viên có thể thu hồi bài kiểm tra nếu cần, và trạng thái bài kiểm tra được cập nhật động. Support có quyền thêm bài kiểm tra mới (có thể chỉnh sửa/xóa nếu chưa có học viên nộp bài), mở toàn bộ bài kiểm tra cho lớp không chính thức (testing), nhưng không chỉnh sửa/xóa bài kiểm tra cố định có sẵn.
Vai trò liên quan - Giáo viên: Thêm bài kiểm tra, giao bài, thu hồi bài (nếu cần), chấm bài kiểm tra.
- Học viên: Làm bài kiểm tra trên ứng dụng Sakumi.
- Quản trị viên/Support: Theo dõi tổng quan lớp học và trạng thái bài kiểm tra, thêm bài kiểm tra mới (chỉnh sửa/xóa nếu chưa nộp bài), mở toàn bộ cho lớp không chính thức.
Bước thực hiện 🔹 1. Giáo viên/Support truy cập hệ thống ICS, chọn lớp học, vào tab "Bài tập và Kiểm tra".
🔹 2. Chọn chức năng thêm bài kiểm tra: Chọn khóa học và bài kiểm tra tương ứng để thêm vào lớp (Support thêm mới có quyền chỉnh sửa/xóa nếu chưa nộp bài; bài cố định không chỉnh sửa/xóa).
🔹 3. Giao bài kiểm tra: Giáo viên giao bài cho lớp, bài kiểm tra chuyển trạng thái từ "Chưa giao" sang "Đang đợi nộp bài", và đồng bộ sang ứng dụng Sakumi.
🔹 4. Học viên truy cập ứng dụng Sakumi, chọn khóa học cụ thể, vào tab kiểm tra, chọn bài kiểm tra cụ thể rồi làm bài (làm lần lượt các loại bài tập (30 câu hoặc tùy mỗi bài) như viết chữ Hán từ phiên âm và nghĩa, nối từ vựng với nghĩa tương ứng, sắp xếp thành câu hoàn chỉnh, điền từ vào chỗ trống, chọn câu trả lời đúng, chọn câu tiếng Nhật tương ứng với nghĩa tiếng Việt, nghe đoạn ghi âm và chọn đáp án đúng, đọc to từ được yêu cầu, đặt câu với từ cho trước, đặt câu với cấu trúc cho trước, nói đoạn văn gồm 3–5 câu, sau khi làm xong chuyển sang màn hình hiển thị kết quả).
🔹 5. Thu hồi bài kiểm tra (nếu cần): Ở trạng thái "Đã chấm", "Chưa chấm", hoặc "Đang đợi nộp bài", giáo viên có thể thu hồi bài kiểm tra, hệ thống sẽ reset hết tất cả những gì học viên đã làm và bài kiểm tra chuyển sang trạng thái "Chưa giao".
🔹 6. Chấm bài kiểm tra: Sau khi nhận kết quả từ ứng dụng Sakumi, giáo viên chấm bài tương tự quy trình chấm BTVN (xem trạng thái bài kiểm tra với 4 trạng thái: "Đã chấm", "Chưa chấm", "Đang đợi nộp bài", "Chưa giao"; lọc học viên, chấm điểm thang 10, nhận xét audio/file/text, sao chép nhận xét, tỉ lệ điểm số/tổng câu; có thể sửa lại nếu đã chấm; khi chấm xong chuyển trạng thái "Đã chấm" và hiển thị điểm trên Sakumi). Các cột thống kê bao gồm: điểm số, tên học viên, thời gian làm bài, thời gian nộp bài, và số câu đã bỏ qua.
🔹 7. Chỉnh sửa/xóa bài kiểm tra (Support): Đối với bài thêm mới, nếu chưa có học viên nộp bài (Chưa giao/Đang đợi nộp bài không nộp), có quyền chỉnh sửa hoặc xóa; Nếu có ít nhất 1 học viên nộp bài, không cho chỉnh sửa/xóa. Bài cố định có sẵn không chỉnh sửa/xóa ở bất kỳ trạng thái nào.
🔹 8. Mở toàn bộ bài kiểm tra (Support): Đối với lớp không chính thức, nhấn nút mở toàn bộ để testing, tất cả bài kiểm tra chuyển trạng thái mở và giao cho học viên.
Điều kiện và kết quả - Điều kiện: Bài kiểm tra phải được cấu hình sẵn trong hệ thống, giáo viên được phân công lớp, có học viên trong lớp. Đối với chỉnh sửa/xóa: Chỉ cho bài thêm mới và chưa nộp bài. Đối với mở toàn bộ: Chỉ lớp không chính thức.
- Kết quả: Bài kiểm tra được giao và đồng bộ, trạng thái cập nhật động (Chưa giao → Đang đợi nộp bài → Chưa chấm → Đã chấm), nếu thu hồi thì reset toàn bộ và quay về Chưa giao; điểm số và kết quả chấm được lưu trữ và đồng bộ sang Sakumi. Sau chỉnh sửa/xóa/mở toàn bộ, danh sách cập nhật tương ứng.
Tương tác với Sakumi - Hệ thống ICS đẩy bài kiểm tra và trạng thái sang ứng dụng Sakumi để học viên xem danh sách bài kiểm tra.
- Ứng dụng Sakumi gửi kết quả bài kiểm tra về hệ thống ICS để giáo viên chấm điểm.
- Nếu học viên chưa làm bài kiểm tra, ứng dụng Sakumi sẽ hiển thị nợ bài kiểm tra; nếu đã làm xong thì không hiển thị nữa.
- Sau chỉnh sửa/xóa/mở toàn bộ ở ICS, đồng bộ sang Sakumi để cập nhật danh sách bài kiểm tra cho học viên.

3.3 Tự Học

Tự Học
Trường dữ liệu Nội dung
Tên chức năng Tự Học
Vai trò Học viên, Giáo viên, Support
Mô tả Cho phép học viên tự học các bài học bổ sung có sẵn hoặc được thêm mới, với cấu trúc giống như bài học buổi học bình thường (bao gồm các phần như Flashcard, Bài tập, Từ vựng, Ngữ pháp, Đọc, Kanji, Nghe, Bảng chữ). Các bài tự học này có thể học bất kỳ lúc nào, và thời gian học được tính cho từng phần mà học viên hoàn thành. Giáo viên chỉ có quyền xem thông tin và tiến độ trong chi tiết buổi học (danh sách học viên với thời gian học cho từng phần), trong khi Support có quyền xem tương tự và thêm mới một hoặc nhiều bài tự học qua popup. Học viên truy cập qua khóa học cụ thể, chọn bài học cụ thể, vào tab Tự học để chọn bài tự học cụ thể. Tiến độ học được hiển thị dưới dạng phần trăm cho từng phần (ví dụ: Từ vựng 0%, Hán tự 0%, Nghe 0%, Đọc 0%).
Giao diện liên quan - Trang chi tiết buổi học trên web (truy cập từ tab "Buổi học" khi chọn một buổi cụ thể): Hiển thị danh sách học viên với thời gian học cho từng phần tự học (Flashcard, Bài tập, Từ vựng, Ngữ pháp, Đọc, Kanji, Nghe, Bảng chữ). Đối với Support, có nút "Thêm bài học mới"; đối với Giáo viên, chỉ hiển thị danh sách mà không có nút thêm.
- Popup "Thêm bài học mới" trên web (chỉ cho Support): Trường Tiêu đề (Nhập tiêu đề), Khóa học (dropdown chọn khóa), Bài học (dropdown chọn bài), nút Thêm.
- Tab "Tự học" trên app mobile: Danh sách các bài tự học (ví dụ: Ngày 01, Ngày 02,... với tiến độ %).
- Màn hình chi tiết bài tự học trên app: Phân loại thành KIẾN THỨC NỀN (Từ vựng, Hán tự) và KỸ NĂNG (Nghe, Đọc) với tiến độ %, và các phần bắt buộc như Duyệt Kiến Thức, Học Qua Flashcard, Luyện Nhớ Chuyên Sâu, Bài Tập Củng Cố.
Luồng thao tác chính 1. Học viên truy cập app, chọn khóa học cụ thể (ví dụ: MÃ LỚP: LTN3-12).
2. Chọn bài học cụ thể, sau đó vào tab "Tự học".
3. Hệ thống hiển thị danh sách bài tự học có sẵn (ví dụ: Ngày 01 đến Ngày 06 với tiến độ %).
4. Học viên chọn bài tự học cụ thể (ví dụ: Ngày 20) để bắt đầu học.
5. Trong bài tự học, học viên thực hiện các phần (KIẾN THỨC NỀN, KỸ NĂNG, PHẦN BẮT BUỘC như Flashcard, Luyện nhớ, Bài tập), thời gian được tính tự động cho phần đang học.
6. Đối với Support: Trên web, vào chi tiết buổi học (hiển thị danh sách học viên với thời gian học từng phần), nhấn "Thêm bài học mới" → nhập tiêu đề, chọn khóa học và bài học → nhấn Thêm để tạo bài tự học mới.
7. Đối với Giáo viên: Trên web, vào chi tiết buổi học (hiển thị danh sách học viên với thời gian học từng phần), chỉ xem danh sách và tiến độ, không có nút thêm/sửa.
8. Dữ liệu tiến độ cập nhật thời gian thực dựa trên hoạt động học viên.
Điều kiện - Học viên phải đăng nhập và thuộc khóa học cụ thể để truy cập tab Tự học.
- Bài tự học có cấu trúc giống bài học bình thường, có thể thêm 1 hoặc nhiều bài mới bởi Support.
- Giáo viên chỉ xem danh sách học viên và tiến độ trong chi tiết buổi học, không chỉnh sửa; Support có quyền xem và thêm mới.
- Thời gian học chỉ tính khi học viên thực hiện phần cụ thể.
- Tiến độ làm tròn tới số nguyên phần trăm.
- Bài tự học có sẵn hoặc thêm mới phải liên kết với khóa học/bài học cụ thể.
Kết quả hiển thị - Danh sách bài tự học: Ví dụ Ngày 01 (0%), Ngày 02 (0%), với màu sắc biểu thị tiến độ (hồng nhạt cho chưa hoàn thành).
- Chi tiết bài: KIẾN THỨC NỀN (Từ vựng 0%, Hán tự 0%), KỸ NĂNG (Nghe 0%, Đọc 0%), các phần bắt buộc với trạng thái "Chưa hoàn thành".
- Trên web (cho Giáo viên và Support): Danh sách học viên với thời gian học (ví dụ: 00:00:00 cho từng phần như Flashcard, Bài tập,...), hoặc nội dung bài.
- Sau thêm mới (chỉ Support): Bài tự học mới xuất hiện trong danh sách tab Tự học trên app.
Trường hợp không có dữ liệu - Nếu chưa có bài tự học: Hiển thị "Chưa có bài tự học nào" trong tab Tự học.
- Nếu chưa học phần nào: Tiến độ 0%, thời gian 00:00:00, trạng thái "Chưa hoàn thành".
- Nếu tìm kiếm hoặc chọn bài không tồn tại: Thông báo "Không tìm thấy bài tự học".
- Trên web, nếu không có học viên hoặc dữ liệu: Danh sách trống với thông báo phù hợp.

4. Quy trình quản lí chất lượng giảng dạy

4.1 Quy trình lớp - Tiêu chuẩn lớp học

Quy trình lớp - Tiêu chuẩn lớp học
Trường dữ liệu Nội dung
Tên chức năng Quy trình lớp - Tiêu chuẩn lớp học
Vai trò Admin, Support, Giáo viên
Mô tả Cho phép tạo và quản lý các quy trình để quản lý, đánh giá lớp học và giáo viên, bao gồm việc nhập tiêu đề quy trình, mô tả quy trình, tiêu đề danh mục, mô tả danh mục, tiêu đề nội dung, mô tả nội dung. Mỗi quy trình có 3 trạng thái: "Đang kích hoạt", "Vô hiệu", "Xóa". Tiến độ hoàn thành tiêu chuẩn lớp học được tính dựa trên các loại nội dung cụ thể: "Kiểm tra" (ô tick do support đánh dấu để tính %), "Tiến độ" (thanh progress do support kéo để đánh giá % hoàn thành), "Đánh giá" (mô tả và đánh giá tổng). Các nội dung quy trình có nhiều loại: "Hướng dẫn" (mô tả và tệp đính kèm - hỗ trợ upload file), "Kiểm tra" (mô tả và ô tick), "Tiến độ" (mô tả và thanh progress), "Nhiệm vụ" (mô tả và tệp đính kèm - hỗ trợ upload file), "Deadline" (mô tả, deadline, thời gian hoàn thành), "Xác thực" (mô tả, thời gian xác thực, người gán, ô tick do admin tick). Ở tiêu chuẩn lớp học, các nội dung quy trình đều có mục ghi chú (do admin ghi chú). Admin và Support có quyền tạo mới quy trình lớp, chỉnh sửa, upload file (chỉ cho loại "Hướng dẫn" và "Nhiệm vụ"), set trạng thái quy trình; ở tiêu chuẩn lớp học, Admin và Support có quyền đánh giá (tick ô, kéo progress, thêm ghi chú), trong khi Giáo viên chỉ có quyền xem danh sách và tiến độ. Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu, ví dụ thông báo đỏ cho upload file nếu thiếu ở loại "Hướng dẫn" hoặc "Nhiệm vụ". Đánh giá thao tác với các nội dung (tick, progress, ghi chú) khác với chỉnh sửa trạng thái quy trình.
Giao diện liên quan - Trang quản lý quy trình lớp trên web (truy cập từ menu "Quy trình" hoặc tab "Quy trình lớp" trong lớp học cụ thể), hiển thị danh sách quy trình với cấu trúc phân cấp (Quy trình > Danh mục > Nội dung), các trường: Mã quy trình (ví dụ: TESTA), Tiêu đề quy trình (Nhập mới tiêu đề), Mô tả quy trình, Tiêu đề danh mục, Mô tả danh mục, Tiêu đề nội dung, Mô tả nội dung, Trạng thái quy trình ("Đang kích hoạt", "Vô hiệu", "Xóa"), Loại nội dung (Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực với badge cam: Chưa đạt deadline, Chưa chọn thời gian; check xanh cho tick hoàn tất), Nút hành động (Hướng dẫn, Kiểm tra, Đánh giá, Xóa, Log), Upload file (thông báo đỏ nếu chưa thêm, chỉ hiển thị cho loại "Hướng dẫn" và "Nhiệm vụ"), Tiêu chuẩn/Kỹ năng (dropdown), Tiến độ (%) dựa trên "Kiểm tra", "Tiến độ", "Đánh giá" (chỉ ở tiêu chuẩn lớp học), Ghi chú (textarea cho admin ở tiêu chuẩn lớp học).
- Popup chọn quy trình ở tiêu chuẩn lớp học: Nhấn "Thêm quy trình" để mở popup hiển thị danh sách quy trình từ quy trình lớp (với checkbox để chọn 1 hoặc nhiều quy trình, mở rộng để chọn 1 hoặc nhiều danh mục, chọn 1 hoặc nhiều nội dung của danh mục), nút "Hủy bỏ"/"Thêm".
- Popup hoặc inline chỉnh sửa: Chọn trạng thái quy trình ("Đang kích hoạt"/"Vô hiệu"/"Xóa"), Nhập tiêu đề/mô tả quy trình/danh mục/nội dung, Chọn loại nội dung (Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực), Upload file (chỉ cho "Hướng dẫn" và "Nhiệm vụ"), Set deadline/thời gian (date picker), Chọn người gán (dropdown), Ô tick (cho nội dung Kiểm tra/Xác thực), Thanh progress (cho Tiến độ), Ghi chú (textarea cho admin ở tiêu chuẩn lớp học), Nút Lưu/Xóa (ẩn với Giáo viên).
Luồng thao tác chính 1. Người dùng (Admin/Support) truy cập trang Quy trình lớp từ menu hoặc lớp học cụ thể để tạo mới quy trình.
2. Hệ thống hiển thị danh sách quy trình với cấu trúc phân cấp (Quy trình > Danh mục > Nội dung), trạng thái, loại nội dung, tiến độ, và ghi chú.
3. Để tạo mới: Nhấn nút "Thêm quy trình mới" (chỉ hiển thị cho Admin/Support) → chọn trạng thái ("Đang kích hoạt"), nhập tiêu đề/mô tả quy trình, thêm danh mục (tiêu đề/mô tả), thêm nội dung cho danh mục (tiêu đề/mô tả, chọn loại: Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực), upload file (nếu loại "Hướng dẫn" hoặc "Nhiệm vụ"), set deadline/thời gian hoàn thành (cho Deadline), chọn người gán/thời gian xác thực/ô tick (cho nội dung Xác thực), thanh progress (cho Tiến độ), ô tick (cho nội dung Kiểm tra) → nhấn Lưu.
4. Để chỉnh sửa trạng thái quy trình: Chọn quy trình → cập nhật trạng thái ("Vô hiệu"/"Xóa") → Lưu (chỉ Admin/Support).
5. Để thêm và đánh giá ở tiêu chuẩn lớp học: Nhấn "Thêm quy trình" để mở popup chọn quy trình từ quy trình lớp (chọn 1 hoặc nhiều quy trình, mở rộng chọn 1 hoặc nhiều danh mục, chọn 1 hoặc nhiều nội dung của danh mục) → nhấn "Thêm" để thêm vào tiêu chuẩn lớp học → sau đó đánh giá: tick ô (Admin/Support cho nội dung Kiểm tra/Xác thực), kéo thanh progress (Admin/Support cho nội dung Tiến độ), thêm ghi chú (Admin/Support), hệ thống tính tiến độ % từ "Kiểm tra", "Tiến độ", "Đánh giá" và kiểm tra lỗi.
6. Để xóa: Chọn quy trình → thay đổi trạng thái thành "Xóa" và xác nhận (chỉ Admin/Support).
7. Đối với Giáo viên: Truy cập trang để xem danh sách, tiến độ, chi tiết quy trình và ghi chú (không có nút tạo/chỉnh sửa/tick/progress).
8. Hệ thống tự động cập nhật tiến độ dựa trên tick/progress/đánh giá ở tiêu chuẩn lớp học, và gửi thông báo nếu quá hạn.
9. Log hoạt động: Nhấn nút Log để xem lịch sử thay đổi.
Điều kiện - Người dùng phải được phân quyền: Admin/Support tạo quy trình lớp, chỉnh sửa trạng thái, tick/progress/ghi chú/đánh giá ở tiêu chuẩn lớp học; Giáo viên chỉ xem; xem và hỗ trợ quản lý.
- Quy trình phải liên kết với lớp học cụ thể để đánh giá (lớp, giáo viên), với cấu trúc: Nội dung < Danh mục < Quy trình.
- Bắt buộc: Tiêu đề quy trình, loại nội dung; file upload chỉ bắt buộc cho loại "Hướng dẫn" và "Nhiệm vụ" (nếu thiếu: cảnh báo đỏ); deadline/tick/progress tùy loại khác (nếu thiếu: cảnh báo cam).
- Trạng thái: Mặc định "Đang kích hoạt"; "Vô hiệu" để tạm dừng; "Xóa" để loại bỏ.
- Tiến độ % ở tiêu chuẩn lớp học: Tính trung bình từ "Kiểm tra" (tick = 100%), "Tiến độ" (thanh % trực tiếp), "Đánh giá" (dựa trên mô tả/ghi chú); làm tròn số nguyên; chỉ tính từ 3 loại này.
- Hỗ trợ file upload: Chỉ cho "Hướng dẫn" và "Nhiệm vụ"; định dạng PDF, DOC, hình ảnh; kích thước <10MB.
- Deadline/thời gian: YYYY-MM-DD, tự động kiểm tra quá hạn.
- Ghi chú: Chỉ Admin/Support chỉnh sửa ở tiêu chuẩn lớp học, hiển thị ở tất cả nội dung quy trình lớp học.
- Chọn ở tiêu chuẩn lớp học: Phải chọn quy trình trước khi đánh giá; có thể chọn nhiều quy trình/danh mục/nội dung.
Kết quả hiển thị - Danh sách quy trình: Mã (TESTA), Tiêu đề quy trình, Mô tả, Trạng thái ("Đang kích hoạt"), Loại nội dung (ví dụ: Kiểm tra với ô tick, Tiến độ với thanh %), Badge (cam cho chưa đạt deadline, xanh cho tick), Tiêu chuẩn (Tiêu Chuẩn Kiểm Thử & Kỹ Năng), Tiến độ tổng (0% dựa trên Kiểm tra/Tiến độ/Đánh giá ở tiêu chuẩn lớp học), Ghi chú (nếu có ở tiêu chuẩn lớp học), Nút hành động (Log, Xóa - ẩn với Giáo viên).
- Popup chọn: Danh sách quy trình với checkbox, mở rộng danh mục và nội dung để chọn nhiều.
- Sau thêm/chọn/đánh giá: Quy trình/danh mục/nội dung được thêm vào tiêu chuẩn lớp học, tiến độ cập nhật (ví dụ: tick Kiểm tra tăng %).
- Cảnh báo: Đỏ "Thêm file..." (chỉ cho "Hướng dẫn"/"Nhiệm vụ" nếu thiếu); cam "Chưa đạt deadline".
- Log: Lịch sử (thời gian, người, thay đổi như tick/progress/ghi chú).
Trường hợp không có dữ liệu - Nếu chưa có quy trình: "Chưa có quy trình nào" với nút "Thêm mới" (chỉ hiển thị cho Admin/Support).
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa chọn thời gian", "Chưa upload file" - chỉ cho "Hướng dẫn"/"Nhiệm vụ").
- Nếu xóa không thành: "Không thể xóa quy trình đang kích hoạt".
- Nếu không quyền (Giáo viên): Ẩn nút tạo/chỉnh sửa/tick/progress/ghi chú.
- Nếu chưa chọn quy trình ở tiêu chuẩn lớp học: Không thể đánh giá; hiển thị nút "Thêm quy trình".

4.2 Quy trình CSKH - CSKH lớp

Quy trình CSKH - CSKH lớp
Trường dữ liệu Nội dung
Tên chức năng Quy trình CSKH - CSKH lớp
Vai trò Admin, Support
Mô tả Cho phép tạo và quản lý các quy trình để quản lý, đánh giá CSKH, bao gồm việc nhập tiêu đề quy trình, mô tả quy trình, tiêu đề danh mục, mô tả danh mục, tiêu đề nội dung, mô tả nội dung. Mỗi quy trình có 3 trạng thái: "Đang kích hoạt", "Vô hiệu", "Xóa". Tiến độ hoàn thành CSKH được tính dựa trên các loại nội dung cụ thể: "Kiểm tra" (ô tick do admin đánh dấu để tính %), "Tiến độ" (thanh progress do admin kéo để đánh giá % hoàn thành), "Đánh giá" (mô tả và đánh giá tổng). Các nội dung quy trình có nhiều loại: "Hướng dẫn" (mô tả và tệp đính kèm - hỗ trợ upload file), "Kiểm tra" (mô tả và ô tick), "Tiến độ" (mô tả và thanh progress), "Nhiệm vụ" (mô tả và tệp đính kèm - hỗ trợ upload file), "Deadline" (mô tả, deadline, thời gian hoàn thành), "Xác thực" (mô tả, thời gian xác thực, người gán, ô tick do admin tick). Ở CSKH, các nội dung quy trình đều có mục ghi chú (do admin ghi chú). Admin có quyền tạo mới quy trình CSKH, chỉnh sửa, upload file (chỉ cho loại "Hướng dẫn" và "Nhiệm vụ"), set trạng thái quy trình; ở CSKH, Admin có quyền đánh giá (tick ô, kéo progress, thêm ghi chú), trong khi Support chỉ có quyền xem danh sách và tiến độ. Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu, ví dụ thông báo đỏ cho upload file nếu thiếu ở loại "Hướng dẫn" hoặc "Nhiệm vụ". Đánh giá thao tác với các nội dung (tick, progress, ghi chú) khác với chỉnh sửa trạng thái quy trình.
Giao diện liên quan - Trang quản lý quy trình CSKH trên web (truy cập từ menu "Quy trình" hoặc tab "Quy trình CSKH" trong lớp học cụ thể), hiển thị danh sách quy trình với cấu trúc phân cấp (Quy trình > Danh mục > Nội dung), các trường: Mã quy trình (ví dụ: TESTA), Tiêu đề quy trình (Nhập mới tiêu đề), Mô tả quy trình, Tiêu đề danh mục, Mô tả danh mục, Tiêu đề nội dung, Mô tả nội dung, Trạng thái quy trình ("Đang kích hoạt", "Vô hiệu", "Xóa"), Loại nội dung (Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực với badge cam: Chưa đạt deadline, Chưa chọn thời gian; check xanh cho tick hoàn tất), Nút hành động (Hướng dẫn, Kiểm tra, Đánh giá, Xóa, Log), Upload file (thông báo đỏ nếu chưa thêm, chỉ hiển thị cho loại "Hướng dẫn" và "Nhiệm vụ"), Tiêu chuẩn/Kỹ năng (dropdown), Tiến độ (%) dựa trên "Kiểm tra", "Tiến độ", "Đánh giá" (chỉ ở CSKH), Ghi chú (textarea cho admin ở CSKH).
- Popup chọn quy trình ở CSKH: Nhấn "Thêm quy trình" để mở popup hiển thị danh sách quy trình từ quy trình CSKH (với checkbox để chọn 1 hoặc nhiều quy trình, mở rộng để chọn 1 hoặc nhiều danh mục, chọn 1 hoặc nhiều nội dung của danh mục), nút "Hủy bỏ"/"Thêm".
- Popup hoặc inline chỉnh sửa: Chọn trạng thái quy trình ("Đang kích hoạt"/"Vô hiệu"/"Xóa"), Nhập tiêu đề/mô tả quy trình/danh mục/nội dung, Chọn loại nội dung (Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực), Upload file (chỉ cho "Hướng dẫn" và "Nhiệm vụ"), Set deadline/thời gian (date picker), Chọn người gán (dropdown), Ô tick (cho nội dung Kiểm tra/Xác thực), Thanh progress (cho Tiến độ), Ghi chú (textarea cho admin ở CSKH), Nút Lưu/Xóa (ẩn với Support).
Luồng thao tác chính 1. Người dùng (Admin) truy cập trang Quy trình CSKH từ menu hoặc lớp học cụ thể để tạo mới quy trình.
2. Hệ thống hiển thị danh sách quy trình với cấu trúc phân cấp (Quy trình > Danh mục > Nội dung), trạng thái, loại nội dung, tiến độ, và ghi chú.
3. Để tạo mới: Nhấn nút "Thêm quy trình mới" (chỉ hiển thị cho Admin) → chọn trạng thái ("Đang kích hoạt"), nhập tiêu đề/mô tả quy trình, thêm danh mục (tiêu đề/mô tả), thêm nội dung cho danh mục (tiêu đề/mô tả, chọn loại: Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực), upload file (nếu loại "Hướng dẫn" hoặc "Nhiệm vụ"), set deadline/thời gian hoàn thành (cho Deadline), chọn người gán/thời gian xác thực/ô tick (cho nội dung Xác thực), thanh progress (cho Tiến độ), ô tick (cho nội dung Kiểm tra) → nhấn Lưu.
4. Để chỉnh sửa trạng thái quy trình: Chọn quy trình → cập nhật trạng thái ("Vô hiệu"/"Xóa") → Lưu (chỉ Admin).
5. Để thêm và đánh giá ở CSKH: Nhấn "Thêm quy trình" để mở popup chọn quy trình từ quy trình CSKH (chọn 1 hoặc nhiều quy trình, mở rộng chọn 1 hoặc nhiều danh mục, chọn 1 hoặc nhiều nội dung của danh mục) → nhấn "Thêm" để thêm vào CSKH → sau đó đánh giá: tick ô (Admin cho nội dung Kiểm tra/Xác thực), kéo thanh progress (Admin cho nội dung Tiến độ), thêm ghi chú (Admin), hệ thống tính tiến độ % từ "Kiểm tra", "Tiến độ", "Đánh giá" và kiểm tra lỗi.
6. Để xóa: Chọn quy trình → thay đổi trạng thái thành "Xóa" và xác nhận (chỉ Admin).
7. Đối với Support: Truy cập trang để xem danh sách, tiến độ, chi tiết quy trình và ghi chú (không có nút tạo/chỉnh sửa/tick/progress).
8. Hệ thống tự động cập nhật tiến độ dựa trên tick/progress/đánh giá ở CSKH, và gửi thông báo nếu quá hạn.
9. Log hoạt động: Nhấn nút Log để xem lịch sử thay đổi.
Điều kiện - Người dùng phải được phân quyền: Admin tạo quy trình CSKH, chỉnh sửa trạng thái, tick/progress/ghi chú/đánh giá ở CSKH; Support chỉ xem.
- Quy trình phải liên kết với lớp học cụ thể để đánh giá, với cấu trúc: Nội dung < Danh mục < Quy trình.
- Bắt buộc: Tiêu đề quy trình, loại nội dung; file upload chỉ bắt buộc cho loại "Hướng dẫn" và "Nhiệm vụ" (nếu thiếu: cảnh báo đỏ); deadline/tick/progress tùy loại khác (nếu thiếu: cảnh báo cam).
- Trạng thái: Mặc định "Đang kích hoạt"; "Vô hiệu" để tạm dừng; "Xóa" để loại bỏ.
- Tiến độ % ở CSKH: Tính trung bình từ "Kiểm tra" (tick = 100%), "Tiến độ" (thanh % trực tiếp), "Đánh giá" (dựa trên mô tả/ghi chú); làm tròn số nguyên; chỉ tính từ 3 loại này.
- Hỗ trợ file upload: Chỉ cho "Hướng dẫn" và "Nhiệm vụ"; định dạng PDF, DOC, hình ảnh; kích thước <10MB.
- Deadline/thời gian: YYYY-MM-DD, tự động kiểm tra quá hạn.
- Ghi chú: Chỉ Admin chỉnh sửa ở CSKH, hiển thị ở tất cả nội dung quy trình CSKH.
- Chọn ở CSKH: Phải chọn quy trình trước khi đánh giá; có thể chọn nhiều quy trình/danh mục/nội dung.
Kết quả hiển thị - Danh sách quy trình: Mã (TESTA), Tiêu đề quy trình, Mô tả, Trạng thái ("Đang kích hoạt"), Loại nội dung (ví dụ: Kiểm tra với ô tick, Tiến độ với thanh %), Badge (cam cho chưa đạt deadline, xanh cho tick), Tiêu chuẩn (Tiêu Chuẩn Kiểm Thử & Kỹ Năng), Tiến độ tổng (0% dựa trên Kiểm tra/Tiến độ/Đánh giá ở CSKH), Ghi chú (nếu có ở CSKH), Nút hành động (Log, Xóa - ẩn với Support).
- Popup chọn: Danh sách quy trình với checkbox, mở rộng danh mục và nội dung để chọn nhiều.
- Sau thêm/chọn/đánh giá: Quy trình/danh mục/nội dung được thêm vào CSKH, tiến độ cập nhật (ví dụ: tick Kiểm tra tăng %).
- Cảnh báo: Đỏ "Thêm file..." (chỉ cho "Hướng dẫn"/"Nhiệm vụ" nếu thiếu); cam "Chưa đạt deadline".
- Log: Lịch sử (thời gian, người, thay đổi như tick/progress/ghi chú).
Trường hợp không có dữ liệu - Nếu chưa có quy trình: "Chưa có quy trình nào" với nút "Thêm mới" (chỉ hiển thị cho Admin).
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa chọn thời gian", "Chưa upload file" - chỉ cho "Hướng dẫn"/"Nhiệm vụ").
- Nếu xóa không thành: "Không thể xóa quy trình đang kích hoạt".
- Nếu không quyền (Support): Ẩn nút tạo/chỉnh sửa/tick/progress/ghi chú.
- Nếu chưa chọn quy trình ở CSKH: Không thể đánh giá; hiển thị nút "Thêm quy trình".

4.3 Tài liệu

Tài liệu
Trường dữ liệu Nội dung
Tên chức năng Tài liệu
Vai trò Admin, Giáo viên
Mô tả Cho phép tạo và quản lý các tài liệu trong hệ thống, bao gồm việc nhập tiêu đề tài liệu, mô tả tài liệu, tiêu đề danh mục, mô tả danh mục, và nội dung tài liệu. Mỗi tài liệu có 3 trạng thái: "Đang kích hoạt", "Vô hiệu", "Xóa". Tiến độ hoàn thành tài liệu không được tính, nhưng hỗ trợ ghi chú bởi Giáo viên để phản hồi hoặc ghi nhận thông tin. Admin có quyền tạo mới tài liệu, chỉnh sửa thông tin tài liệu, và set trạng thái tài liệu; Giáo viên chỉ có quyền xem danh sách tài liệu và thêm ghi chú. Tài liệu không có loại nội dung cụ thể mà chỉ hỗ trợ nhập text (không hỗ trợ upload file hoặc các loại nội dung như Kiểm tra, Tiến độ, v.v.). Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu, ví dụ thông báo đỏ nếu thiếu tiêu đề tài liệu hoặc mô tả. Đánh giá thao tác (chỉ ghi chú) khác với chỉnh sửa trạng thái tài liệu.
Giao diện liên quan - Trang quản lý tài liệu trên web (truy cập từ tab "Tài liệu" trong lớp học cụ thể), hiển thị danh sách tài liệu với cấu trúc phân cấp (Tài liệu > Danh mục > Nội dung), các trường: Mã tài liệu (ví dụ: DOCA), Tiêu đề tài liệu (Nhập mới tiêu đề), Mô tả tài liệu, Tiêu đề danh mục, Mô tả danh mục, Nội dung tài liệu (textarea), Trạng thái tài liệu ("Đang kích hoạt", "Vô hiệu", "Xóa"), Ghi chú (textarea cho Giáo viên), Nút hành động (Hiển thị, Xóa, Log - ẩn nút Xóa với Giáo viên).
- Popup chọn tài liệu: Nhấn "Thêm tài liệu" để mở popup hiển thị danh sách tài liệu (với checkbox để chọn 1 hoặc nhiều tài liệu, mở rộng để chọn 1 hoặc nhiều danh mục, chọn 1 hoặc nhiều nội dung của danh mục), nút "Hủy bỏ"/"Thêm".
- Popup hoặc inline chỉnh sửa: Chọn trạng thái tài liệu ("Đang kích hoạt"/"Vô hiệu"/"Xóa"), Nhập tiêu đề/mô tả tài liệu/danh mục, Nhập nội dung tài liệu (textarea), Ghi chú (textarea cho Giáo viên), Nút Lưu/Xóa (ẩn với Giáo viên).
Luồng thao tác chính 1. Người dùng (Admin) truy cập trang Tài liệu từ tab "Tài liệu" trong lớp học cụ thể để tạo mới tài liệu.
2. Hệ thống hiển thị danh sách tài liệu với cấu trúc phân cấp (Tài liệu > Danh mục > Nội dung), trạng thái, và ghi chú.
3. Để tạo mới: Nhấn nút "Thêm tài liệu mới" (chỉ hiển thị cho Admin) → chọn trạng thái ("Đang kích hoạt"), nhập tiêu đề/mô tả tài liệu, thêm danh mục (tiêu đề/mô tả), thêm nội dung cho danh mục (tiêu đề/mô tả, nội dung text) → nhấn Lưu.
4. Để chỉnh sửa trạng thái tài liệu: Chọn tài liệu → cập nhật trạng thái ("Vô hiệu"/"Xóa") → Lưu (chỉ Admin).
5. Để thêm vào lớp học: Nhấn "Thêm tài liệu" để mở popup chọn tài liệu (chọn 1 hoặc nhiều tài liệu, mở rộng chọn 1 hoặc nhiều danh mục, chọn 1 hoặc nhiều nội dung của danh mục) → nhấn "Thêm" để thêm vào tab Tài liệu của lớp học → Giáo viên có thể thêm ghi chú.
6. Để xóa: Chọn tài liệu → thay đổi trạng thái thành "Xóa" và xác nhận (chỉ Admin).
7. Đối với Giáo viên: Truy cập trang để xem danh sách, nội dung tài liệu, và ghi chú (không có nút tạo/chỉnh sửa/trạng thái).
8. Hệ thống tự động cập nhật ghi chú của Giáo viên và gửi thông báo nếu cần.
9. Log hoạt động: Nhấn nút Log để xem lịch sử thay đổi (chỉ hiển thị).
Điều kiện - Người dùng phải được phân quyền: Admin tạo tài liệu, chỉnh sửa trạng thái; Giáo viên chỉ xem và thêm ghi chú.
- Tài liệu phải liên kết với lớp học cụ thể để quản lý (lớp), với cấu trúc: Nội dung < Danh mục < Tài liệu.
- Bắt buộc: Tiêu đề tài liệu, nội dung tài liệu; mô tả danh mục/nội dung tùy chọn (nếu thiếu: cảnh báo cam).
- Trạng thái: Mặc định "Đang kích hoạt"; "Vô hiệu" để tạm dừng; "Xóa" để loại bỏ.
- Không tính tiến độ % (khác với Tiêu chuẩn lớp học).
- Ghi chú: Chỉ Giáo viên chỉnh sửa ở tab Tài liệu, hiển thị ở tất cả nội dung tài liệu.
- Chọn ở tab Tài liệu: Phải chọn tài liệu trước khi thêm ghi chú; có thể chọn nhiều tài liệu/danh mục/nội dung.
Kết quả hiển thị - Danh sách tài liệu: Mã (DOCA), Tiêu đề tài liệu, Mô tả, Trạng thái ("Đang kích hoạt"), Nội dung tài liệu, Ghi chú (nếu có từ Giáo viên), Nút hành động (Log - ẩn Xóa với Giáo viên).
- Popup chọn: Danh sách tài liệu với checkbox, mở rộng danh mục và nội dung để chọn nhiều.
- Sau thêm/chọn: Tài liệu/danh mục/nội dung được thêm vào tab Tài liệu của lớp học, ghi chú cập nhật nếu có.
- Cảnh báo: Cam "Chưa điền mô tả" (nếu thiếu mô tả danh mục/nội dung).
- Log: Lịch sử (thời gian, người, thay đổi như ghi chú).
Trường hợp không có dữ liệu - Nếu chưa có tài liệu: "Chưa có tài liệu nào" với nút "Thêm mới" (chỉ hiển thị cho Admin).
- Nếu thiếu trường: Cảnh báo cam (ví dụ: "Chưa điền tiêu đề tài liệu").
- Nếu xóa không thành: "Không thể xóa tài liệu đang kích hoạt".
- Nếu không quyền (Giáo viên): Ẩn nút tạo/chỉnh sửa/trạng thái.
- Nếu chưa chọn tài liệu trong lớp học: Không thể thêm ghi chú; hiển thị nút "Thêm tài liệu".

4.4 Cuộc họp lớp - Lịch họp

Cuộc họp lớp - Lịch họp
Trường dữ liệu Nội dung
Tên chức năng Cuộc họp lớp - Lịch họp
Vai trò Admin, Support, Giáo viên
Mô tả Cho phép tạo và quản lý các buổi họp lớp trong tab Cuộc họp của lớp cụ thể, lấy quy trình từ quy trình lớp. Mỗi buổi họp bao gồm title cuộc họp, chọn người tham gia, thời gian họp, trạng thái cuộc họp ("Đang tham gia", "Mới tạo", "Hoàn thành", "Đang chờ"), mô tả cuộc họp, thêm quy trình (lấy từ quy trình lớp, có thể thêm 1 hoặc nhiều). Admin và Support có quyền tạo mới buổi họp, chỉnh sửa, chọn người tham gia, set trạng thái, thêm quy trình; Giáo viên chỉ có quyền xem thông tin cuộc họp nếu được add vào người tham gia. Sau khi thêm lịch họp, chỉ những người được chọn tham gia mới có quyền xem lịch họp. Nếu cùng thời gian có 2 lịch họp, hiển thị số lượng (2) và danh sách chi tiết khi nhấn vào, bao gồm số lượng người tham gia, ngày giờ, trạng thái, và tiêu đề cuộc họp.
Giao diện liên quan - Tab "Cuộc họp" trong lớp cụ thể trên web, hiển thị danh sách cuộc họp (lịch họp) với các trường: Số lượng cuộc họp (nếu trùng thời gian), Title cuộc họp, Người tham gia (danh sách users), Thời gian họp (date/time), Trạng thái ("Đang tham gia", "Mới tạo", "Hoàn thành", "Đang chờ"), Mô tả, Quy trình liên kết (từ quy trình lớp, với cấu trúc phân cấp Quy trình > Danh mục > Nội dung), Nút hành động (Chỉnh sửa, Xóa, Log). Danh sách chỉ hiển thị cho những người tham gia; Admin/Support thấy danh sách đầy đủ.
- Popup "Thêm buổi họp mới": Nhập title, Chọn người tham gia (dropdown/multiselect users, bao gồm giáo viên), Thời gian họp (date/time picker), Chọn trạng thái (dropdown), Mô tả (textarea), Thêm quy trình (nút mở popup chọn từ quy trình lớp, với checkbox để chọn 1 hoặc nhiều quy trình/danh mục/nội dung), nút "Hủy bỏ"/"Thêm".
- Popup chi tiết khi trùng thời gian: Hiển thị danh sách cuộc họp cùng thời gian với cột Số lượng người tham gia, Ngày giờ, Trạng thái, Tiêu đề.
- Đối với Giáo viên: Chỉ hiển thị các buổi họp họ được add, xem chỉ đọc (ẩn nút thêm/chỉnh sửa).
Luồng thao tác chính 1. Người dùng (Admin/Support) truy cập tab "Cuộc họp" trong lớp cụ thể.
2. Hệ thống hiển thị danh sách cuộc họp (lịch họp) với thông tin phù hợp (chỉ những người tham gia thấy, Admin/Support thấy đầy đủ).
3. Để thêm mới: Nhấn nút "Thêm buổi họp" (chỉ hiển thị cho Admin/Support) → nhập title, chọn người tham gia (multiselect users), chọn thời gian họp, chọn trạng thái ("Mới tạo" mặc định), nhập mô tả, nhấn "Thêm quy trình" để mở popup chọn từ quy trình lớp (chọn 1 hoặc nhiều quy trình, mở rộng chọn danh mục/nội dung) → nhấn "Thêm" để tạo buổi họp; sau khi thêm, chỉ người tham gia được add mới thấy lịch họp.
4. Để xem chi tiết khi trùng thời gian: Nhấn vào số lượng (ví dụ: 2) để mở popup hiển thị danh sách cuộc họp với Số lượng người tham gia, Ngày giờ, Trạng thái, Tiêu đề.
5. Để chỉnh sửa: Chọn buổi họp → cập nhật title, người tham gia, thời gian, trạng thái, mô tả, thêm/sửa quy trình → Lưu (chỉ Admin/Support).
6. Để xóa: Chọn buổi họp → xác nhận xóa (chỉ Admin/Support).
7. Đối với Giáo viên: Truy cập tab để xem danh sách buổi họp họ được add vào người tham gia, xem chi tiết (title, thời gian, trạng thái, mô tả, quy trình), không chỉnh sửa.
8. Hệ thống tự động cập nhật trạng thái (ví dụ: từ "Mới tạo" sang "Đang tham gia" dựa trên thời gian), và gửi thông báo nếu quá hạn.
9. Log hoạt động: Nhấn nút Log để xem lịch sử thay đổi.
Điều kiện - Người dùng phải được phân quyền: Admin/Support tạo buổi họp, chỉnh sửa, chọn người tham gia/quy trình; Giáo viên chỉ xem nếu được add vào người tham gia.
- Buổi họp phải liên kết với lớp cụ thể, quy trình lấy từ quy trình lớp (có thể chọn nhiều).
- Bắt buộc: Title, thời gian họp, trạng thái; người tham gia và quy trình tùy chọn nhưng khuyến cáo (nếu thiếu: cảnh báo cam).
- Trạng thái: Mặc định "Mới tạo"; "Đang tham gia" khi bắt đầu; "Hoàn thành" khi kết thúc; "Đang chờ" cho chờ xác nhận.
- Thời gian họp: Định dạng YYYY-MM-DD HH:MM, tự động kiểm tra xung đột và hiển thị số lượng nếu trùng.
- Ghi chú: Có thể thêm trong mô tả hoặc riêng nếu cần.
- Chọn quy trình: Phải chọn trước khi đánh giá nếu áp dụng; có thể chọn nhiều quy trình/danh mục/nội dung từ quy trình lớp.
- Hiển thị danh sách: Chỉ người tham gia thấy lịch họp; Admin/Support thấy danh sách đầy đủ.
Kết quả hiển thị - Danh sách buổi họp (lịch họp): Số lượng (ví dụ: 2 nếu trùng thời gian), Title (ví dụ: Test 1), Người tham gia (danh sách), Thời gian (ví dụ: 22/07/2025 10:00), Trạng thái ("Mới tạo"), Mô tả, Quy trình (liên kết từ quy trình lớp, với tiến độ nếu áp dụng), Nút hành động (Log, Xóa - ẩn với Giáo viên). Danh sách chỉ hiển thị cho người tham gia.
- Popup chi tiết khi trùng thời gian: Hiển thị danh sách (Số lượng người tham gia: 5, Ngày giờ: 22/07/2025 10:00, Trạng thái: "Mới tạo", Tiêu đề: "Test 1").
- Sau thêm/chỉnh sửa: Buổi họp mới/xuất hiện trong danh sách (chỉ người tham gia thấy), trạng thái cập nhật.
- Cảnh báo: Cam "Chưa chọn người tham gia" hoặc "Chưa thêm quy trình" nếu thiếu.
- Log: Lịch sử (thời gian, người, thay đổi như thêm người tham gia/quy trình).
Trường hợp không có dữ liệu - Nếu chưa có buổi họp: Hiển thị "Chưa có buổi họp nào" với nút "Thêm buổi họp" (chỉ hiển thị cho Admin/Support).
- Nếu thiếu trường: Cảnh báo cam (như "Chưa chọn thời gian").
- Nếu xóa không thành: Thông báo "Không thể xóa buổi họp đang tham gia".
- Nếu không quyền (Giáo viên không được add): Không thấy buổi họp; nếu được add: Xem chỉ đọc.
- Nếu không quyền xem danh sách đầy đủ: Chỉ thấy các buổi cá nhân (cho Giáo viên không phải Admin/Support).

5. Quản lý học viên

5.1 Danh sách học viên

Danh sách học viên
Trường dữ liệu Nội dung
Tên chức năng Danh sách học viên
Vai trò liên quan - Admin, Support: Thực hiện tìm kiếm, lọc, thêm mới học viên.
- Học viên trung tâm: Không trực tiếp truy cập, nhưng thấy cập nhật trên app trung tâm sau khi được thêm.
Mô tả Cho phép quản lý danh sách học viên toàn hệ thống trung tâm, với chức năng search (tìm kiếm theo tên, mã, email...), filter theo 3 trạng thái (Mới: học viên mới tạo chưa vào lớp, Đang học: đang tham gia ít nhất một lớp, Đợi lớp: đã đăng ký nhưng chưa được thêm vào lớp cụ thể) và filter theo tag (ví dụ: Tag 1, Tag 2). Danh sách học viên hiển thị các cột: Tên học viên (họ tên đầy đủ), Ngày chốt đơn (ngày hoàn tất đăng ký hoặc hóa đơn đầu tiên), Lớp hiện tại (hiển thị lớp chính hoặc số lớp; hover để hiện popup danh sách tất cả lớp đang học với chi tiết như tên lớp, trạng thái), Số lớp (tổng số lớp đang tham gia), Số bill (tổng số hóa đơn), Tổng doanh thu (tổng tiền từ tất cả hóa đơn), Hoàn tiền (số tiền đã hoàn, nếu có). Chức năng thêm học viên mới: mở popup "Thêm" với các trường Họ và tên (bắt buộc), Giới tính (dropdown), Ngày sinh (date picker), Số điện thoại (tùy chọn), Vai trò (dropdown, mặc định "Student"), Gmail (email bắt buộc, hợp lệ), Mật khẩu (bắt buộc), Code (tùy chọn, có lẽ mã đặc biệt), Ngày chốt đơn (date picker, mặc định ngày hiện tại). Sau khi thêm, học viên mới hiển thị trong danh sách với trạng thái "Mới", và đồng bộ với app trung tâm nếu cần. Hỗ trợ tạo học viên cho testing. Có thể thêm 1 hoặc nhiều học viên.
Giao diện liên quan - Trang danh sách học viên (truy cập từ menu "Học viên" hoặc tab tương ứng).
- Ô search "Tìm kiếm..." để tìm theo tên, mã, email.
- Filter dropdown trạng thái: Mới, Đang học, Đợi lớp.
- Filter dropdown tag: Hiển thị các tag có sẵn (VD: Tag 1, Tag 2).
- Danh sách học viên với các cột: Tên học viên, Ngày chốt đơn, Lớp hiện tại (hover mở popup danh sách lớp với tên lớp, trạng thái), Số lớp (số lượng), Số bill (số lượng), Tổng doanh thu (tổng tiền VND), Hoàn tiền (số tiền VND).
- Nút "Thêm học viên mới" mở popup "Thêm" với các trường: Họ và tên, Giới tính (dropdown), Ngày sinh (date picker), Số điện thoại, Vai trò (dropdown "Student"), Gmail (email), Mật khẩu, Code, Ngày chốt đơn (date picker).
- Nút "Thêm tài khoản" để lưu.
Luồng thao tác chính 1. Admin/Support truy cập trang Danh sách học viên từ menu.
2. Hệ thống hiển thị danh sách học viên với các cột: Tên, Ngày chốt đơn, Lớp hiện tại (hover hiển thị danh sách lớp), Số lớp, Số bill, Tổng doanh thu, Hoàn tiền.
3. Để search: Nhập từ khóa vào ô search → danh sách lọc theo tên, mã, email.
4. Để filter: Chọn trạng thái từ dropdown (Mới, Đang học, Đợi lớp) hoặc chọn tag từ dropdown tag → danh sách lọc tương ứng.
5. Để thêm học viên mới: Nhấn nút "Thêm học viên mới" → mở popup "Thêm".
6. Điền thông tin: Họ và tên (bắt buộc), Giới tính, Ngày sinh, Số điện thoại, Vai trò ("Student"), Gmail (bắt buộc), Mật khẩu (bắt buộc), Code (tùy chọn), Ngày chốt đơn (date picker, mặc định ngày hiện tại).
7. Hệ thống kiểm tra hợp lệ (email/mã không trùng) và thêm học viên với trạng thái "Mới".
8. Danh sách cập nhật, học viên mới hiển thị với Ngày chốt đơn, Lớp hiện tại (trống), Số lớp (0), v.v.
9. Đồng bộ với app trung tâm: Học viên mới thấy tài khoản được tạo (nếu cần), sẵn sàng thêm vào lớp sau.
Điều kiện - Admin/Support phải được phân quyền quản lý học viên.
- Thông tin học viên mới phải hợp lệ: Email đúng định dạng và không trùng, Mật khẩu bắt buộc, Các trường bắt buộc phải điền.
- Ngày chốt đơn: Mặc định ngày hiện tại, có thể chỉnh.
- Filter trạng thái: "Mới" - chưa lớp, "Đang học" - có lớp đang hoạt động, "Đợi lớp" - đăng ký nhưng chưa thêm lớp.
- Filter tag: Lọc theo tag đã được gán cho học viên.
- Hoàn tiền: Chỉ hiển thị nếu có giao dịch hoàn tiền.
Kết quả hiển thị - Danh sách lọc theo search/filter/tag: Ví dụ Tên (Duong - TEST), Ngày chốt đơn (14/09/2024), Lớp hiện tại (hover: danh sách lớp), Số lớp (22), Số bill (2), Tổng doanh thu (0 VND), Hoàn tiền (0 VND).
- Sau thêm: Học viên mới hiển thị với trạng thái "Mới".
- Hover lớp hiện tại: Popup danh sách lớp như "Vuong_Test", "Anh_Phuc".
- Thông báo thành công: "Học viên đã được thêm thành công."
- Đồng bộ trung tâm: Học viên thấy tài khoản mới trên app.
Trường hợp không có dữ liệu - Nếu không có học viên: Danh sách trống với thông báo "Chưa có học viên nào."
- Nếu search/filter/tag không khớp: Danh sách trống với "Không tìm thấy học viên."
- Nếu thông tin mới không hợp lệ: Lỗi "Email đã tồn tại" hoặc "Vui lòng điền đầy đủ."
- Nếu bỏ trống bắt buộc: Không lưu, lỗi "Vui lòng điền đầy đủ thông tin bắt buộc."

5.2 Thông tin cá nhân học viên

Thông tin cá nhân học viên
Trường dữ liệu Nội dung
Tên chức năng Thông tin cá nhân học viên
Vai trò Admin, Support
Mô tả Cho phép Admin/Support xem và chỉnh sửa thông tin chi tiết của một học viên cụ thể từ danh sách học viên. Trang chi tiết bao gồm thông tin cá nhân (họ tên, avatar, mã học viên), thông tin liên hệ (số điện thoại, email - không chỉnh sửa được), ngày sinh, giới tính, địa chỉ, ghi chú. Hỗ trợ upload avatar mới và gửi email reset mật khẩu. Sau khi cập nhật, hệ thống gửi email thông báo xác nhận thay đổi (nếu có). Email được gửi tự động với link reset password nếu cần. Mã học viên và email là trường không thể chỉnh sửa để đảm bảo tính nhất quán dữ liệu.
Giao diện liên quan - Trang chi tiết học viên (truy cập từ danh sách học viên bằng cách click vào tên học viên).
- Phần "Thông tin cá nhân": Avatar (hình tròn, hỗ trợ upload), Họ tên (text input), Mã học viên (readonly).
- Phần "Thông tin liên hệ": Số điện thoại (text input), Email (readonly).
- Phần "Thông tin khác": Ngày sinh (date picker), Giới tính (dropdown: Nam/Nữ/Khác), Địa chỉ (text input), Ghi chú (textarea).
- Nút "Lý lịch" (xem lịch sử), "Cập nhật thông tin" (nút cam), và có thể có nút gửi email reset password.
- Thông báo thành công: "Email đã được gửi thành công" hoặc "Thông tin đã được cập nhật".
Luồng thao tác chính 1. Admin/Support vào tab "Quản lý" trên hệ thống.
2. Chọn tab "Học viên" để xem danh sách học viên.
3. Chọn một học viên cụ thể từ danh sách để truy cập trang chi tiết.
4. Hiển thị thông tin hiện tại: Avatar, Họ tên, Mã học viên (readonly), Số điện thoại, Email (readonly), Ngày sinh, Giới tính, Địa chỉ, Ghi chú.
5. Để chỉnh sửa: Thay đổi các trường cho phép (họ tên, số điện thoại, ngày sinh, giới tính, địa chỉ, ghi chú); Upload avatar mới nếu cần.
6. Nhấn "Cập nhật thông tin" → hệ thống validate (email và mã không thay đổi), lưu thay đổi và hiển thị thông báo "Thông tin đã được cập nhật thành công".
7. Để reset password: Nhấn nút hoặc tùy chọn gửi email → hệ thống gửi email với link reset (ví dụ: https://pl-student.firebaseapp.com/auth/action?mode=resetPassword...) đến email học viên, hiển thị "Email đã được gửi thành công".
8. Quay lại danh sách hoặc xem lý lịch học viên.
Điều kiện - Admin/Support phải có quyền chỉnh sửa học viên.
- Mã học viên và email là readonly, không thể chỉnh sửa.
- Ngày sinh: Date picker, định dạng DD/MM/YYYY.
- Giới tính: Dropdown với tùy chọn Nam, Nữ, Khác.
- Upload avatar: Hỗ trợ file ảnh, kích thước giới hạn (ví dụ: <5MB).
- Gửi email reset: Chỉ gửi đến email đã xác thực, link hết hạn sau 24h.
- Validate: Số điện thoại phải hợp lệ (10-11 số), họ tên không rỗng.
Kết quả hiển thị - Trang chi tiết với đầy đủ thông tin: Ví dụ Họ tên "Tài năng điển", Mã "user00", Số điện thoại "0123456789", Email "user00@example.com" (readonly).
- Sau cập nhật: Thông tin mới hiển thị, avatar cập nhật nếu upload.
- Email reset: Học viên nhận email từ noreply@pl-student.firebaseapp.com với tiêu đề "Reset mật khẩu ICS" và link reset.
- Thông báo: "Email đã được gửi thành công" với dấu check xanh.
Trường hợp không có dữ liệu - Nếu học viên mới tạo: Các trường tùy chọn (địa chỉ, ghi chú) hiển thị trống.
- Nếu upload avatar thất bại: Lỗi "File không hợp lệ hoặc quá lớn".
- Nếu email không gửi được: Lỗi "Không thể gửi email, vui lòng thử lại".
- Nếu validate thất bại: Lỗi inline "Vui lòng nhập họ tên hợp lệ" hoặc tương tự, không lưu.

5.3 Danh sách lớp học của học viên

Danh sách lớp học của học viên
Trường dữ liệu Nội dung
Tên chức năng Danh sách lớp học của học viên
Vai trò Admin, Support
Mô tả Cho phép Admin và Support xem danh sách tất cả các lớp học mà một học viên cụ thể đã tham gia, đang tham gia hoặc sẽ tham gia, cùng với thông tin thống kê chi tiết. Danh sách bao gồm tên lớp, trạng thái (Đang học, Hoàn thành, Đợi lớp), giáo viên phụ trách, ngày bắt đầu, ngày kết thúc (nếu có), tổng số buổi, số buổi đã học, và tỷ lệ hoàn thành được tính toán tự động. Chức năng tập trung vào việc hiển thị và tính toán dữ liệu thống kê để hỗ trợ quản lý và theo dõi tiến độ học tập của học viên.
Giao diện liên quan - Trang chi tiết học viên (truy cập từ danh sách học viên).
- Tab hoặc mục "Danh sách lớp học" hiển thị danh sách lớp.
- Các cột: Tên lớp, Trạng thái, Giáo viên phụ trách, Ngày bắt đầu, Ngày kết thúc, Tổng số buổi, Số buổi đã học, Tỷ lệ hoàn thành (%).
- Biểu đồ tổng quan (nếu có) hiển thị tỷ lệ hoàn thành trung bình hoặc số lớp theo trạng thái.
Luồng thao tác chính 1. Admin/Support vào tab "Quản lý" trên hệ thống.
2. Chọn tab "Học viên" để xem danh sách học viên.
3. Chọn một học viên cụ thể từ danh sách để truy cập trang chi tiết.
4. Chuyển đến tab hoặc mục "Danh sách lớp học" để xem danh sách.
5. Hệ thống hiển thị danh sách với các cột: Tên lớp, Trạng thái, Giáo viên phụ trách, Ngày bắt đầu, Ngày kết thúc, Tổng số buổi, Số buổi đã học, Tỷ lệ hoàn thành.
6. Tỷ lệ hoàn thành được tính toán tự động dựa trên công thức: (Số buổi đã học / Tổng số buổi) * 100.
7. Xem biểu đồ tổng quan (nếu có) để đánh giá tổng thể tiến độ học tập.
Điều kiện - Vai trò phải có quyền truy cập thông tin học viên (chỉ Admin và Support).
- Dữ liệu lớp học phải được đồng bộ từ ICS.
- Trạng thái lớp: Đang học (có lịch học), Hoàn thành (kết thúc khóa), Đợi lớp (chưa bắt đầu).
- Tỷ lệ hoàn thành tính tự động khi có Tổng số buổi và Số buổi đã học.
- Tổng số buổi và số buổi đã học phải là số nguyên dương; nếu thiếu dữ liệu, hiển thị "-".
Kết quả hiển thị - Danh sách lớp: Ví dụ Tên lớp "Lớp A1 - Sáng", Trạng thái "Đang học", Giáo viên "Nguyễn Văn A", Ngày bắt đầu "01/09/2025", Ngày kết thúc "-", Tổng số buổi "20", Số buổi đã học "10", Tỷ lệ hoàn thành "50%".
- Biểu đồ tổng quan (nếu có): Hiển thị tỷ lệ hoàn thành trung bình hoặc số lớp theo trạng thái.
- Thông báo: "Học viên chưa tham gia lớp học nào" nếu danh sách trống.
Trường hợp không có dữ liệu - Nếu học viên chưa tham gia lớp nào: Hiển thị "Học viên chưa tham gia lớp học nào".
- Nếu dữ liệu lớp không đầy đủ (ví dụ: thiếu ngày kết thúc hoặc số buổi): Hiển thị "-" tại các cột liên quan.
- Nếu số buổi đã học vượt quá tổng số buổi: Hiển thị lỗi tính toán hoặc giữ nguyên giá trị cuối cùng hợp lệ.

5.4 Danh sách học phí của học viên

Danh sách học phí của học viên
Trường dữ liệu Nội dung
Tên chức năng Danh sách học phí của học viên
Vai trò Admin, Support
Mô tả Cho phép Admin và Support xem danh sách học phí của một học viên cụ thể, bao gồm thông tin thống kê chi tiết về các hóa đơn đã thanh toán. Danh sách hiển thị số lượng hóa đơn, tổng tiền học phí, tên từng hóa đơn, và số tiền tương ứng. Chức năng tập trung vào việc hiển thị và tính toán thống kê để hỗ trợ quản lý tài chính và theo dõi tình trạng thanh toán của học viên.
Giao diện liên quan - Trang chi tiết học viên (truy cập từ danh sách học viên).
- Tab hoặc mục "Danh sách học phí" hiển thị danh sách hóa đơn.
- Các cột: Tên hóa đơn, Số tiền (VND), Tổng số hóa đơn, Tổng tiền (VND).
- Biểu đồ tổng quan (nếu có) hiển thị tổng tiền hoặc số lượng hóa đơn theo thời gian.
Luồng thao tác chính 1. Admin/Support vào tab "Quản lý" trên hệ thống.
2. Chọn tab "Học viên" để xem danh sách học viên.
3. Chọn một học viên cụ thể từ danh sách để truy cập trang chi tiết.
4. Chuyển đến tab hoặc mục "Học phí" để xem danh sách.
5. Hệ thống hiển thị danh sách với các cột: Tên hóa đơn, Số tiền, cùng với thống kê Tổng số hóa đơn và Tổng tiền.
6. Xem biểu đồ tổng quan (nếu có) để đánh giá tổng tiền hoặc số lượng hóa đơn.
Điều kiện - Vai trò phải có quyền truy cập thông tin học viên (chỉ Admin và Support).
- Dữ liệu hóa đơn phải được đồng bộ từ ICS.
- Số tiền hiển thị ở định dạng VND, làm tròn đến đơn vị nghìn.
- Tổng số hóa đơn và Tổng tiền được tính toán tự động dựa trên danh sách hóa đơn.
- Nếu không có hóa đơn, hiển thị giá trị mặc định "0".
Kết quả hiển thị - Danh sách học phí: Ví dụ Tên hóa đơn "Học phí tháng 9/2025", Số tiền "5,000,000 VND", Tổng số hóa đơn "2", Tổng tiền "10,000,000 VND".
- Biểu đồ tổng quan (nếu có): Hiển thị tổng tiền hoặc số lượng hóa đơn theo thời gian.
- Thông báo: "Học viên chưa có hóa đơn nào" nếu danh sách trống.
Trường hợp không có dữ liệu - Nếu học viên chưa có hóa đơn: Hiển thị "Học viên chưa có hóa đơn nào" với Tổng số hóa đơn "0" và Tổng tiền "0 VND".
- Nếu dữ liệu hóa đơn không đầy đủ (ví dụ: thiếu số tiền): Hiển thị "-" tại cột liên quan.
- Nếu số tiền không hợp lệ: Hiển thị lỗi hoặc giữ giá trị "0 VND" cho đến khi dữ liệu được cập nhật.

6. Quản lý giáo viên

6.1 Danh sách giáo viên

Danh sách giáo viên
Trường dữ liệu Nội dung
Tên chức năng Danh sách giáo viên
Vai trò Admin, Support
Mô tả Cho phép Admin và Support xem danh sách giáo viên trong hệ thống, bao gồm chức năng thêm giáo viên mới và thêm tag cho giáo viên. Giáo viên có ba trạng thái: Training, Chính thức, và Thử việc. Danh sách hiển thị thông tin chi tiết bao gồm trạng thái, mã giáo viên, tên giáo viên (bao gồm tag, tên, và email), số lớp, số lớp đang dạy, lên kỳ, đi học, bài tập về nhà, và đánh giá. Chức năng hỗ trợ tìm kiếm theo tên hoặc mã giáo viên, lọc theo trạng thái và lọc theo tag để quản lý hiệu quả.
Giao diện liên quan - Trang danh sách giáo viên (truy cập từ tab "Quản lý" và chọn tab "Giáo viên").
- Danh sách giáo viên với các cột: Trạng thái, Mã giáo viên, Tên giáo viên (Tag, Tên, Email), Số lớp, Số lớp đang dạy, Lên kỳ, Đi học, Bài tập về nhà, Đánh giá.
- Nút "Thêm giáo viên mới" mở popup để nhập thông tin.
- Ô tìm kiếm "Tìm kiếm..." để tìm theo tên hoặc mã giáo viên.
- Filter dropdown "Trạng thái" (Training, Chính thức, Thử việc) và "Tag" (hiển thị các tag có sẵn).
- Nút "Thêm tag" (mở popup chọn hoặc tạo tag mới cho giáo viên đã chọn).
Luồng thao tác chính 1. Admin/Support vào tab "Quản lý" trên hệ thống.
2. Chọn tab "Giáo viên" để xem danh sách giáo viên.
3. Hệ thống hiển thị danh sách với các cột: Trạng thái, Mã giáo viên, Tên giáo viên (Tag, Tên, Email), Số lớp, Số lớp đang dạy, Lên kỳ, Đi học, Bài tập về nhà, Đánh giá.
4. Để thêm giáo viên mới: Nhấn "Thêm giáo viên mới" → mở popup nhập thông tin (Trạng thái, Mã, Tên, Email, v.v.), sau đó lưu để thêm vào danh sách.
5. Để thêm tag: Chọn một giáo viên từ danh sách, nhấn "Thêm tag" → mở popup chọn tag từ danh sách có sẵn hoặc tạo tag mới, sau đó lưu.
6. Để tìm kiếm: Nhập từ khóa vào ô "Tìm kiếm..." → danh sách lọc theo tên hoặc mã giáo viên.
7. Để lọc: Chọn trạng thái từ dropdown "Trạng thái" hoặc tag từ dropdown "Tag" → danh sách cập nhật theo tiêu chí.
Điều kiện - Vai trò phải có quyền truy cập và quản lý giáo viên (chỉ Admin và Support).
- Dữ liệu giáo viên phải được đồng bộ từ ICS.
- Trạng thái giáo viên: Training (đang đào tạo), Chính thức (đã làm việc chính thức), Thử việc (giai đoạn thử việc).
- Mã giáo viên và Email phải duy nhất, không trùng lặp.
- Tag: Có thể tạo mới hoặc chọn từ danh sách tag có sẵn, tối đa 5 tag mỗi giáo viên.
- Số lớp: Tổng số lớp giáo viên đã tham gia.
- Số lớp đang dạy: Số lớp hiện đang giảng dạy.
- Lên kỳ, Đi học, Bài tập về nhà, Đánh giá: Dữ liệu số hoặc trạng thái (VD: % hoặc số buổi).
- Validate: Họ tên không rỗng, Email hợp lệ, Số điện thoại 10-11 số.
Kết quả hiển thị - Danh sách giáo viên: Ví dụ Trạng thái "Chính thức", Mã "GV001", Tên giáo viên (Tag "Kinh nghiệm", Tên "Nguyễn Văn A", Email "nva@example.com"), Số lớp "5", Số lớp đang dạy "2", Lên kỳ "90%", Đi học "95%", Bài tập về nhà "80%", Đánh giá "4.5/5".
- Sau thêm giáo viên: Giáo viên mới hiển thị trong danh sách.
- Sau thêm tag: Tag mới xuất hiện trong cột Tên giáo viên.
- Sau tìm kiếm/lọc: Danh sách cập nhật theo từ khóa hoặc tiêu chí lọc.
- Thông báo: "Thêm giáo viên thành công" hoặc "Thêm tag thành công" với dấu check xanh.
Trường hợp không có dữ liệu - Nếu không có giáo viên: Hiển thị "Chưa có giáo viên nào" với danh sách trống.
- Nếu tìm kiếm không khớp: Hiển thị "Không tìm thấy giáo viên nào".
- Nếu lọc không có kết quả: Hiển thị "Không có giáo viên nào phù hợp".
- Nếu thông tin mới không hợp lệ (ví dụ: Email trùng): Lỗi "Email đã tồn tại", không lưu.
- Nếu dữ liệu thống kê (Lên kỳ, Đi học, Bài tập về nhà, Đánh giá) thiếu: Hiển thị "-" hoặc "Chưa cập nhật".

6.2 Danh sách lớp học của giáo viên

Danh sách lớp học của giáo viên
Trường dữ liệu Nội dung
Tên chức năng Danh sách lớp học của giáo viên
Vai trò Admin, Support
Mô tả Cho phép Admin và Support xem danh sách tất cả các lớp học mà một giáo viên cụ thể đã tham gia, đang tham gia hoặc sẽ tham gia. Danh sách bao gồm mã lớp, khóa học, đánh giá, và KPI để hỗ trợ quản lý và theo dõi hiệu suất giảng dạy của giáo viên. Chức năng tập trung vào việc hiển thị thông tin cơ bản để quản lý hiệu quả.
Giao diện liên quan - Trang chi tiết giáo viên (truy cập từ danh sách giáo viên).
- Tab hoặc mục "Danh sách lớp học" hiển thị danh sách lớp.
- Các cột: Mã lớp, Khóa học, Đánh giá, KPI.
Luồng thao tác chính 1. Admin/Support vào tab "Quản lý" trên hệ thống.
2. Chọn tab "Giáo viên" để xem danh sách giáo viên.
3. Chọn một giáo viên cụ thể từ danh sách để truy cập trang chi tiết.
4. Chuyển đến tab hoặc mục "Danh sách lớp học" để xem danh sách.
5. Hệ thống hiển thị danh sách với các cột: Mã lớp, Khóa học, Đánh giá, KPI.
Điều kiện - Vai trò phải có quyền truy cập thông tin giáo viên (chỉ Admin và Support).
- Dữ liệu lớp học phải được đồng bộ từ ICS.
- Đánh giá: Được tính theo thang điểm (ví dụ: 1-5 sao) dựa trên phản hồi từ học viên hoặc quản lý.
- KPI: Chỉ số hiệu suất (ví dụ: % hoàn thành bài giảng, tỷ lệ tham gia) được cập nhật từ hệ thống.
Kết quả hiển thị - Danh sách lớp: Ví dụ Mã lớp "L01", Khóa học "A1 - Cơ bản", Đánh giá "4.5/5", KPI "85%".
- Thông báo: "Giáo viên chưa tham gia lớp học nào" nếu danh sách trống.
Trường hợp không có dữ liệu - Nếu giáo viên chưa tham gia lớp nào: Hiển thị "Giáo viên chưa tham gia lớp học nào".
- Nếu dữ liệu lớp không đầy đủ (ví dụ: thiếu đánh giá hoặc KPI): Hiển thị "-" tại cột liên quan.

6.3 Hiển thị lịch dạy của giáo viên

Hiển thị lịch dạy của giáo viên
Trường dữ liệu Nội dung
Tên chức năng Hiển thị lịch dạy của giáo viên
Vai trò Admin, Support, Teacher
Mô tả Cho phép Admin, Support, và Teacher xem lịch dạy của một giáo viên cụ thể, bao gồm tất cả các lớp với lịch cố định và lịch đột xuất. Lịch hiển thị thông tin chi tiết như mã lớp, tên lớp, ngày dạy, giờ bắt đầu, giờ kết thúc, loại lớp (cố định/đột xuất), trình độ, và học kỳ. Chức năng hỗ trợ lọc theo lớp, loại lớp, trình độ, và học kỳ, đồng thời cho phép chọn thời gian để xem lịch dạy tổng hợp (tuần, tháng, năm).
Giao diện liên quan - Trang chi tiết giáo viên (truy cập từ danh sách giáo viên).
- Tab hoặc mục "Lịch dạy" hiển thị lịch dạy.
- Bảng lịch hoặc lịch tuần/tháng với các cột: Mã lớp, Tên lớp, Ngày dạy, Giờ bắt đầu, Giờ kết thúc, Loại lớp (Cố định/Đột xuất), Trình độ, Học kỳ.
- Các bộ lọc: Dropdown "Lớp" (danh sách lớp), "Loại lớp" (Cố định, Đột xuất), "Trình độ" (A1, A2, B1, v.v.), "Học kỳ" (Học kỳ 1, Học kỳ 2, v.v.).
- Thanh chọn thời gian "Xem lịch" với tùy chọn (Tuần, Tháng, Năm) và chọn ngày/tháng/năm cụ thể.
- Nút "Làm mới" để cập nhật dữ liệu.
Luồng thao tác chính 1. Admin/Support/Teacher vào tab "Quản lý" trên hệ thống.
2. Chọn tab "Giáo viên" để xem danh sách giáo viên.
3. Chọn một giáo viên cụ thể từ danh sách để truy cập trang chi tiết.
4. Chuyển đến tab hoặc mục "Lịch dạy" để xem lịch.
5. Hệ thống hiển thị lịch dạy với các cột: Mã lớp, Tên lớp, Ngày dạy, Giờ bắt đầu, Giờ kết thúc, Loại lớp, Trình độ, Học kỳ.
6. Để lọc: Chọn giá trị từ dropdown "Lớp", "Loại lớp", "Trình độ", hoặc "Học kỳ" → danh sách lịch cập nhật theo tiêu chí.
7. Để xem lịch tổng: Chọn thời gian từ thanh "Xem lịch" (Tuần, Tháng, Năm) và chọn ngày/tháng/năm cụ thể → hiển thị lịch tương ứng.
8. Nhấn "Làm mới" để cập nhật dữ liệu nếu cần.
Điều kiện - Vai trò phải có quyền truy cập thông tin giáo viên (Admin, Support, Teacher).
- Dữ liệu lịch dạy phải được đồng bộ từ ICS.
- Loại lớp: Cố định (lịch cố định hàng tuần) hoặc Đột xuất (lịch bổ sung).
- Trình độ: Bao gồm các cấp độ như A1, A2, B1, B2, v.v.
- Học kỳ: Bao gồm các học kỳ như Học kỳ 1, Học kỳ 2, v.v.
- Thời gian hiển thị: Định dạng DD/MM/YYYY cho ngày, HH:MM cho giờ.
- Validate: Chọn thời gian hợp lệ, không vượt quá ngày hiện tại (04:49 PM +07, Friday, September 12, 2025) nếu là lịch quá khứ.
Kết quả hiển thị - Lịch dạy: Ví dụ Mã lớp "L01", Tên lớp "A1 - Sáng", Ngày dạy "10/09/2025", Giờ bắt đầu "08:00", Giờ kết thúc "10:00", Loại lớp "Cố định", Trình độ "A1", Học kỳ "Học kỳ 1".
- Sau lọc: Lịch hiển thị theo lớp, loại lớp, trình độ, hoặc học kỳ được chọn.
- Sau chọn thời gian: Hiển thị lịch tổng hợp theo tuần, tháng, hoặc năm (ví dụ: lịch tháng 9/2025).
- Thông báo: "Giáo viên chưa có lịch dạy" nếu danh sách trống.
Trường hợp không có dữ liệu - Nếu giáo viên chưa có lịch dạy: Hiển thị "Giáo viên chưa có lịch dạy".
- Nếu lọc không có kết quả: Hiển thị "Không có lịch dạy phù hợp".
- Nếu dữ liệu lịch không đầy đủ (ví dụ: thiếu giờ kết thúc): Hiển thị "-" tại cột liên quan.
- Nếu chọn thời gian không hợp lệ: Hiển thị lỗi "Thời gian không hợp lệ, vui lòng chọn lại".

7. Quản lý trợ giảng

7.1 Danh sách trợ giảng

Danh sách trợ giảng
Trường dữ liệu Nội dung
Tên chức năng Danh sách trợ giảng
Vai trò Admin, Support
Mô tả Cho phép Admin và Support xem danh sách trợ giảng trong hệ thống, bao gồm thông tin tên vai trò, số điện thoại, gmail, mã nhân viên, và trạng thái. Trợ giảng có ba trạng thái: Vô hiệu, Đang kích hoạt, và Xóa. Chức năng hỗ trợ hành động chỉnh sửa để cập nhật thông tin trợ giảng (chỉ chỉnh sửa được tên vai trò, số điện thoại, trạng thái), trong khi gmail, mã nhân viên, và mật khẩu không thể chỉnh sửa để đảm bảo tính nhất quán dữ liệu.
Giao diện liên quan - Trang danh sách trợ giảng (truy cập từ tab "Quản lý" và chọn tab "Trợ giảng").
- Danh sách trợ giảng với các cột: Tên vai trò, Số điện thoại, Gmail, Mã nhân viên, Trạng thái, Hành động.
- Nút "Chỉnh sửa" trong cột Hành động mở popup để cập nhật thông tin.
- Popup chỉnh sửa với các trường: Tên vai trò (text input), Số điện thoại (text input), Trạng thái (dropdown: Vô hiệu, Đang kích hoạt, Xóa), Gmail và Mã nhân viên (readonly), Mật khẩu (ẩn, không chỉnh sửa).
- Nút "Lưu" và "Hủy" trong popup.
Luồng thao tác chính 1. Admin/Support vào tab "Quản lý" trên hệ thống.
2. Chọn tab "Trợ giảng" để xem danh sách trợ giảng.
3. Hệ thống hiển thị danh sách với các cột: Tên vai trò, Số điện thoại, Gmail, Mã nhân viên, Trạng thái, Hành động.
4. Để chỉnh sửa: Nhấn nút "Chỉnh sửa" trong cột Hành động của trợ giảng cần cập nhật → mở popup.
5. Trong popup: Thay đổi các trường cho phép (Tên vai trò, Số điện thoại, Trạng thái); Gmail, Mã nhân viên, và Mật khẩu giữ nguyên (readonly).
6. Nhấn "Lưu" → hệ thống validate và cập nhật thông tin, hiển thị thông báo "Thông tin đã được cập nhật thành công".
7. Nhấn "Hủy" để đóng popup mà không lưu.
8. Quay lại danh sách trợ giảng.
Điều kiện - Vai trò phải có quyền truy cập và quản lý trợ giảng (chỉ Admin và Support).
- Dữ liệu trợ giảng phải được đồng bộ từ ICS.
- Trạng thái trợ giảng: Vô hiệu (tạm dừng hoạt động), Đang kích hoạt (hoạt động bình thường), Xóa (xóa khỏi hệ thống nhưng vẫn lưu lịch sử).
- Gmail, Mã nhân viên, và Mật khẩu là readonly, không thể chỉnh sửa.
- Validate: Số điện thoại phải hợp lệ (10-11 số), Tên vai trò không rỗng.
Kết quả hiển thị - Danh sách trợ giảng: Ví dụ Tên vai trò "Trợ giảng A", Số điện thoại "0123456789", Gmail "ta@example.com" (readonly), Mã nhân viên "TA001" (readonly), Trạng thái "Đang kích hoạt".
- Sau chỉnh sửa: Thông tin mới (Tên vai trò, Số điện thoại, Trạng thái) hiển thị trong danh sách.
- Thông báo: "Thông tin đã được cập nhật thành công" với dấu check xanh.
Trường hợp không có dữ liệu - Nếu không có trợ giảng: Hiển thị "Chưa có trợ giảng nào" với danh sách trống.
- Nếu validate thất bại (ví dụ: Số điện thoại không hợp lệ): Lỗi inline "Vui lòng nhập số điện thoại hợp lệ", không lưu.
- Nếu không có quyền chỉnh sửa: Hiển thị lỗi "Bạn không có quyền chỉnh sửa thông tin này".

7.2 Thêm mới trợ giảng

Thêm mới trợ giảng
Trường dữ liệu Nội dung
Tên chức năng Thêm mới trợ giảng
Vai trò Admin, Support
Mô tả Cho phép Admin và Support thêm mới trợ giảng vào hệ thống với thông tin chi tiết bao gồm họ và tên, giới tính, ngày sinh, số điện thoại, vai trò, gmail, mật khẩu, và code. Trợ giảng mới luôn được đặt ở trạng thái Đang kích hoạt khi thêm vào và không thể thay đổi trạng thái này tại thời điểm tạo. Chức năng bao gồm nhập thông tin bắt buộc (họ và tên, gmail, mật khẩu, code) và tùy chọn (số điện thoại, giới tính, ngày sinh), với gmail và code phải duy nhất. Sau khi thêm, thông tin được lưu và hiển thị trong danh sách trợ giảng.
Giao diện liên quan - Trang danh sách trợ giảng (truy cập từ tab "Quản lý" và chọn tab "Trợ giảng").
- Nút "Thêm mới trợ giảng" mở popup để nhập thông tin.
- Popup "Thêm mới trợ giảng" với các trường: Họ và tên (text input, bắt buộc), Giới tính (dropdown: Nam/Nữ/Khác, tùy chọn), Ngày sinh (date picker, tùy chọn), Số điện thoại (text input, tùy chọn), Vai trò (text input, bắt buộc), Gmail (text input, bắt buộc, readonly sau khi nhập), Mật khẩu (text input, bắt buộc, ẩn khi nhập), Code (text input, bắt buộc, readonly sau khi nhập), Trạng thái (dropdown, mặc định "Đang kích hoạt", readonly).
- Nút "Lưu" và "Hủy" trong popup.
- Thông báo thành công: "Thêm trợ giảng thành công" với dấu check xanh.
Luồng thao tác chính 1. Admin/Support vào tab "Quản lý" trên hệ thống.
2. Chọn tab "Trợ giảng" để xem danh sách trợ giảng.
3. Nhấn nút "Thêm mới trợ giảng" để mở popup.
4. Trong popup: Nhập thông tin bắt buộc (Họ và tên, Vai trò, Gmail, Mật khẩu, Code) và tùy chọn (Giới tính, Ngày sinh, Số điện thoại); Trạng thái mặc định là "Đang kích hoạt" và không thể thay đổi.
5. Nhấn "Lưu" → hệ thống validate (gmail và code không trùng, định dạng email hợp lệ, mật khẩu đủ độ dài, số điện thoại 10-11 số nếu có), lưu thông tin và hiển thị thông báo "Thêm trợ giảng thành công".
6. Nhấn "Hủy" để đóng popup mà không lưu.
7. Trở lại danh sách trợ giảng để thấy trợ giảng mới được thêm.
Điều kiện - Vai trò phải có quyền thêm trợ giảng (chỉ Admin và Support).
- Dữ liệu trợ giảng phải được đồng bộ với ICS sau khi thêm.
- Trạng thái: Luôn mặc định "Đang kích hoạt" khi tạo mới, không thể thay đổi tại popup thêm.
- Gmail: Phải hợp lệ (định dạng email), duy nhất, và readonly sau khi nhập.
- Code: Phải duy nhất, không trùng lặp, và readonly sau khi nhập.
- Mật khẩu: Bắt buộc, tối thiểu 6 ký tự, ẩn khi nhập.
- Ngày sinh: Date picker, định dạng DD/MM/YYYY, tùy chọn.
- Giới tính: Dropdown với tùy chọn Nam, Nữ, Khác, tùy chọn.
- Số điện thoại: Tùy chọn, nếu nhập phải là 10-11 số.
- Validate: Họ và tên, Vai trò không rỗng, gmail không trùng, code không trùng, mật khẩu đủ độ dài.
Kết quả hiển thị - Popup thêm mới: Ví dụ Họ và tên "Nguyễn Văn A", Giới tính "Nam", Ngày sinh "01/01/1990", Số điện thoại "0123456789", Vai trò "Trợ giảng", Gmail "nva@example.com" (readonly sau nhập), Mật khẩu "123456" (ẩn), Code "TA001" (readonly sau nhập), Trạng thái "Đang kích hoạt" (readonly).
- Sau lưu: Trợ giảng mới hiển thị trong danh sách với thông tin đã nhập.
- Thông báo: "Thêm trợ giảng thành công" với dấu check xanh.
- Trong danh sách: Họ và tên "Nguyễn Văn A", Số điện thoại "0123456789", Gmail "nva@example.com", Mã nhân viên "TA001", Trạng thái "Đang kích hoạt".
Trường hợp không có dữ liệu - Nếu nhập gmail trùng: Lỗi "Gmail đã tồn tại, vui lòng chọn gmail khác", không lưu.
- Nếu nhập code trùng: Lỗi "Code đã tồn tại, vui lòng chọn code khác", không lưu.
- Nếu bỏ trống trường bắt buộc (Họ và tên, Vai trò, Gmail, Mật khẩu, Code): Lỗi inline "Vui lòng nhập đầy đủ thông tin bắt buộc", không lưu.
- Nếu số điện thoại không hợp lệ (không phải 10-11 số): Lỗi "Số điện thoại không hợp lệ", không lưu.
- Nếu mật khẩu dưới 6 ký tự: Lỗi "Mật khẩu phải có ít nhất 6 ký tự", không lưu.
- Nếu email không hợp lệ: Lỗi "Định dạng email không đúng", không lưu.
- Nếu ngày sinh không hợp lệ: Lỗi "Định dạng ngày sinh không đúng (DD/MM/YYYY)", không lưu (nếu nhập).

8. Quản lý KPI

8.1 Danh sách KPI

Danh sách KPI
Trường dữ liệu Nội dung
Tên chức năng Danh sách KPI
Vai trò Admin, Support
Mô tả Cho phép Admin và Support xem danh sách các chỉ số hiệu suất chính (KPI) trong hệ thống, bao gồm tiêu đề KPI, trạng thái, số tiền, mô tả KPI, ngày ghi nhận, và ngày cập nhật. Chức năng hỗ trợ tìm kiếm theo tiêu đề KPI hoặc mô tả để dễ dàng quản lý và theo dõi hiệu suất của nhân viên hoặc giáo viên.
Giao diện liên quan - Trang danh sách KPI (truy cập từ tab "Quản lý" và chọn tab "KPI").
- Danh sách KPI với các cột: Tiêu đề KPI, Trạng Thái, Số Tiền, Mô Tả KPI, Ngày Ghi Nhận, Ngày Cập Nhật.
- Ô tìm kiếm "Tìm kiếm..." để tìm theo tiêu đề KPI hoặc mô tả.
- Thông báo thành công: "Không tìm thấy KPI" nếu không có kết quả.
Luồng thao tác chính 1. Admin/Support vào tab "Quản lý" trên hệ thống.
2. Chọn tab "KPI" để xem danh sách KPI.
3. Hệ thống hiển thị danh sách với các cột: Tiêu đề KPI, Trạng Thái, Số Tiền, Mô Tả KPI, Ngày Ghi Nhận, Ngày Cập Nhật.
4. Để tìm kiếm: Nhập từ khóa vào ô "Tìm kiếm..." → danh sách lọc theo tiêu đề KPI hoặc mô tả.
5. Xem danh sách cập nhật sau khi tìm kiếm.
Điều kiện - Vai trò phải có quyền truy cập thông tin KPI (chỉ Admin và Support).
- Dữ liệu KPI phải được đồng bộ từ ICS.
- Trạng thái: Có thể là Hoạt động, Hoàn thành, hoặc Tạm dừng.
- Số tiền: Định dạng VND, làm tròn đến đơn vị nghìn.
- Ngày Ghi Nhận và Ngày Cập Nhật: Định dạng DD/MM/YYYY, không vượt quá ngày hiện tại (05:27 PM +07, Friday, September 12, 2025).
- Validate: Tiêu đề KPI và Mô Tả KPI không rỗng nếu thêm/sửa (nếu có).
Kết quả hiển thị - Danh sách KPI: Ví dụ Tiêu đề KPI "Hoàn thành lớp A1", Trạng Thái "Hoạt động", Số Tiền "5,000,000 VND", Mô Tả KPI "Hoàn thành 100% lịch dạy", Ngày Ghi Nhận "01/09/2025", Ngày Cập Nhật "10/09/2025".
- Sau tìm kiếm: Danh sách lọc theo từ khóa (ví dụ: tìm "A1" hiển thị các KPI liên quan).
- Thông báo: "Không tìm thấy KPI" nếu không có kết quả phù hợp.
Trường hợp không có dữ liệu - Nếu không có KPI: Hiển thị "Chưa có KPI nào" với danh sách trống.
- Nếu tìm kiếm không khớp: Hiển thị "Không tìm thấy KPI".
- Nếu dữ liệu không đầy đủ (ví dụ: thiếu ngày): Hiển thị "-" tại cột liên quan.

8.2 Thêm mới KPI

Thêm mới KPI
Trường dữ liệu Nội dung
Tên chức năng Thêm mới KPI
Vai trò Admin, Support
Mô tả Cho phép Admin và Support thêm mới chỉ số hiệu suất chính (KPI) vào hệ thống với thông tin chi tiết bao gồm tên KPI, số tiền, mô tả, và trạng thái. Trạng thái ban đầu của KPI mới là Mới và có thể thay đổi thành Đã xác nhận, Đã Hủy, hoặc Đã Xóa sau khi thêm. Chức năng bao gồm nhập thông tin bắt buộc (tên KPI, số tiền, mô tả, trạng thái) để lưu trữ và quản lý hiệu suất. Sau khi thêm, thông tin được lưu và hiển thị trong danh sách KPI.
Giao diện liên quan - Trang danh sách KPI (truy cập từ tab "Quản lý" và chọn tab "KPI").
- Nút "Thêm mới KPI" mở popup để nhập thông tin.
- Popup "Thêm mới KPI" với các trường: Tên KPI (text input, bắt buộc), Số tiền (text input, bắt buộc), Mô tả KPI (textarea, bắt buộc), Trạng thái (dropdown: Mới, Đã xác nhận, Đã Hủy, Đã Xóa, mặc định "Mới").
- Nút "Lưu" và "Hủy" trong popup.
- Thông báo thành công: "Thêm KPI thành công" với dấu check xanh.
Luồng thao tác chính 1. Admin/Support vào tab "Quản lý" trên hệ thống.
2. Chọn tab "KPI" để xem danh sách KPI.
3. Nhấn nút "Thêm mới KPI" để mở popup.
4. Trong popup: Nhập thông tin bắt buộc (Tên KPI, Số tiền, Mô tả KPI) và chọn trạng thái (mặc định "Mới" hoặc thay đổi thành Đã xác nhận, Đã Hủy, Đã Xóa).
5. Nhấn "Lưu" → hệ thống validate (tên KPI không trùng, số tiền hợp lệ, mô tả không rỗng), lưu thông tin và hiển thị thông báo "Thêm KPI thành công".
6. Nhấn "Hủy" để đóng popup mà không lưu.
7. Trở lại danh sách KPI để thấy KPI mới được thêm.
Điều kiện - Vai trò phải có quyền thêm KPI (chỉ Admin và Support).
- Dữ liệu KPI phải được đồng bộ với ICS sau khi thêm.
- Tên KPI: Phải duy nhất, không trùng lặp.
- Số tiền: Định dạng VND, phải là số nguyên dương, làm tròn đến đơn vị nghìn.
- Mô tả KPI: Không rỗng, tối đa 500 ký tự.
- Trạng thái: Dropdown với tùy chọn Mới, Đã xác nhận, Đã Hủy, Đã Xóa, mặc định "Mới" khi tạo.
- Validate: Tên KPI không rỗng, số tiền > 0, mô tả không rỗng.
Kết quả hiển thị - Popup thêm mới: Ví dụ Tên KPI "Hoàn thành lớp A1", Số tiền "5,000,000", Mô tả KPI "Hoàn thành 100% lịch dạy tháng 9", Trạng thái "Mới".
- Sau lưu: KPI mới hiển thị trong danh sách với thông tin đã nhập.
- Thông báo: "Thêm KPI thành công" với dấu check xanh.
- Trong danh sách: Tiêu đề KPI "Hoàn thành lớp A1", Trạng Thái "Mới", Số Tiền "5,000,000 VND", Mô Tả KPI "Hoàn thành 100% lịch dạy tháng 9", Ngày Ghi Nhận (tự động là 12/09/2025), Ngày Cập Nhật (tự động là 12/09/2025).
Trường hợp không có dữ liệu - Nếu tên KPI trùng: Lỗi "Tên KPI đã tồn tại, vui lòng chọn tên khác", không lưu.
- Nếu bỏ trống trường bắt buộc (Tên KPI, Số tiền, Mô tả): Lỗi inline "Vui lòng nhập đầy đủ thông tin bắt buộc", không lưu.
- Nếu số tiền không hợp lệ (nhỏ hơn hoặc bằng 0): Lỗi "Số tiền phải lớn hơn 0", không lưu.
- Nếu mô tả vượt quá 500 ký tự: Lỗi "Mô tả không được vượt quá 500 ký tự", không lưu.
- Nếu không có quyền thêm: Hiển thị lỗi "Bạn không có quyền thêm KPI".

8.3 Gắn KPI

Gắn KPI
Trường dữ liệu Nội dung
Tên chức năng Gắn KPI
Vai trò Admin
Mô tả Cho phép Admin gắn KPI cho giáo viên hoặc trợ giảng, bao gồm chọn loại KPI, chỉnh sửa số tiền thưởng, chọn giáo viên/trợ giảng, thời gian thực hiện, và trạng thái. Chức năng hỗ trợ quản lý hiệu suất và lương thưởng.
Giao diện liên quan - Tab "Lớp" để chọn lớp cụ thể.
- Tab "KPI" trong phần cài đặt lớp.
- Form gắn KPI với các trường: Loại KPI, Số tiền thưởng, Giáo viên/Trợ giảng, Thời gian thực hiện, Trạng thái.
- Button "Cập nhật" để lưu thông tin.
- Tab "Lịch sử & Lương" cho giáo viên/trợ giảng để xem KPI của mình (các cột: Tên, Ngày ghi nhận, Trạng thái, Số tiền, Ngày cập nhật).
Luồng thao tác chính 1. Admin vào tab "Lớp" và chọn một lớp cụ thể.
2. Vào tab "KPI" trong phần cài đặt.
3. Gắn KPI: Chọn loại KPI (hiển thị số tiền thưởng mặc định), chỉnh sửa số tiền thưởng, chọn giáo viên/trợ giảng, chọn thời gian thực hiện, chọn trạng thái (Mới, Đã xác nhận, Đã hủy, Đã xóa), nhấn "Cập nhật" để lưu.
4. Giáo viên/trợ giảng vào tab "Lịch sử & Lương", chọn "KPI" để xem thông tin cá nhân (Tên, Ngày ghi nhận, Trạng thái, Số tiền, Ngày cập nhật).
Điều kiện - Vai trò phải là Admin để gắn KPI.
- Dữ liệu loại KPI phải được tạo trước.
- Số tiền thưởng: Định dạng VND, có thể chỉnh sửa, làm tròn đến đơn vị nghìn.
- Thời gian thực hiện: Định dạng DD/MM/YYYY HH:mm, không vượt quá ngày hiện tại (02:06 PM +07, Monday, September 15, 2025).
- Trạng thái: Một trong 4 giá trị (Mới, Đã xác nhận, Đã hủy, Đã xóa).
- Validate: Tên KPI, giáo viên/trợ giảng, và thời gian không rỗng.
Kết quả hiển thị - Sau gắn KPI: Hiển thị thông tin KPI (Tên: "Hoàn thành lớp A1", Mô tả: "Hoàn thành 100% lịch dạy", Giá trị gốc: "2,000,000 VND", Giáo viên: "GV01 - Giáo viên", Thời gian: "12/09/2025 14:41", Trạng thái: "Mới", Số tiền: "2,000,000 VND").
- Trong tab "Lịch sử & Lương": Hiển thị (Tên: "Hoàn thành lớp A1", Ngày ghi nhận: "12/09/2025", Trạng thái: "Mới", Số tiền: "2,000,000 VND", Ngày cập nhật: "12/09/2025").
Trường hợp không có dữ liệu - Nếu không có loại KPI: Hiển thị "Chưa có loại KPI nào" với form trống.
- Nếu không chọn giáo viên/trợ giảng: Hiển thị thông báo "Vui lòng chọn giáo viên hoặc trợ giảng".
- Nếu thời gian không hợp lệ: Hiển thị thông báo "Thời gian không được vượt quá ngày hiện tại".

9. Quản lý danh mục & Cấp độ

9.1 Tổng quan danh mục

Tổng quan danh mục
Trường dữ liệu Nội dung
Tên chức năng Tổng quan danh mục
Vai trò CD, CD Runner
Mô tả Cho phép CD và CD Runner Thêm/Xóa/Vô hiệu danh mục khóa học, với danh sách bao gồm các cột: ID, Tên danh mục, Mô tả danh mục, Số khóa học (số lượng khóa học sử dụng danh mục này). Mỗi danh mục có 3 trạng thái: Đang kích hoạt (các khóa học được dùng danh mục này), Vô hiệu (không được dùng), Xóa (danh mục không tồn tại nữa). Trang chi tiết danh mục (tab Tổng quan danh mục) cho phép chỉnh sửa tiêu đề danh mục và mô tả danh mục, và hiển thị danh sách quản lý khóa học với các cột: ID, Tên khóa học, Mô tả khóa học, Số kỳ, Cấp độ (click vào để mở popup chọn cấp độ), Trạng thái (Đang kích hoạt, Vô hiệu, Xóa). CD và CD Runner có quyền thêm mới danh mục (nhập tên vào ô rồi nhấn + để tạo, sau đó chỉnh mô tả và trạng thái trong trang chi tiết), thêm mới khóa học vào danh mục (nhập tên khóa học vào ô "Thêm khóa học mới" rồi nhấn +, sau đó chỉnh mô tả, cấp độ qua popup, trạng thái trong chi tiết khóa học). Admin và Support không thể truy cập trang hệ thống của curriculum development, chỉ CD và CD Runner có quyền đầy đủ.
Giao diện liên quan - Trang quản lý danh mục (truy cập từ menu "Danh mục" hoặc tab liên quan), hiển thị danh sách với cột: ID, Tên danh mục, Mô tả danh mục, Số khóa học; Ô input "Thêm danh mục mới" với dấu + để thêm nhanh.
- Trang chi tiết danh mục (tab "Tổng quan danh mục" khi chọn danh mục cụ thể): Các trường chỉnh sửa Tiêu đề danh mục, Mô tả danh mục; Danh sách quản lý khóa học với cột: ID, Tên khóa học, Mô tả khóa học, Số kỳ, Cấp độ (click mở popup dropdown chọn cấp độ), Trạng thái (dropdown: Đang kích hoạt, Vô hiệu, Xóa); Ô input "Thêm khóa học mới" với dấu + để thêm khóa học.
- Popup chọn cấp độ: Dropdown các cấp độ (ví dụ: N5, N4, ...).
- Không hiển thị cho Admin/Support: Trang không accessible với họ.
Luồng thao tác chính 1. CD/CD Runner truy cập trang Quản lý danh mục.
2. Hệ thống hiển thị danh sách danh mục với ID, Tên, Mô tả, Số khóa học.
3. Để thêm mới danh mục: Nhập tên danh mục vào ô "Thêm danh mục mới" rồi nhấn dấu + để tạo danh mục mới; sau đó nhập và chỉnh sửa mô tả danh mục (có thể ở trang quản lý danh mục hoặc trang chi tiết danh mục), ở trong trang chi tiết danh mục mới có thể chỉnh trạng thái danh mục (trạng thái mặc định Đang kích hoạt).
4. Để chỉnh sửa danh mục: Chọn danh mục → chuyển sang trang chi tiết danh mục (tab Tổng quan) → chỉnh sửa Tiêu đề, Mô tả → Lưu.
5. Trong trang chi tiết danh mục, xem danh sách khóa học: ID, Tên, Mô tả, Số kỳ, Cấp độ (click để mở popup chọn cấp độ mới → Lưu), Trạng thái (dropdown thay đổi: Đang kích hoạt, Vô hiệu, Xóa).
6. Để thêm mới khóa học vào danh mục: Trong trang chi tiết danh mục, nhập tên khóa học vào ô "Thêm khóa học mới" rồi nhấn dấu + để tạo khóa học mới; sau đó chỉnh mô tả khóa học, cấp độ (click vào cấp độ để mở popup chọn cấp độ), và trạng thái khóa học trong chi tiết khóa học.
7. Để thay đổi trạng thái danh mục: Chọn danh mục → vào trang chi tiết → dropdown trạng thái (Đang kích hoạt → khóa học có thể dùng; Vô hiệu → không dùng; Xóa → xóa danh mục).
8. Hệ thống cập nhật số khóa học tự động dựa trên khóa học sử dụng danh mục.
9. Admin/Support không thể truy cập trang, hệ thống chặn hoặc ẩn menu liên quan.
Điều kiện - Chỉ CD/CD Runner được phân quyền truy cập và chỉnh sửa danh mục; Admin/Support không thể vào trang.
- Danh mục phải có tên duy nhất, mô tả tùy chọn.
- Trạng thái: Đang kích hoạt - khóa học có thể liên kết; Vô hiệu - không liên kết mới nhưng giữ cũ; Xóa - xóa hoàn toàn, không khôi phục.
- Khi chỉnh cấp độ khóa học: Popup chỉ hiển thị cấp độ hợp lệ (N5, N4,...).
- Số khóa học: Tính tự động từ số khóa liên kết với danh mục.
- Không cho xóa danh mục nếu còn khóa học đang kích hoạt liên kết.
Kết quả hiển thị - Danh sách danh mục: ID (05669), Tên (Khóa tổng hợp), Mô tả (mô tả hehe), Số khóa học (5).
- Trang chi tiết (Tổng quan): Tiêu đề/Mô tả chỉnh sửa được; Danh sách khóa học: ID, Tên, Mô tả, Số kỳ, Cấp độ (N5), Trạng thái (Đang kích hoạt).
- Sau thêm/chỉnh sửa: Danh mục/khóa học mới/cập nhật hiển thị, số khóa học thay đổi nếu liên kết.
- Popup cấp độ: Chọn và lưu cấp độ mới cho khóa học.
- Thông báo thành công: "Danh mục/Khóa học đã được thêm/chỉnh sửa."
Trường hợp không có dữ liệu - Nếu chưa có danh mục: Hiển thị "Chưa có danh mục nào" với ô "Thêm danh mục mới".
- Nếu thiếu trường bắt buộc: Không lưu, lỗi "Vui lòng điền tên danh mục."
- Nếu xóa không thành: Thông báo "Không thể xóa danh mục đang có khóa học liên kết."
- Nếu Admin/Support cố truy cập: Trang không hiển thị hoặc lỗi truy cập bị từ chối.

9.2 Mindset

Quản lý danh mục - Mindset
Trường Nội dung
Tên chức năng Quản lý danh mục - Mindset
Vai trò Curriculum Development (CD), CD Runner, Teacher
Mô tả Chức năng cho phép quản lý Mindset trong danh mục khóa học, bao gồm tạo, chỉnh sửa, xem và đánh giá Mindset. Mindset là cấu trúc phân cấp (cây) với các mục chính (ví dụ: ms 1, ms 2), mục con (ma1, ma2) và nội dung chi tiết (a, b) kèm hướng dẫn. Mỗi Mindset có 3 trạng thái: Đang kích hoạt (có thể sử dụng và đánh giá), Vô hiệu (không thể sử dụng cho khóa học mới nhưng giữ dữ liệu cũ), Xóa (loại bỏ hoàn toàn khỏi hệ thống). Mindset được thêm mới sẽ đồng bộ trực tiếp vào khóa học - tab Tài liệu - Mindset mà không cần tạo quy trình riêng như ở tiêu chuẩn lớp học. Tiến độ hoàn thành Mindset được tính dựa trên các loại nội dung cụ thể: "Kiểm tra" (ô tick do CD đánh dấu để tính %), "Tiến độ" (thanh progress do CD kéo để đánh giá % hoàn thành), "Đánh giá" (mô tả và đánh giá tổng). Các nội dung quy trình có nhiều loại: "Hướng dẫn" (mô tả và tệp đính kèm - hỗ trợ upload file), "Kiểm tra" (mô tả và ô tick), "Tiến độ" (mô tả và thanh progress), "Nhiệm vụ" (mô tả và tệp đính kèm - hỗ trợ upload file), "Deadline" (mô tả, deadline, thời gian hoàn thành), "Xác thực" (mô tả, thời gian xác thực, người gán, ô tick do CD tick). Ở Mindset khóa học (tiêu chuẩn lớp học), các nội dung quy trình đều có mục ghi chú (do CD ghi chú). Role CD có quyền tạo mới Mindset, chỉnh sửa, upload file (chỉ cho loại "Hướng dẫn" và "Nhiệm vụ"), set trạng thái Mindset; ở Mindset khóa học, CD có quyền đánh giá (tick ô, kéo progress, thêm ghi chú), trong khi CD Runner và Teacher chỉ có quyền xem danh sách và tiến độ.
Giao diện liên quan - Tab Danh mục & Cấp độ (truy cập từ menu chính).
- Trang chi tiết danh mục (khi chọn danh mục cụ thể): Tab Mindset với danh sách Mindset (cột bên phải: Danh sách ms 1, ms 2, ms 3; bên trái: Chi tiết cấu trúc cây của Mindset được chọn, bao gồm mục con, nội dung, hướng dẫn và input thêm mới; menu dropdown thêm loại nội dung: Hướng dẫn, Kiểm tra, Tiến độ, Đánh giá, Nhiệm vụ, Deadline, Xác thực, Log).
- Trang chi tiết khóa học (trong danh mục có Mindset): Tab Tài liệu → Mindset (để đánh giá hoặc xem, với mục ghi chú).
- Trang chi tiết lớp học (đối với Teacher): Tab Tài liệu → Mindset (để xem, với tiến độ hoàn thành).
Luồng thao tác chính Đối với CD:
1. Truy cập Tab Danh mục & Cấp độ → Chọn danh mục cụ thể → Chọn tab Mindset.
2. Hiển thị danh sách Mindset (bên phải: Danh sách với ID như ms 1, ms 2; bên trái: Chi tiết cấu trúc cây của Mindset được chọn).
3. Để tạo Mindset mới: Nhập tên vào ô "Nhập Nội Dung Mới" rồi nhấn + để tạo mục chính mới; sau đó chỉnh sửa cấu trúc cây (thêm loại nội dung từ menu dropdown, chỉnh mô tả, upload file cho Hướng dẫn/Nhiệm vụ, set deadline cho Deadline, v.v.) → Lưu để đồng bộ vào khóa học - Tài liệu - Mindset.
4. Để chỉnh sửa Mindset: Chọn Mindset từ danh sách → Chỉnh sửa cấu trúc cây (thay đổi tên, loại nội dung, mô tả, hướng dẫn, file, trạng thái) → Lưu.
5. Để đánh giá Mindset: Truy cập khóa học thuộc danh mục → Chọn khóa học cụ thể từ danh sách → Vào tab Tài liệu → Chọn Mindset → Đánh giá quy trình (tick cho Kiểm tra/Xác thực, kéo progress cho Tiến độ, đánh giá tổng cho Đánh giá, thêm ghi chú cho tất cả loại) → Hệ thống tính tiến độ hoàn thành dựa trên tick/progress/đánh giá.
Đối với CD Runner:
Tương tự CD nhưng chỉ xem danh sách, chi tiết Mindset và tiến độ hoàn thành (không có nút tạo/chỉnh sửa/đánh giá/upload/set trạng thái, giao diện read-only).
Đối với Teacher:
1. Truy cập lớp học cụ thể có khóa học bao gồm Mindset.
2. Vào tab Tài liệu → Chọn Mindset của khóa học → Xem cấu trúc cây, nội dung, tiến độ hoàn thành và ghi chú (read-only, không chỉnh sửa hoặc đánh giá).
Điều kiện - Chỉ CD được phân quyền tạo/chỉnh sửa/upload/set trạng thái/đánh giá Mindset; CD Runner và Teacher chỉ xem.
- Mindset phải thuộc danh mục đang kích hoạt.
- Cấu trúc cây Mindset: Mục chính (ms) có thể có mục con (ma), nội dung chi tiết (a, b) với các loại nội dung (Hướng dẫn: mô tả + file bắt buộc nếu upload; Kiểm tra: mô tả + tick; Tiến độ: mô tả + progress; Nhiệm vụ: mô tả + file; Deadline: mô tả + deadline + thời gian; Xác thực: mô tả + thời gian + người gán + tick; tất cả loại có ghi chú ở Mindset khóa học).
- Không cho xóa Mindset nếu đang được sử dụng trong khóa học/lớp học.
- Teacher chỉ xem Mindset trong lớp được phân công.
- Trạng thái: Đang kích hoạt - sử dụng và đánh giá; Vô hiệu - không sử dụng mới nhưng giữ đánh giá cũ; Xóa - loại bỏ vĩnh viễn.
- Upload file chỉ cho Hướng dẫn/Nhiệm vụ, lỗi nếu thiếu file bắt buộc.
- Tiến độ hoàn thành: Tự động tính % dựa trên tick (Kiểm tra/Xác thực), progress (Tiến độ), đánh giá tổng (Đánh giá).
Kết quả hiển thị - Danh sách Mindset: ID (ms 1), với màu nền phân biệt (pink cho mục chính/con).
- Chi tiết Mindset: Cấu trúc cây với input chỉnh sửa (CD), menu dropdown thêm loại, hướng dẫn (green label), input thêm mới, thông báo lỗi (red nếu thiếu file), ghi chú (ở Mindset khóa học).
- Sau tạo/chỉnh sửa: Mindset cập nhật trong danh sách, chi tiết và đồng bộ vào khóa học - Tài liệu - Mindset.
- Đánh giá: Kết quả đánh giá lưu vào khóa học, hiển thị tick/progress/ghi chú, tiến độ % tổng.
- Xem: Hiển thị read-only cho CD Runner/Teacher, với tiến độ hoàn thành.
Trường hợp không có dữ liệu - Nếu chưa có Mindset trong danh mục: Hiển thị "Chưa có Mindset" với ô "Nhập Nội Dung Mới" (chỉ cho CD).
- Nếu thiếu trường bắt buộc (tên, file cho Hướng dẫn/Nhiệm vụ): Không lưu, hiển thị lỗi (ví dụ: "Thêm file hoặc bõm vào chọn file ở đây").
- Nếu Teacher/CD Runner truy cập mà không có quyền: Giao diện read-only hoặc ẩn nút chỉnh sửa.
- Nếu không có khóa học/lớp liên kết: Không thể đánh giá/xem Mindset, hiển thị "Chưa có Mindset đồng bộ".

9.3 Tiêu chuẩn giáo trình

Quản lý danh mục - Tiêu chuẩn giáo trình
Trường Nội dung
Tên chức năng Quản lý danh mục - Tiêu chuẩn giáo trình
Vai trò Curriculum Development (CD), CD Runner
Mô tả Chức năng cho phép quản lý Tiêu chuẩn giáo trình trong danh mục khóa học, bao gồm tạo, chỉnh sửa, xem và đánh giá Tiêu chuẩn giáo trình. Tiêu chuẩn giáo trình là cấu trúc phân cấp (cây) với các mục chính (ví dụ: tiêu chuẩn 1, tiêu chuẩn 2), mục con (ví dụ: V, Nhập Danh Mục Mới) và nội dung chi tiết kèm hướng dẫn. Mỗi Tiêu chuẩn giáo trình có 3 trạng thái: Đang kích hoạt (có thể sử dụng và đánh giá), Vô hiệu (không thể sử dụng cho khóa học mới nhưng giữ dữ liệu cũ), Xóa (loại bỏ hoàn toàn khỏi hệ thống). Tiêu chuẩn giáo trình được thêm mới sẽ đồng bộ trực tiếp vào khóa học - tab Tài liệu - Tiêu chuẩn giáo trình mà không cần tạo quy trình riêng như ở tiêu chuẩn lớp học. Tiến độ hoàn thành Tiêu chuẩn giáo trình được tính dựa trên các loại nội dung cụ thể: "Kiểm tra" (ô tick do CD đánh dấu để tính phần trăm), "Tiến độ" (thanh progress do CD kéo để đánh giá phần trăm hoàn thành), "Đánh giá" (mô tả và đánh giá tổng). Các nội dung quy trình có nhiều loại: "Hướng dẫn" (mô tả và tệp đính kèm - hỗ trợ upload file), "Kiểm tra" (mô tả và ô tick), "Tiến độ" (mô tả và thanh progress), "Nhiệm vụ" (mô tả và tệp đính kèm - hỗ trợ upload file), "Deadline" (mô tả, deadline, thời gian hoàn thành), "Xác thực" (mô tả, thời gian xác thực, người gán, ô tick do CD tick). Ở Tiêu chuẩn giáo trình khóa học (tiêu chuẩn lớp học), các nội dung quy trình đều có mục ghi chú (do CD ghi chú). Role CD có quyền tạo mới Tiêu chuẩn giáo trình, chỉnh sửa, upload file (chỉ cho loại "Hướng dẫn" và "Nhiệm vụ"), set trạng thái Tiêu chuẩn giáo trình; ở Tiêu chuẩn giáo trình khóa học, CD có quyền đánh giá (tick ô, kéo progress, thêm ghi chú), trong khi CD Runner chỉ có quyền xem danh sách và tiến độ.
Giao diện liên quan - Tab Danh mục & Cấp độ (truy cập từ menu chính).
- Trang chi tiết danh mục (khi chọn danh mục cụ thể): Tab Tiêu chuẩn giáo trình với danh sách Tiêu chuẩn giáo trình (cột bên phải: Danh sách tiêu chuẩn 1, tiêu chuẩn 2; bên trái: Chi tiết cấu trúc cây của Tiêu chuẩn giáo trình được chọn, bao gồm mục con, nội dung, hướng dẫn và input thêm mới; menu dropdown thêm loại nội dung: Hướng dẫn, Kiểm tra, Tiến độ, Đánh giá, Nhiệm vụ, Deadline, Xác thực, Log).
- Trang chi tiết khóa học (trong danh mục có Tiêu chuẩn giáo trình): Tab Tài liệu → Tiêu chuẩn giáo trình (để đánh giá hoặc xem, với mục ghi chú).
Luồng thao tác chính Đối với CD:
1. Truy cập Tab Danh mục & Cấp độ → Chọn danh mục cụ thể → Chọn tab Tiêu chuẩn giáo trình.
2. Hiển thị danh sách Tiêu chuẩn giáo trình (bên phải: Danh sách với ID như tiêu chuẩn 1, tiêu chuẩn 2; bên trái: Chi tiết cấu trúc cây của Tiêu chuẩn giáo trình được chọn).
3. Để tạo Tiêu chuẩn giáo trình mới: Nhập tên vào ô "Nhập Nội Dung Mới" rồi nhấn + để tạo mục chính mới; sau đó chỉnh sửa cấu trúc cây (thêm loại nội dung từ menu dropdown, chỉnh mô tả, upload file cho Hướng dẫn/Nhiệm vụ, set deadline cho Deadline, set thời gian xác thực và người gán cho Xác thực, thêm đánh giá tổng cho Đánh giá) → Lưu để đồng bộ vào khóa học - Tài liệu - Tiêu chuẩn giáo trình.
4. Để chỉnh sửa Tiêu chuẩn giáo trình: Chọn Tiêu chuẩn giáo trình từ danh sách → Chỉnh sửa cấu trúc cây (thay đổi tên, loại nội dung, mô tả, hướng dẫn, file, trạng thái) → Lưu.
5. Để đánh giá Tiêu chuẩn giáo trình: Truy cập khóa học thuộc danh mục → Chọn khóa học cụ thể từ danh sách → Vào tab Tài liệu → Chọn Tiêu chuẩn giáo trình → Đánh giá quy trình (tick cho Kiểm tra/Xác thực, kéo progress cho Tiến độ, đánh giá tổng cho Đánh giá, thêm ghi chú cho tất cả loại) → Hệ thống tính tiến độ hoàn thành dựa trên tick/progress/đánh giá.
Đối với CD Runner:
Tương tự CD nhưng chỉ xem danh sách, chi tiết Tiêu chuẩn giáo trình và tiến độ hoàn thành (không có nút tạo/chỉnh sửa/đánh giá/upload/set trạng thái, giao diện read-only).
Điều kiện - Chỉ CD được phân quyền tạo/chỉnh sửa/upload/set trạng thái/đánh giá Tiêu chuẩn giáo trình; CD Runner chỉ xem.
- Tiêu chuẩn giáo trình phải thuộc danh mục đang kích hoạt.
- Cấu trúc cây Tiêu chuẩn giáo trình: Mục chính (tiêu chuẩn) có thể có mục con (V, Nhập Danh Mục Mới), nội dung chi tiết với các loại nội dung (Hướng dẫn: mô tả + file bắt buộc nếu upload; Kiểm tra: mô tả + tick; Tiến độ: mô tả + progress; Nhiệm vụ: mô tả + file; Deadline: mô tả + deadline + thời gian; Xác thực: mô tả + thời gian + người gán + tick; tất cả loại có ghi chú ở Tiêu chuẩn giáo trình khóa học).
- Không cho xóa Tiêu chuẩn giáo trình nếu đang được sử dụng trong khóa học/lớp học.
- Trạng thái: Đang kích hoạt - sử dụng và đánh giá; Vô hiệu - không sử dụng mới nhưng giữ đánh giá cũ; Xóa - loại bỏ vĩnh viễn.
- Upload file chỉ cho Hướng dẫn/Nhiệm vụ, lỗi nếu thiếu file bắt buộc.
- Tiến độ hoàn thành: Tự động tính phần trăm dựa trên tick (Kiểm tra/Xác thực), progress (Tiến độ), đánh giá tổng (Đánh giá).
Kết quả hiển thị - Danh sách Tiêu chuẩn giáo trình: ID (tiêu chuẩn 1), với màu nền phân biệt (pink cho mục chính/con).
- Chi tiết Tiêu chuẩn giáo trình: Cấu trúc cây với input chỉnh sửa (CD), menu dropdown thêm loại, hướng dẫn (green label), input thêm mới, thông báo lỗi (red nếu thiếu file), ghi chú (ở Tiêu chuẩn giáo trình khóa học).
- Sau tạo/chỉnh sửa: Tiêu chuẩn giáo trình cập nhật trong danh sách, chi tiết và đồng bộ vào khóa học - Tài liệu - Tiêu chuẩn giáo trình.
- Đánh giá: Kết quả đánh giá lưu vào khóa học, hiển thị tick/progress/ghi chú, tiến độ phần trăm tổng.
- Xem: Hiển thị read-only cho CD Runner, với tiến độ hoàn thành.
Trường hợp không có dữ liệu - Nếu chưa có Tiêu chuẩn giáo trình trong danh mục: Hiển thị "Chưa có Tiêu chuẩn giáo trình" với ô "Nhập Nội Dung Mới" (chỉ cho CD).
- Nếu thiếu trường bắt buộc (tên, file cho Hướng dẫn/Nhiệm vụ): Không lưu, hiển thị lỗi (ví dụ: "Thêm file hoặc bõm vào chọn file ở đây").
- Nếu CD Runner truy cập mà không có quyền: Giao diện read-only hoặc ẩn nút chỉnh sửa.
- Nếu không có khóa học/lớp liên kết: Không thể đánh giá/xem Tiêu chuẩn giáo trình, hiển thị "Chưa có Tiêu chuẩn giáo trình đồng bộ".

9.4 Hướng dẫn giảng dạy

Quản lý danh mục - Hướng dẫn giảng dạy
Trường Nội dung
Tên chức năng Quản lý danh mục - Hướng dẫn giảng dạy
Vai trò Curriculum Development (CD), CD Runner
Mô tả Chức năng cho phép quản lý Hướng dẫn giảng dạy trong danh mục khóa học, bao gồm tạo, chỉnh sửa, xem và đánh giá Hướng dẫn giảng dạy. Hướng dẫn giảng dạy là cấu trúc phân cấp (cây) với các mục chính (ví dụ: hướng dẫn 1, hướng dẫn 2), mục con (ví dụ: V, Nhập Danh Mục Mới) và nội dung chi tiết kèm tài liệu hỗ trợ. Mỗi Hướng dẫn giảng dạy có 3 trạng thái: Đang kích hoạt (có thể sử dụng và đánh giá), Vô hiệu (không thể sử dụng cho khóa học mới nhưng giữ dữ liệu cũ), Xóa (loại bỏ hoàn toàn khỏi hệ thống). Hướng dẫn giảng dạy được thêm mới sẽ đồng bộ trực tiếp vào khóa học - tab Tài liệu - Hướng dẫn giảng dạy mà không cần tạo quy trình riêng như ở tiêu chuẩn lớp học. Tiến độ hoàn thành Hướng dẫn giảng dạy được tính dựa trên các loại nội dung cụ thể: "Kiểm tra" (ô tick do CD đánh dấu để tính phần trăm), "Tiến độ" (thanh progress do CD kéo để đánh giá phần trăm hoàn thành), "Đánh giá" (mô tả và đánh giá tổng). Các nội dung quy trình có nhiều loại: "Hướng dẫn" (mô tả và tệp đính kèm - hỗ trợ upload file), "Kiểm tra" (mô tả và ô tick), "Tiến độ" (mô tả và thanh progress), "Nhiệm vụ" (mô tả và tệp đính kèm - hỗ trợ upload file), "Deadline" (mô tả, deadline, thời gian hoàn thành), "Xác thực" (mô tả, thời gian xác thực, người gán, ô tick do CD tick). Ở Hướng dẫn giảng dạy khóa học (hướng dẫn lớp học), các nội dung quy trình đều có mục ghi chú (do CD hoặc CD Runner ghi chú). Role CD có quyền tạo mới Hướng dẫn giảng dạy, chỉnh sửa, upload file (chỉ cho loại "Hướng dẫn" và "Nhiệm vụ"), set trạng thái Hướng dẫn giảng dạy; ở Hướng dẫn giảng dạy khóa học, CD có quyền đánh giá (tick ô, kéo progress, thêm ghi chú), trong khi CD Runner có quyền xem danh sách, tiến độ và viết ghi chú.
Giao diện liên quan - Tab Danh mục & Cấp độ (truy cập từ menu chính).
- Trang chi tiết danh mục (khi chọn danh mục cụ thể): Tab Hướng dẫn giảng dạy với danh sách Hướng dẫn giảng dạy (cột bên phải: Danh sách hướng dẫn 1, hướng dẫn 2; bên trái: Chi tiết cấu trúc cây của Hướng dẫn giảng dạy được chọn, bao gồm mục con, nội dung, hướng dẫn và input thêm mới; menu dropdown thêm loại nội dung: Hướng dẫn, Kiểm tra, Tiến độ, Đánh giá, Nhiệm vụ, Deadline, Xác thực, Log).
- Trang chi tiết khóa học (trong danh mục có Hướng dẫn giảng dạy): Tab Tài liệu → Hướng dẫn giảng dạy (để đánh giá hoặc xem, với mục ghi chú).
Luồng thao tác chính Đối với CD:
1. Truy cập Tab Danh mục & Cấp độ → Chọn danh mục cụ thể → Chọn tab Hướng dẫn giảng dạy.
2. Hiển thị danh sách Hướng dẫn giảng dạy (bên phải: Danh sách với ID như hướng dẫn 1, hướng dẫn 2; bên trái: Chi tiết cấu trúc cây của Hướng dẫn giảng dạy được chọn).
3. Để tạo Hướng dẫn giảng dạy mới: Nhập tên vào ô "Nhập Nội Dung Mới" rồi nhấn + để tạo mục chính mới; sau đó chỉnh sửa cấu trúc cây (thêm loại nội dung từ menu dropdown, chỉnh mô tả, upload file cho Hướng dẫn/Nhiệm vụ, set deadline cho Deadline, set thời gian xác thực và người gán cho Xác thực, thêm đánh giá tổng cho Đánh giá) → Lưu để đồng bộ vào khóa học - Tài liệu - Hướng dẫn giảng dạy.
4. Để chỉnh sửa Hướng dẫn giảng dạy: Chọn Hướng dẫn giảng dạy từ danh sách → Chỉnh sửa cấu trúc cây (thay đổi tên, loại nội dung, mô tả, hướng dẫn, file, trạng thái) → Lưu.
5. Để đánh giá Hướng dẫn giảng dạy: Truy cập khóa học thuộc danh mục → Chọn khóa học cụ thể từ danh sách → Vào tab Tài liệu → Chọn Hướng dẫn giảng dạy → Đánh giá quy trình (tick cho Kiểm tra/Xác thực, kéo progress cho Tiến độ, đánh giá tổng cho Đánh giá, thêm ghi chú cho tất cả loại) → Hệ thống tính tiến độ hoàn thành dựa trên tick/progress/đánh giá.
Đối với CD Runner:
Tương tự CD nhưng chỉ xem danh sách, chi tiết Hướng dẫn giảng dạy, tiến độ hoàn thành và viết ghi chú (không có nút tạo/chỉnh sửa/đánh giá/upload/set trạng thái).
Điều kiện - Chỉ CD được phân quyền tạo/chỉnh sửa/upload/set trạng thái/đánh giá Hướng dẫn giảng dạy; CD Runner có quyền xem và viết ghi chú.
- Hướng dẫn giảng dạy phải thuộc danh mục đang kích hoạt.
- Cấu trúc cây Hướng dẫn giảng dạy: Mục chính (hướng dẫn) có thể có mục con (V, Nhập Danh Mục Mới), nội dung chi tiết với các loại nội dung (Hướng dẫn: mô tả + file bắt buộc nếu upload; Kiểm tra: mô tả + tick; Tiến độ: mô tả + progress; Nhiệm vụ: mô tả + file; Deadline: mô tả + deadline + thời gian; Xác thực: mô tả + thời gian + người gán + tick; tất cả loại có ghi chú ở Hướng dẫn giảng dạy khóa học).
- Không cho xóa Hướng dẫn giảng dạy nếu đang được sử dụng trong khóa học/lớp học.
- Trạng thái: Đang kích hoạt - sử dụng và đánh giá; Vô hiệu - không sử dụng mới nhưng giữ đánh giá cũ; Xóa - loại bỏ vĩnh viễn.
- Upload file chỉ cho Hướng dẫn/Nhiệm vụ, lỗi nếu thiếu file bắt buộc.
- Tiến độ hoàn thành: Tự động tính phần trăm dựa trên tick (Kiểm tra/Xác thực), progress (Tiến độ), đánh giá tổng (Đánh giá).
Kết quả hiển thị - Danh sách Hướng dẫn giảng dạy: ID (hướng dẫn 1), với màu nền phân biệt (pink cho mục chính/con).
- Chi tiết Hướng dẫn giảng dạy: Cấu trúc cây với input chỉnh sửa (CD), menu dropdown thêm loại, hướng dẫn (green label), input thêm mới, thông báo lỗi (red nếu thiếu file), ghi chú (ở Hướng dẫn giảng dạy khóa học, có thể thêm bởi CD Runner).
- Sau tạo/chỉnh sửa: Hướng dẫn giảng dạy cập nhật trong danh sách, chi tiết và đồng bộ vào khóa học - Tài liệu - Hướng dẫn giảng dạy.
- Đánh giá: Kết quả đánh giá lưu vào khóa học, hiển thị tick/progress/ghi chú, tiến độ phần trăm tổng.
- Xem: Hiển thị read-only cho CD Runner (trừ phần viết ghi chú), với tiến độ hoàn thành.
Trường hợp không có dữ liệu - Nếu chưa có Hướng dẫn giảng dạy trong danh mục: Hiển thị "Chưa có Hướng dẫn giảng dạy" với ô "Nhập Nội Dung Mới" (chỉ cho CD).
- Nếu thiếu trường bắt buộc (tên, file cho Hướng dẫn/Nhiệm vụ): Không lưu, hiển thị lỗi (ví dụ: "Thêm file hoặc bõm vào chọn file ở đây").
- Nếu CD Runner truy cập mà không có quyền: Giao diện read-only trừ phần viết ghi chú, hoặc ẩn nút chỉnh sửa.
- Nếu không có khóa học/lớp liên kết: Không thể đánh giá/xem Hướng dẫn giảng dạy, hiển thị "Chưa có Hướng dẫn giảng dạy đồng bộ".

9.5 Quản lý cấp độ

Quản lý cấp độ
Trường Nội dung
Tên chức năng Quản lý cấp độ
Vai trò Curriculum Development (CD), CD Runner
Mô tả Chức năng cho phép quản lý các cấp độ trong hệ thống, bao gồm thêm mới cấp độ, chỉnh sửa mô tả, mã cấp độ và thay đổi trạng thái cấp độ. Cấp độ được sử dụng để phân loại khóa học theo mức độ khó dễ (ví dụ: N5 cho tiếng Nhật). Mỗi cấp độ có 3 trạng thái: Đang kích hoạt (cấp độ có thể được sử dụng cho khóa học), Vô hiệu (không thể sử dụng cho khóa học mới nhưng giữ dữ liệu cũ), Xóa (loại bỏ hoàn toàn khỏi hệ thống). Role Curriculum Development và Curriculum Development Runner đều có quyền thêm mới, chỉnh sửa và thay đổi trạng thái cấp độ, cả hai vai trò có chức năng giống nhau.
Giao diện liên quan - Tab Danh mục & Cấp độ (truy cập từ menu chính).
- Trang Quản lý cấp độ (khi chọn Tab Quản lý cấp độ): Hiển thị danh sách cấp độ với các cột ID, Tên cấp độ, Mô tả cấp độ, Mã cấp độ, trạng thái (với popup chọn trạng thái: Đang kích hoạt, Vô hiệu, Xóa).
- Ô input "Thêm cấp độ mới" với nút + để thêm cấp độ mới.
- Sau khi thêm, cho phép nhập mô tả và mã cấp độ trực tiếp trong dòng cấp độ mới trong danh sách.
Luồng thao tác chính Đối với Curriculum Development và Curriculum Development Runner:
1. Truy cập Tab Danh mục & Cấp độ → Chọn Tab Quản lý cấp độ.
2. Hiển thị danh sách cấp độ hiện có.
3. Để thêm cấp độ mới: Nhập tên cấp độ vào ô "Thêm cấp độ mới" rồi nhấn nút +.
4. Hệ thống tạo cấp độ mới với ID tự động, trạng thái mặc định Đang kích hoạt, thêm vào danh sách, và cho phép nhập mô tả cấp độ và mã cấp độ trực tiếp trong dòng của cấp độ mới trong danh sách (ví dụ: N5).
5. Sau khi nhập mô tả và mã, nhấn Lưu để cập nhật.
6. Để thay đổi trạng thái: Chọn cấp độ từ danh sách → Mở popup trạng thái → Chọn Đang kích hoạt, Vô hiệu hoặc Xóa → Xác nhận và lưu.
Điều kiện - Cả Curriculum Development và Curriculum Development Runner đều được phân quyền thêm mới, chỉnh sửa mô tả/mã và thay đổi trạng thái cấp độ, cả hai vai trò có chức năng giống nhau.
- Tên cấp độ phải duy nhất, mã cấp độ phải hợp lệ (ví dụ: N5, N4,... cho tiếng Nhật).
- Cấp độ mới mặc định ở trạng thái Đang kích hoạt.
- Không cho xóa cấp độ nếu đang được sử dụng trong khóa học hoặc lớp học đang kích hoạt.
- Trạng thái: Đang kích hoạt - cấp độ có thể liên kết với khóa học; Vô hiệu - không liên kết mới nhưng giữ cũ; Xóa - loại bỏ vĩnh viễn, không khôi phục.
Kết quả hiển thị - Danh sách cấp độ: ID (1752113611365), Tên cấp độ (JP so cap), Mô tả cấp độ (Nhập mô tả cấp độ), Mã cấp độ (N5), trạng thái (Đang kích hoạt với icon green).
- Sau thêm mới: Cấp độ mới xuất hiện trong danh sách với trạng thái Đang kích hoạt, mô tả và mã đã nhập trực tiếp.
- Sau thay đổi trạng thái: Trạng thái cập nhật (ví dụ: Vô hiệu với icon gray, Xóa thì cấp độ biến mất).
- Popup trạng thái: Chọn và xác nhận thay đổi.
- Thông báo thành công: "Cấp độ đã được thêm/chỉnh sửa/thay đổi trạng thái."
Trường hợp không có dữ liệu - Nếu chưa có cấp độ: Hiển thị "Chưa có cấp độ nào" với ô "Thêm cấp độ mới".
- Nếu thiếu tên khi thêm: Không tạo, lỗi "Vui lòng nhập tên cấp độ."
- Nếu mã cấp độ trùng: Lỗi "Mã cấp độ đã tồn tại."
- Nếu xóa không thành: Thông báo "Không thể xóa cấp độ đang được sử dụng."

10. Quản lý khóa học

10.1 Danh sách khóa học

Danh sách khóa học
Trường Nội dung
Tên chức năng Danh sách khóa học
Vai trò Curriculum Development (CD), CD Runner
Mô tả Chức năng cho phép quản lý danh sách các khóa học trong hệ thống, bao gồm thêm mới khóa học, chỉnh sửa mô tả, danh mục, số kỳ, cấp độ và thay đổi trạng thái khóa học. Khóa học được sử dụng để tổ chức nội dung giảng dạy theo chủ đề hoặc cấp độ. Mỗi khóa học có trạng thái: Đang kích hoạt (khóa học có thể được sử dụng), Vô hiệu (không thể sử dụng cho lớp học mới nhưng giữ dữ liệu cũ), Xóa (loại bỏ hoàn toàn khỏi hệ thống, khóa học mất luôn). Role Curriculum Development và Curriculum Development Runner đều có quyền thêm mới, chỉnh sửa và thay đổi trạng thái khóa học, cả hai vai trò có chức năng giống nhau. Có chức năng lọc theo danh mục và cấp độ, cũng như tìm kiếm theo tên khóa học.
Giao diện liên quan - Tab Khóa học (truy cập từ menu chính).
- Trang danh sách khóa học: Hiển thị danh sách với các cột ID, Tên khóa học, Mô tả khóa học (input để chỉnh sửa), Danh mục (click để mở popup chọn danh mục), Số kỳ (default 0, click để chỉnh trong chi tiết), Cấp độ (default "Không", click để mở popup chọn cấp độ), Trạng thái (dropdown: Đang kích hoạt, Vô hiệu, Xóa).
- Ô input "Thêm khóa học mới" với nút + để thêm khóa học mới.
- Popup chọn danh mục và popup chọn cấp độ.
- Bộ lọc: Dropdown lọc theo danh mục và cấp độ, ô search theo tên khóa học.
Luồng thao tác chính Đối với Curriculum Development và Curriculum Development Runner:
1. Truy cập Tab Khóa học.
2. Hiển thị danh sách khóa học hiện có với các cột ID, Tên khóa học, Mô tả khóa học, Danh mục, Số kỳ, Cấp độ, Trạng thái.
3. Để thêm khóa học mới: Nhập tên khóa học vào ô "Thêm khóa học mới" rồi nhấn nút +.
4. Hệ thống tạo khóa học mới với ID tự động, trạng thái mặc định Đang kích hoạt, số kỳ mặc định 0, cấp độ mặc định "Không", thêm vào danh sách; sau đó cho phép chỉnh sửa mô tả trực tiếp, click danh mục để mở popup chọn danh mục, click cấp độ để mở popup chọn cấp độ, chỉnh số kỳ trong chi tiết khóa học (click vào dòng để mở chi tiết).
5. Để chỉnh sửa: Click vào dòng khóa học → Chỉnh mô tả trực tiếp, chọn danh mục/cấp độ qua popup, chỉnh số kỳ trong chi tiết, thay đổi trạng thái qua dropdown.
6. Để lọc/tìm kiếm: Chọn danh mục hoặc cấp độ từ dropdown lọc, nhập tên khóa học vào ô search để hiển thị kết quả phù hợp.
7. Nhấn Lưu để cập nhật thay đổi.
Điều kiện - Cả Curriculum Development và Curriculum Development Runner đều được phân quyền thêm mới, chỉnh sửa mô tả/danh mục/số kỳ/cấp độ và thay đổi trạng thái khóa học, cả hai vai trò có chức năng giống nhau.
- Tên khóa học phải duy nhất.
- Khóa học mới mặc định: Trạng thái Đang kích hoạt, Số kỳ 0, Cấp độ "Không".
- Danh mục và cấp độ phải tồn tại trong hệ thống (chọn từ popup).
- Không cho xóa khóa học nếu đang được sử dụng trong lớp học đang kích hoạt.
- Trạng thái: Đang kích hoạt - khóa học có thể liên kết với lớp học; Vô hiệu - không liên kết mới nhưng giữ cũ; Xóa - loại bỏ vĩnh viễn, khóa học mất luôn, không khôi phục.
- Lọc/search: Áp dụng thời gian thực, kết hợp nhiều điều kiện.
Kết quả hiển thị - Danh sách khóa học: ID (98184), Tên khóa học (khoa 1), Mô tả khóa học (Nhập mô tả khóa học), Danh mục (TestABC), Số kỳ (4), Cấp độ (Không), Trạng thái (Đang kích hoạt với icon green).
- Sau thêm mới: Khóa học mới xuất hiện trong danh sách với defaults, cho phép chỉnh sửa ngay.
- Sau chỉnh sửa: Dữ liệu cập nhật trong dòng (mô tả, danh mục từ popup, cấp độ từ popup, trạng thái từ dropdown).
- Sau thay đổi trạng thái Xóa: Khóa học biến mất khỏi danh sách.
- Sau lọc/search: Chỉ hiển thị khóa học phù hợp với danh mục/cấp độ/tên tìm kiếm.
- Thông báo thành công: "Khóa học đã được thêm/chỉnh sửa/thay đổi trạng thái."
Trường hợp không có dữ liệu - Nếu chưa có khóa học: Hiển thị "Chưa có khóa học nào" với ô "Thêm khóa học mới".
- Nếu thiếu tên khi thêm: Không tạo, lỗi "Vui lòng nhập tên khóa học."
- Nếu danh mục/cấp độ không chọn: Giữ mặc định, có thể cảnh báo "Vui lòng chọn danh mục/cấp độ."
- Nếu xóa không thành: Thông báo "Không thể xóa khóa học đang được sử dụng."
- Nếu không có kết quả lọc/search: Hiển thị "Không tìm thấy khóa học phù hợp."

10.2 Quy Trình - Tổng Quan (S1)

Quy trình - Tổng quan (S1)
Trường Nội dung
Tên chức năng Quy trình - Tổng quan (S1)
Vai trò Curriculum Development (CD), CD Runner
Mô tả Chức năng cho phép quản lý tổng quan quy trình khóa học (Step 1 - S1), bao gồm chỉnh sửa số buổi, thời gian mỗi buổi, tính toán tổng thời gian, thời gian thực tế, số buổi thực tế, thời gian học thực tế, tổng thời gian thực tế nội dung buổi học, và tính phần trăm (%) cho các nội dung buổi học. Có thể thay đổi trạng thái nội dung buổi học (Tự học hoặc Giảng dạy), xóa nội dung buổi học, và thêm mới nội dung buổi học. Nếu trạng thái là Tự học, liên kết đến nội dung (S3); nếu Giảng dạy, liên kết đến bài học. Số buổi phải lớn hơn hoặc bằng số bài học, nếu không sẽ hiển thị lỗi. Phần trăm (%) các nội dung được tính so với thời gian thực tế (ví dụ: thời gian thực tế 4450 thì tổng % = 100% tương ứng 4450). Role Curriculum Development và CD Runner đều có quyền chỉnh sửa, thêm mới, xóa và thay đổi trạng thái, cả hai vai trò có chức năng giống nhau.
Giao diện liên quan - Trang chi tiết khóa học: Tab Quy trình → Tổng quan (S1).
- Bảng tổng quan: Hiển thị Số buổi (input chỉnh sửa), Thời gian mỗi buổi (input), Tổng thời gian (tính toán), Thời gian thực tế (tổng từ bảng nội dung), Số buổi thực tế (từ bảng nội dung), Thời gian học thực tế (từ bảng nội dung), Tổng thời gian thực tế nội dung buổi học (tính toán).
- Bảng nội dung buổi học: Cột ID, Tên, Mô tả, Số buổi, Thời gian học, Tổng thời gian, % (tính toán so với thời gian thực tế), Trạng thái (dropdown: Tự học/Giảng dạy), icon xóa.
- Ô input "Thêm nội dung buổi học mới" với nút + để thêm mới.
- Thông báo lỗi nếu số buổi < số bài học.
Luồng thao tác chính Đối với Curriculum Development và CD Runner:
1. Truy cập chi tiết khóa học → Tab Quy trình → Tổng quan (S1).
2. Hiển thị bảng tổng quan với các giá trị hiện tại (Số buổi, Thời gian mỗi buổi, Tổng thời gian = Số buổi * Thời gian mỗi buổi, Thời gian thực tế từ bảng nội dung, v.v.).
3. Để chỉnh sửa số buổi: Nhập giá trị mới vào input Số buổi → Kiểm tra nếu Số buổi >= số bài học (nếu không, hiển thị lỗi "Số buổi phải lớn hơn hoặc bằng số bài học") → Lưu để cập nhật Tổng thời gian.
4. Để chỉnh thời gian mỗi buổi: Nhập giá trị mới → Lưu để cập nhật Tổng thời gian.
5. Để thêm nội dung buổi học mới: Nhập tên vào ô "Thêm nội dung buổi học mới" rồi nhấn + → Thêm dòng mới vào bảng với ID tự động, trạng thái mặc định (ví dụ: Giảng dạy), sau đó chỉnh sửa các trường còn lại (Mô tả, Số buổi thực tế, Thời gian học thực tế) → Hệ thống tính Tổng thời gian thực tế nội dung buổi học = Số buổi thực tế * Thời gian học thực tế, cập nhật Thời gian thực tế tổng, và tính % (tổng % = 100% tương ứng Thời gian thực tế).
6. Để thay đổi trạng thái nội dung buổi học: Chọn dropdown Tự học/Giảng dạy → Nếu Tự học, liên kết đến nội dung (S3); Nếu Giảng dạy, liên kết đến bài học → Lưu.
7. Để xóa nội dung buổi học: Nhấn icon xóa bên cạnh dòng → Xác nhận popup → Xóa dòng, cập nhật lại Thời gian thực tế và % các dòng còn lại.
8. Các giá trị như Thời gian thực tế, % được cập nhật tự động sau mỗi thay đổi.
Điều kiện - Cả Curriculum Development và CD Runner đều được phân quyền chỉnh sửa số buổi/thời gian, thêm mới/xóa nội dung buổi học, thay đổi trạng thái, cả hai vai trò có chức năng giống nhau.
- Số buổi >= số bài học (lỗi nếu nhỏ hơn).
- Thời gian mỗi buổi, Số buổi thực tế, Thời gian học thực tế phải là số dương.
- Tổng thời gian = Số buổi * Thời gian mỗi buổi.
- Thời gian thực tế = Tổng thời gian thực tế nội dung buổi học của tất cả nội dung.
- Tổng thời gian thực tế nội dung buổi học = Số buổi thực tế * Thời gian học thực tế.
- % = (Tổng thời gian thực tế nội dung buổi học / Thời gian thực tế) * 100, tổng % tất cả nội dung = 100%.
- Không cho xóa nội dung buổi học nếu đang được sử dụng (ví dụ: liên kết với bài học hoặc nội dung).
- Trạng thái Tự học: Liên kết S3; Giảng dạy: Liên kết bài học.
Kết quả hiển thị - Bảng tổng quan: Số buổi (60), Thời gian mỗi buổi (90), Tổng thời gian (5400), Thời gian thực tế (4450), Thời gian còn lại (950).
- Bảng nội dung buổi học: ID (76636), Tên (Từ Vựng), Mô tả (Nhập mô tả nội dung buổi học), Số buổi (50), Thời gian học (00:15:00), Tổng thời gian (750), % (13.89%).
- Sau chỉnh sửa số buổi: Cập nhật Tổng thời gian, kiểm tra lỗi nếu < số bài học.
- Sau thêm mới: Dòng mới xuất hiện, có thể chỉnh sửa ngay, cập nhật Thời gian thực tế và %.
- Sau thay đổi trạng thái: Liên kết cập nhật (S3 hoặc bài học).
- Sau xóa: Dòng biến mất, Thời gian thực tế và % các dòng còn lại được recalculate.
- Thông báo thành công: "Đã cập nhật tổng quan quy trình."
Trường hợp không có dữ liệu - Nếu chưa có nội dung buổi học: Hiển thị bảng rỗng với ô "Thêm nội dung buổi học mới", Thời gian thực tế = 0, % = 0.
- Nếu số buổi < số bài học: Không lưu, hiển thị lỗi "Số buổi phải lớn hơn hoặc bằng số bài học."
- Nếu thiếu tên khi thêm mới: Không tạo, lỗi "Vui lòng nhập tên nội dung buổi học."
- Nếu xóa không thành: Thông báo "Không thể xóa nội dung buổi học đang được sử dụng."
- Nếu giá trị âm hoặc không hợp lệ: Không lưu, lỗi "Giá trị phải là số dương."

10.3 Quản lý Học kỳ - Bài Học - Kiểm Tra

Quản lý Học kỳ - Bài Học - Kiểm Tra
Trường Nội dung
Tên chức năng Quản lý Học kỳ - Bài Học - Kiểm Tra
Vai trò Curriculum Development (CD), CD Runner
Mô tả Chức năng cho phép quản lý các học kỳ trong hệ thống, bao gồm thêm mới học kỳ, chỉnh sửa thông tin học kỳ, quản lý bài học và kiểm tra trong học kỳ. Học Kỳ có 3 tab: Thông tin (thêm mới và chỉnh sửa thông tin học kỳ), Bài học (thêm mới bài học, chi tiết bài học liên kết với menu Quy Trình), Kiểm tra (thêm mới bài kiểm tra, chi tiết kiểm tra liên kết với menu Quy Trình). Role Curriculum Development và CD Runner đều có quyền tạo, chỉnh sửa, thêm bài học/kiểm tra trong học kỳ, cả hai vai trò có chức năng giống nhau. Đối với role Admin và Support, khi tạo lớp học mới, chọn học kỳ sẽ lấy danh sách học kỳ từ đây, đồng bộ bài học và kiểm tra theo.
Giao diện liên quan - Trang Quản lý Học Kỳ: Hiển thị 3 tab - Thông tin, Bài học, Kiểm tra.
- Tab Thông tin: Ô input "Thêm kỳ mới" với nút + để thêm học kỳ mới; Danh sách học kỳ với ID (auto generate), Tên học kỳ (input), Mô tả học kỳ (input), Mã học kỳ (input), Code (input), Trình độ (input), Tiền tố (input), Hậu tố (input), Data Token (display), Download Token (display), Type (input), Data Version (input), Zip File (switch bật/tắt).
- Tab Bài học: Ô input "Thêm bài học mới" với nút + để thêm bài học; Danh sách bài học với tên (input), chi tiết liên kết đến menu Quy Trình - Bài học (chọn kỳ, chọn bài học, chỉnh sửa ở tab Thông tin: Tiêu đề, Mô tả, Kỹ năng).
- Tab Kiểm tra: Ô input "Thêm bài kiểm tra" với nút + để thêm kiểm tra; Danh sách kiểm tra với tên (input), Thời gian (default 0), Độ khó (default 0); Chi tiết liên kết đến menu Quy Trình - Kiểm Tra (chọn kỳ, chọn bài kiểm tra, chỉnh ở tab Thông tin: Độ khó, Mô tả, Thời gian; tab Bộ câu hỏi để tạo câu hỏi).
Luồng thao tác chính Đối với Curriculum Development và CD Runner:
1. Truy cập Quản lý Học Kỳ.
2. Tab Thông tin:
- Thêm học kỳ mới: Nhập tên vào "Thêm kỳ mới" rồi nhấn + → Tạo học kỳ với ID auto, Số bài học auto (0 ban đầu), trạng thái mặc định.
- Chọn học kỳ → Chỉnh sửa Tên học kỳ, Mô tả, Mã học kỳ, Code, Trình độ, Tiền tố, Hậu tố, Type, Data Version, bật/tắt Zip File → Lưu.
3. Tab Bài học:
- Thêm bài học mới: Nhập tên vào "Thêm bài học mới" rồi nhấn + → Thêm vào danh sách học kỳ hiện chọn.
- Để chỉnh chi tiết: Vào menu Quy Trình → Bài học -> Chọn kỳ → Chọn bài học → Tab Thông tin: Chỉnh Tiêu đề, Mô tả, Kỹ năng → Lưu.
4. Tab Kiểm tra:
- Thêm bài kiểm tra mới: Nhập tên vào "Thêm bài kiểm tra" rồi nhấn + → Thêm vào danh sách với Thời gian/Độ khó default 0.
- Để chỉnh chi tiết: Vào menu Quy Trình → Kiểm Tra → Chọn kỳ → Chọn bài kiểm tra → Tab Thông tin: Chỉnh Độ khó, Mô tả, Thời gian → Tab Bộ câu hỏi: Tạo câu hỏi cho kiểm tra → Lưu.
Đối với Admin/Support:
1. Khi tạo lớp học mới: Chọn học kỳ từ danh sách (lấy từ học kỳ do CD/CD Runner tạo) → Đồng bộ bài học và kiểm tra theo học kỳ chọn.
Điều kiện - Cả Curriculum Development và CD Runner đều được phân quyền tạo/chỉnh sửa học kỳ, thêm bài học/kiểm tra, cả hai vai trò giống nhau.
- Tên học kỳ phải duy nhất.
- ID và Số bài học auto generate (Số bài học dựa trên số bài học thêm vào).
- Bài học/kiểm tra chỉ thêm vào học kỳ đang chọn.
- Chi tiết bài học/kiểm tra chỉnh ở menu Quy Trình riêng.
- Admin/Support chỉ chọn học kỳ khi tạo lớp, không chỉnh sửa học kỳ.
- Đồng bộ: Bài học/kiểm tra trong học kỳ được copy sang lớp học mới.
Kết quả hiển thị - Tab Thông tin: Danh sách học kỳ với ID (50001), Tên học kỳ (Kỳ I), Mã học kỳ (1), Code (2023.09), Trình độ (N5), Tiền tố/Hậu tố (Nhập), Data Token/Download Token (auto), Type (general), Data Version (1), Zip File (on/off).
- Tab Bài học: Danh sách bài học với tên (Bài 8: ĐỘNG TỪ DI CHUYỂN), liên kết chỉnh chi tiết.
- Tab Kiểm tra: Danh sách kiểm tra với tên (Kiểm tra đầu giờ buổi 4), Thời gian (12h), Độ khó (1), liên kết chỉnh chi tiết.
- Sau thêm mới: Học kỳ/bài học/kiểm tra xuất hiện trong danh sách, Số bài học cập nhật.
- Thông báo thành công: "Học kỳ/Bài học/Bài kiểm tra đã được thêm/chỉnh sửa."
Trường hợp không có dữ liệu - Nếu chưa có học kỳ: Hiển thị "Chưa có học kỳ" với ô "Thêm kỳ mới".
- Nếu thiếu tên khi thêm: Không tạo, lỗi "Vui lòng nhập tên."
- Nếu không chọn học kỳ ở tab Bài học/Kiểm tra: Không thêm được bài học/kiểm tra.
- Nếu Admin/Support không có học kỳ: Danh sách chọn học kỳ rỗng khi tạo lớp.

10.4 Quản lý lộ trình (S2)

Quản lý lộ trình (S2)
Trường Nội dung
Tên chức năng Quản lý lộ trình (S2)
Vai trò Curriculum Development (CD), CD Runner
Mô tả Chức năng cho phép quản lý lộ trình học (Step 2 - S2), với mục đích lên plan để phân chia thời gian nội dung các buổi học đáp ứng thời gian thực tế của buổi học. Hiển thị danh sách tất cả các buổi học từ tất cả các kỳ, cho phép chỉnh sửa kỳ của buổi học qua popup, thời gian buổi học, và thời gian chi tiết cho các nội dung như Ngữ Pháp, Kanji, Luyện Nghe, Ôn Tập 1, Ôn Tập 2. Thời gian nội dung được nhập thủ công và tính tổng so với thời gian thực tế từ Tổng quan (S1), ví dụ 20/1200 nếu tổng thời gian thực tế là 1200 phút. Role Curriculum Development và CD Runner đều có quyền chỉnh sửa lộ trình, cả hai vai trò có chức năng giống nhau.
Giao diện liên quan - Trang chi tiết khóa học: Tab Quy trình → Lộ trình (S2).
- Bảng tổng quan: Hiển thị Số buổi (80), Thời gian mỗi buổi (90), Tổng thời gian (7200), Thời gian thực tế (4450), Thời gian còn lại (2750).
- Bảng lộ trình: Cột STT, Tên (buổi học), Kỳ (click để mở popup chọn kỳ), Thời gian (input chỉnh thời gian buổi học), Ngữ Pháp (input thời gian, ví dụ 20/1200), Kanji (input), Luyện Nghe (input), Ôn Tập 1 (input), Ôn Tập 2 (input), ... với tổng thời gian nội dung tính % so với thời gian thực tế từ S1.
Luồng thao tác chính Đối với Curriculum Development và CD Runner:
1. Truy cập chi tiết khóa học → Tab Quy trình → Lộ trình (S2).
2. Hiển thị bảng lộ trình với tất cả buổi học từ tất cả kỳ (STT, Tên như "BÀI 8: ĐỘNG TỪ DI CHUYỂN", Kỳ, Thời gian default 00:00:00, các cột nội dung như Ngữ Pháp, Kanji,... với input thời gian).
3. Để chỉnh kỳ buổi học: Click vào cột Kỳ của buổi học bất kỳ → Mở popup chọn kỳ → Chọn kỳ mới → Lưu để cập nhật.
4. Để chỉnh thời gian buổi học: Nhập giá trị mới vào cột Thời gian (ví dụ 00:30:00) → Lưu để cập nhật.
5. Để chỉnh thời gian nội dung: Nhập thời gian vào cột tương ứng (ví dụ Ngữ Pháp 20 phút) → Hệ thống tính tổng thời gian nội dung và hiển thị dạng "20/1200" (1200 từ thời gian thực tế S1), cập nhật % (tổng % tất cả nội dung so với thời gian thực tế).
6. Các tổng hợp ở đầu bảng (Số buổi, Thời gian mỗi buổi,...) lấy từ S1, thời gian còn lại = Tổng thời gian - Thời gian thực tế.
Điều kiện - Cả Curriculum Development và CD Runner đều được phân quyền chỉnh sửa kỳ, thời gian buổi học, thời gian nội dung, cả hai vai trò giống nhau.
- Danh sách buổi học lấy từ tất cả kỳ của khóa học.
- Thời gian nội dung phải là số dương, định dạng HH:MM:SS.
- Tổng thời gian nội dung buổi học = Sum thời gian các cột nội dung (Ngữ Pháp + Kanji + ...).
- Hiển thị thời gian nội dung dạng "thời gian nhập/tổng thời gian thực tế từ S1".
- % = (Tổng thời gian nội dung / Thời gian thực tế từ S1) * 100.
- Không cho thời gian nội dung vượt quá thời gian buổi học.
- Popup chọn kỳ: Chỉ chọn chọn kỳ tồn tại trong khóa học.
Kết quả hiển thị - Bảng tổng quan: Số buổi (80), Thời gian mỗi buổi (90), Tổng thời gian (7200), Thời gian thực tế (4450), Thời gian còn lại (2750).
- Bảng lộ trình: STT (1), Tên (BÀI 8: ĐỘNG TỪ DI CHUYỂN), Kỳ (Khóa Học N5), Thời gian (00:30:00), Ngữ Pháp (20/1200), Kanji (0), Luyện Nghe (0), Ôn Tập 1 (10), Ôn Tập 2 (0), ... với % tính toán.
- Sau chỉnh sửa: Thời gian và % cập nhật thời gian thực, tổng thời gian nội dung khớp với thời gian buổi học.
Trường hợp không có dữ liệu - Nếu chưa có buổi học: Hiển thị bảng rỗng, tổng thời gian = 0.
- Nếu thời gian nhập âm hoặc không hợp lệ: Không lưu, lỗi "Thời gian phải là số dương định dạng HH:MM:SS."
- Nếu tổng thời gian nội dung > thời gian buổi học: Lỗi "Tổng thời gian nội dung không được vượt quá thời gian buổi học."
- Nếu không có kỳ: Popup chọn kỳ rỗng, không chọn được.

11. Quản lý chất lượng chuyên viên soạn giáo trình

11.1 Quản lí tiến độ

Quản lý tiến độ
Trường dữ liệu Nội dung
Tên chức năng Quản lý tiến độ
Vai trò CD, CD Runner
Mô tả Cho phép quản lý và theo dõi tiến độ phát triển giáo trình, bao gồm nhập tiêu đề tiến độ, mô tả, và các nội dung liên quan. Role CD Runner chỉ có quyền xem (read only), trong khi role CD có 4 chức năng: edit (chỉ sửa/tạo nội dung), operate (thao tác ẩn/hiện nội dung), answer (nhập vào ô trả lời được phép), view (xem). Tiến độ bao gồm các loại nội dung: "Hướng dẫn" (mô tả và tệp đính kèm), "Kiểm tra" (mô tả và ô tick), "Tiến độ" (mô tả và thanh progress), "Nhiệm vụ" (mô tả và tệp đính kèm), "Deadline" (mô tả, deadline, thời gian hoàn thành), "Xác thực" (mô tả, thời gian xác thực, người gán, ô tick). CD có quyền upload file cho "Hướng dẫn" và "Nhiệm vụ", set deadline, và đánh giá (tick, progress). Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu.
Giao diện liên quan - Trang quản lý tiến độ trên web (truy cập từ tab "Quản lý" - "Quản lý tiến độ" trong khóa học cụ thể), hiển thị danh sách tiến độ với cấu trúc phân cấp (Tiến độ > Nội dung), các trường: Tiêu đề tiến độ, Mô tả, Loại nội dung (Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực với badge cam: Chưa đạt deadline, check xanh cho tick), Nút hành động (Chỉnh sửa, Ẩn/Hiện, Xóa - chỉ cho CD), Upload file (thông báo đỏ nếu chưa thêm, chỉ hiển thị cho "Hướng dẫn" và "Nhiệm vụ"), Deadline/thời gian (date picker), Ô tick (cho Kiểm tra/Xác thực), Thanh progress (cho Tiến độ), Ghi chú (textarea cho CD).
- Popup "Thêm tiến độ mới" (chỉ cho CD): Nhập tiêu đề, mô tả, chọn loại nội dung, upload file (nếu "Hướng dẫn" hoặc "Nhiệm vụ"), set deadline/thời gian, ô tick (cho Kiểm tra/Xác thực), thanh progress (cho Tiến độ), nút "Hủy bỏ"/"Thêm".
- Đối với CD Runner: Chỉ hiển thị danh sách tiến độ, xem chỉ đọc (ẩn tất cả nút hành động).
Luồng thao tác chính 1. Người dùng (CD/CD Runner) truy cập tab "Quản lý" trong một khóa học cụ thể, chọn tab "Quản lý tiến độ".
2. Hệ thống hiển thị danh sách tiến độ với tiêu đề, mô tả, loại nội dung, và trạng thái (chỉ CD thấy nút hành động).
3. Đối với CD:
- Để tạo mới: Nhấn "Thêm tiến độ mới" → nhập tiêu đề, mô tả, chọn loại nội dung (Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực), upload file (nếu "Hướng dẫn" hoặc "Nhiệm vụ"), set deadline/thời gian, tick ô (cho Kiểm tra/Xác thực), kéo thanh progress (cho Tiến độ) → nhấn "Thêm".
- Để edit: Chọn tiến độ → sửa tiêu đề, mô tả, upload file, set deadline/thời gian → Lưu.
- Để operate: Chọn tiến độ → ẩn/hiện nội dung → Lưu.
- Để answer: Nhập vào ô trả lời được phép (ví dụ: ghi chú, mô tả bổ sung) → Lưu.
- Để xóa: Chọn tiến độ → xác nhận xóa.
4. Đối với CD Runner: Chỉ xem danh sách tiến độ, không có quyền thao tác (ẩn tất cả nút).
5. Hệ thống tự động kiểm tra deadline và hiển thị badge cam nếu quá hạn.
Điều kiện - Người dùng phải được phân quyền: CD Runner chỉ view; CD có edit (chỉ sửa/tạo), operate (ẩn/hiện), answer (nhập ô trả lời), view.
- Tiến độ phải liên kết với khóa học cụ thể.
- Bắt buộc: Tiêu đề tiến độ, loại nội dung; file upload chỉ bắt buộc cho "Hướng dẫn" và "Nhiệm vụ" (nếu thiếu: cảnh báo đỏ); deadline/tick/progress tùy loại khác (nếu thiếu: cảnh báo cam).
- Loại nội dung: Hỗ trợ "Hướng dẫn" (mô tả + file), "Kiểm tra" (mô tả + ô tick), "Tiến độ" (mô tả + thanh %), "Nhiệm vụ" (mô tả + file), "Deadline" (mô tả + thời gian), "Xác thực" (mô tả + thời gian + ô tick).
- File upload: Chỉ cho "Hướng dẫn" và "Nhiệm vụ"; định dạng PDF, DOC, hình ảnh; kích thước <10MB.
- Deadline/thời gian: YYYY-MM-DD HH:MM, tự động kiểm tra quá hạn.
- Ghi chú: Chỉ CD chỉnh sửa, hiển thị cho tất cả nội dung.
Kết quả hiển thị - Danh sách tiến độ: Tiêu đề (ví dụ: "tiến độ 1"), Mô tả, Loại nội dung (ví dụ: Kiểm tra với ô tick, Tiến độ với thanh %), Badge (cam cho chưa đạt deadline, xanh cho tick), Nút hành động (Chỉnh sửa, Ẩn/Hiện, Xóa - chỉ cho CD).
- Sau thêm/chỉnh sửa: Tiến độ mới/xuất hiện trong danh sách, trạng thái cập nhật.
- Cảnh báo: Đỏ "Thêm file..." (chỉ cho "Hướng dẫn"/"Nhiệm vụ" nếu thiếu); cam "Chưa đạt deadline".
- Đối với CD Runner: Hiển thị danh sách chỉ đọc, không có nút hành động.
Trường hợp không có dữ liệu - Nếu chưa có tiến độ: "Chưa có tiến độ nào" với nút "Thêm mới" (chỉ hiển thị cho CD).
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa chọn thời gian", "Chưa upload file" - chỉ cho "Hướng dẫn"/"Nhiệm vụ").
- Nếu không quyền (CD Runner): Ẩn tất cả nút hành động.
- Nếu xóa không thành: Thông báo "Không thể xóa tiến độ đang xử lý".

11.2 Quản lý log cập nhật

Quản lý log cập nhật
Trường dữ liệu Nội dung
Tên chức năng Quản lý log cập nhật
Vai trò CD, CD Runner
Mô tả Cho phép quản lý và theo dõi log cập nhật liên quan đến các thay đổi trong giáo trình hoặc hệ thống, bao gồm nhập tiêu đề log, mô tả, và các nội dung liên quan. Role CD Runner chỉ có quyền xem (read only), trong khi role CD có 2 chức năng: edit (chỉ sửa/tạo nội dung), operate (thao tác ẩn/hiện nội dung). Log bao gồm các loại nội dung: "Hướng dẫn" (mô tả và tệp đính kèm), "Kiểm tra" (mô tả và ô tick), "Tiến độ" (mô tả và thanh progress), "Nhiệm vụ" (mô tả và tệp đính kèm), "Deadline" (mô tả, deadline, thời gian hoàn thành), "Xác thực" (mô tả, thời gian xác thực, người gán, ô tick). CD có quyền upload file cho "Hướng dẫn" và "Nhiệm vụ", set deadline, và đánh giá (tick, progress). Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu.
Giao diện liên quan - Trang quản lý log cập nhật trên web (truy cập từ tab "Quản lý" - "Quản lý log cập nhật" trong khóa học cụ thể), hiển thị danh sách log với cấu trúc phân cấp (Log > Nội dung), các trường: Tiêu đề log, Mô tả, Loại nội dung (Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực với badge cam: Chưa đạt deadline, check xanh cho tick), Nút hành động (Chỉnh sửa, Ẩn/Hiện, Xóa - chỉ cho CD), Upload file (thông báo đỏ nếu chưa thêm, chỉ hiển thị cho "Hướng dẫn" và "Nhiệm vụ"), Deadline/thời gian (date picker), Ô tick (cho Kiểm tra/Xác thực), Thanh progress (cho Tiến độ), Ghi chú (textarea cho CD).
- Popup "Thêm log mới" (chỉ cho CD): Nhập tiêu đề, mô tả, chọn loại nội dung, upload file (nếu "Hướng dẫn" hoặc "Nhiệm vụ"), set deadline/thời gian, tick ô (cho Kiểm tra/Xác thực), thanh progress (cho Tiến độ), nút "Hủy bỏ"/"Thêm".
- Đối với CD Runner: Chỉ hiển thị danh sách log, xem chỉ đọc (ẩn tất cả nút hành động).
Luồng thao tác chính 1. Người dùng (CD/CD Runner) truy cập tab "Quản lý" trong một khóa học cụ thể, chọn tab "Quản lý log cập nhật".
2. Hệ thống hiển thị danh sách log với tiêu đề, mô tả, loại nội dung, và trạng thái (chỉ CD thấy nút hành động).
3. Đối với CD:
- Để tạo mới: Nhấn "Thêm log mới" → nhập tiêu đề, mô tả, chọn loại nội dung (Hướng dẫn, Kiểm tra, Tiến độ, Nhiệm vụ, Deadline, Xác thực), upload file (nếu "Hướng dẫn" hoặc "Nhiệm vụ"), set deadline/thời gian, tick ô (cho Kiểm tra/Xác thực), kéo thanh progress (cho Tiến độ) → nhấn "Thêm".
- Để edit: Chọn log → sửa tiêu đề, mô tả, upload file, set deadline/thời gian → Lưu.
- Để operate: Chọn log → ẩn/hiện nội dung → Lưu.
- Để xóa: Chọn log → xác nhận xóa.
4. Đối với CD Runner: Chỉ xem danh sách log, không có quyền thao tác (ẩn tất cả nút).
5. Hệ thống tự động kiểm tra deadline và hiển thị badge cam nếu quá hạn.
Điều kiện - Người dùng phải được phân quyền: CD Runner chỉ view; CD có edit (chỉ sửa/tạo), operate (ẩn/hiện).
- Log phải liên kết với khóa học cụ thể.
- Bắt buộc: Tiêu đề log, loại nội dung; file upload chỉ bắt buộc cho "Hướng dẫn" và "Nhiệm vụ" (nếu thiếu: cảnh báo đỏ); deadline/tick/progress tùy loại khác (nếu thiếu: cảnh báo cam).
- Loại nội dung: Hỗ trợ "Hướng dẫn" (mô tả + file), "Kiểm tra" (mô tả + ô tick), "Tiến độ" (mô tả + thanh %), "Nhiệm vụ" (mô tả + file), "Deadline" (mô tả + thời gian), "Xác thực" (mô tả + thời gian + ô tick).
- File upload: Chỉ cho "Hướng dẫn" và "Nhiệm vụ"; định dạng PDF, DOC, hình ảnh; kích thước <10MB.
- Deadline/thời gian: YYYY-MM-DD HH:MM, tự động kiểm tra quá hạn.
- Ghi chú: Chỉ CD chỉnh sửa, hiển thị cho tất cả nội dung.
Kết quả hiển thị - Danh sách log: Tiêu đề (ví dụ: "log 1"), Mô tả, Loại nội dung (ví dụ: Kiểm tra với ô tick, Tiến độ với thanh %), Badge (cam cho chưa đạt deadline, xanh cho tick), Nút hành động (Chỉnh sửa, Ẩn/Hiện, Xóa - chỉ cho CD).
- Sau thêm/chỉnh sửa: Log mới/xuất hiện trong danh sách, trạng thái cập nhật.
- Cảnh báo: Đỏ "Thêm file..." (chỉ cho "Hướng dẫn"/"Nhiệm vụ" nếu thiếu); cam "Chưa đạt deadline".
- Đối với CD Runner: Hiển thị danh sách chỉ đọc, không có nút hành động.
Trường hợp không có dữ liệu - Nếu chưa có log: "Chưa có log nào" với nút "Thêm mới" (chỉ hiển thị cho CD).
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa chọn thời gian", "Chưa upload file" - chỉ cho "Hướng dẫn"/"Nhiệm vụ").
- Nếu không quyền (CD Runner): Ẩn tất cả nút hành động.
- Nếu xóa không thành: Thông báo "Không thể xóa log đang xử lý".

11.3 Quản lý Biên bản

Quản lý Biên bản
Trường dữ liệu Nội dung
Tên chức năng Quản lý Biên bản
Vai trò Admin, Support, QC
Mô tả Cho phép quản lý và theo dõi biên bản liên quan đến các hoạt động họp lớp, khảo sát và đánh giá chất lượng, bao gồm nhập tiêu đề biên bản, mô tả, và các nội dung liên quan. Role QC chỉ có quyền xem (read only), trong khi role Support có 2 chức năng: edit (chỉ sửa/tạo nội dung), operate (thao tác ẩn/hiện nội dung). Biên bản bao gồm các loại nội dung: "Họp lớp" (mô tả và tệp đính kèm), "Khảo sát" (mô tả và ô tick), "Đánh giá" (mô tả và thanh progress), "Nhiệm vụ" (mô tả và tệp đính kèm), "Deadline" (mô tả, deadline, thời gian hoàn thành), "Xác thực" (mô tả, thời gian xác thực, người gán, ô tick). Admin và Support có quyền upload file cho "Họp lớp" và "Nhiệm vụ", set deadline, và đánh giá (tick, progress). Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu.
Giao diện liên quan - Trang quản lý biên bản trên web (truy cập từ tab "Quản lý" - "Quản lý biên bản" trong lớp học cụ thể), hiển thị danh sách biên bản với cấu trúc phân cấp (Biên bản > Nội dung), các trường: Tiêu đề biên bản, Mô tả, Loại nội dung (Họp lớp, Khảo sát, Đánh giá, Nhiệm vụ, Deadline, Xác thực với badge cam: Chưa đạt deadline, check xanh cho tick), Nút hành động (Chỉnh sửa, Ẩn/Hiện, Xóa - chỉ cho Support và Admin), Upload file (thông báo đỏ nếu chưa thêm, chỉ hiển thị cho "Họp lớp" và "Nhiệm vụ"), Deadline/thời gian (date picker), Ô tick (cho Khảo sát/Xác thực), Thanh progress (cho Đánh giá), Ghi chú (textarea cho Support và Admin).
- Popup "Thêm biên bản mới" (chỉ cho Support và Admin): Nhập tiêu đề, mô tả, chọn loại nội dung, upload file (nếu "Họp lớp" hoặc "Nhiệm vụ"), set deadline/thời gian, tick ô (cho Khảo sát/Xác thực), thanh progress (cho Đánh giá), nút "Hủy bỏ"/"Thêm".
- Đối với QC: Chỉ hiển thị danh sách biên bản, xem chỉ đọc (ẩn tất cả nút hành động).
Luồng thao tác chính 1. Người dùng (Admin/Support/QC) truy cập tab "Quản lý" trong một lớp học cụ thể, chọn tab "Quản lý biên bản".
2. Hệ thống hiển thị danh sách biên bản với tiêu đề, mô tả, loại nội dung, và trạng thái (chỉ Support và Admin thấy nút hành động).
3. Đối với Support và Admin:
- Để tạo mới: Nhấn "Thêm biên bản mới" → nhập tiêu đề, mô tả, chọn loại nội dung (Họp lớp, Khảo sát, Đánh giá, Nhiệm vụ, Deadline, Xác thực), upload file (nếu "Họp lớp" hoặc "Nhiệm vụ"), set deadline/thời gian, tick ô (cho Khảo sát/Xác thực), kéo thanh progress (cho Đánh giá) → nhấn "Thêm".
- Để edit: Chọn biên bản → sửa tiêu đề, mô tả, upload file, set deadline/thời gian → Lưu.
- Để operate: Chọn biên bản → ẩn/hiện nội dung → Lưu.
- Để xóa: Chọn biên bản → xác nhận xóa.
4. Đối với QC: Chỉ xem danh sách biên bản, không có quyền thao tác (ẩn tất cả nút).
5. Hệ thống tự động kiểm tra deadline và hiển thị badge cam nếu quá hạn.
Điều kiện - Người dùng phải được phân quyền: QC chỉ view; Support có edit (chỉ sửa/tạo), operate (ẩn/hiện); Admin có toàn quyền.
- Biên bản phải liên kết với lớp học cụ thể.
- Bắt buộc: Tiêu đề biên bản, loại nội dung; file upload chỉ bắt buộc cho "Họp lớp" và "Nhiệm vụ" (nếu thiếu: cảnh báo đỏ); deadline/tick/progress tùy loại khác (nếu thiếu: cảnh báo cam).
- Loại nội dung: Hỗ trợ "Họp lớp" (mô tả + file), "Khảo sát" (mô tả + ô tick), "Đánh giá" (mô tả + thanh %), "Nhiệm vụ" (mô tả + file), "Deadline" (mô tả + thời gian), "Xác thực" (mô tả + thời gian + ô tick).
- File upload: Chỉ cho "Họp lớp" và "Nhiệm vụ"; định dạng PDF, DOC, hình ảnh; kích thước <10MB.
- Deadline/thời gian: YYYY-MM-DD HH:MM, tự động kiểm tra quá hạn.
- Ghi chú: Chỉ Support và Admin chỉnh sửa, hiển thị cho tất cả nội dung.
Kết quả hiển thị - Danh sách biên bản: Tiêu đề (ví dụ: "Biên bản họp lớp 1"), Mô tả, Loại nội dung (ví dụ: Khảo sát với ô tick, Đánh giá với thanh %), Badge (cam cho chưa đạt deadline, xanh cho tick), Nút hành động (Chỉnh sửa, Ẩn/Hiện, Xóa - chỉ cho Support và Admin).
- Sau thêm/chỉnh sửa: Biên bản mới/xuất hiện trong danh sách, trạng thái cập nhật.
- Cảnh báo: Đỏ "Thêm file..." (chỉ cho "Họp lớp"/"Nhiệm vụ" nếu thiếu); cam "Chưa đạt deadline".
- Đối với QC: Hiển thị danh sách chỉ đọc, không có nút hành động.
Trường hợp không có dữ liệu - Nếu chưa có biên bản: "Chưa có biên bản nào" với nút "Thêm mới" (chỉ hiển thị cho Support và Admin).
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa chọn thời gian", "Chưa upload file" - chỉ cho "Họp lớp"/"Nhiệm vụ").
- Nếu không quyền (QC): Ẩn tất cả nút hành động.
- Nếu xóa không thành: Thông báo "Không thể xóa biên bản đang xử lý".

11.4 Quản lý Quy trình QC

Quản lý Quy trình QC
Trường dữ liệu Nội dung
Tên chức năng Quản lý Quy trình QC
Vai trò Admin, QC, Support
Mô tả Cho phép quản lý và theo dõi các quy trình kiểm soát chất lượng (QC) liên quan đến đánh giá lớp học, nội dung đào tạo và hoạt động giảng dạy. Role Support chỉ có quyền xem (read only), trong khi role QC có 2 chức năng: edit (chỉ sửa/tạo nội dung), operate (thao tác ẩn/hiện nội dung). Quy trình QC bao gồm các loại nội dung: "Đánh giá lớp" (mô tả và tệp đính kèm), "Kiểm tra nội dung" (mô tả và ô tick), "Tiến độ QC" (mô tả và thanh progress), "Nhiệm vụ QC" (mô tả và tệp đính kèm), "Deadline" (mô tả, deadline, thời gian hoàn thành), "Xác thực QC" (mô tả, thời gian xác thực, người gán, ô tick). Admin và QC có quyền upload file cho "Đánh giá lớp" và "Nhiệm vụ QC", set deadline, và đánh giá (tick, progress). Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu.
Giao diện liên quan - Trang quản lý quy trình QC trên web (truy cập từ tab "Quản lý" - "Quản lý quy trình QC" trong lớp học cụ thể), hiển thị danh sách quy trình QC với cấu trúc phân cấp (Quy trình > Nội dung), các trường: Tiêu đề quy trình, Mô tả, Loại nội dung (Đánh giá lớp, Kiểm tra nội dung, Tiến độ QC, Nhiệm vụ QC, Deadline, Xác thực QC với badge cam: Chưa đạt deadline, check xanh cho tick), Nút hành động (Chỉnh sửa, Ẩn/Hiện, Xóa - chỉ cho QC và Admin), Upload file (thông báo đỏ nếu chưa thêm, chỉ hiển thị cho "Đánh giá lớp" và "Nhiệm vụ QC"), Deadline/thời gian (date picker), Ô tick (cho Kiểm tra nội dung/Xác thực QC), Thanh progress (cho Tiến độ QC), Ghi chú (textarea cho QC và Admin).
- Popup "Thêm quy trình QC mới" (chỉ cho QC và Admin): Nhập tiêu đề, mô tả, chọn loại nội dung, upload file (nếu "Đánh giá lớp" hoặc "Nhiệm vụ QC"), set deadline/thời gian, tick ô (cho Kiểm tra nội dung/Xác thực QC), thanh progress (cho Tiến độ QC), nút "Hủy bỏ"/"Thêm".
- Đối với Support: Chỉ hiển thị danh sách quy trình QC, xem chỉ đọc (ẩn tất cả nút hành động).
Luồng thao tác chính 1. Người dùng (Admin/QC/Support) truy cập tab "Quản lý" trong một lớp học cụ thể, chọn tab "Quản lý quy trình QC".
2. Hệ thống hiển thị danh sách quy trình QC với tiêu đề, mô tả, loại nội dung, và trạng thái (chỉ QC và Admin thấy nút hành động).
3. Đối với QC và Admin:
- Để tạo mới: Nhấn "Thêm quy trình QC mới" → nhập tiêu đề, mô tả, chọn loại nội dung (Đánh giá lớp, Kiểm tra nội dung, Tiến độ QC, Nhiệm vụ QC, Deadline, Xác thực QC), upload file (nếu "Đánh giá lớp" hoặc "Nhiệm vụ QC"), set deadline/thời gian, tick ô (cho Kiểm tra nội dung/Xác thực QC), kéo thanh progress (cho Tiến độ QC) → nhấn "Thêm".
- Để edit: Chọn quy trình → sửa tiêu đề, mô tả, upload file, set deadline/thời gian → Lưu.
- Để operate: Chọn quy trình → ẩn/hiện nội dung → Lưu.
- Để xóa: Chọn quy trình → xác nhận xóa.
4. Đối với Support: Chỉ xem danh sách quy trình QC, không có quyền thao tác (ẩn tất cả nút).
5. Hệ thống tự động kiểm tra deadline và hiển thị badge cam nếu quá hạn.
Điều kiện - Người dùng phải được phân quyền: Support chỉ view; QC có edit (chỉ sửa/tạo), operate (ẩn/hiện); Admin có toàn quyền.
- Quy trình QC phải liên kết với lớp học cụ thể.
- Bắt buộc: Tiêu đề quy trình, loại nội dung; file upload chỉ bắt buộc cho "Đánh giá lớp" và "Nhiệm vụ QC" (nếu thiếu: cảnh báo đỏ); deadline/tick/progress tùy loại khác (nếu thiếu: cảnh báo cam).
- Loại nội dung: Hỗ trợ "Đánh giá lớp" (mô tả + file), "Kiểm tra nội dung" (mô tả + ô tick), "Tiến độ QC" (mô tả + thanh %), "Nhiệm vụ QC" (mô tả + file), "Deadline" (mô tả + thời gian), "Xác thực QC" (mô tả + thời gian + ô tick).
- File upload: Chỉ cho "Đánh giá lớp" và "Nhiệm vụ QC"; định dạng PDF, DOC, hình ảnh; kích thước <10MB.
- Deadline/thời gian: YYYY-MM-DD HH:MM, tự động kiểm tra quá hạn.
- Ghi chú: Chỉ QC và Admin chỉnh sửa, hiển thị cho tất cả nội dung.
Kết quả hiển thị - Danh sách quy trình QC: Tiêu đề (ví dụ: "Quy trình QC lớp 1"), Mô tả, Loại nội dung (ví dụ: Kiểm tra nội dung với ô tick, Tiến độ QC với thanh %), Badge (cam cho chưa đạt deadline, xanh cho tick), Nút hành động (Chỉnh sửa, Ẩn/Hiện, Xóa - chỉ cho QC và Admin).
- Sau thêm/chỉnh sửa: Quy trình mới/xuất hiện trong danh sách, trạng thái cập nhật.
- Cảnh báo: Đỏ "Thêm file..." (chỉ cho "Đánh giá lớp"/"Nhiệm vụ QC" nếu thiếu); cam "Chưa đạt deadline".
- Đối với Support: Hiển thị danh sách chỉ đọc, không có nút hành động.
Trường hợp không có dữ liệu - Nếu chưa có quy trình QC: "Chưa có quy trình QC nào" với nút "Thêm mới" (chỉ hiển thị cho QC và Admin).
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa chọn thời gian", "Chưa upload file" - chỉ cho "Đánh giá lớp"/"Nhiệm vụ QC").
- Nếu không quyền (Support): Ẩn tất cả nút hành động.
- Nếu xóa không thành: Thông báo "Không thể xóa quy trình QC đang xử lý".

12. Quản lý thư viện kiến thức

12.1 Quản lý từ vựng

Quản lý Từ vựng
Trường dữ liệu Nội dung
Tên chức năng Quản lý Từ vựng
Vai trò CD, CD Runner
Mô tả Cho phép quản lý và theo dõi từ vựng trong thư viện kiến thức, bao gồm nhập từ vựng mới, chỉnh sửa, xuất/nhập file JSON, hiển thị danh sách từ vựng với các trường như Từ, Loại, Phát âm, Nghĩa, Trạng thái (OK: từ được sử dụng, Chưa duyệt: từ chưa được sử dụng). Cả CD và CD Runner đều có quyền thực hiện các chức năng như chỉnh sửa, xóa, xuất file JSON, tìm kiếm và lọc theo các tiêu chí. Hỗ trợ hiển thị và thao tác từ vựng giống hệt như trên app (cho người soạn giáo trình tránh sai data, có thể thao tác như đang dùng app, bao gồm xem chi tiết từ vựng, nghe âm thanh, xem hình minh họa). Chức năng tìm kiếm (search) từ vựng, lọc (filter) theo học kỳ, cấp độ, hôm nay, tuần này, tháng này. Hỗ trợ tạo mới từ vựng với các trường: Từ, Nghĩa, Loại, Phát âm, Ví dụ, Nghĩa của ví dụ, Furigana, Học kỳ, Cấp độ, Hình minh họa, Cách đọc (upload file âm thanh). Cho phép thêm từ vựng từ file JSON và xuất toàn bộ từ vựng ra file JSON. Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu.
Giao diện liên quan - Trang quản lý từ vựng trên web (truy cập từ tab "Thư Viện Kiến thức" - "Từ Vựng" trong khóa học cụ thể), hiển thị danh sách từ vựng với cấu trúc phân cấp (Từ vựng > Nội dung), các trường: Từ, Loại (ví dụ: Danh từ, Động từ), Phát âm, Nghĩa, Trạng thái (OK với check xanh, Chưa duyệt với badge cam), Nút hành động (Chỉnh sửa, Xóa), Upload file âm thanh (thông báo đỏ nếu chưa thêm, chỉ hiển thị cho Cách đọc), Hình minh họa (upload hình ảnh), Furigana, Học kỳ, Cấp độ, Ví dụ, Nghĩa của ví dụ, Ghi chú (textarea).
- Popup "Thêm từ vựng mới": Nhập Từ, Nghĩa, chọn Loại, Phát âm, Ví dụ, Nghĩa của ví dụ, Furigana, Học kỳ, Cấp độ, upload Hình minh họa, upload file âm thanh (Cách đọc), nút "Hủy bỏ"/"Thêm", hoặc chọn "Thêm từ file JSON" để upload file.
- Nút "Xuất file JSON" để xuất toàn bộ từ vựng.
- Ô search "Tìm kiếm từ vựng...", Filter dropdown (Học kỳ, Cấp độ, Hôm nay, Tuần này, Tháng này).
- Mục hiển thị và thao tác giống app: Giao diện chi tiết từ vựng (hiển thị Từ, Furigana, Nghĩa, Ví dụ, Hình minh họa, Cách đọc với nút phát âm thanh) trong chế độ preview.
Luồng thao tác chính 1. Người dùng (CD/CD Runner) truy cập tab "Thư Viện Kiến thức" trong một khóa học cụ thể, chọn tab "Từ Vựng".
2. Hệ thống hiển thị danh sách từ vựng với Từ, Loại, Phát âm, Nghĩa, Trạng thái, và mục preview với thao tác giống app.
3. Các thao tác:
- Chọn từ vựng → chỉnh sửa các trường, upload file âm thanh/hình ảnh → Lưu.
- Chọn từ vựng → xác nhận xóa.
- Nhấn "Xuất file JSON" → tải file chứa tất cả từ vựng.
- Nhập từ khóa vào ô search hoặc chọn filter (Học kỳ, Cấp độ, Hôm nay, Tuần này, Tháng này) → danh sách cập nhật.
- Chọn từ vựng → thao tác giống app (xem chi tiết từ vựng, nghe âm thanh, xem hình minh họa).
- Nhấn "Thêm từ vựng mới" → nhập Từ, Nghĩa, chọn Loại, Phát âm, Ví dụ, Nghĩa của ví dụ, Furigana, Học kỳ, Cấp độ, upload Hình minh họa, upload file âm thanh (Cách đọc) → nhấn "Thêm". Hoặc chọn "Thêm từ file JSON" → upload file JSON → hệ thống import và hiển thị.
4. Hệ thống tự động kiểm tra trạng thái và cảnh báo nếu thiếu trường bắt buộc.
Điều kiện - Người dùng phải được phân quyền: Cả CD và CD Runner đều có quyền edit và operate.
- Từ vựng phải liên kết với khóa học cụ thể.
- Bắt buộc: Từ, Nghĩa, Loại; file upload chỉ bắt buộc cho Cách đọc (âm thanh) và Hình minh họa (nếu thiếu: cảnh báo đỏ); Học kỳ/Cấp độ/Furigana/Ví dụ tùy chọn (nếu thiếu: cảnh báo cam).
- File upload: Âm thanh (Cách đọc): định dạng MP3, WAV; kích thước <5MB. Hình minh họa: JPG, PNG; kích thước <2MB.
- File JSON: Hỗ trợ import/export với cấu trúc {từ: {nghĩa: "", loại: "", phát âm: "", ...}}.
- Filter: Hôm nay (ngày hiện tại), Tuần này (7 ngày gần nhất), Tháng này (tháng hiện tại).
- Preview giống app: Hiển thị giao diện chi tiết từ vựng (Từ, Furigana, Nghĩa, Ví dụ, Hình minh họa, Âm thanh) với thao tác nghe âm thanh và xem hình.
- Ghi chú: Có thể chỉnh sửa, hiển thị cho tất cả từ vựng.
Kết quả hiển thị - Danh sách từ vựng: Từ (ví dụ: "家族"), Loại (Danh từ), Phát âm, Nghĩa, Trạng thái (OK với check xanh, Chưa duyệt với badge cam), Badge filter (Học kỳ: N5, Cấp độ: Beginner), Nút hành động (Chỉnh sửa, Xóa).
- Sau thêm/chỉnh sửa: Từ vựng mới/xuất hiện trong danh sách, trạng thái cập nhật (mặc định Chưa duyệt, operate để OK).
- Cảnh báo: Đỏ "Upload file âm thanh..." (nếu thiếu Cách đọc); cam "Chưa chọn Học kỳ".
- Preview giống app: Giao diện chi tiết từ vựng (hiển thị Từ, Furigana, Nghĩa, Ví dụ, Hình minh họa, nút phát âm thanh).
- Xuất JSON: File tải về chứa tất cả từ vựng.
Trường hợp không có dữ liệu - Nếu chưa có từ vựng: "Chưa có từ vựng nào" với nút "Thêm mới".
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa upload file âm thanh", "Chưa nhập Nghĩa").
- Nếu filter không có kết quả: "Không tìm thấy từ vựng phù hợp".
- Nếu xóa không thành: Thông báo "Không thể xóa từ vựng đang sử dụng".

12.2 Quản lý ngữ pháp

Quản lý Ngữ pháp
Trường dữ liệu Nội dung
Tên chức năng Quản lý Ngữ pháp
Vai trò CD, CD Runner
Mô tả Cho phép quản lý và theo dõi ngữ pháp trong thư viện kiến thức, bao gồm nhập ngữ pháp mới, chỉnh sửa, xuất/nhập file JSON, hiển thị danh sách ngữ pháp với các trường như Tên, Nghĩa, Cấu trúc, Sử dụng, Trạng thái (OK: ngữ pháp được sử dụng, Chưa duyệt: ngữ pháp chưa được sử dụng). Cả CD và CD Runner đều có quyền thực hiện các chức năng như chỉnh sửa, xóa, xuất file JSON, tìm kiếm và lọc theo các tiêu chí. Hỗ trợ hiển thị và thao tác ngữ pháp giống hệt như trên app (cho người soạn giáo trình tránh sai data, có thể thao tác như đang dùng app, bao gồm xem chi tiết ngữ pháp, xem video minh họa). Chức năng tìm kiếm (search) ngữ pháp, lọc (filter) theo học kỳ, cấp độ, hôm nay, tuần này, tuần trước. Hỗ trợ tạo mới ngữ pháp với các trường: Tên, Nghĩa, Cấu trúc, Sử dụng, Ví dụ, Nghĩa của ví dụ, Video, Ghi chú, Học kỳ, Cấp độ. Cho phép thêm ngữ pháp từ file JSON và xuất toàn bộ ngữ pháp ra file JSON. Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu.
Giao diện liên quan - Trang quản lý ngữ pháp trên web (truy cập từ tab "Thư Viện Kiến thức" - "Ngữ Pháp" trong khóa học cụ thể), hiển thị danh sách ngữ pháp với cấu trúc phân cấp (Ngữ pháp > Nội dung), các trường: Tên, Nghĩa, Cấu trúc, Sử dụng, Trạng thái (OK với check xanh, Chưa duyệt với badge cam), Nút hành động (Chỉnh sửa, Xóa), Upload video (thông báo đỏ nếu chưa thêm), Học kỳ, Cấp độ, Ví dụ, Nghĩa của ví dụ, Ghi chú (textarea).
- Popup "Thêm ngữ pháp mới": Nhập Tên, Nghĩa, Cấu trúc, Sử dụng, Ví dụ, Nghĩa của ví dụ, Ghi chú, Học kỳ, Cấp độ, upload Video, nút "Hủy bỏ"/"Thêm", hoặc chọn "Thêm từ file JSON" để upload file.
- Nút "Xuất file JSON" để xuất toàn bộ ngữ pháp.
- Ô search "Tìm kiếm ngữ pháp...", Filter dropdown (Học kỳ, Cấp độ, Hôm nay, Tuần này, Tuần trước).
- Mục hiển thị và thao tác giống app: Giao diện chi tiết ngữ pháp (hiển thị Tên, Nghĩa, Cấu trúc, Sử dụng, Ví dụ, Video với nút phát) trong chế độ preview.
Luồng thao tác chính 1. Người dùng (CD/CD Runner) truy cập tab "Thư Viện Kiến thức" trong một khóa học cụ thể, chọn tab "Ngữ Pháp".
2. Hệ thống hiển thị danh sách ngữ pháp với Tên, Nghĩa, Cấu trúc, Sử dụng, Trạng thái, và mục preview với thao tác giống app.
3. Các thao tác:
- Chọn ngữ pháp → chỉnh sửa các trường, upload video → Lưu.
- Chọn ngữ pháp → xác nhận xóa.
- Nhấn "Xuất file JSON" → tải file chứa tất cả ngữ pháp.
- Nhập từ khóa vào ô search hoặc chọn filter (Học kỳ, Cấp độ, Hôm nay, Tuần này, Tuần trước) → danh sách cập nhật.
- Chọn ngữ pháp → thao tác giống app (xem chi tiết ngữ pháp, xem video).
- Nhấn "Thêm ngữ pháp mới" → nhập Tên, Nghĩa, Cấu trúc, Sử dụng, Ví dụ, Nghĩa của ví dụ, Ghi chú, Học kỳ, Cấp độ, upload Video → nhấn "Thêm". Hoặc chọn "Thêm từ file JSON" → upload file JSON → hệ thống import và hiển thị.
4. Hệ thống tự động kiểm tra trạng thái và cảnh báo nếu thiếu trường bắt buộc.
Điều kiện - Người dùng phải được phân quyền: Cả CD và CD Runner đều có quyền edit và operate.
- Ngữ pháp phải liên kết với khóa học cụ thể.
- Bắt buộc: Tên, Nghĩa, Cấu trúc; file upload chỉ bắt buộc cho Video (nếu thiếu: cảnh báo đỏ); Sử dụng/Ví dụ/Nghĩa của ví dụ/Ghi chú/Học kỳ/Cấp độ tùy chọn (nếu thiếu: cảnh báo cam).
- File upload: Video: định dạng MP4, AVI; kích thước <50MB.
- File JSON: Hỗ trợ import/export với cấu trúc {ngữ pháp: {nghĩa: "", cấu trúc: "", sử dụng: "", ...}}.
- Filter: Hôm nay (ngày hiện tại), Tuần này (7 ngày gần nhất), Tuần trước (7 ngày trước tuần hiện tại).
- Preview giống app: Hiển thị giao diện chi tiết ngữ pháp (Tên, Nghĩa, Cấu trúc, Sử dụng, Ví dụ, Video) với thao tác xem video.
- Ghi chú: Có thể chỉnh sửa, hiển thị cho tất cả ngữ pháp.
Kết quả hiển thị - Danh sách ngữ pháp: Tên (ví dụ: "です"), Nghĩa, Cấu trúc, Sử dụng, Trạng thái (OK với check xanh, Chưa duyệt với badge cam), Badge filter (Học kỳ: N5, Cấp độ: Beginner), Nút hành động (Chỉnh sửa, Xóa).
- Sau thêm/chỉnh sửa: Ngữ pháp mới/xuất hiện trong danh sách, trạng thái cập nhật (mặc định Chưa duyệt, operate để OK).
- Cảnh báo: Đỏ "Upload video..." (nếu thiếu Video); cam "Chưa chọn Học kỳ".
- Preview giống app: Giao diện chi tiết ngữ pháp (hiển thị Tên, Nghĩa, Cấu trúc, Sử dụng, Ví dụ, Video với nút phát).
- Xuất JSON: File tải về chứa tất cả ngữ pháp.
Trường hợp không có dữ liệu - Nếu chưa có ngữ pháp: "Chưa có ngữ pháp nào" với nút "Thêm mới".
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa upload video", "Chưa nhập Nghĩa").
- Nếu filter không có kết quả: "Không tìm thấy ngữ pháp phù hợp".
- Nếu xóa không thành: Thông báo "Không thể xóa ngữ pháp đang sử dụng".

12.3 Quản lý Kanji

Quản lý Kanji
Trường dữ liệu Nội dung
Tên chức năng Quản lý Kanji
Vai trò CD, CD Runner
Mô tả Cho phép quản lý và theo dõi Kanji trong thư viện kiến thức, bao gồm nhập Kanji mới, chỉnh sửa, xuất/nhập file JSON, hiển thị danh sách Kanji với các trường như Kanji, Nghĩa, Âm kun, Âm on, Radical, Trạng thái (OK: Kanji được sử dụng, Chưa duyệt: Kanji chưa được sử dụng). Cả CD và CD Runner đều có quyền thực hiện các chức năng như chỉnh sửa, xóa, xuất file JSON, tìm kiếm và lọc theo các tiêu chí. Hỗ trợ hiển thị và thao tác Kanji giống hệt như trên app (cho người soạn giáo trình tránh sai data, có thể thao tác như đang dùng app, bao gồm xem chi tiết Kanji, nghe âm thanh, xem ảnh minh họa, nét vẽ). Chức năng tìm kiếm (search) Kanji, lọc (filter) theo học kỳ, cấp độ, hôm nay, tuần này, tháng này. Hỗ trợ tạo mới Kanji với các trường: Kanji, Nghĩa, Âm kun, Âm on, Radical, Thành phần cấu thành, Cách ghi nhớ, Giải thích, Từ khóa tìm kiếm, Nét vẽ kanji, Học kỳ, Cấp độ, Cách ghi nhớ (upload ảnh minh họa), Cách đọc (upload file âm thanh), Chọn từ vựng (từ quản lý từ vựng để liên kết với Kanji). Cho phép thêm Kanji từ file JSON và xuất toàn bộ Kanji ra file JSON. Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu.
Giao diện liên quan - Trang quản lý Kanji trên web (truy cập từ tab "Thư Viện Kiến thức" - "Kanji" trong khóa học cụ thể), hiển thị danh sách Kanji với cấu trúc phân cấp (Kanji > Nội dung), các trường: Kanji, Nghĩa, Âm kun, Âm on, Radical, Trạng thái (OK với check xanh, Chưa duyệt với badge cam), Nút hành động (Chỉnh sửa, Xóa), Upload ảnh minh họa (thông báo đỏ nếu chưa thêm cho Cách ghi nhớ), Upload file âm thanh (thông báo đỏ nếu chưa thêm cho Cách đọc), Học kỳ, Cấp độ, Thành phần cấu thành, Cách ghi nhớ, Giải thích, Từ khóa tìm kiếm, Nét vẽ kanji.
- Popup "Thêm Kanji mới": Nhập Kanji, Nghĩa, Âm kun, Âm on, Radical, Thành phần cấu thành, Cách ghi nhớ, Giải thích, Từ khóa tìm kiếm, Nét vẽ kanji, Học kỳ, Cấp độ, upload ảnh minh họa (Cách ghi nhớ), upload file âm thanh (Cách đọc), chọn từ vựng (từ danh sách quản lý từ vựng để liên kết), nút "Hủy bỏ"/"Thêm", hoặc chọn "Thêm từ file JSON" để upload file.
- Nút "Xuất file JSON" để xuất toàn bộ Kanji.
- Ô search "Tìm kiếm Kanji...", Filter dropdown (Học kỳ, Cấp độ, Hôm nay, Tuần này, Tháng này).
- Mục hiển thị và thao tác giống app: Giao diện chi tiết Kanji (hiển thị Nghĩa, cách ghi nhớ, Âm kun, Âm on, Âm radical, Từ vựng) trong chế độ preview.
Luồng thao tác chính 1. Người dùng (CD/CD Runner) truy cập tab "Thư Viện Kiến thức" trong một khóa học cụ thể, chọn tab "Kanji".
2. Hệ thống hiển thị danh sách Kanji với Kanji, Nghĩa, Âm kun, Âm on, Radical, Trạng thái, và mục preview với thao tác giống app.
3. Các thao tác:
- Chọn Kanji → chỉnh sửa các trường, upload ảnh minh họa/file âm thanh, chọn từ vựng liên kết → Lưu.
- Chọn Kanji → xác nhận xóa.
- Nhấn "Xuất file JSON" → tải file chứa tất cả Kanji.
- Nhập từ khóa vào ô search hoặc chọn filter (Học kỳ, Cấp độ, Hôm nay, Tuần này, Tháng này) → danh sách cập nhật.
- Chọn Kanji → thao tác giống app (xem chi tiết Kanji, nghe âm thanh, xem ảnh minh họa, nét vẽ).
- Nhấn "Thêm Kanji mới" → nhập Kanji, Nghĩa, Âm kun, Âm on, Radical, Thành phần cấu thành, Cách ghi nhớ, Giải thích, Từ khóa tìm kiếm, Nét vẽ kanji, Học kỳ, Cấp độ, upload ảnh minh họa (Cách ghi nhớ), upload file âm thanh (Cách đọc), chọn từ vựng liên kết → nhấn "Thêm". Hoặc chọn "Thêm từ file JSON" → upload file JSON → hệ thống import và hiển thị.
4. Hệ thống tự động kiểm tra trạng thái và cảnh báo nếu thiếu trường bắt buộc.
Điều kiện - Người dùng phải được phân quyền: Cả CD và CD Runner đều có quyền edit và operate.
- Kanji phải liên kết với khóa học cụ thể.
- Bắt buộc: Kanji, Nghĩa; file upload chỉ bắt buộc cho Cách ghi nhớ (ảnh) và Cách đọc (âm thanh) (nếu thiếu: cảnh báo đỏ); Âm kun, Âm on, Radical, Thành phần cấu thành, Cách ghi nhớ, Giải thích, Từ khóa tìm kiếm, Nét vẽ kanji, Học kỳ, Cấp độ tùy chọn (nếu thiếu: cảnh báo cam).
- File upload: Âm thanh (Cách đọc): định dạng MP3, WAV; kích thước <5MB. Ảnh minh họa (Cách ghi nhớ): JPG, PNG; kích thước <2MB.
- File JSON: Hỗ trợ import/export với cấu trúc {kanji: {nghĩa: "", âm kun: "", âm on: "", ...}}.
- Filter: Hôm nay (ngày hiện tại), Tuần này (7 ngày gần nhất), Tháng này (tháng hiện tại).
- Preview giống app: Hiển thị giao diện chi tiết Kanji (Nghĩa, cách ghi nhớ, Âm kun, Âm on, Âm radical, Từ vựng) với thao tác nghe âm thanh và xem ảnh/ nét vẽ.
- Liên kết từ vựng: Chọn từ danh sách quản lý từ vựng, có thể chỉnh sửa.
Kết quả hiển thị - Danh sách Kanji: Kanji (ví dụ: "家"), Nghĩa, Âm kun, Âm on, Radical, Trạng thái (OK với check xanh, Chưa duyệt với badge cam), Badge filter (Học kỳ: N5, Cấp độ: Beginner), Nút hành động (Chỉnh sửa, Xóa).
- Sau thêm/chỉnh sửa: Kanji mới/xuất hiện trong danh sách, trạng thái cập nhật (mặc định Chưa duyệt, operate để OK).
- Cảnh báo: Đỏ "Upload ảnh minh họa..." (nếu thiếu Cách ghi nhớ) hoặc "Upload file âm thanh..." (nếu thiếu Cách đọc); cam "Chưa chọn Học kỳ".
- Preview giống app: Giao diện chi tiết Kanji (hiển thị Nghĩa, cách ghi nhớ, Âm kun, Âm on, Âm radical, Từ vựng).
- Xuất JSON: File tải về chứa tất cả Kanji.
Trường hợp không có dữ liệu - Nếu chưa có Kanji: "Chưa có Kanji nào" với nút "Thêm mới".
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa upload ảnh minh họa", "Chưa nhập Nghĩa").
- Nếu filter không có kết quả: "Không tìm thấy Kanji phù hợp".
- Nếu xóa không thành: Thông báo "Không thể xóa Kanji đang sử dụng".

13. Quản lý thư viện kỹ năng

13.1 Quản lý Kỹ năng Nghe

Quản lý Kỹ năng Nghe
Trường dữ liệu Nội dung
Tên chức năng Quản lý Kỹ năng Nghe
Vai trò CD, CD Runner
Mô tả Cho phép quản lý và theo dõi kỹ năng nghe trong thư viện kỹ năng, bao gồm nhập kỹ năng nghe mới, chỉnh sửa, xuất/nhập file JSON, hiển thị danh sách kỹ năng nghe với các trường như Tiêu đề, Số lượng câu nghe, Câu hỏi, Trạng thái (OK: kỹ năng nghe được sử dụng, Chưa duyệt: kỹ năng nghe chưa được sử dụng). Cả CD và CD Runner đều có quyền thực hiện các chức năng như chỉnh sửa, xóa, xuất file JSON, tìm kiếm và lọc theo các tiêu chí. Hỗ trợ hiển thị và thao tác kỹ năng nghe giống hệt như trên app (cho người soạn giáo trình tránh sai data, có thể thao tác như đang dùng app, bao gồm xem chi tiết kỹ năng nghe, nghe âm thanh với tốc độ phát khác nhau). Chức năng tìm kiếm (search) kỹ năng nghe, lọc (filter) theo học kỳ, cấp độ, hôm nay, tuần này, tháng này. Hỗ trợ tạo mới kỹ năng nghe với các trường: Tiêu đề, Nghĩa, ID bài học, Học kỳ, Cấp độ, tải lên tệp âm thanh. Cho phép thêm kỹ năng nghe từ file JSON và xuất toàn bộ kỹ năng nghe ra file JSON. Hỗ trợ cảnh báo lỗi (màu đỏ/cam) cho các trường thiếu.
Giao diện liên quan - Trang quản lý kỹ năng nghe trên web (truy cập từ tab "Thư Viện Kỹ năng" - "Kỹ năng Nghe" trong khóa học cụ thể), hiển thị danh sách kỹ năng nghe với cấu trúc phân cấp (Kỹ năng Nghe > Nội dung), các trường: Tiêu đề, Số lượng câu nghe, Câu hỏi, Trạng thái (OK với check xanh, Chưa duyệt với badge cam), Nút hành động (Chỉnh sửa, Xóa), Upload tệp âm thanh (thông báo đỏ nếu chưa thêm), Học kỳ, Cấp độ, Nghĩa, ID bài học.
- Popup "Thêm kỹ năng nghe mới": Nhập Tiêu đề, Nghĩa, ID bài học, Học kỳ, Cấp độ, upload tệp âm thanh, nút "Hủy bỏ"/"Thêm", hoặc chọn "Thêm từ file JSON" để upload file.
- Nút "Xuất file JSON" để xuất toàn bộ kỹ năng nghe.
- Ô search "Tìm kiếm kỹ năng nghe...", Filter dropdown (Học kỳ, Cấp độ, Hôm nay, Tuần này, Tháng này).
- Mục hiển thị và thao tác giống app: Giao diện chi tiết kỹ năng nghe (hiển thị Furigana, Phiên âm, Dịch nghĩa, tốc độ phát audio) trong chế độ preview.
Luồng thao tác chính 1. Người dùng (CD/CD Runner) truy cập tab "Thư Viện Kỹ năng" trong một khóa học cụ thể, chọn tab "Kỹ năng Nghe".
2. Hệ thống hiển thị danh sách kỹ năng nghe với Tiêu đề, Số lượng câu nghe, Câu hỏi, Trạng thái, và mục preview với thao tác giống app.
3. Các thao tác:
- Chọn kỹ năng nghe → chỉnh sửa các trường, upload tệp âm thanh → Lưu.
- Chọn kỹ năng nghe → xác nhận xóa.
- Nhấn "Xuất file JSON" → tải file chứa tất cả kỹ năng nghe.
- Nhập từ khóa vào ô search hoặc chọn filter (Học kỳ, Cấp độ, Hôm nay, Tuần này, Tháng này) → danh sách cập nhật.
- Chọn kỹ năng nghe → thao tác giống app (xem chi tiết kỹ năng nghe, nghe âm thanh với tốc độ phát khác nhau).
- Nhấn "Thêm kỹ năng nghe mới" → nhập Tiêu đề, Nghĩa, ID bài học, Học kỳ, Cấp độ, upload tệp âm thanh → nhấn "Thêm". Hoặc chọn "Thêm từ file JSON" → upload file JSON → hệ thống import và hiển thị.
4. Hệ thống tự động kiểm tra trạng thái và cảnh báo nếu thiếu trường bắt buộc.
Điều kiện - Người dùng phải được phân quyền: Cả CD và CD Runner đều có quyền edit và operate.
- Kỹ năng nghe phải liên kết với khóa học cụ thể.
- Bắt buộc: Tiêu đề, Nghĩa; file upload chỉ bắt buộc cho tệp âm thanh (nếu thiếu: cảnh báo đỏ); ID bài học, Học kỳ, Cấp độ tùy chọn (nếu thiếu: cảnh báo cam).
- File upload: Âm thanh: định dạng MP3, WAV; kích thước <5MB.
- File JSON: Hỗ trợ import/export với cấu trúc {ky_nang_nghe: {tieu_de: "", nghia: "", ...}}.
- Filter: Hôm nay (ngày hiện tại), Tuần này (7 ngày gần nhất), Tháng này (tháng hiện tại).
- Preview giống app: Hiển thị giao diện chi tiết kỹ năng nghe (Furigana, Phiên âm, Dịch nghĩa, tốc độ phát audio) với thao tác nghe âm thanh.
Kết quả hiển thị - Danh sách kỹ năng nghe: Tiêu đề (ví dụ: "Nghe cuộc trò chuyện hàng ngày"), Số lượng câu nghe, Câu hỏi, Trạng thái (OK với check xanh, Chưa duyệt với badge cam), Badge filter (Học kỳ: N5, Cấp độ: Beginner), Nút hành động (Chỉnh sửa, Xóa).
- Sau thêm/chỉnh sửa: Kỹ năng nghe mới/xuất hiện trong danh sách, trạng thái cập nhật (mặc định Chưa duyệt, operate để OK).
- Cảnh báo: Đỏ "Upload tệp âm thanh..." (nếu thiếu tệp âm thanh); cam "Chưa chọn Học kỳ".
- Preview giống app: Giao diện chi tiết kỹ năng nghe (hiển thị Furigana, Phiên âm, Dịch nghĩa, tốc độ phát audio).
- Xuất JSON: File tải về chứa tất cả kỹ năng nghe.
Trường hợp không có dữ liệu - Nếu chưa có kỹ năng nghe: "Chưa có kỹ năng nghe nào" với nút "Thêm mới".
- Nếu thiếu trường: Cảnh báo đỏ/cam (ví dụ: "Chưa upload tệp âm thanh", "Chưa nhập Nghĩa").
- Nếu filter không có kết quả: "Không tìm thấy kỹ năng nghe phù hợp".
- Nếu xóa không thành: Thông báo "Không thể xóa kỹ năng nghe đang sử dụng".

14. Quản lý hóa đơn (Admin, Support)

14.1 Chức năng thống kê hóa đơn

Chức năng thống kê hóa đơn
Trường Nội dung
Tên chức năng Thống kê hóa đơn
Vai trò Admin, Support
Mô tả Cho phép admin, support xem thông tin về hóa đơn có trên hệ thống. Sau khi truy cập đến màn hình quản lý hóa đơn, admin có thể xem, sửa, xóa toàn bộ thông tin về từng hóa đơn, chỉnh sửa, tìm kiếm thủ công, tìm kiếm bằng bộ lọc và xem biểu đồ thống kê về các thông tin như số ngày, tổng KPI, số hóa đơn, tổng giá trị các hóa đơn.
Giao diện liên quan - Màn hình quản lý lớp.
- Thanh công cụ (nằm bên trái màn hình).
- Menu Thống kê.
- Submenu Hóa đơn.
Luồng thao tác chính
1. Từ thanh công cụ, chọn menu Thống kê.
2. Từ menu Thống kê, chọn submenu Hóa đơn.
3. Xem thông tin trên màn hình quản lý hóa đơn:
 a. Các biểu đồ:
  - Biểu đồ SỐ NGÀY: biểu đồ thể hiện dưới dạng widget chứa chữ SỐ NGÀY {Tổng số ngày} màu đen, biểu đồ cột màu cam được bo góc trên chứa số cột tương ứng với tổng số ngày, thể hiện được sự khác biệt giữa số lượng hóa đơn được lập trong ngày dựa trên chiều cao của cột. Khi trỏ chuột đến biểu đồ, màn hình hiển thị ngày tương ứng với cột (định dạng dd/mm/yyyy).
  - Biểu đồ TỔNG KPI: biểu đồ thể hiện dưới dạng widget chứa chữ TỔNG KPI {Tổng KPI} màu đen, biểu đồ đường viền chân trời thành phố (Skyline silhouette) màu cam biểu hiện tổng KPI được thực hiện trên mỗi hóa đơn được tạo. Khi trỏ chuột đến biểu đồ, màn hình hiển thị giá trị KPI/ đơn theo từng hóa đơn được tạo.
  - Biểu đồ SỐ HÓA ĐƠN: biểu đồ thể hiện dưới dạng widget chứa chữ SỐ HÓA ĐƠN {Tổng số hóa đơn} màu đen, biểu đồ đường có đường viền màu cam đậm và miền bên dưới có màu cam nhạt biểu thị số lượng hóa đơn được lập theo mỗi ngày. Khi trỏ chuột đến biểu đồ, màn hình hiển thị số lượng hóa đơn thống kê được cho từng ngày (tính theo thời điểm hiện tại).
  - Biểu đồ GIÁ TRỊ: biểu đồ thể hiện dưới dạng widget chứa chữ GIÁ TRỊ {Tổng giá trị hóa đơn} màu đen, biểu đồ đường có viền cam đậm và miền bên dưới có màu cam nhạt biểu thị tổng giá trị các hóa đơn được lập trên Tổng số ngày. Khi trỏ chuột đến biểu đồ, màn hình hiển thị Tổng giá trị hóa đơn dựa theo từng ngày.
 b. Nút "Tạo hóa đơn" để thực hiện chức năng tạo hóa đơn.
 c. Thanh tìm kiếm: "🔍 Tìm kiếm": khi trỏ chuột đến ô "🔍 Tìm kiếm", ô này chuyển sang màu đậm hơn.
 d. Các bộ lọc thuộc tính bao gồm Người Phụ Trách, Thời Gian, Loại Hóa Đơn, Trạng Thái có chữ màu xám và viền xám nền trắng. Khi lựa chọn giá trị cho bộ lọc, bộ lọc sẽ chuyển sang chữ cam, viền cam và nền trắng.
 e. Bảng thống kê dữ liệu hóa đơn:
  - Bao gồm các cột Hóa Đơn, Trạng Thái, Loại Hóa Đơn, Tên Học Viên, Mã Học Viên, Người Phụ Trách, Ngày Ghi Nhận, Số Tiền Đã Đóng, Số KPI.
  - Các dòng dữ liệu được hiển thị nội dung tương ứng với từng cột, màu sắc xen kẻ giữa xám và trắng.
  - Tại cuối mỗi dòng dữ liệu đều biểu tượng "ⓧ" dùng để xóa dòng đó.
  - Phía dưới bảng thống kê dữ liệu hóa đơn, hiển thị thanh công cụ bao gồm các nút "Trang trước" khi trỏ chuột vào sẽ đậm hơn, tổng số trang, giá trị của trang đang hiển thị có nền màu hồng, nút "Trang sau" khi trỏ chuột vào sẽ đậm hơn, ô chọn số lượng dòng dữ liệu cho một trang (chọn từ danh sách cố định các giá trị sau: 20, 50, 100, 200).
Điều kiện - Đăng nhập thành công vào tài khoản admin, support.
- Nhìn thấy màn hình quản lý lớp và thanh công cụ.
Kết quả hiển thị - Dashboard bao gồm các biểu đồ thống kê về các thông tin như số ngày, tổng KPI, số hóa đơn, tổng giá trị các hóa đơn.
- Thông tin tổng quát về các hóa đơn được hiển thị dạng bảng bao gồm các cột Hóa Đơn, Trạng Thái, Loại Hóa Đơn, Tên Học Viên, Mã Học Viên, Người Phụ Trách, Ngày Ghi Nhận, Số Tiền Đã Đóng, Số KPI.
- Bảng có thể được chia thành nhiều trang hiển thị, số của trang đang hiển thị nằm trong một ô vuông có màu nền hồng nhạt.
- Số lượng hóa đơn hiển thị trên bảng được đặt mặc định tại 20 hóa đơn (có thể tùy chỉnh giữa các giá trị: 20, 50, 100, 200).
Trường hợp không có dữ liệu - Nếu không có dữ liệu, các biểu đồ và bảng dữ liệu hóa đơn sẽ trống và hình minh họa và dòng chữ "Bảng dữ liệu này đang trống" sẽ hiển thị trên màn hình.

14.2 Chức năng tạo hóa đơn

Chức năng tạo hóa đơn
Trường Nội dung
Tên chức năng Tạo hóa đơn
Vai trò Admin, Support
Mô tả Cho phép admin, supoort tạo một hóa đơn bằng việc cung cấp các thông tin cần thiết (bắt buộc) như sau:
 1.Hóa đơn.
 2.Trạng thái.
 3.Tên học viên.
 4.Mã học viên.
 5. Chọn ngày tạo.
 6.Loại hóa đơn.
 7.Số tiền.
 8.Loại tài khoản.
 9.Quy đổi (VNĐ).
 10. Người phụ trách.
 11. Tệp đính kèm.
Giao diện liên quan - Màn hình quản lý hóa đơn.
- Nút tạo hóa đơn (nằm bên phải dòng chữ "Quản lý hóa đơn").
- Popup "Tạo hóa đơn".
- Popup "Lịch".
- Popup "Thêm người phụ trách".
Luồng thao tác chính
1. Từ màn hình quản lý hóa đơn, chọn nút (+) để tạo hóa đơn.
2. Hệ thống hiển thị popup "Tạo hóa đơn" có nền trắng, các ô nhập liệu hình chữ nhật được bo tròn góc, chữ mặc định trên ô có màu xám nhạt và được chưa làm 2 khu vực *Thông tin bắt buộc*Thông tin thêm, các ô nhập liệu bắt buộc bao gồm:
 a. Hóa đơn: nhập tên hóa đơn (cho phép nhập ký tự đặc biệt).
 b. Trạng thái: chọn trạng thái phù hợp cho hóa đơn: Đợi lớp, Xác nhận, Hoàn tiền, Học trước, Hủy đơn.
 c. Tên học viên: nhập tên học viên được tạo hóa đơn (cho phép nhập ký tự đặc biệt).
 d. Mã học viên: nhập mã học viên (cho phép nhập ký tự đặc biệt).
 e. Chọn ngày tạo: chọn từ popup "Lịch" (định dạng: dddd/dd/mm).
 f. Loại hóa đơn: chọn từ danh sách bao gồm Sale, Cọc, Upsale, Renew, Bổ sung cọc, Resale, Bổ sung học phí.
 g. Số tiền: nhập vào số tiền tương ứng (số dương), chọn đơn vị phù hợp (VNĐ, ¥).
 h. Loại tài khoản: chọn từ danh sách bao gồm Tài khoản công ty, Tài khoản cá nhân, Tiền mặt, Khác.
 i. Quy đổi (VNĐ): nhập giá trị nếu đơn vị không phải VNĐ.
 k. Người phụ trách:
  - Chọn vào nút (+) nền hồng viền trắng (bên cạnh chữ "Người phụ trách") để popup "Thêm người phụ trách" xuất hiện.
  - Lần lượt chọn Người phụ trách chịu trách nhiệm với hóa đơn và Số KPI tương ứng.
 j. Tệp đính kèm:
  - Chọn vào nút (+) nền hồng viền trắng (bên cạnh chữ "Tệp đính kèm") để cửa sổ chọn tệp xuất hiện.
  - Chỉ được chọn 1 tệp đính kèm duy nhất (định dạng hợp lệ của tệp là: .png, .jpg, .jepg, .pdf, .docx, .txt).
4. Các ô nhập liệu không bắt buộc:
Các ô nhập liệu này nằm phía dưới dòng *Thông tin thêm.
Các ô nhập liệu không bắt buộc bao gồm:
 a. Ghi chú: ô nhập liệu tự do dành cho các thông tin bổ sung về chi tiết của hóa đơn.
 b. Email: ô nhập liệu thêm thông tin về tài khoản thư điện tử (Gmail, Outlook, etc.).
 c. Số điện thoại: ô nhập liệu thêm thông tin về số điện thoại của học viên .
 d. Lớp dự kiến: ô nhập liệu thêm mã lớp (đã có) vào chi tiết hóa đơn.
 e. Thông tin: ô nhập liệu tự do dành cho các thông tin bổ sung về chi tiết của hóa đơn.
5. Chọn nút "Thêm" màu cam nhạt viền cam đậm, chữ màu cam trên popup "Tạo hóa đơn".
 a. Biểu tượng "◌ Vui lòng đợi" tông màu cam xuất hiện trên màn hình, điều này đồng nghĩa với hệ thống đang thu thập thông tin được nhập để tạo hóa đơn mới.
 b. Hệ thống trả về màn hình quản lý hóa đơn, hóa đơn sẽ được thêm vào ở dòng cuối cùng của bảng thống kê dữ liệu hóa đơn.
Điều kiện - Đăng nhập thành công vào tài khoản admin, support.
- Nhìn thấy màn hình quản lý hóa đơn với đầy đủ các chức năng.
Kết quả hiển thị Hiện tại
- Dashboard với các biểu đồ sẽ tự động được cập nhật và bảng dữ liệu hóa đơn tự động hiển thị hóa đơn mới tạo ở phía dưới cùng của bảng.

Tương lai
- Màn hình xuất hiện thông báo "Hóa đơn {tên hóa đơn: Hóa đơn} đã được thêm thành công!".
- Dashboard với các biểu đồ sẽ tự động được cập nhật và bảng dữ liệu hóa đơn tự động hiển thị hóa đơn mới tạo ở phía dưới cùng của bảng.
Trường hợp không có dữ liệu Nếu không có dữ liệu được hiển thị trên màn hình hiện tại:
 1. Kiểm tra dòng cuối cùng của bảng dữ liệu:
  a. Chuyển sang trang cuối cùng của bảng dữ liệu đang được hiển thị.
  b. Nếu không có quá nhiều dữ liệu, chọn số lượng dòng cùng xuất hiện trong một trang nhiều hơn giá trị hiện tại.

14.3 Chức năng tìm kiếm bằng ký tự

Chức năng tìm kiếm bằng ký tự
Trường Nội dung
Tên chức năng Tìm kiếm bằng ký tự
Vai trò Admin, Support
Mô tả Cho phép admin, support tìm kiếm tự do trên toàn bộ bảng dữ liệu thống kê hóa đơn. Việc tìm kiếm dựa trên các ký tự được nhập vào ô "🔍 Tìm kiếm" (cho phép tìm kiếm các ký tự đặc biệt), các cột sẽ được tham chiếu cho việc tìm kiếm trên bảng dữ liệu thống kê hóa đơn bao gồm: Hóa Đơn, Tên Học Viên, Mã Học Viên. Số lượng ký tự tối thiểu để thực hiện việc tìm kiếm là 1 ký tự và khi nhập vào ký tự đầu tiên, hệ thống sẽ tự động tìm kiếm và cập nhật bảng dữ liệu với các dòng có chứa hoặc trùng với ký tự/ chuỗi ký tự đang được tìm kiếm. Việc cập nhật dữ liệu ở bảng dữ liệu thống kê hóa đơn sẽ kéo theo các biểu đồ thống kê được cập nhật chính xác với dữ liệu đang được hiển thị.
Giao diện liên quan - Màn hình quản lý hóa đơn.
- Ô nhập liệu "🔍 Tìm kiếm".
Luồng thao tác chính
1. Nhấn vào ô nhập liệu "🔍 Tìm kiếm" hình ô-van màu xám không viền nằm ở phía bên trên của màn hình.
2. Thực hiện nhập dữ liệu cần tìm:
 a. Số lượng ký tự tối thiểu: 1 ký tự.
 b. Được phép nhập ký tự đặc biệt.
3. Hệ thống sẽ tìm kiếm và tự động cập nhật dữ liệu trên bảng và biểu đồ thống kê.
Điều kiện - Đăng nhập thành công vào tài khoản admin, support.
- Nhìn thấy màn hình quản lý hóa đơn và ô nhập liệu "🔍 Tìm kiếm".
- Phải có ít nhất một hóa đơn trong toàn bộ hệ thống.
Kết quả hiển thị - Dashboard với các biểu đồ sẽ tự động được cập nhật và bảng dữ liệu hóa đơn tự động hiển thị các hóa đơn có giá tri tại các cột Hóa Đơn, Tên Học Viên, Mã Học Viên có chứa hoặc trùng với ký tự/ chuỗi ký tự đang được tìm kiếm.
- Nếu không có dữ liệu trùng khớp, hệ thống sẽ hiển thị icon thùng rỗng màu cam kèm với dòng chữ 'Bảng dữ liệu này đang trống' màu đen.
Trường hợp không có dữ liệu Nếu không có dữ liệu được hiển thị trên màn hình hiện tại:
 1. Kiểm tra lại ký tự/ chuỗi ký tự nhập vào.
 2. Kiểm tra kết nối internet của thiết bị.
 3. Liên hệ hỗ trợ trực tiếp.

14.4 Chức năng tìm kiếm bằng bộ lọc thuộc tính

Chức năng tìm kiếm bằng bộ lọc thuộc tính
Trường Nội dung
Tên chức năng Tìm kiếm bằng các bộ lọc thuộc tính
Vai trò Admin, Support
Mô tả Cho phép admin, support tìm kiếm trên toàn bộ bảng dữ liệu thống kê hóa đơn dựa vào giá trị của bộ lọc. Việc tìm kiếm sẽ diễn ra ngay sau khi admin, support chọn ít nhất 1 giá trị cho ít nhất 1 bộ lọc, các bộ lọc được xây dựng sẵn bao gồm: Người Phụ Trách, Thời Gian, Loại Hóa Đơn, Trạng Thái.Các bộ lọc hiển thị dưới dạng dropdown với danh sách giá trị cố định.
Giao diện liên quan - Màn hình quản lý hóa đơn.
- Bộ lọc Người Phụ Trách.
- Bộ lọc Thời Gian.
- Bộ lọc Loại Hóa Đơn.
- Bộ lọc Trạng Thái.
- Popup "Lịch".
Luồng thao tác chính
1. Chọn bộ lọc và giá trị lọc tương ứng:
  -Người Phụ Trách: danh sách nhân viên có quyền lập hóa đơn và nhận KPI tương ứng hiện ra.
 a. Thời Gian: bao gồm các lựa chọn Hôm nay, Tuần nay, Tuần trước, Tháng này, Tháng trước, Năm nay, Tùy chọn.
  Lưu ý: Tùy chọn sẽ xuất hiện popup "Lịch", khoảng thời gian chọn sẽ dùng để tìm kiếm
 b. Loại Hóa Đơn: lựa chọn loại hóa đơn từ danh sách được hiển thị.
(Cọc, Sale, Upsale, Bổ sung học phí, Bổ sung cọc, Renew, Resale)
 c. Trạng Thái: lựa chọn trạng thái hóa đơn từ danh sách được hiển thị.
(Đợi lớp, Hoàn tiền, Học trước, Hủy đơn, Xác nhận)
2. Sau khi chọn giá trị cho bộ lọc, khung ngoài và tên của bộ lọc sẽ chuyển sang màu cam.
 d. Trạng Thái: lựa chọn trạng thái hóa đơn từ danh sách được hiển thị.
(Đợi lớp, Hoàn tiền, Học trước, Hủy đơn, Xác nhận)
Điều kiện - Đăng nhập thành công vào tài khoản admin, support.
- Nhìn thấy màn hình quản lý hóa đơn và các bộ lọc tìm kiếm.
- Phải có ít nhất một hóa đơn trong toàn bộ hệ thống.
Kết quả hiển thị - Dashboard với các biểu đồ sẽ tự động được cập nhật và bảng dữ liệu hóa đơn tự động hiển thị các hóa đơn phù hợp với giá trị/ các giá trị lọc.
- Những bộ lọc nào đã chọn giá trị lọc sẽ chuyển màu chữ và khung sang màu cam.
Trường hợp không có dữ liệu Nếu không có dữ liệu được hiển thị trên màn hình hiện tại:
 1. Kiểm tra giá trị lọc/ các giá trị lọc đã hiển thị tại bộ lọc tương ứng.
 2. Kiểm tra kết nối Internet.
 3. Liên hệ hỗ trợ trực tiếp.

14.5 Chức năng tìm kiếm kết hợp ký tự và bộ lọc

Chức năng tìm kiếm kết hợp ký tự và bộ lọc
Trường Nội dung
Tên chức năng Tìm kiếm kết hợp ký tự và bộ lọc
Vai trò Admin, Support
Mô tả Cho phép admin, support tìm kiếm trên toàn bộ bảng dữ liệu thống kê hóa đơn dựa vào sự kết hợp của 2 chức năng: Tìm kiếm bằng ký tự, Tìm kiếm bằng bộ lọc thuộc tính. Hệ thống hỗ trợ kết hợp cả hai phương thức để thu hẹp kết quả tìm kiếm một cách chính xác và hiệu quả.
Giao diện liên quan - Màn hình quản lý hóa đơn.
- Ô nhập liệu "🔍 Tìm kiếm".
- Bộ lọc Người Phụ Trách.
- Bộ lọc Thời Gian.
- Bộ lọc Loại Hóa Đơn.
- Bộ lọc Trạng Thái.
- Popup "Lịch".
Luồng thao tác chính
Người dùng có thể thực hiện cả hai thao tác sau theo thứ tự tự chọn:
1. Tìm kiếm bằng ký tự:
 a. Nhấn vào ô nhập liệu “🔍 Tìm kiếm” hình ô-van màu xám không viền nằm ở phía trên của màn hình.
 b. Thực hiện nhập dữ liệu cần tìm:
  c. Số lượng ký tự tối thiểu: 1 ký tự.
  d. Được phép nhập ký tự đặc biệt.
2. Tìm kiếm bằng bộ lọc thuộc tính bằng cách chọn bộ lọc và giá trị tương ứng:
 a. Người Phụ Trách: danh sách nhân viên có quyền lập hóa đơn và nhận KPI tương ứng hiện ra.
 b. Thời Gian: bao gồm các lựa chọn Hôm nay, Tuần nay, Tuần trước, Tháng này, Tháng trước, Năm nay, Tùy chọn.
  Lưu ý: Tùy chọn sẽ xuất hiện popup "Lịch", khoảng thời gian chọn sẽ dùng để tìm kiếm
 c. Loại Hóa Đơn: lựa chọn loại hóa đơn từ danh sách được hiển thị.
(Cọc, Sale, Upsale, Bổ sung học phí, Bổ sung cọc, Renew, Resale)
 d. Trạng Thái: lựa chọn trạng thái hóa đơn từ danh sách được hiển thị.
(Đợi lớp, Hoàn tiền, Học trước, Hủy đơn, Xác nhận)
Điều kiện - Đăng nhập thành công vào tài khoản admin, support.
- Nhìn thấy màn hình quản lý hóa đơn và các bộ lọc tìm kiếm.
- Phải có ít nhất một hóa đơn trong toàn bộ hệ thống.
Kết quả hiển thị - Dashboard với các biểu đồ sẽ tự động được cập nhật và bảng dữ liệu hóa đơn tự động hiển thị các hóa đơn phù hợp với ký tự/ chuỗi ký tự và giá trị/ các giá trị lọc.
- Những bộ lọc nào đã chọn giá trị lọc sẽ chuyển màu chữ và khung sang màu cam.
Trường hợp không có dữ liệu Nếu không có dữ liệu được hiển thị trên màn hình hiện tại:
 1. Kiểm tra ký tự/ chuỗi ký tự tại ô "🔍 Tìm kiếm" và giá trị lọc/ các giá trị lọc đã hiển thị tại bộ lọc tương ứng.
 2. Kiểm tra kết nối Internet.
 3. Liên hệ hỗ trợ trực tiếp.

14.6 Chức năng xem chi tiết hóa đơn

Chức năng xem chi tiết hóa đơn
Trường Nội dung
Tên chức năng Xem chi tiết hóa đơn
Vai trò Admin, Support
Mô tả Cho phép admin, support xem lại các hóa đơn đã được tạo trước đó thông qua popup "Chi tiết hóa đơn" chứa đầy đủ các thông tin có liên quan ở các trường sau: Hóa đơn, Trạng thái, Tên học viên, Mã học viên, Chọn ngày tạo, Loại hóa đơn, Số tiền, Loại tài khoản, Quy đổi (VNĐ), Người phụ trách, Tệp đính kèm, Ghi chú, Email, Số điện thoại, Lớp dự kiến, Thông tin.
Giao diện liên quan - Màn hình quản lý hóa đơn.
- Bảng thống kê dữ liệu hóa đơn.
- Popup "Chi tiết hóa đơn".
Luồng thao tác chính
1. Tại bảng thống kê dữ liệu hóa đơn, chọn vào hóa đơn cần xem chi tiết.
2. Popup "Chi tiết hóa đơn" xuất hiện, màn hình chính được làm mờ:
 a. Popup này bao gồm:
 - Thông tin bắt buộc phải có
Hóa đơn, Trạng thái, Tên học viên, Mã học viên, Chọn ngày tạo, Loại hóa đơn, Số tiền, Loại tài khoản, Quy đổi (VNĐ), Người phụ trách, Tệp đính kèm.
 - Thông tin bổ sung (không bắt buộc)
Ghi chú, Email, Số điện thoại, Lớp dự kiến, Thông tin.
 b. Nút "Hủy bỏ" không viền và nút "Cập nhật" viền cam.
3. Để xem hóa đơn khác, chọn nút "Hủy bỏ" và tiếp tục lặp lại các thao tác.
Điều kiện - Đăng nhập thành công vào tài khoản admin, support.
- Phải có ít nhất một hóa đơn trong toàn bộ hệ thống.
- Hóa đơn được nhìn thấy trên bảng thống kê dữ liệu hóa đơn.
Kết quả hiển thị - Popup hiển thị thông tin đúng với hóa đơn vừa được chọn, đầy đủ các trường thông tin và các nút để thao tác, màu sắc của popup và trạng thái làm mờ của màn hình chính hiển thị đúng.
Trường hợp không có dữ liệu 1. Nếu các trường thông tin bắt buộc Hóa đơn, Trạng thái, Tên học viên, Mã học viên, Chọn ngày tạo, Loại hóa đơn, Số tiền, Loại tài khoản, Quy đổi (VNĐ) trống:
 a. Liên hệ với đội ngũ có thẩm quyền để được hỗ trợ.
2. Nếu các trường thông tin bắt buộc Người phụ tráchTệp đính kèm trống:
 a. Thực hiện cập nhật chi tiết hóa đơn.
 b. Đã thực hiện cập nhật nhưng vẫn trống:
  - Liên hệ với đội ngũ có thẩm quyền để được hỗ trợ.
3. Nếu toàn bộ thông tin hóa đơn trống (trường hợp bất thường):
 a. Liên hệ với đội ngũ có thẩm quyền để được hỗ trợ.

14.7 Chức năng cập nhật hóa đơn

Chức năng cập nhật hóa đơn
Trường Nội dung
Tên chức năng Cập nhật hóa đơn
Vai trò Admin, Support
Mô tả Cho phép admin, support cập nhật các chi tiết có trên hóa đơn đã được tạo trước đó thông qua popup "Chi tiết hóa đơn" chứa đầy đủ các thông tin có liên quan ở các trường sau: Hóa đơn, Trạng thái, Tên học viên, Mã học viên, Chọn ngày tạo, Loại hóa đơn, Số tiền, Loại tài khoản, Quy đổi (VNĐ), Người phụ trách, Tệp đính kèm, Ghi chú, Email, Số điện thoại, Lớp dự kiến, Thông tin.
Giao diện liên quan - Màn hình quản lý hóa đơn.
- Bảng thống kê dữ liệu hóa đơn.
- Popup "Chi tiết hóa đơn".
- Nút "Cập nhật" trong popup "Chi tiết hóa đơn".
Luồng thao tác chính
1. Tại bảng thống kê dữ liệu hóa đơn, chọn vào hóa đơn cần cập nhật chi tiết.
2. Popup "Chi tiết hóa đơn" xuất hiện, màn hình chính được làm mờ:
 a. Popup này bao gồm:
 - Thông tin bắt buộc phải có
Hóa đơn, Trạng thái, Tên học viên, Mã học viên, Chọn ngày tạo, Loại hóa đơn, Số tiền, Loại tài khoản, Quy đổi (VNĐ), Người phụ trách, Tệp đính kèm.
 - Thông tin bổ sung (không bắt buộc)
Ghi chú, Email, Số điện thoại, Lớp dự kiến, Thông tin.
 b. Nút "Hủy bỏ" không viền và nút "Cập nhật" viền cam.
3. Thực hiện cập nhật các trường thông tin kể trên:
 a. Đối với các trường thông tin nhập liệu văn bản Hóa đơn, Tên học viên, Mã học viên, Số tiền, Quy đổi (VNĐ), Ghi chú, Email, Số điện thoại, Lớp dự kiến, Thông tin:
  - Khi đưa con trỏ chuột đến, chuyển màu đậm hơn.
  - Nhập dữ liệu.
 b. Đối với các trường thông tin lựa chọn từ danh sách có sẵn Trạng thái, Loại hóa đơn, Loại tài khoản:
  - Khi đưa con trỏ chuột đến, danh sách chuyển màu đậm hơn.
  - Khi trỏ đến một trong các lựa chọn, lựa chọn đó chuyển màu đậm hơn.
  - Nhấn vào lựa chọn phù hợp.
 c. Đối với trường thông tin 📅 Chọn ngày tạo:
  - Khi nhấn vào, popup "Lịch" có màu nền xanh nhạt với các khung nội dung "Chọn ngày" và "Ngày đã chọn (định dạng dddd/dd/mm)", các nút "🖊️ Chuyển sang chế độ nhập", nút "Hủy" màu xanh lá không viền, nút "Ok" màu xanh lá không viền sẽ được hiển thị. Màn hình chính và popup "Chi tiết hóa đơn" sẽ được làm mờ.
  - Chọn ngày tạo và nhấn nút "Ok" hoặc "Hủy" .
4. Để cập nhật hóa đơn khác:
 a. Nếu không cập nhật hóa đơn này, chọn nút "Hủy bỏ" và tiếp tục lặp lại các thao tác tại hóa đơn khác.
 a. Nếu cập nhật hóa đơn này:
  - Chọn nút "Cập nhật", viền cam.
  - Hệ thống hiển thị biểu tượng "◌ Vui lòng đợi" màu cam và làm mờ màn hình.
  - Sau khi cập nhật xong, hệ thống hiển thị màn hình quản lý hóa đơn, tiếp tục lặp lại các thao tác cập nhật tại hóa đơn khác.
Điều kiện - Đăng nhập thành công vào tài khoản admin, support.
- Phải có ít nhất một hóa đơn trong toàn bộ hệ thống.
- Hóa đơn được nhìn thấy trên bảng thống kê dữ liệu hóa đơn.
Kết quả hiển thị 1. Hiện tại:
 a. Trước khi cập nhật: popup hiển thị thông tin đúng với hóa đơn vừa được chọn, đầy đủ các trường thông tin và các nút để thao tác, màu sắc của popup và trạng thái làm mờ của màn hình chính hiển thị đúng.
 b. Sau khi cập nhật:
  - Màn hình quản lý hóa đơn hiển thị đầy đủ các biểu đồ, thanh tìm kiếm, các bộ lọc và bảng thống kê dữ liệu hóa đơn.
  - Nội dung sau cập nhật hiển thị đúng.

2. Tương lai:
 a. Trước khi cập nhật: popup hiển thị thông tin đúng với hóa đơn vừa được chọn, đầy đủ các trường thông tin và các nút để thao tác, màu sắc của popup và trạng thái làm mờ của màn hình chính hiển thị đúng.
 b. Sau khi cập nhật:
  - Màn hình quản lý hóa đơn hiển thị thông báo "Hóa đơn {Hóa đơn} đã được cập nhật thành công!", đầy đủ các biểu đồ, thanh tìm kiếm, các bộ lọc và bảng thống kê dữ liệu hóa đơn.
  - Nội dung sau cập nhật hiển thị đúng.
Trường hợp không có dữ liệu 1. Nếu các trường thông tin bắt buộc Hóa đơn, Trạng thái, Tên học viên, Mã học viên, Chọn ngày tạo, Loại hóa đơn, Số tiền, Loại tài khoản, Quy đổi (VNĐ) trống:
 a. Liên hệ với đội ngũ có thẩm quyền để được hỗ trợ.
2. Nếu các trường thông tin bắt buộc Người phụ tráchTệp đính kèm trống:
 a. Thực hiện cập nhật chi tiết hóa đơn.
 b. Đã thực hiện cập nhật nhưng vẫn trống:
  - Liên hệ với đội ngũ có thẩm quyền để được hỗ trợ.
3. Nếu toàn bộ thông tin hóa đơn trống (trường hợp bất thường):
 a. Liên hệ với đội ngũ có thẩm quyền để được hỗ trợ.

14.8 Chức năng xóa hóa đơn

Chức năng xóa hóa đơn
Trường Nội dung
Tên chức năng Xóa hóa đơn
Vai trò Admin, Support
Mô tả Cho phép admin, support xóa hóa đơn khỏi hệ thống khi ấn vào biểu tượng ⓧ màu xám ở cuối mỗi dòng dữ liệu trên bảng thống kê dữ liệu hóa đơn tại màn hình quản lý hóa đơn.
Giao diện liên quan - Màn hình quản lý hóa đơn
- Nút "ⓧ".
- Popup "Xóa".
Luồng thao tác chính
1. Tại bảng thống kê dữ liệu hóa đơn trên màn hình quản lý hóa đơn, chọn nút "ⓧ" ở cuối dòng dữ liệu muốn xóa.
2. Hệ thống hiển thị popup "Xóa":
 a. Pop up có màu trắng, dòng chữ "Xóa" và "Bạn muốn xóa hóa đơn này" màu đen, nút "Hủy" nền trắng viền và chữ màu cam, nút "Xác nhận" không viền chữ trắng nền cam xuất hiện trên màn hình.
 b. Màn hình chính được làm mờ, các nút trên popup "Xóa" chuyển màu đậm hơn như được trỏ đến.
 c. Chọn nút "Xác nhận" để xóa hóa đơn hoặc nút "Hủy" để hủy bỏ thao tác xóa.
3. Sau khi xác nhận xóa, hệ thống chuyển về màn hình quản lý hóa đơn ban đầu, các biểu đồ và bảng thống kê dữ liệu hóa đơn sẽ được cập nhật.
Điều kiện - Đăng nhập thành công vào tài khoản admin, support.
- Phải có ít nhất một hóa đơn trong toàn bộ hệ thống.
- Hóa đơn được nhìn thấy trên bảng thống kê dữ liệu hóa đơn.
Kết quả hiển thị 1. Hiện tại:
 a. Hệ thống trả về màn hình quản lý hóa đơn và tự động cập nhật nội dung các biểu đồ và bảng thống kê dữ liệu hóa đơn.
2. Tương lai:
 a. Hệ thống trả về màn hình quản lý hóa đơn và thông báo "Hóa đơn {Hóa đơn} được xóa thành công!".
 b. Tự động cập nhật nội dung các biểu đồ và bảng thống kê dữ liệu hóa đơn.
Trường hợp không có dữ liệu Giả định
1. Nút "ⓧ" không thế nhấn.
 a. Hóa đơn có thể không còn tồn tại:
  - Nhấn tổ hợp phím Ctrl+Shift+F5 hoặc F5 để tải lại trang.
  - Liên hệ với đội ngũ có thẩm quyền nếu vẫn gặp trường hợp tương tự sau khi tải lại.
 b. Lỗi hiển thị:
   Nhấn tổ hợp phím Ctrl+Shift+F5 hoặc F5 để tải lại trang.
  - Liên hệ với đội ngũ có thẩm quyền nếu vẫn gặp trường hợp tương tự sau khi tải lại.
 c. Lỗi chức năng xóa:
   Nhấn tổ hợp phím Ctrl+Shift+F5 hoặc F5 để tải lại trang.
  - Liên hệ với đội ngũ có thẩm quyền nếu vẫn gặp trường hợp tương tự sau khi tải lại.
2. Không có hóa đơn hiển thị.
 a. Không có kết nối internet:
  - Kiểm tra lại kết nối internet:
   + Đưa con trỏ chuột đến biểu tượng Wifi hoặc Lan.
   + Nếu thấy dòng chữ "No Internet Access" hãy thử kết nối lại hoặc khởi động lại modem/ router.
   + Nếu thấy dòng chữ "Internet Access", có thể do lỗi từ hệ thống, tải lại trang hoặc liên hệ đội ngũ hỗ trợ.

14.9 Chức năng thêm hóa đơn cho học viên

Chức năng thêm hóa đơn cho học viên
Trường Nội dung
Tên chức năng Thêm hóa đơn cho học viên
Vai trò Admin, Support
Mô tả Cho phép admin, support thực hiện việc xác minh rằng học viên đã đóng số tiền tương ứng với giá trị của lớp/ khóa học đã/ đang học. Việc xác minh được thực hiện bằng sự kết hợp của 2 luồng xử lý:
 1. Thêm hóa đơn: thêm hóa đơn vào lớp/ khóa học cho học viên đã/ đang học.
 2. Trích tiền: trích số tiền tương ứng với giá trị lớp/ khóa học từ hóa đơn học viên đã đóng.
Việc này có thể được mô phỏng như sau:
  a. Mỗi học viên khi đăng ký học sẽ được tạo Mã Học Viên.
  b. Mã Học Viên sẽ được xem như một 'tài khoản' và có 'số dư tài khoản'.
  c. Đầu tiên, thực hiện luồng xử lý Thêm hóa đơn:
   - Admin/ support sẽ chọn hóa đơn và học viên (tên hóa đơn: Hóa đơn, tên học viên: Họ và Tên) để tiếp tục.
   - Sau đó, hệ thống sẽ thực hiện 'cộng tiền' cho tài khoản của học viên được chọn.
  d. Sau khi đã 'cộng tiền' thành công, 'số dư tài khoản' của học viên sẽ được trích tiền thông qua luồng xử lý Trích tiền:
   - Luồng xử lý Trích tiền này không được thực hiện một cách tự động bởi hệ thống
   - Luồng xử lý này chỉ được thực hiện khi và chỉ khi admin/ support thực hiện bằng cách tương tác trực tiếp với giao diện tại thẻ Học Viên (Chọn lớp học viên đã/ đang học --> Cài Đặt --> Học Viên).
   - Số lần trích và giá trị của mỗi lần trích tiền sẽ được thống kê và có thể xem lại/ kiểm tra được.
   - Số tiền tương ứng sẽ được trừ sau mỗi lần trích và có thể 'hoàn tiền' khi có sai sót xảy ra.
Giao diện liên quan 1. Màn hình "Danh sách lớp học".
2. Thanh công cụ (nằm bên trái màn hình).
3. Menu 'Quản lý' - màn hình "Tổng Quan Lớp".
4. Submenu 'Lớp'.
 a. Màn hình 'Tổng Quan Lớp'.
 b. Màn hình 'Cài Đặt'.
  - Thẻ 'Học viên' - màn hình "Học viên"
   + Popup "Thêm".
  - Thẻ 'Hóa đơn' - màn hình "Hóa đơn".
   + Popup "Thêm".
   + Popup "Cập nhật".
Luồng thao tác chính
1. Tại màn hình "Danh sách lớp học", thực hiện tìm kiếm lớp và chọn lớp học viên đang nợ học phí.
2. Hệ thống chuyển đến màn hình 'Tổng Quan Lớp', lưu ý những thông tin sau:
 1. Màn hình sẽ có 2 thanh công cụ, thanh công cụ nằm bên trong có tag "Phụ".
 2. Tại khung Danh sách học viên, những học viên nào trong tình trạng chưa đóng/ nợ học phí sẽ có ký hiệu "ⓘ" màu đỏ phía sau tên của học viên đó.
3. Chọn "⚙️ Cài Đặt" ở thanh công cụ phụ, hệ thống chuyển đến màn hình "Cài Đặt":
 a. Ở màn hình "Cài Đặt", những thẻ được hiển thị bao gồm Thông tin, Học viên, Giáo viên, Trợ giảng, Lịch dạy, Hóa đơn có màu ban đầu là màu xám. Thẻ đang được hiển thị sẽ chuyển từ màu xám sang cam và được gạch chân để nhấn mạnh.
 b. Chọn thẻ 'Hóa đơn' nằm ở cuối thanh công cụ trên màn hình. Hệ thống chuyển đến màn hình "Hóa đơn":
  - Màn hình này bao gồm: bảng "Quản lý hóa đơn" có tên màu đen, nút "Thêm hóa đơn" ký hiệu màu trắng nền cam hình tròn, bảng này thể hiện các hóa đơn của học viên trong lớp học được thêm vào trước đó.
   + Bảng "Quản lý hóa đơn" bao gồm các cột Hóa Đơn, Tên Học Viên, Giá Trị, nút "✏️" ( hoặc tương tự) để cập nhật hóa đơn thông qua popup "Cập nhật".

TRƯỜNG HỢP CHƯA CÓ HÓA ĐƠN CỦA HỌC VIÊN

  - Chọn nút "Thêm hóa đơn" để thêm mới một hóa đơn thông qua popup "Thêm":
   + Popup "Thêm" có nền màu trắng, các dòng thông tin Chọn hóa đơn, Chọn học viên có màu đen. Các droplist 'Chọn hóa đơn' và 'Chọn học viên' hiển thị các danh sách hóa đơn và học viên đã có trên hệ thống. Nút "Hủy" màu xám nền trắng để hủy chức năng và nút "Thêm" chữ trắng nền cam để thực hiện chức năng thêm hóa đơn cho học viên.
   + Lần lượt chọn hóa đơn đã được lập, sau đó chọn học viên tương ứng để gán hóa đơn.
  Lưu ý rằng, việc chọn học viên chỉ có thể diễn ra sau khi đã chọn hóa đơn.
  - Chọn thẻ 'Học viên', hệ thống hiển thị màn hình "Học viên", tại bảng Danh sách học viên cột Học phí của học viên cần thanh toán học phí, chọn biểu tượng màu cam, nếu học viên đã từng thanh toán học phí cho lớp học đang chọn trước đó, biểu tượng sẽ có thêm số hóa đơn ở góc phải bên trên.
  - Sau khi chọn, popup "Thêm" sẽ được hiển thị sau khi tải xong:
   + Ở popup "Thêm" nền trắng, tên các ô nhập liệu có màu đen, droplist 'Chọn hóa đơn' sẽ hiển thị các hóa đơn được gán với học viên đó.
   + Sau khi chọn hóa đơn, nhập số tiền muốn thanh toán vào ô "Giá trị", số tiền nhập vào phải nhỏ hơn hoặc bằng giá trị còn lại của hóa đơn, nói cách khác chính là 'số dư tài khoản' của 'tài khoản' tương ứng với học viên.

TRƯỜNG HỢP ĐÃ CÓ HÓA ĐƠN CỦA HỌC VIÊN

  - Kiểm tra hóa đơn tại màn hình "Hóa đơn", hóa đơn đã thêm sẽ được nhìn thấy ở bảng 'Quản lý hóa đơn'.
  - Chọn thẻ 'Học viên', hệ thống hiển thị màn hình "Học viên", tại bảng Danh sách học viên cột Học phí của học viên cần thanh toán học phí, chọn biểu tượng màu cam, nếu học viên đã từng thanh toán học phí cho lớp học đang chọn trước đó, biểu tượng sẽ có thêm số hóa đơn ở góc phải bên trên.
  - Sau khi chọn, popup "Thêm" sẽ được hiển thị sau khi tải xong:
   + Ở popup "Thêm" nền trắng, tên các ô nhập liệu có màu đen, droplist 'Chọn hóa đơn' sẽ hiển thị các hóa đơn được gán với học viên đó.
   + Sau khi chọn hóa đơn, nhập số tiền muốn thanh toán vào ô "Giá trị", số tiền nhập vào phải nhỏ hơn hoặc bằng giá trị còn lại của hóa đơn, nói cách khác chính là 'số dư tài khoản' của 'tài khoản' tương ứng với học viên.
Điều kiện -Người dùng phải đăng nhập thành công với vai trò Admin hoặc Support và có quyền truy cập vào chức năng quản lý hóa đơn.
- Hóa đơn được chọn phải đã được tạo sẵn trong hệ thống và ở trạng thái hợp lệ (ví dụ: không ở trạng thái Hủy đơn hoặc Hoàn tiền).
- Học viên được chọn phải có Mã Học Viên hợp lệ và đã được gán vào lớp học tương ứng.
- Lớp học được chọn phải tồn tại trong hệ thống và có ít nhất một học viên đang hoạt động.
- Số tiền nhập vào ô Giá trị (luồng Trích tiền) phải nhỏ hơn hoặc bằng số dư còn lại của hóa đơn được chọn (tương ứng với 'số dư tài khoản' của học viên).
- Các trường thông tin bắt buộc trong popup Thêm (như Chọn hóa đơn, Chọn học viên, Giá trị) không được để trống khi thực hiện thao tác.
- Hệ thống phải hoàn tất việc tải dữ liệu danh sách hóa đơn và học viên trước khi cho phép thực hiện thao tác gán hoặc trích tiền.
- Trong trường hợp học viên đã có hóa đơn được gán trước đó, hệ thống phải cho phép chọn hóa đơn hiện có để thực hiện trích tiền mà không yêu cầu tạo mới hóa đơn.
Kết quả hiển thị - Sau khi hoàn tất thao tác Thêm hóa đơn:
 + Bảng "Quản lý hóa đơn" trong tab Hóa đơn được cập nhật ngay lập tức, hiển thị dòng mới với các thông tin: Hóa Đơn (tên hóa đơn), Tên Học Viên, Giá Trị (số tiền đã gán), và nút chỉnh sửa (✏️) để cập nhật hóa đơn.
 + Hóa đơn vừa thêm xuất hiện ở dòng cuối cùng của bảng, sắp xếp theo thứ tự thời gian thêm mới nhất.
 + Tại bảng "Danh sách học viên", cột Học phí của học viên tương ứng được cập nhật, hiển thị biểu tượng màu cam với số lượng hóa đơn (nếu có nhiều hóa đơn) ở góc phải trên cùng.
- Sau khi hoàn tất thao tác Trích tiền:
 + Số dư của hóa đơn được cập nhật trên hệ thống, số dư có thể nhìn thấy trong lần trích tiền tiếp theo.
Tương lai : số dư hóa đơn sẽ được cập nhật tại mục Giá Trị trong bảng "Quản lý hóa đơn".
 + Trong màn hình "Tổng quan lớp", trạng thái học phí của học viên chuyển từ Chưa thanh toán (biểu tượng ⓘ màu đỏ) sang Đã thanh toán (không còn biểu tượng ⓘ) nếu số tiền trích đủ để thanh toán học phí.
 Lịch sử trích tiền được ghi nhận và có thể xem lại trong giao diện chi tiết ở thẻ Học viên.
Sau khi nhấn nút "Thêm" trong popup "Thêm", hệ thống hiển thị thông báo "Đã thêm dữ liệu".
Các droplist (Chọn hóa đơn, Chọn học viên) biểu thị hóa đơn và học viên được chọn bằng cách làm cho lựa chọn đó đậm màu hơn.
Trường hợp không có dữ liệu - Không có học viên trong lớp:
 + Bảng "Danh sách học viên" trong thẻ Học viên không hiển thị dữ liệu.
 Thẻ Hóa đơn hiển thị bảng "Quản lý hóa đơn" trống icon thùng rỗng màu cam và chữ "Bảng dữ liệu này đang trống".
 Popup Thêm trong tab Hóa đơn không hiển thị danh sách học viên trong droplist 'Chọn học viên' và nút "Thêm" không thể thao tác nếu không có dữ liệu.
- Không có hóa đơn trong hệ thống:
 + Droplist 'Chọn hóa đơn' trong popup "Thêm" hiển thị trống.
 + Nút Thêm trong popup "Thêm" không thể thao tác nếu không có dữ liệu.
- Không có số dư trong hóa đơn:
 + Trong popup "Thêm" ở thẻ Học viên, nếu hóa đơn đã hết số dư, hệ thống hiển thị dòng chữ dưới ô Giá trị trong popup "Thêm": "Giá trị <=0".
- Nếu hệ thống không thể tải danh sách học viên hoặc hóa đơn, liên hệ đội ngũ hỗ trợ.

15 Quản lý giftcode (Admin)

15.1 Chức năng thống kê giftcode

Chức năng thống kê giftcode
Trường Nội dung
Tên chức năng Thống kê giftcode
Vai trò Admin
Mô tả Cho phép Admin xem lại danh sách các giftcode đã có trong hệ thống, bao gồm thông tin chi tiết như mã giftcode, ngày hết hạn, số tháng miễn phí, số thiết bị tối đa, trạng thái. Mô tả các trạng thái giftcode như sau:
Còn hạn: nếu giftcode vẫn còn có thể sử dụng và chưa được sử dụng lần nào.
Đã hết hạn: nếu giftcode quá hạn sử dụng.
Đã dùng: nếu giftcode đã được dùng ít nhất một lần (có thể dùng lại nếu còn lượt) và vẫn còn hạn sử dụng.
Chức năng hỗ trợ xem danh sách khi có dữ liệu hoặc không có dữ liệu, giúp quản lý tổng quan và hỗ trợ các thao tác chỉnh sửa, khôi phục hoặc xem thông số giftcode.
Giao diện liên quan 1. Màn hình "Danh sách giftcode" (truy cập từ menu CÔNG CỤ > sub-menu GIFTCODE).
2. Bảng dữ liệu "Danh sách giftcode" với các cột: Gift code, Ngày hết hạn, Số tháng miễn phí, Số thiết bị tối đa, Trạng thái.
3. Popup "THÔNG TIN GIFTCODE" (nếu cần xem thông tin mở rộng).
Luồng thao tác chính 1. Chọn menu CÔNG CỤ --> sub-menu GIFTCODE để truy cập màn hình chứa "Danh sách giftcode".
2. Hệ thống tải và hiển thị bảng dữ liệu giftcode đã tạo trước đó.
3. Bảng dữ liệu:
 3.1: Nếu có giftcode, hiển thị đầy đủ thông tin theo cột.
 3.2: Nếu không, hiển thị thông báo bảng trống.
4. Admin có thể chọn một giftcode để xem chi tiết hoặc thực hiện các hành động liên quan (chỉnh sửa, khôi phục).
Điều kiện 1. Admin đã đăng nhập vào tài khoản với phân quyền hợp lệ.
2. Hệ thống đã được xây dựng chức năng tạo và sử dụng giftcode.
3. Giao diện hiển thị đầy đủ để truy cập qua menu CÔNG CỤ và sub-menu GIFTCODE.
Kết quả hiển thị - Bảng "Danh sách giftcode" hiển thị các cột: Gift code (mã duy nhất), Ngày hết hạn (định dạng ngày/tháng/năm), Số tháng miễn phí (số nguyên), Số thiết bị tối đa (số nguyên), Trạng thái (Còn hạn,Đã hết hạn,Đã dùng).
- Dữ liệu được sắp xếp theo thứ tự tạo mới nhất (giftcode mới ở cuối bảng).
- Nếu giftcode hết hạn hoặc hết lượt sử dụng, trạng thái được cập nhật tương ứng (ví dụ: Hết hạn với màu đỏ để nổi bật).
- Hỗ trợ cuộn bảng nếu danh sách dài.
Trường hợp không có dữ liệu - Bảng "Danh sách giftcode" hiển thị thông báo "Bảng dữ liệu trống" kèm icon hộp rỗng màu hồng.
- Không hiển thị bất kỳ dòng dữ liệu nào.
- Các nút hành động (như Tạo giftcode) vẫn khả dụng để khuyến khích tạo mới.

15.2 Chức năng tạo giftcode

Chức năng tạo giftcode
Trường Nội dung
Tên chức năng Tạo giftcode
Vai trò Admin
Mô tả Cho phép Admin tạo mới một giftcode để cấp cho học viên, với các thông tin tùy chỉnh như mã người nhận (tùy chọn), số tháng miễn phí, số thiết bị, ngày hết hạn, ghi chú.
Hệ thống tự động tạo mã giftcode ngẫu nhiên, không cho phép chỉnh sửa mã thủ công. Hỗ trợ các trường hợp tạo với ngày hết hạn hợp lệ/không hợp lệ, và có thể tạo mà không nhập mã người nhận.
Giao diện liên quan 1. Màn hình "Danh sách giftcode".
2. Popup "THÔNG TIN GIFTCODE" (hiển thị khi nhấn nút "Tạo giftcode").
3. Popup phiếu điện tử giftcode (hiển thị sau khi tạo thành công, kèm mã QR và thông tin liên quan).
Luồng thao tác chính 1. Từ màn hình "Danh sách giftcode", nhấn nút "Tạo giftcode" (màu hồng, góc phải trên).
2. Popup "THÔNG TIN GIFTCODE" hiển thị với các trường mặc định: Số tháng miễn phí (1 tháng), Số thiết bị (3), Ngày hết hạn (ngày hiện tại), Mã người nhận và Ghi chú (tùy chọn).
3. Nhập/thay đổi thông tin hợp lệ (bao gồm hoặc không mã người nhận).
4. Nhấn nút "Tạo giftcode"; hệ thống hiển thị "Loading..." trong quá trình xử lý.
5. Nếu thành công, hiển thị thông báo "Cập nhật dữ liệu thành công !" và popup phiếu điện tử với mã QR, trị giá, thời hạn, số thiết bị.
6. Giftcode mới được thêm vào cuối bảng danh sách, trạng thái "Còn hạn".
Điều kiện - Hệ thống đã xây dựng chức năng tạo giftcode.
- Admin có phân quyền đầy đủ.
- Các trường bắt buộc (Số tháng miễn phí, Số thiết bị, Ngày hết hạn) phải hợp lệ (ngày hết hạn >= ngày hiện tại, số nguyên dương).
- Không cho phép thay đổi mã giftcode thủ công (hệ thống tự sinh).
- Nếu ngày hết hạn không hợp lệ (ví dụ: quá khứ), hệ thống từ chối tạo và hiển thị lỗi.
Kết quả hiển thị - Popup phiếu điện tử: Mã giftcode (ngẫu nhiên), trị giá (số tháng miễn phí), thời hạn sử dụng, hạn sử dụng giftcode, số lượng thiết bị, mã QR.
- Bảng danh sách cập nhật ngay lập tức với giftcode mới ở dòng cuối, trạng thái "Còn hạn".
- Nếu nhập mã người nhận, hệ thống lưu trữ để đối chiếu sau (không hiển thị công khai).
- Thông báo thành công màu xanh, kèm tùy chọn tải phiếu điện tử (nếu hỗ trợ).
Trường hợp không có dữ liệu - Nếu không có giftcode trước đó, bảng danh sách vẫn hiển thị trống trước khi tạo; sau tạo, giftcode đầu tiên được thêm.
- Nếu ngày hết hạn không hợp lệ hoặc thiếu dữ liệu bắt buộc, hiển thị lỗi cụ thể (ví dụ: "Ngày hết hạn phải lớn hơn hoặc bằng ngày hiện tại") và không tạo giftcode.

15.3 Chức năng cập nhật giftcode

Chức năng cập nhật giftcode
Trường Nội dung
Tên chức năng Cập nhật giftcode
Vai trò Admin
Mô tả Cho phép Admin chỉnh sửa thông tin giftcode hiện có, bao gồm thêm/xóa mã người nhận, gia hạn ngày hết hạn, cập nhật trạng thái (nếu hết lượt sử dụng), hoặc hủy cập nhật.
Không cho phép thay đổi mã giftcode. Hỗ trợ cập nhật giftcode hết hạn/hết lượt sử dụng mà không cần thay đổi hạn sử dụng, và cập nhật mà không thay đổi thông tin (kiểm tra không thay đổi).
Giao diện liên quan 1. Màn hình "Danh sách giftcode".
2. Popup "THÔNG TIN GIFTCODE" (hiển thị khi chọn giftcode và nhấn chỉnh sửa).
Luồng thao tác chính 1. Từ bảng "Danh sách giftcode", chọn một giftcode cần cập nhật (nhấn vào dòng dữ liệu).
2. Popup "THÔNG TIN GIFTCODE" hiển thị với thông tin hiện tại.
3. Thay đổi thông tin (thêm/xóa mã người nhận, gia hạn ngày hết hạn, cập nhật lượt sử dụng/trạng thái).
4. Nhấn "Cập nhật"; hệ thống hiển thị "Vui lòng đợi..." và kiểm tra thay đổi.
5. Nếu thành công, hiển thị thông báo "Cập nhật dữ liệu thành công !" và bảng danh sách cập nhật ngay.
6. Nếu hủy, nhấn nút "Hủy" để đóng popup mà không lưu thay đổi.
Điều kiện - Giftcode đã tồn tại trong hệ thống.
- Admin có phân quyền đầy đủ.
- Ngày hết hạn mới phải hợp lệ (>= ngày hiện tại nếu gia hạn).
- Nếu cập nhật thêm lượt sử dụng, trạng thái tự động chuyển sang "Còn hạn".
- Nếu không có thay đổi thông tin, hệ thống vẫn cho phép xác nhận.
Kết quả hiển thị - Bảng danh sách cập nhật thông tin mới (ví dụ: ngày hết hạn mới, trạng thái cập nhật).
- Nếu thêm mã người nhận, lưu trữ để đối chiếu; nếu xóa, xóa thông tin liên kết.
- Thông báo thành công; nếu cập nhật giftcode hết lượt sử dụng, trạng thái chuyển "Còn hạn" nếu gia hạn thành công.
- Popup phiếu điện tử sau cập nhật.
Trường hợp không có dữ liệu - Nếu giftcode hết hạn, vẫn cho phép cập nhật các tiêu chí khác nhưng cảnh báo "Giftcode đang hết hạn, vui lòng gia hạn để kích hoạt".

15.4 Chức năng tìm kiếm giftcode

Chức năng tìm kiếm giftcode
Trường Nội dung
Tên chức năng Tìm kiếm giftcode
Vai trò Admin
Mô tả Cho phép Admin tìm kiếm giftcode trong danh sách dựa trên từ khóa (mã giftcode), cho phép tìm bằng ký tự đặc biệt và xử lý trường hợp không tìm thấy.
Kết quả hiển thị nhanh chóng, lọc bảng danh sách theo tiêu chí tìm kiếm.
Giao diện liên quan 1. Màn hình "Danh sách giftcode".
2. Ô tìm kiếm (thường ở góc phải trên bảng, với icon kính lúp).
Luồng thao tác chính 1. Từ màn hình "Danh sách giftcode", nhập từ khóa vào ô tìm kiếm.
2. Nhấn Enter hoặc không làm gì; hệ thống lọc và hiển thị kết quả khớp.
3. Nếu tìm bằng ký tự đặc biệt (ví dụ: @, #, ...), hệ thống vẫn xử lý và trả kết quả không tìm thấy giftcode nào.
4. Xóa từ khóa để quay về danh sách đầy đủ.
Điều kiện - Có ít nhất một giftcode trong hệ thống (đối với trường hợp tìm thấy).
- Từ khóa phải khớp ít nhất một phần thông tin giftcode (mã giftcode).
- Cho phép tìm ký tự đặc biệt mà không báo lỗi.
- Không phân biệt chữ hoa/thường.
Kết quả hiển thị - Bảng danh sách lọc chỉ hiển thị giftcode khớp từ khóa, với các cột đầy đủ.
Trường hợp không có dữ liệu - Nếu không tìm thấy, hiển thị bảng danh sách trống, không kèm theo thông báo nào. Bảng danh sách trống tạm thời, nhưng vẫn giữ nguyên khi xóa từ khóa.
- Nếu bảng gốc trống, tìm kiếm không thay đổi (vẫn hiển thị "Bảng dữ liệu trống").