# Phân Hệ Quản Lý Danh Sách Học Viên Đến Lịch Thi (Web Exam Schedule)
## 06. Hướng Dẫn Vận Hành & Xử Lý Sự Cố (SOP & Troubleshooting)

> **Mục tiêu**: Cẩm nang hướng dẫn thao tác chuẩn từng bước (Standard Operating Procedure - SOP) và sổ tay xử lý sự cố thường gặp trên giao diện Web UI dành cho Cán bộ Vận hành Thi, Giáo vụ và Bộ phận Chăm sóc Học viên (CSKH).

---

## 📌 1. Tổng Quan Trách Nhiệm Vận Hành

Cán bộ Vận hành Thi chịu trách nhiệm điều phối toàn bộ lịch thi của học viên trên màn hình **Quản lý DSHV đến lịch thi** (`exam-schedule.index`):
- Đảm bảo học viên được kích hoạt lịch thi đúng hạn theo lộ trình học.
- Xử lý linh hoạt các yêu cầu xin hoãn lịch thi, thi sớm hoặc cấp quyền thi lại.
- Giám sát trạng thái thi và hỗ trợ kịp thời khi học viên gặp sự cố không vào được bài thi.
- Xuất dữ liệu báo cáo đối soát phục vụ giao ban hàng tuần.

---

## 📖 2. Quy Trình Thao Tác Chuẩn (Standard Operating Procedures - SOP)

### 🔹 SOP-ES-01: Quy Trình Tra Cứu & Rà Soát Học Viên
1. **Truy cập màn hình**: Đăng nhập LMS ➔ Menu trái ➔ Chọn **Quản lý thi** ➔ Nhấp **Quản lý DSHV đến lịch thi**.
2. **Bộ lọc tìm kiếm**:
   - Nhập Mã học viên, Tên hoặc Số điện thoại vào ô **Tìm kiếm**.
   - Chọn bộ lọc **Trạng thái**: Chọn `Đang mở` (nếu muốn xem các bạn đang trong thời gian thi) hoặc `Đã đóng` (nếu cần rà soát bài đã hết hạn).
   - Chọn **Khoảng ngày thi**: Thiết lập ngày bắt đầu và kết thúc kỳ thi cần rà soát.
3. **Xem kết quả**: Bảng hiển thị thông tin học viên, tên bài thi, thời gian mở/đóng, trạng thái nộp bài và các nút thao tác.

---

### 🔹 SOP-ES-02: Quy Trình Tạo Mới Lịch Thi Cho Học Viên
> Áp dụng khi cần giao lịch thi thủ công cho học viên học bù, thi bổ sung hoặc thi theo diện đặc biệt.

```mermaid
flowchart TD
    Step1["Nhấn '+ Tạo lịch thi mới'"] --> Step2["Tìm & Chọn Học viên (theo Tên/SĐT)"]
    Step2 --> Step3["Chọn Khóa học & Bài thi tương ứng"]
    Step3 --> Step4["Thiết lập Thời gian: Bắt đầu & Hạn nộp"]
    Step4 --> Step5["Chọn Phân loại: Đúng lộ trình / Thi lại / Thi sớm"]
    Step5 --> Step6["Nhấn 'Lưu' & Kiểm tra thông báo Toast xanh"]
```

* **Bước 1**: Nhấn nút **+ Tạo lịch thi mới** ở góc trên bên phải màn hình.
* **Bước 2**: Trong modal mở ra, nhập tên hoặc số điện thoại của học viên vào ô chọn học viên. Chọn đúng học viên từ danh sách gợi ý.
* **Bước 3**: Chọn **Khóa học** và **Bài thi** (Mocktest/Định kỳ) mà học viên cần thi.
* **Bước 4**: Điền **Thời gian bắt đầu** (giờ hệ thống mở bài) và **Hạn nộp bài** (giờ đóng bài thi).
  > [!IMPORTANT]
  > Thời gian bắt đầu bắt buộc phải diễn ra trước Hạn chót nộp bài. Thời gian làm bài nên tính dư tối thiểu 30-60 phút so với thời lượng thi để dự phòng sự cố mạng.
* **Bước 5**: Chọn **Loại yêu cầu**:
  - `Đúng lộ trình`: Học viên thi theo kế hoạch chuẩn.
  - `Thi lại`: Học viên được cấp quyền thi lại do lần 1 chưa đạt hoặc gặp sự cố bất khả kháng (cần ghi rõ lý do vào ô Ghi chú).
  - `Thi sớm`: Học viên có nguyện vọng đẩy nhanh tiến độ học tập.
