# Nền tảng GoodGo AI — Kế hoạch triển khai

**Cập nhật lần cuối:** 2026-04-12

---

## Các Milestone

### Milestone 1: Walking Skeleton (Phase 0)

**Mục tiêu:** Bất kỳ kỹ sư nào cũng có thể clone, cài đặt và bắt đầu phát triển.

**Thứ tự thực hiện:**

1. **[TEC-1415] Monorepo Scaffolding** + **[TEC-1416] Docker Compose** (song song — không có dependency)
2. **[TEC-1420] ESLint/Prettier** (sau F1)
3. **[TEC-1417] Prisma Schema** (sau F1 + F2)
4. **[TEC-1418] Shared Module** (sau F1)
5. **[TEC-1419] CI/CD Pipeline** (sau F1)

```
F1 (Monorepo) ──┬── F6 (Lint/Prettier)
                 ├── F3 (Prisma Schema) ←── F2 (Docker)
                 ├── F4 (Shared Module)
                 └── F5 (CI/CD)
F2 (Docker) ─────┘
```

### Milestone 2: Core Product (Phase 1)

**Mục tiêu:** Người dùng có thể đăng ký, đăng tin và tìm kiếm bất động sản.

**Thứ tự thực hiện:**

1. **[TEC-1421] Auth Backend** (sau F3, F4)
2. **[TEC-1425] Security Hardening** + **[TEC-1426] Error Handling** (song song, sau F1/F4)
3. **[TEC-1422] Auth Frontend** (sau C1)
4. **[TEC-1423] Listings Backend** (sau C1)
5. **[TEC-1424] Search Backend** (sau C3)
6. **[TEC-1427] Listings Frontend** (sau C3)
7. **[TEC-1428] Search + Landing Frontend** (sau C5)

```
F3 + F4 ──→ C1 (Auth BE) ──┬── C2 (Auth FE)
                            ├── C3 (Listings BE) ──┬── C5 (Search BE) ──→ C6 (Search FE)
                            │                      └── C4 (Listings FE)
                            ├── X1 (Security)
                            └── X3 (Error Handling)
```

### Milestone 3: Monetization (Phase 2)

**Mục tiêu:** MVP tạo doanh thu với thanh toán, subscription và công cụ admin.

```
C1 ──→ M1 (Payments) ──→ M2 (Subscriptions)
C1 ──→ M3 (Notifications)
C1 + C3 ──→ M4 (Admin)
Phase 1 ──→ X4 (E2E Tests)
```

### Milestone 4: AI-Powered (Phase 3)

**Mục tiêu:** Sản phẩm khác biệt với các tính năng AI.

```
F2 ──→ A1 (AI/ML Container) ──→ A2 (Analytics)
C5 + A2 ──→ A3 (MCP Servers)
```

---

## Bản đồ phụ thuộc

| Task          | Phụ thuộc vào |
| ------------- | ---------- |
| TEC-1415 (F1) | Không       |
| TEC-1416 (F2) | Không       |
| TEC-1417 (F3) | F1, F2     |
| TEC-1418 (F4) | F1         |
| TEC-1419 (F5) | F1         |
| TEC-1420 (F6) | F1         |
| TEC-1421 (C1) | F3, F4     |
| TEC-1422 (C2) | C1         |
| TEC-1423 (C3) | C1, F3     |
| TEC-1424 (C5) | C3, F2     |
| TEC-1425 (X1) | F1         |
| TEC-1426 (X3) | F4         |
| TEC-1427 (C4) | C3         |
| TEC-1428 (C6) | C5         |
| TEC-1429 (M1) | C1         |
| TEC-1430 (M2) | M1         |
| TEC-1431 (M3) | C1         |
| TEC-1432 (M4) | C1, C3     |
| TEC-1433 (X4) | Phase 1    |

### Milestone 5: Production Hardening (Phase 4)

**Mục tiêu:** Sửa tất cả các vấn đề bảo mật quan trọng. Thiết lập khả năng triển khai production.

**Thứ tự thực hiện:**

1. **[TEC-1449] JWT Secret Fix** + **[TEC-1451] HMAC Timing Fix** + **[TEC-1452] MinIO Fix** + **[TEC-1453] CSRF** (song song — không có dependency giữa chúng)
2. **[TEC-1455] DB Index** (độc lập — có thể chạy song song với các task trên)
3. **[TEC-1450] Deployment Pipeline** (sau khi đã xác minh các bản sửa lỗi bảo mật)
4. **[TEC-1457] Backups + Logs** (sau khi hạ tầng deployment đã có)
5. **[TEC-1456] Test Coverage** (song song — độc lập với hạ tầng)

