Some checks failed
CI / Lint → Typecheck → Test → Build (22) (push) Failing after 18s
CI / E2E Tests (push) Has been skipped
CodeQL Analysis / CodeQL (javascript-typescript) (push) Failing after 2m15s
Deploy / Build API Image (push) Failing after 28s
Deploy / Build Web Image (push) Failing after 16s
Deploy / Build AI Services Image (push) Failing after 17s
E2E Tests / Playwright E2E (push) Failing after 31s
Security Scanning / Dependency Audit (pnpm) (push) Failing after 3s
Security Scanning / Trivy Scan — API Image (push) Failing after 1m46s
Security Scanning / Trivy Scan — Web Image (push) Failing after 1m7s
Security Scanning / Trivy Scan — AI Services Image (push) Failing after 53s
Security Scanning / Trivy Filesystem Scan (push) Failing after 35s
Deploy / Deploy to Staging (push) Has been skipped
Deploy / Smoke Test Staging (push) Has been skipped
Deploy / Deploy to Production (push) Has been skipped
Deploy / Smoke Test Production (push) Has been skipped
Security Scanning / Security Gate (push) Failing after 0s
Deploy / Rollback Staging (push) Has been skipped
Deploy / Rollback Production (push) Has been skipped
Hoàn tất đợt cuối của nhiệm vụ chuyển toàn bộ tài liệu sang tiếng Việt. Đã dịch 22 file `.md` còn sót (~9.7k dòng) — gồm RUNBOOK, audits, docs/architecture, docs/load-testing, libs READMEs và các quick references. Giữ nguyên code blocks, đường dẫn, identifier kỹ thuật, URL và biến môi trường. Co-Authored-By: Paperclip <noreply@paperclip.ing>
384 lines
15 KiB
Markdown
384 lines
15 KiB
Markdown
# 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 |
|