* **Bước 6**: Nhấn **Lưu**. Quan sát thông báo Toast màu xanh hiển thị thành công. Kiểm tra dòng lịch thi mới xuất hiện trên đầu danh sách.

---

### 🔹 SOP-ES-03: Quy Trình Đổi Lịch Thi (Xin Hoãn / Lùi Lịch)
> Áp dụng khi học viên có đơn xin đổi ngày thi trước khi bài thi diễn ra.

1. Tìm kiếm học viên cần đổi lịch trên bảng danh sách.
2. Tại cột **Thao tác**, nhấp vào nút **Đổi lịch** (biểu tượng Cuốn lịch / Chiếc bút).
3. Modal **Cập nhật lịch thi** xuất hiện:
   - Điều chỉnh lại **Thời gian bắt đầu** và **Hạn nộp mới**.
   - Nhập bắt buộc lý do đổi lịch vào ô **Ghi chú** (Ví dụ: *"Học viên bận thi học kỳ tại trường phổ thông, dời sang ngày 20/10"*).
4. Nhấn **Xác nhận cập nhật**.
5. Hệ thống sẽ lưu lại thời gian cũ vào lịch sử để kiểm toán (Audit Trail) và hiển thị thời gian mới.

---

### 🔹 SOP-ES-04: Quy Trình Gia Hạn Lịch Thi Khẩn Cấp (Extend Deadline)
> Áp dụng khi học viên đang làm bài hoặc sát giờ nộp bài nhưng gặp sự cố mạng/mất điện cần gia hạn thêm thời gian.

1. Nhấp nút **Gia hạn** (biểu tượng Đồng hồ cát) trên dòng học viên cần gia hạn.
2. Chọn thời gian gia hạn:
   - Có thể chọn nút cộng nhanh: `+2 giờ`, `+12 giờ`, `+24 giờ`, `+48 giờ`.
   - Hoặc tự chọn thời điểm chính xác tại ô **Hạn nộp mới**.
3. Điền lý do gia hạn (Ví dụ: *"Gia hạn 2h do học viên gặp sự cố mạng lúc làm bài Speaking"*).
4. Nhấn **Xác nhận gia hạn**. Lịch thi nếu đã đóng sẽ lập tức chuyển sang trạng thái `Đang mở`.

---

### 🔹 SOP-ES-05: Quy Trình Gửi Tin Nhắn Nhắc Lịch Thi
1. Trước ngày thi 1-2 ngày, lọc danh sách học viên có trạng thái `Đang mở` và chưa hoàn thành bài thi.
2. Trên từng dòng học viên, nhấp vào nút **Nhắc thi** (biểu tượng Chuông / Zalo).
3. Hệ thống sẽ kích hoạt gửi tin nhắn thông báo (qua Zalo ZNS hoặc SMS/App Notification) kèm link vào thi cho học viên.
4. Cột **Lần nhắc gần nhất** sẽ hiển thị thời gian vừa gửi để tránh gửi lặp lại nhiều lần.

---

### 🔹 SOP-ES-06: Quy Trình Xuất File Báo Cáo
1. Thiết lập các bộ lọc cần báo cáo (Ví dụ: Tháng thi, Khóa học, Trạng thái).
2. Nhấn nút **Xuất Báo Cáo (CSV)** ở thanh công cụ phía trên bảng.
3. Xuất hiện cửa sổ thanh tiến độ (Progress Bar):
   - Đang chuẩn bị dữ liệu...
   - Tiến độ: `15%` ➔ `50%` ➔ `100%`.
4. Khi hoàn thành, trình duyệt sẽ tự động kích hoạt tải xuống tệp tin nén dạng `.zip` (bên trong chứa file `.csv` dữ liệu UTF-8).
5. Mở file CSV bằng Microsoft Excel hoặc Google Sheets để rà soát.

---

## 🛠️ 3. Cẩm Nang Xử Lý Sự Cố Thường Gặp (Troubleshooting & FAQ)