```
TEC-1449 (JWT) ──────┐
TEC-1451 (HMAC) ─────┤
TEC-1452 (MinIO) ────┼──→ TEC-1450 (Deploy Pipeline) ──→ TEC-1457 (Backups + Logs)
TEC-1453 (CSRF) ─────┘
TEC-1455 (DB Index) ──────────────────────────────────(independent)
TEC-1456 (Tests) ─────────────────────────────────────(independent)
```

### Milestone 6: Quality & Polish (Phase 5)

**Mục tiêu:** UX, tài liệu và hiệu năng đạt chất lượng production.

```
Phase 4 done ──→ TEC-1458 (Redis Caching)
                 TEC-1459 (Frontend Polish)    (parallel)
                 TEC-1460 (OpenAPI/Swagger)    (parallel)
                 TEC-1461 (Documentation)      (parallel)
```

---

## Bản đồ phụ thuộc (Phase 4-5)

| Task            | Phụ thuộc vào        |
| --------------- | ----------------- |
| TEC-1449        | Không              |
| TEC-1450        | TEC-1449 (bảo mật trước) |
| TEC-1451        | Không              |
| TEC-1452        | Không              |
| TEC-1453        | Không              |
| TEC-1455        | Không              |
| TEC-1456        | Không              |
| TEC-1457        | TEC-1450          |
| TEC-1458        | Phase 4           |
| TEC-1459        | Không              |
| TEC-1460        | Không              |
| TEC-1461        | Không              |

### Milestone 7: Hoàn thành tính năng MVP & Audit (Phase 6)

**Mục tiêu:** Hoàn thành các tính năng MVP còn lại (Agent Portal, AI, Payments), dọn dẹp tech debt từ audit.

**Sprint 1 — Ổn định (Tuần 1):**
1. **[TEC-1592] Commit các file chưa được track** (P0, không có dependency)
2. **[TEC-1593] Sửa Architect agent** (P0, không có dependency)
3. **[TEC-1594] Hợp nhất i18n** (P1, không có dependency)

**Sprint 2 — Agent Portal + Payments (Tuần 2-3):**
4. **[TEC-1595] Agent Portal** (P1, sau TEC-1592)
5. **[TEC-1597] Luồng thanh toán** (P1, sau TEC-1592)
6. **[TEC-1598] Smoke test** (P1, độc lập)

**Sprint 3 — AI & Chất lượng (Tuần 4-5):**
7. **[TEC-1596] Tích hợp AI/ML** (P1, sau TEC-1592)
8. **[TEC-1599] Độ bao phủ test** (P2, độc lập)
9. **[TEC-1600] Tài liệu OpenAPI** (P2, độc lập)

**Sprint 4 — Củng cố (Tuần 5-6):**
10. **[TEC-1601] Baseline K6** (P2, độc lập)
11. **[TEC-1602] Audit bảo mật** (P2, sau các bản sửa bảo mật Phase 4)
12. **[TEC-1603] Tối ưu DB index** (P2, độc lập)
13. **[TEC-1604] Tích hợp Sentry** (P2, độc lập)

```
TEC-1592 (Commit) ──┬── TEC-1595 (Agent Portal)
                    ├── TEC-1596 (AI/ML)
                    └── TEC-1597 (Payments)
TEC-1593 (Architect Fix) ─── (independent)
TEC-1594 (i18n) ────────────── (independent)
TEC-1598 (Smoke Tests) ─────── (independent)
TEC-1599..1604 (P2 quality) ── (all independent, parallel)
```

---

## Bản đồ phụ thuộc (Phase 6)

| Task            | Phụ thuộc vào        |
| --------------- | ----------------- |
| TEC-1592        | Không              |
| TEC-1593        | Không              |
| TEC-1594        | Không              |
| TEC-1595        | TEC-1592          |
| TEC-1596        | TEC-1592          |
| TEC-1597        | TEC-1592          |
| TEC-1598        | Không              |
| TEC-1599        | Không              |
| TEC-1600        | Không              |
| TEC-1601        | Không              |
| TEC-1602        | Bảo mật Phase 4  |
| TEC-1603        | Không              |
| TEC-1604        | Không              |

### Milestone 8: Cải tiến sau MVP (Phase 7)

**Mục tiêu:** Sửa các bug còn lại, củng cố cho production, cải thiện UX và DX.

