# 04. MAPPING EXAM & QUẢN LÝ NGÂN HÀNG ĐỀ (EXAM & QUESTIONS)

Module này quản lý việc cấu hình liên kết giữa Đề thi (`exams`), Chiến dịch sản phẩm (`campaigns`), các điều kiện đầu vào và luồng tạo link thi hàng loạt (Batch Tracking).

---

## 1. Bản Đồ Tính Năng Trong Module

| Menu Item | Route Name | Controller | Blade View / Modals |
|---|---|---|---|
| **Mapping Exam** | `exam-mapping.indexV2` | `ExamMappingController@indexV2` | `resources/views/exam-mapping/index-v2.blade.php`<br>`resources/views/exam-mapping/modal/` |
| **Quản lý Exam** | `exams.index` | `ExamController@index` | `resources/views/exams/index.blade.php` |
| **Quản lý câu hỏi** | `questions.index` | `QuestionController@index` | `resources/views/questions/index.blade.php` |
| **Quản lý nhóm câu hỏi** | `group-questions.index` | `GroupQuestionController@index` | `resources/views/group-questions/index.blade.php` |

---

## 2. Quy Trình Mapping Exam (Exam Mapping Workflow)

Mapping Exam cho phép liên kết một hoặc nhiều Đề thi vào Chiến dịch cụ thể (`Campaign`), đồng thời sinh ra đường link thi có định danh học sinh:

```mermaid
graph TD
    Campaign[Chiến dịch / Campaign] --> Mapping[Exam Mapping v2]
    Exam[Đề thi / Exams] --> Mapping
    Mapping --> Config[Cấu hình Điều kiện & UTM]
    Config --> SingleLink[Tạo link thi đơn lẻ]
    Config --> BatchTracking[Tạo link hàng loạt qua Batch CSV]
    BatchTracking --> ExportCSV[Xuất file CSV chứa Link làm bài cho từng Học sinh]
```

### Các Thành Phần Modal trong Mapping Exam:
1. **`exam-selector.blade.php`**: Chọn đề thi cần gán vào chiến dịch.
2. **`config.blade.php`**: Thiết lập cấu hình điều kiện hiển thị, điểm đỗ/trượt, thời gian làm bài.
3. **`tracking.blade.php`**: Tạo link làm bài kèm tham số theo dõi (UTM Source, Campaign ID).
4. **`batch-tracking.blade.php`**:
   - Tải lên file CSV danh sách học sinh (Email, Họ tên, SĐT).
   - Hệ thống tự động sinh link làm bài riêng biệt cho từng học sinh.
   - Xuất file CSV kết quả hoàn chỉnh có link làm bài trực tiếp.

---

## 3. Cấu Trúc Đề Thi & Ngân Hàng Câu Hỏi

### 📌 1. Bảng Đề thi (`exams` / `baikiemtra`)
- Đại diện cho một đề thi hoàn chỉnh (ví dụ: *IELTS Placement Test 3.1*, *EasyPass Level 1*).
- Chứa danh sách các bài test con theo kỹ năng.

### 📌 2. Bảng Câu hỏi (`questions`) & Nhóm câu hỏi (`group_questions`)
- Quản lý nội dung đề bài (đoạn văn Reading, audio Listening, câu hỏi trắc nghiệm/điền từ).
- Phân cấp câu hỏi:
  - **Question cha**: Chứa đoạn văn (`text`), audio (`audio`), hoặc đề bài chung.
  - **Question con (`listQuestionChildren`)**: Chứa câu hỏi thành phần, các phương án lựa chọn và từ khóa đáp án đúng.
