# Module `sh-kiosk` — Check-in & chống thi hộ

> 07/7/2026 · Giai đoạn: **WS sát hạch · v3** · WS sát hạch · Bản HTML: [sh-kiosk.html](sh-kiosk.html) · Sơ đồ tổng thể: [../so-do-ws-module-feature-2026-07-06.md](../so-do-ws-module-feature-2026-07-06.md)
> Trạng thái: v3 — phần cứng kiosk lắp ráp thương mại; giá trị ở phần mềm đối chiếu.

## 1. Vai trò
Kiosk đón tiếp: **check-in thí sinh, đối chiếu khuôn mặt chống thi hộ**, tra cứu số báo danh/ca thi.

## 2. Feature / BO / Action

| Feature | BO chính | Action |
|---|---|---|
| `checkin` | Lượt check-in | view·export·**checkin**·**verify** |

## 3. Dữ liệu chính

| BO | Trường chính |
|---|---|
| **Lượt check-in** | Thí sinh × nội dung thi · ảnh chụp tại chỗ ↔ ảnh hồ sơ · kết quả đối chiếu (điểm số) · thời điểm · kiosk |

## 4. Quy tắc nghiệp vụ
1. Đối chiếu khuôn mặt **ảnh tại chỗ ↔ ảnh hồ sơ**; dưới ngưỡng → chuyển xác minh thủ công (không tự chặn)
2. Ảnh + kết quả đối chiếu lưu bất biến theo lượt thi
3. Hoạt động offline được khi mất mạng, sync lại sau

## 5. Liên kết chéo
- **sh-schedule** — DS thí sinh/ca
- **sh-theory/yard** — xác nhận vào thi
- **sh-monitor** — lưu vết

## 6. Câu hỏi mở
- Ngưỡng đối chiếu + quy trình xác minh thủ công do hội đồng quy định?

## 7. Ma trận phân quyền (→ manifest & seed role)

### 7.1 Khai báo `permissions[]` trong `manifest.json`

```json
[
  {
    "group": "main",
    "feature": "checkin",
    "label": "Check-in & đối chiếu",
    "actions": [
      "view",
      "export",
      "checkin",
      "verify"
    ]
  }
]
```

> ⚠️ Action đặc thù (`checkin`, `verify`) cần bổ sung vào validator manifest — xem [plan data-scope P1](../giai-doan-1-mvp/plan-data-scope-2026-07-06.md).

### 7.2 Ma trận vai trò × feature (seed `rt_role`)

| Feature | `QTHT` | `GIAM_DOC` | `SAT_HACH` |
|---|:--:|:--:|:--:|
| `checkin` | R | R | W |

> **R** xem · **W** tạo/sửa · **A** duyệt · **—** không có quyền · ¹ dữ liệu **phân công** · ² **của chính mình** · ³ **theo trạng thái** hồ sơ. Vai trò không liệt kê = không có quyền. Permission key đầy đủ: `sh-kiosk.main.<feature>.<action>`.
> Đặc thù: +checkin,verify (SAT_HACH)
