# Giai đoạn 1 — MVP → v1.5 · Kế hoạch triển khai

> **Phạm vi thời gian:** 0–12 tháng · **Ngân sách:** 62–96 MM đầy đủ (~1,24–1,92 tỷ VNĐ @ 20tr/MM)
> **Mục tiêu chiến lược:** dựng **lõi tuân thủ bán được ngay** + **công cụ tuyển sinh (app học viên)** trên một nền tảng đa tenant, đồng thời biến trường số 1 thành **design partner** — không phải khách gia công.
>
> Tài liệu nguồn: [`../roadmap.html`](../roadmap.html) · [`../thietbi-phancung.html`](../thietbi-phancung.html) · [`../QCVN-40-2024-BGTVT.pdf`](../QCVN-40-2024-BGTVT.pdf)

---

## 1. Mục tiêu & tiêu chí thành công

| Mốc | Kết quả phải đạt | Đo bằng |
|---|---|---|
| **MVP (0–6 tháng)** | Lõi tuân thủ chạy thật ở 2–3 trung tâm thân thiết | Số giờ giấy tờ tiết kiệm/tuần · báo cáo Sở XD sinh tự động được chấp nhận |
| **v1.5 (6–12 tháng)** | LMS đạt chuẩn giám sát + app học viên + back-office trên cùng core | App là công cụ chốt bán vào trung tâm mới · lương GV tính tự động từ dữ liệu DAT |
| **Sản phẩm hóa** | Codebase tổng quát hóa, onboard được trường 2–3 | Đặc thù trường 1 nằm trong config, không trong code lõi |

**Nguyên tắc xuyên suốt (không được vi phạm):**
1. **Tuân thủ là sản phẩm lõi** — compliance ở trái tim, không phải phần phụ.
2. **Quy định = dữ liệu cấu hình** — km/giờ theo hạng, mẫu báo cáo, ngân hàng 600 câu đều là data, không hard-code. Mục tiêu cập nhật theo thông tư mới trong **vài ngày**.
3. **Multi-tenant + audit log bất biến từ ngày đầu** — dữ liệu học tập là căn cứ pháp lý, có thể bị thanh tra.
4. **Chịu được mạng kém / offline** — sync khi có mạng, không mất điểm danh/phiên học.
5. **Core vs config** — phép thử "trường thứ 5 có dùng y nguyên không?"; nếu không → là config theo tenant.

---

## 2. Phân rã công việc (workstream)

### WS0 · Nền tảng (8–12 MM) — *MVP, chặn mọi thứ khác*
- Core schema thống nhất: học viên, khóa/hạng, GV, xe, phiên học, hồ sơ.
- SSO + phân quyền theo role: chủ trung tâm / giáo vụ / giáo viên / học viên.
- Multi-tenant (tách dữ liệu theo tenant ngay từ schema, không retrofit).
- **Audit log bất biến** — mọi sửa đổi dữ liệu pháp lý truy vết được.
- Lớp cấu hình quy định (regulation-as-config): km/giờ theo hạng GPLX, mẫu báo cáo, cấu trúc đề.
- Nền offline-first / sync cho client sân bãi & tuyến huyện.

### WS1 · Lõi tuân thủ (10–14 MM) — *MVP, painkiller*
- **Đối soát DAT:** nhận dữ liệu km/giờ, cảnh báo học viên thiếu chỉ tiêu trước kỳ sát hạch; phát hiện lệch GV/xe không khớp đăng ký Sở XD.
- **Báo cáo tuân thủ:** tự sinh mẫu gửi Sở Xây dựng (kế hoạch đào tạo, DS học viên, báo cáo tốt nghiệp) — *lý do trung tâm trả tiền*.
- **Hồ sơ học viên:** ghi danh → học → sát hạch → nhận GPLX; khám sức khỏe, phân khóa/hạng.
- **Công nợ học phí theo đợt** (thực tế đóng nhiều lần).
- **Nhắc hạn giấy tờ:** đăng kiểm, giấy phép xe tập lái, GPLX & chứng chỉ GV — nhỏ nhưng rất "dính".

### WS2 · Tích hợp DAT vendor (3–5 MM, +1–2 MM mỗi vendor thêm) — *MVP*
- Connector nhận dữ liệu từ 1–2 nhà cung cấp DAT đã được phê duyệt (**dependency lớn nhất** — cần đàm phán đối tác sớm).
- Chuẩn hóa dữ liệu phiên học đổ về core → gắn thẳng vào module đối soát WS1.