**Wave 1 — Sửa lỗi quan trọng (1-2 ngày):**
1. **[TEC-1647] Sửa định tuyến Reviews** (P0, không có dependency)
2. **[TEC-1648] Sửa các Health endpoint** (P0, không có dependency)
3. **[TEC-1649] Sửa xử lý lỗi Login** (P0, cần DB)
4. **[TEC-1650] Sửa Listing 404** (P1, cần DB)

**Wave 2 — Sẵn sàng Production (3-5 ngày):**
5. **[TEC-1651] Môi trường E2E CI** (P1, không có dependency)
6. **[TEC-1652] Chạy E2E test** (P1, sau các fix Wave 1)
7. **[TEC-1653] Audit security header** (P1, không có dependency)
8. **[TEC-1658] PgBouncer pooling** (P1, không có dependency)

**Wave 3 — Chất lượng hướng tới người dùng (1-2 tuần):**
9. **[TEC-1654] Mobile responsive** (P1, không có dependency)
10. **[TEC-1655] Tối ưu SEO** (P1, không có dependency)
11. **[TEC-1656] Rate limiting theo người dùng** (P1, không có dependency)
12. **[TEC-1657] Audit logging cho admin** (P1, không có dependency)

**Wave 4 — Xuất sắc về Engineering (2-3 tuần):**
13. **[TEC-1659] Graceful degradation** (P2, không có dependency)
14. **[TEC-1660] Tài liệu mã lỗi** (P2, không có dependency)
15. **[TEC-1661] RUM + Web Vitals** (P2, không có dependency)
16. **[TEC-1662] Cập nhật QA Tracker** (P2, sau Wave 2)

```
TEC-1647 (Reviews) ──┐
TEC-1648 (Health) ────┼── TEC-1652 (E2E Tests) ── TEC-1662 (QA Update)
TEC-1649 (Login) ─────┤
TEC-1650 (Listing) ───┘
TEC-1651 (CI E2E) ──────── (independent)
TEC-1653 (Headers) ─────── (independent)
TEC-1658 (PgBouncer) ───── (independent)
TEC-1654..1657 (Wave 3) ── (all independent, parallel)
TEC-1659..1661 (Wave 4) ── (all independent, parallel)
```

---

## Bản đồ phụ thuộc (Phase 7)

| Task            | Phụ thuộc vào        |
| --------------- | ----------------- |
| TEC-1647        | Không              |
| TEC-1648        | Không              |
| TEC-1649        | Không              |
| TEC-1650        | Không              |
| TEC-1651        | Không              |
| TEC-1652        | TEC-1647, TEC-1648 |
| TEC-1653        | Không              |
| TEC-1654        | Không              |
| TEC-1655        | Không              |
| TEC-1656        | Không              |
| TEC-1657        | Không              |
| TEC-1658        | Không              |
| TEC-1659        | Không              |
| TEC-1660        | Không              |
| TEC-1661        | Không              |
| TEC-1662        | TEC-1652          |

### Milestone 9: Audit của CEO Wave 5 — Bảo mật & Tính năng (Phase 7 tiếp)

**Mục tiêu:** Xử lý các lỗ hổng bảo mật, cải thiện độ bao phủ test, triển khai tính năng còn thiếu của Sprint 3.

**Wave 5a — Bảo mật (NGÀY 1-2, song song):**
1. **[TEC-1684] Sửa lỗ hổng npm** (P0, Security Engineer)
2. **[TEC-1685] Sửa lỗi lint** (P1, QA Engineer)

**Wave 5b — Chất lượng & Tính năng (TUẦN 1-2):**
3. **[TEC-1686] Đẩy mạnh độ bao phủ test** (P1, QA Engineer, sau 5a)
4. **[TEC-1688] Saved Searches + Alerts** (P1, Architect)
5. **[TEC-1687] Thiết lập Dependabot** (P2, DevOps Engineer)

```
TEC-1684 (NPM Vuln) ─────── (independent, P0)
TEC-1685 (Lint) ──────────── TEC-1686 (Test Coverage)
TEC-1688 (Saved Searches) ── (independent, P1)
TEC-1687 (Dependabot) ────── (independent, P2)
```

---

## Bản đồ phụ thuộc (Wave 5)

| Task            | Phụ thuộc vào        |
| --------------- | ----------------- |
| TEC-1684        | Không              |
| TEC-1685        | Không              |
| TEC-1686        | TEC-1685          |
| TEC-1687        | Không              |
| TEC-1688        | Không              |

---

## Ghi chú triển khai

