# Bộ Tài Liệu Kỹ Thuật: Phân Hệ Quản Lý Phúc Khảo
> **Module Identifier**: `web_exam_regrading` | **Menu Path**: Quản lý lịch sử làm bài ➔ Quản lý phúc khảo | **Route**: `exam-regrading.index`

---

## 📌 Giới Thiệu Tổng Quan

Phân hệ **Quản lý phúc khảo** (`web_exam_regrading`) là cổng quản lý và điều phối chuyên sâu các bài thi tự luận (Writing, Speaking) có yêu cầu chấm lại từ học viên hoặc do cán bộ vận hành kích hoạt:
- **Lượt chấm phúc khảo (`assign_type = 2`)**: Độc lập hoàn toàn với lượt chấm lần 1.
- **Cơ chế chấm không thiên vị (Unbiased)**: Khi mở phúc khảo, điểm bài thi trên giao diện của QA được reset về điểm gốc (Raw Score) để QA đánh giá khách quan nhất.
- **Đối soát 2 lớp điểm (Trước PK vs Sau PK)**: So sánh trực quan điểm số GV1 (`scoreBeforePk`) và điểm QA (`scoreAfterPk`).
- **Giám sát vi phạm & Gian lận**: Tự động bóc tách chi tiết các báo cáo vi phạm (`cheating_reports`) phục vụ hội đồng phúc khảo.
- **Chốt điểm chính thức**: Điểm sau phúc khảo được cập nhật vào `student_score` và tự động đồng bộ sang hệ thống Zeus / ICL.

---

## 📂 Cấu Trúc Bộ Tài Liệu

Bộ tài liệu kỹ thuật được chuẩn hóa thành 6 file chuyên sâu:

| STT | Tài liệu | Nội dung chính | Liên kết |
| :---: | :--- | :--- | :--- |
| **01** | **Use Case & Luồng Hoạt Động** | • Danh sách tác nhân (QA, Operator, Zeus)<br>• Sơ đồ Use Case tổng thể<br>• Chi tiết luồng nghiệp vụ phúc khảo từ tiếp nhận ➔ phân công QA ➔ chấm lại ➔ duyệt & đồng bộ điểm | [Xem chi tiết](file:///var/www/html/lms_hocmai/van-hanh-thi/quan-ly-phuc-khao/01_use_case_va_luong_hoat_dong.md) |
| **02** | **Quy Tắc Nghiệp Vụ (Business Logic)** | • Phân định lượt chấm phúc khảo (`tah.assign_type = 2`)<br>• Cơ chế reset về điểm gốc tránh thiên vị khi QA chấm lại<br>• Logic trích xuất `scoreBeforePk` vs `scoreAfterPk`<br>• Logic bóc tách báo cáo gian lận (`cheating_reports`)<br>• Quy trình chốt điểm và đồng bộ Zeus | [Xem chi tiết](file:///var/www/html/lms_hocmai/van-hanh-thi/quan-ly-phuc-khao/02_business_logic.md) |
| **03** | **Sơ Đồ Chức Năng & Thiết Kế API** | • Kiến trúc thành phần hệ thống<br>• Flowchart xử lý chi tiết cho hàm `getExamRegrading`<br>• Đặc tả chi tiết API Endpoint `GET /exam-regrading/get-exam-regrading` | [Xem chi tiết](file:///var/www/html/lms_hocmai/van-hanh-thi/quan-ly-phuc-khao/03_function_diagram_va_function_design.md) |
| **04** | **Cơ Sở Dữ Liệu & Schema** | • Sơ đồ thực thể liên kết (ERD Diagram)<br>• Data Dictionary chi tiết kèm comment tiếng Việt cho các bảng: `teacher_assigned_histories`, `student_score_grading_histories`, `student_exam_histories_teachers`, `student_score` | [Xem chi tiết](file:///var/www/html/lms_hocmai/van-hanh-thi/quan-ly-phuc-khao/04_database_va_database_schema.md) |
| **05** | **Kịch Bản Kiểm Thử (Test Cases)** | • Ma trận kiểm thử chức năng giao diện (Bộ lọc đơn PK, Cơ chế chấm Unbiased Raw Score, Đối soát Trước/Sau PK, Báo cáo Cheating, Phê duyệt chốt điểm)<br>• Bộ kịch bản chi tiết P0-P2<br>• Kiểm thử biên độ lệch điểm lớn và hủy kết quả vi phạm | [Xem chi tiết](file:///var/www/html/lms_hocmai/van-hanh-thi/quan-ly-phuc-khao/05_test_cases_va_kiem_thu.md) |
| **06** | **Hướng Dẫn Vận Hành & Sự Cố** | • Quy trình thao tác chuẩn (SOP) dành cho Hội đồng Phúc khảo và Cán bộ QA<br>• Quy chế tiếp nhận, phân công QA độc lập và thẩm định hồ sơ vi phạm<br>• Xử lý sự cố thực tế (Đồng bộ Zeus/ICL, Lệch điểm lớn, SLA 3-5 ngày) | [Xem chi tiết](file:///var/www/html/lms_hocmai/van-hanh-thi/quan-ly-phuc-khao/06_huong_dan_van_hanh_va_troubleshooting.md) |

---

## 🛠️ Ma Trận File & Thành Phần Kỹ Thuật (Source Code Mapping)

| Khối Chức Năng | File Mã Nguồn Liên Quan |
| :--- | :--- |
| **Cấu hình Quyền & Menu** | • [config/tenant_groups.php](file:///var/www/html/lms_hocmai/config/tenant_groups.php#L827-L848) |
| **Định tuyến (Routes)** | • [routes/web.php](file:///var/www/html/lms_hocmai/routes/web.php#L638-L641) (`prefix: exam-regrading`) |
| **Controller** | • [app/Http/Controllers/ExamRegradingController.php](file:///var/www/html/lms_hocmai/app/Http/Controllers/ExamRegradingController.php) |
| **Models (Eloquent)** | • `app/Models/TeacherAssignedHistory.php`<br>• `app/Models/StudentScoreGradingHistory.php`<br>• `app/Models/StudentExamHistoryTeacher.php`<br>• `app/Models/StudentScore.php`<br>• `app/Models/StudentExamHistory.php` |
| **Services & Engines** | • `app/Services/IclScoreService.php`<br>• `app/Services/ApiMoodleService.php` |
| **Giao diện (Blade Views)** | • `resources/views/exam-regrading/index.blade.php` |
| **Frontend Logic (JS)** | • `public/js/exam-regrading/exam-regrading.js`<br>• `public/js/exam-schedule-result/exam-history/exam-detail-modal.edit.js` |