### WS3 · Kit migrate dữ liệu hệ cũ (4–8 MM) — *MVP, = moat onboarding*
- Bộ connector hút hồ sơ + dữ liệu chấm điểm từ hệ cũ (mỗi vendor một adapter).
- Chạy song song 1–2 khóa để đối chiếu trước khi cắt hệ cũ (chiến lược **strangler / lõi mới thay dần**).
- Đây là kit tái dùng cho **mọi trường sau** — "chuyển toàn bộ dữ liệu cũ trong 2 tuần, không mất hồ sơ nào".

### WS4 · LMS + điểm danh khuôn mặt + 600 câu (8–12 MM) — *v1.5*
- LMS lý thuyết đạt **chuẩn giám sát học từ xa**: log thời gian học, điểm danh nhận diện khuôn mặt (mua terminal ngoài, chỉ viết tích hợp).
- Ngân hàng 600 câu dạng **dữ liệu cấu hình** — cập nhật được khi bộ đề đổi.

### WS5 · App học viên (8–12 MM) — *v1.5, differentiator tuyển sinh*
- iOS/Android: tra tiến độ km/giờ DAT thời gian thực, lịch học, đặt lịch bổ túc.
- Ôn 600 câu + thi thử.
- Thông báo qua **Zalo OA** (không chỉ push notification) + nền booking.

### WS6 · Back-office nội bộ (10–16 MM) — *v1.5*
- **CRM tuyển sinh:** lead Zalo/FB/web, phân bổ tư vấn viên, hoa hồng CTV.
- **Kế toán học phí + hóa đơn điện tử** (tích hợp nhà cung cấp HĐĐT bên thứ 3).
- **Lương GV theo giờ dạy thực tế từ dữ liệu DAT/phiên chip** — không khai tay.
- **Đội xe & tài sản:** nhiên liệu theo km DAT, bảo dưỡng, khấu hao, kho vật tư.

---

## 3. Trình tự & phụ thuộc

```
Tháng:   0 ─────────── 3 ─────────── 6 ─────────── 9 ─────────── 12
         │             │             │             │             │
WS0 ████████████████████                          nền tảng (chặn tất cả)
WS1        ██████████████████████                 lõi tuân thủ (painkiller)
WS2           ████████                             DAT connector (đàm phán vendor SỚM)
WS3              ██████████████                    kit migrate — chạy song song đối chiếu
         ── mốc MVP: pilot 2–3 trung tâm ──┤
WS4                          ████████████████      LMS + 600 câu
WS5                          ████████████████████  app học viên
WS6                             ████████████████   back-office
         ────────────────────────────── mốc v1.5 ─┤
```

**Đường găng (critical path):** WS0 → WS1 → mốc MVP. Không làm được WS1 nếu core schema + regulation-config (WS0) chưa xong.

**Phải khởi động ngày 1 (dù không nằm trên critical path code):**
- Đàm phán đối tác **1–2 vendor DAT** (dependency lớn nhất, thời gian thương mại dài).
- **Chốt IP trước dòng code đầu tiên:** công ty sở hữu 100% sản phẩm; trường 1 nhận giá ưu đãi dài hạn + quyền tác động roadmap.
- Trả lời **4 câu hỏi khảo sát hiện trạng** (mục 6) để chốt chiến lược migrate.

---

## 4. Nhân sự đề xuất

| Vai trò | Số lượng | Ghi chú |
|---|---|---|
| Senior giữ kiến trúc lõi | 1–2 | **Bắt buộc** — đội 20tr/MM thiên junior–mid, cần senior giữ core schema + multi-tenant |
| Backend (core, tuân thủ, connector) | 3–4 | |
| Mobile (app học viên) | 1–2 | |
| Frontend (web quản trị, LMS) | 1–2 | |
| QA | 1–2 | Dữ liệu là căn cứ pháp lý → test đối soát chặt |
| PM/BA + đội triển khai | 1–2 | Lọc & tổng quát hóa yêu cầu trường 1 trước khi vào backlog sản phẩm |

> **Dự phòng:** đơn giá 20tr/MM thường là lương thuần cơ cấu junior–mid → dự phòng **MM tăng 15–25%** so với cận trên, hoặc bổ sung senior.

---

## 5. Rủi ro & giảm thiểu

| Rủi ro | Mức | Giảm thiểu |
|---|---|---|
| Đối tác DAT không chốt / đổi điều khoản | **Cao** | Đàm phán 1–2 vendor song song từ ngày 1; kiến trúc connector plug-in để đổi vendor rẻ |
| Quy định đổi giữa chừng (đã đổi 3 lần/18 tháng) | **Cao** | Regulation-as-config — biến "bám thông tư nhanh" thành lợi thế cạnh tranh, không thành nợ kỹ thuật |
| Đặc thù trường 1 hóa đá trong code | Trung bình | Tách đội sản phẩm/triển khai; onboard trường 2–3 sớm (kể cả miễn phí) để ép tổng quát hóa khi còn rẻ |
| Migrate dữ liệu học viên đang học dở | Trung bình | Chạy song song đối chiếu 1–2 khóa; xác định trước dữ liệu nằm ở đâu (câu hỏi khảo sát) |
| Trượt tiến độ (đội thiên junior) | Trung bình | Senior giữ lõi; dự phòng MM 15–25%; mốc MVP hẹp, chỉ giữ phần bán được ngay |