- **Phase 0-6 đã hoàn thành** — 51/51 task xong, MVP hoàn chỉnh tính năng
- **Phase 7 là ưu tiên hiện tại** — sửa bug và củng cố production
- **Wave 13 là sprint hiện tại** — 6 task (TEC-1918 đến TEC-1923)
- **Tổng trạng thái dự án** (từ Paperclip, 2026-04-12): 219 done / 3 in progress / 9 todo / 3 cancelled trên tổng số 234 issue
- **Đường găng:** TEC-1918 (TS errors) → TEC-1919 (E2E unblock) → checklist sẵn sàng production (TEC-1922)
- **Ưu tiên:** CI green (TEC-1918), E2E (TEC-1919), grooming backlog (TEC-1920), trang /pricing (TEC-1921)
- **Lộ trình production:** Các fix Wave 13 → checklist sẵn sàng production → quyết định go-live

### Milestone 13: Audit của CEO Wave 13 (Phase 7 tiếp)

**Mục tiêu:** Sửa các lỗi TS còn lại, gỡ chặn E2E, grooming backlog, hoàn thành trang pricing, checklist sẵn sàng production.

**Wave 13A — Sửa CI (Ngày 1):**
1. **[TEC-1918] Sửa 7 lỗi biên dịch TS trong các file test web** (P0, Senior Backend Engineer)

**Wave 13B — Tính năng & Chất lượng (Ngày 2-3):**
2. **[TEC-1919] Gỡ chặn môi trường E2E test** (P1, DevOps Engineer)
3. **[TEC-1920] Grooming backlog — loại bỏ trùng lặp và đóng các task đã giải quyết** (P1, QA Engineer)
4. **[TEC-1921] Hoàn thành trang /pricing** (P1, Senior Frontend Engineer)

**Wave 13C — Tài liệu & Sẵn sàng (Ngày 3-5):**
5. **[TEC-1922] Checklist sẵn sàng production** (P2, SRE Engineer)
6. **[TEC-1923] Cập nhật PROJECT_TRACKER.md** (P2, Technical Writer)

```
TEC-1918 (TS Errors) ──→ TEC-1919 (E2E Unblock)
TEC-1920 (Backlog) ────── (independent)
TEC-1921 (/pricing) ───── (independent)
TEC-1922 (Readiness) ──── (after TEC-1918/1919)
TEC-1923 (Tracker) ────── (independent)
```

---

## Bản đồ phụ thuộc (Wave 13)

| Task            | Phụ thuộc vào        |
| --------------- | ----------------- |
| TEC-1918        | Không              |
| TEC-1919        | TEC-1918          |
| TEC-1920        | Không              |
| TEC-1921        | Không              |
| TEC-1922        | TEC-1918, TEC-1919|
| TEC-1923        | Không              |

### Milestone 12: Audit của CEO — Sửa CI Pipeline (Phase 7 Wave 12)

**Mục tiêu:** Khôi phục CI pipeline về trạng thái xanh. Sửa tất cả các lỗi TypeScript, ESLint và test. Commit công việc còn tồn đọng.

**Wave 12A — Sửa CI (Ngày 1, song song):**
1. **[TEC-1898] Sửa migration Prisma 7** (P0, Senior Backend Engineer)
2. **[TEC-1899] Sửa 31 unit test thất bại** (P0, QA Engineer)
3. **[TEC-1900] Sửa lỗi ESLint + commit file** (P0, Senior Backend Engineer, sau TEC-1898)

**Wave 12B — Sửa lỗi (Ngày 2-3):**
4. **[TEC-1649] Fix Login 500→401** (P1, đang tiến hành)
5. **[TEC-1657] Audit logging cho admin** (P1, todo)
6. **[TEC-1878] Môi trường E2E** (P1, DevOps Engineer)
7. **[TEC-1847] Test component React** (P1, QA Engineer)

```
TEC-1898 (Prisma Fix) ──┬── TEC-1900 (ESLint + Commit)
TEC-1899 (Test Fixes) ──┘
TEC-1649 (Login Fix) ─── (independent, in progress)
TEC-1878 (E2E Env) ────── (independent)
TEC-1657 (Audit Logs) ─── (independent)
TEC-1847 (RTL Tests) ──── (independent)
```

---

## Bản đồ phụ thuộc (Wave 12)

| Task            | Phụ thuộc vào        |
| --------------- | ----------------- |
| TEC-1898        | Không              |
| TEC-1899        | Không              |
| TEC-1900        | TEC-1898          |
| TEC-1649        | Không              |
| TEC-1657        | Không              |
| TEC-1878        | Không              |
| TEC-1847        | Không              |