### ❓ Sự cố 1: Học viên phản ánh "Không vào được bài thi" dù trên lịch hiển thị "Đang mở"
* **Nguyên nhân có thể**:
  1. Giờ hệ thống trên máy tính của học viên bị sai lệch so với giờ chuẩn của máy chủ.
  2. Học viên chưa đăng nhập đúng tài khoản đã được phân lịch (dùng sai tài khoản email/SĐT).
  3. Lịch thi trên LMS đã mở nhưng chưa đồng bộ quyền sang khóa học Moodle Core.
* **Cách xử lý của Vận hành**:
  1. Kiểm tra lại cột **Mã học viên** và **Email** của học viên trên màn hình LMS xem có đúng tài khoản học viên đang dùng không.
  2. Hướng dẫn học viên đăng xuất, xóa cache trình duyệt (Ctrl + Shift + R) và đăng nhập lại.
  3. Nếu vẫn không được, cán bộ vận hành bấm nút **Cập nhật lịch thi** ➔ Nhấn **Lưu** lại một lần nữa để kích hoạt lại tiến trình đồng bộ quyền.

---

### ❓ Sự cố 2: Nút "Đổi lịch" hoặc "Xóa lịch thi" bị mờ (Disabled) không bấm được
* **Nguyên nhân**: Học viên này **ĐÃ NỘP BÀI THI** hoặc đã có kết quả điểm số ghi nhận trong hệ thống.
* **Quy định nghiệp vụ**: Để đảm bảo tính toàn vẹn của dữ liệu điểm số, hệ thống cấm tuyệt đối việc xóa hoặc đổi lịch của một bài thi đã hoàn thành.
* **Cách xử lý**:
  - Nếu học viên cần thi lại lần khác: Cán bộ vận hành **KHÔNG** sửa lịch cũ, mà nhấn **+ Tạo lịch thi mới** ➔ Chọn loại yêu cầu là `Thi lại` để tạo một lượt thi độc lập mới.

---

### ❓ Sự cố 3: Không tìm thấy học viên trong ô tìm kiếm khi Tạo Lịch Thi
* **Nguyên nhân**:
  1. Học viên chưa được tạo tài khoản trên hệ thống LMS.
  2. Học viên chưa được ghi danh (Enroll) vào Khóa học tương ứng với kỳ thi.
* **Cách xử lý**:
  1. Vào menu **Quản lý học viên** kiểm tra xem tài khoản học viên đã tồn tại và ở trạng thái Hoạt động (Active) hay chưa.
  2. Kiểm tra xem học viên đã được thêm vào lớp học/khóa học chứa đề thi hay chưa. Nếu chưa, liên hệ Giáo vụ phụ trách lớp để enroll học viên trước khi tạo lịch.

---

### ❓ Sự cố 4: Xuất báo cáo bị đứng ở mức 0% hoặc báo lỗi "Không thể tạo file"
* **Nguyên nhân**:
  - Số lượng bản ghi quá lớn (hàng chục nghìn dòng) dẫn đến tiến trình xử lý nền bị chậm trễ hoặc timeout.
* **Cách xử lý**:
  1. Không bấm liên tục nhiều lần nút Xuất để tránh gây nghẽn hàng đợi.
  2. Thu hẹp khoảng ngày tìm kiếm (ví dụ xuất theo từng tuần hoặc từng tháng thay vì xuất cả năm).
  3. Tải lại trang (F5) và thực hiện lại thao tác xuất dữ liệu.

---

## 📋 4. Checklist Vận Hành Hàng Ngày & Hàng Tuần

| Tần Suất | Đầu Việc Cần Thực Hiện | Mục Tiêu |
| :--- | :--- | :--- |
| **Đầu ngày (08:30)** | Lọc các lịch thi trạng thái `Đang mở` có hạn nộp trong ngày | Rà soát học viên chưa làm bài để phát lệnh nhắc thi qua Zalo |
| **Trong ngày** | Tiếp nhận và xử lý các yêu cầu Xin hoãn / Gia hạn khẩn cấp | Đảm bảo học viên không bị lỡ hạn nộp do sự cố khách quan |
| **Cuối ngày (17:30)** | Lọc danh sách lịch thi vừa hết hạn trong ngày (`Đã đóng`) | Đối chiếu tỷ lệ nộp bài, ghi nhận các trường hợp vắng thi không phép |
| **Thứ 6 hàng tuần** | Xuất báo cáo CSV tổng hợp tuần | Phân tích tỷ lệ hoàn thành kỳ thi và báo cáo cho Quản lý Đào tạo |