---

## 6. Việc phải làm trước khi chốt (khảo sát hiện trạng)

Bốn câu hỏi bắt buộc trả lời trước khi khóa scope kỹ thuật:
1. Hệ chấm điểm hiện tại có còn đạt chuẩn theo TT 108/2026 không? *(nếu buộc thay → đôn "xây mới hệ sát hạch" lên sớm, ngoài phạm vi GĐ1)*
2. Trích xuất được dữ liệu từ hệ cũ không? (DB mở / xuất file / hệ đóng) → quyết định độ khó WS3.
3. Hợp đồng vendor DAT & phần mềm cũ ràng buộc đến bao giờ? → mốc thay tự nhiên.
4. Dữ liệu học viên **đang học dở** nằm ở đâu — đủ migrate giữa khóa hay phải chờ hết khóa?

---

## 7. Ngân sách giai đoạn 1

| Hạng mục | MM kỹ thuật | Giai đoạn |
|---|---|---|
| WS0 · Nền tảng | 8–12 | MVP |
| WS1 · Hồ sơ + báo cáo tuân thủ + nhắc hạn + công nợ | 10–14 | MVP |
| WS2 · Tích hợp DAT (vendor đầu) | 3–5 | MVP |
| WS3 · Kit migrate hệ cũ | 4–8 | MVP |
| WS4 · LMS + điểm danh + 600 câu | 8–12 | v1.5 |
| WS5 · App học viên | 8–12 | v1.5 |
| WS6 · Back-office | 10–16 | v1.5 |
| **Cộng** | **51–79 kỹ thuật · 62–96 đầy đủ** | **~1,24–1,92 tỷ VNĐ** |

**Chưa nằm trong bảng:** hạ tầng cloud, bản quyền SDK (khuôn mặt, bản đồ), phí tích hợp HĐĐT, terminal điểm danh (~3–8tr/máy, mua ngoài).

---

## 8. Định nghĩa hoàn thành (DoD) từng mốc

**MVP xong khi:**
- [ ] Core schema + SSO + multi-tenant + audit log chạy production.
- [ ] Regulation-config: đổi km/giờ theo hạng qua cấu hình, không sửa code.
- [ ] Báo cáo Sở XD sinh tự động, được ít nhất 1 trung tâm dùng nộp thật.
- [ ] Đối soát DAT cảnh báo thiếu km/giờ chính xác vs dữ liệu vendor.
- [ ] Nhắc hạn giấy tờ + công nợ theo đợt hoạt động.
- [ ] Kit migrate chuyển được hồ sơ 1 trường, đối chiếu khớp hệ cũ.
- [ ] Pilot chạy ở 2–3 trung tâm; đo được số giờ giấy tờ tiết kiệm/tuần.

**v1.5 xong khi:**
- [ ] LMS sinh dữ liệu hợp lệ chuẩn giám sát (log + điểm danh khuôn mặt).
- [ ] App học viên trên store (iOS/Android) + Zalo OA + tra DAT realtime.
- [ ] Lương GV tính tự động từ giờ dạy DAT.
- [ ] CRM + kế toán HĐĐT + đội xe chạy trên cùng core.
- [ ] Onboard được ít nhất 1 trường mới ngoài design partner.

---

## 9. Chỉ mục tài liệu giai đoạn 1

> **Quy ước đặt tên:** file tài liệu nội dung thêm **ngày tạo dạng `-YYYY-MM-DD`** ở cuối tên
> (ví dụ `cong-viec-chuan-bi-2026-07-05.md`) để tiện sắp xếp / theo dõi phiên bản theo thời gian.
> Riêng `README.md` giữ nguyên tên vì là trang bìa/index của thư mục.

*(bổ sung khi triển khai)*
- `README.md` — kế hoạch tổng thể (tài liệu này · index)
- `cong-viec-chuan-bi-2026-07-05.md` — đầu việc cần chuẩn bị (bản HTML: `cong-viec-chuan-bi.html`)
- `WS0-nen-tang-YYYY-MM-DD.md` — thiết kế core schema, multi-tenant, regulation-config *(chưa viết)*
- `WS1-tuan-thu-YYYY-MM-DD.md` — spec đối soát DAT + mẫu báo cáo Sở XD *(chưa viết)*
- `khao-sat-hien-trang-YYYY-MM-DD.md` — kết quả 4 câu hỏi khảo sát *(chưa viết)*
</content>
</invoke>
