Files
goodgo-platform/docs/README_FRONTEND_DOCS.md
Ho Ngoc Hai 11f2bf26e6
Some checks failed
CI / Lint → Typecheck → Test → Build (22) (push) Failing after 29s
CI / E2E Tests (push) Has been skipped
CodeQL Analysis / CodeQL (javascript-typescript) (push) Failing after 2m42s
Deploy / Build Web Image (push) Failing after 27s
Deploy / Build AI Services Image (push) Failing after 29s
E2E Tests / Playwright E2E (push) Failing after 43s
Deploy / Build API Image (push) Failing after 1m31s
Security Scanning / Dependency Audit (pnpm) (push) Failing after 6s
Security Scanning / Trivy Scan — API Image (push) Failing after 5m35s
Security Scanning / Trivy Scan — AI Services Image (push) Failing after 3m45s
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
Deploy / Rollback Staging (push) Has been skipped
Deploy / Rollback Production (push) Has been skipped
Security Scanning / Trivy Scan — Web Image (push) Failing after 13m51s
Security Scanning / Trivy Filesystem Scan (push) Failing after 14m46s
Security Scanning / Security Gate (push) Has been cancelled
chore: update project documentation, audit reports, and initialize IDE configuration files
2026-04-19 03:12:54 +07:00

11 KiB

Tài Liệu Frontend GoodGo - Triển Khai i18n & Accessibility

📚 Mục Lục Tài Liệu

Gói này chứa tài liệu toàn diện cho việc triển khai hỗ trợ i18n next-intl (Tiếng Việt + Tiếng Anh)sửa lỗi accessibility theo WCAG 2.1 AA trong frontend Next.js của GoodGo Platform (apps/web).

📄 Các Tài Liệu Được Cung Cấp

1. EXPLORATION_SUMMARY.txt BẮT ĐẦU TỪ ĐÂY

Đọc trong 15 phút | Tổng quan điều hành

Tóm tắt cấp cao về các phát hiện:

  • Điểm mạnh và khoảng trống chính
  • Tổng quan về tech stack
  • Kiểm kê nội dung (200+ mục cần dịch)
  • Các tệp quan trọng cần cập nhật
  • Kết quả kiểm tra A11y
  • Ước tính thời gian (19-27 giờ)

Phù hợp nhất cho: Quản lý dự án, các bên liên quan, tổng quan nhanh


2. docs/audits/FRONTEND_EXPLORATION.md 📋 TÀI LIỆU THAM KHẢO CHI TIẾT

Đọc trong 45 phút | Phân tích toàn diện

Phân tích cực kỳ chi tiết:

  • Cấu trúc thư mục đầy đủ kèm mô tả
  • Toàn bộ 90+ tệp được phân tích
  • Phân tích chi tiết package.json
  • Trạng thái hiện tại của root layout
  • Logic định tuyến middleware
  • Cấu hình Tailwind CSS
  • Vị trí nội dung văn bản (hardcoded)
  • Trạng thái accessibility hiện tại
  • Cấu trúc dữ liệu & enum
  • Thiết lập kiểm thử

Phù hợp nhất cho: Lập trình viên, kiến trúc sư, lập kế hoạch triển khai


3. IMPLEMENTATION_QUICK_REFERENCE.md 🚀 HƯỚNG DẪN KHỞI ĐẦU NHANH

Đọc trong 30 phút | Định hướng hành động

Hướng dẫn triển khai tập trung:

  • Các phát hiện chính tổng quan
  • Các điểm vào chiến lược (i18n, A11y, cấu trúc message)
  • Danh sách kiểm tra triển khai 5 giai đoạn
  • Kiểm kê nội dung văn bản theo loại
  • Tệp ưu tiên Quan trọng / Cao / Trung bình
  • Lộ trình ưu tiên A11y
  • Chiến lược kiểm thử
  • Yêu cầu về dependency
  • Cơ hội thắng lợi nhanh

Phù hợp nhất cho: Trưởng nhóm kỹ thuật, lập kế hoạch sprint, phân chia công việc


4. FILE_MAPPING_GUIDE.md 🗂️ KẾ HOẠCH TRIỂN KHAI CHI TIẾT

Đọc trong 60 phút | Hướng dẫn từng tệp

Hướng dẫn cập nhật tệp theo từng giai đoạn:

  • Giai đoạn 1: Hạ tầng (middleware, root layout, config)
  • Giai đoạn 2: Cập nhật core component (layouts, pages)
  • Giai đoạn 3: Cập nhật form & validation
  • Giai đoạn 4: Cập nhật tiện ích & API
  • Giai đoạn 5: Sửa lỗi accessibility
  • Giai đoạn 6: Cập nhật thiết lập kiểm thử

Mỗi phần bao gồm:

  • Trạng thái hiện tại
  • Các thay đổi cần thực hiện
  • Ví dụ code (pseudo-code)
  • Đánh giá độ phức tạp cụ thể
  • Hướng dẫn thiết lập kiểm thử

Được tổ chức theo độ phức tạp của tệp:

  • Đơn giản (5 phút) - 5 tệp
  • Dễ (15-30 phút) - 12 tệp
  • Trung bình (30-60 phút) - 10 tệp
  • Phức tạp (1-2 giờ) - 4 tệp
  • Hạ tầng quan trọng - 3 tệp

Phù hợp nhất cho: Nhóm triển khai, lập trình viên, viết code thực tế


🎯 Cách Sử Dụng Tài Liệu Này

Tình huống 1: Tôi là Quản Lý Dự Án

  1. Đọc EXPLORATION_SUMMARY.txt (15 phút)
  2. Chia sẻ timeline và công sức với nhóm
  3. Tham khảo IMPLEMENTATION_QUICK_REFERENCE.md để biết định nghĩa từng giai đoạn

Tình huống 2: Tôi là Tech Lead Lập Kế Hoạch Công Việc

  1. Đọc EXPLORATION_SUMMARY.txt (15 phút)
  2. Đọc IMPLEMENTATION_QUICK_REFERENCE.md (30 phút)
  3. Lướt qua FILE_MAPPING_GUIDE.md để hiểu phân bố độ phức tạp
  4. Tạo task sprint dựa trên đánh giá độ phức tạp của từng tệp

Tình huống 3: Tôi là Lập Trình Viên Triển Khai i18n

  1. Xem nhanh EXPLORATION_SUMMARY.txt (5 phút)
  2. Đọc sâu các phần liên quan đến task của bạn trong docs/audits/FRONTEND_EXPLORATION.md
  3. Dùng FILE_MAPPING_GUIDE.md như hướng dẫn từng bước
  4. Tham khảo các ví dụ code và pseudo-code được cung cấp

Tình huống 4: Tôi Đang Triển Khai Sửa Lỗi A11y

  1. Đọc phần A11y trong EXPLORATION_SUMMARY.txt
  2. Tham khảo phần A11y trong IMPLEMENTATION_QUICK_REFERENCE.md
  3. Dùng Giai đoạn 5 của FILE_MAPPING_GUIDE.md để biết các sửa lỗi cụ thể
  4. Kiểm tra danh sách xác nhận trước khi coi là hoàn thành

🗂️ Tổ Chức Tài Liệu Theo Chủ Đề

Về Triển Khai i18n

  • EXPLORATION_SUMMARY.txt → phần "Text Content Requiring Translation"
  • IMPLEMENTATION_QUICK_REFERENCE.md → Strategic Entry Points, Giai đoạn 1-2
  • FILE_MAPPING_GUIDE.md → Giai đoạn 1-3, phần cấu trúc tệp message

Về Sửa Lỗi Accessibility

  • EXPLORATION_SUMMARY.txt → phần "Accessibility Audit Findings"
  • IMPLEMENTATION_QUICK_REFERENCE.md → phần A11y Implementation Priority
  • FILE_MAPPING_GUIDE.md → Giai đoạn 5, cập nhật component cụ thể

Về Thiết Lập Hạ Tầng

  • IMPLEMENTATION_QUICK_REFERENCE.md → Danh sách kiểm tra Giai đoạn 1
  • FILE_MAPPING_GUIDE.md → Giai đoạn 1: Infrastructure Setup

Về Kiểm Thử & QA

  • IMPLEMENTATION_QUICK_REFERENCE.md → phần Testing Strategy
  • FILE_MAPPING_GUIDE.md → Giai đoạn 6: Test Setup Updates, Validation Checklist

📊 Thống Kê Chính

Chỉ số Giá trị
Tệp trong apps/web 90+
Tệp cần cập nhật 50-60
Mục văn bản cần dịch 200+
Component cần cập nhật 35+
Trang cần cập nhật 15+
Lỗi A11y phát hiện 10+
Thời gian triển khai ước tính 19-27 giờ (~3-4 ngày)
Thiết lập i18n hiện tại Không có (0%)
Độ phủ A11y hiện tại 60-70%

Danh Sách Kiểm Tra Trước Triển Khai

Trước khi bắt đầu triển khai:

  • Xem lại EXPLORATION_SUMMARY.txt
  • Cài đặt gói next-intl (npm install next-intl)
  • Phân bổ 3-4 ngày cho triển khai đầy đủ
  • Nhóm có kinh nghiệm với Next.js App Router
  • Có quyền truy cập axe DevTools để kiểm thử accessibility
  • Lập kế hoạch kiểm thử với screen reader (NVDA hoặc JAWS)

🚀 Khởi Đầu Nhanh

Buổi Sáng Ngày 1

  1. Đọc EXPLORATION_SUMMARY.txt (15 phút)
  2. Đọc IMPLEMENTATION_QUICK_REFERENCE.md (30 phút)
  3. Cài đặt next-intl: npm install next-intl
  4. Tạo tệp cấu hình i18n: i18n/config.ts
  5. Tạo tệp message: public/locales/en.jsonvi.json

Buổi Chiều Ngày 1

  1. Bắt đầu với Giai đoạn 1 của FILE_MAPPING_GUIDE.md
  2. Cập nhật middleware.ts (30-45 phút)
  3. Cập nhật app/layout.tsx (30 phút)

Ngày 2

  • Tiếp tục với Giai đoạn 2-3 của FILE_MAPPING_GUIDE.md
  • Cập nhật các tệp core layout và page
  • Trích xuất văn bản từ validation

Ngày 3

  • Tiếp tục Giai đoạn 3-4
  • Cập nhật các component còn lại
  • Bắt đầu sửa lỗi A11y

Ngày 4

  • Hoàn thành sửa lỗi A11y
  • Chạy kiểm thử toàn diện
  • Sửa các vấn đề phát hiện được

📞 Câu Hỏi Trong Khi Triển Khai?

Tham khảo các phần cụ thể:

H: Cách cấu trúc tệp message như thế nào? Đ: Xem FILE_MAPPING_GUIDE.md → Giai đoạn 1 → cấu trúc public/locales/en.json

H: Tôi cập nhật tệp nào trước? Đ: Xem IMPLEMENTATION_QUICK_REFERENCE.md → Critical Files for i18n

H: Cách thêm focus trapping vào dialog như thế nào? Đ: Xem FILE_MAPPING_GUIDE.md → Giai đoạn 5 → components/ui/dialog.tsx

H: Timeline cho công việc này là bao lâu? Đ: Xem EXPLORATION_SUMMARY.txt → phần Implementation Timeline

H: Có những thắng lợi nhanh nào tôi có thể làm ngay không? Đ: Có! Xem IMPLEMENTATION_QUICK_REFERENCE.md → Quick Win Opportunities

🔍 Chỉ Số Chất Lượng Tài Liệu

Chỉ số Giá trị
Độ sâu phân tích Rất kỹ lưỡng
Độ phủ tệp 100% của app/web
Ví dụ code được cung cấp Có (40+ đoạn)
Pseudo-code được bao gồm
Đánh giá độ phức tạp Có (chi tiết)
Độ phủ kiểm thử
Danh sách xác nhận

📌 Lưu Ý Quan Trọng

  1. Không có i18n hiện tại: Tất cả đều được hardcode bằng tiếng Việt. Đây là triển khai i18n từ đầu (greenfield).

  2. A11y đã được thực hiện một phần: Nền tảng tốt đã có sẵn (HTML ngữ nghĩa, ARIA label, skip link), nhưng quản lý focus và một số thuộc tính ARIA vẫn còn thiếu.

  3. Công nghệ đã sẵn sàng: Tất cả thư viện cần thiết đã được cài đặt. Đây là dự án tái cấu trúc/bổ sung, không phải thay đổi framework.

  4. TypeScript hỗ trợ: Type safety sẽ phát hiện nhiều vấn đề trong quá trình tái cấu trúc.

  5. Kiểm thử rất quan trọng: Cả hai locale đều cần được kiểm thử kỹ lưỡng.

📚 Tài Nguyên Bổ Sung

Tài liệu tham chiếu:

  • Next.js App Router: cấu trúc thư mục /app
  • Thư viện next-intl: cấu hình và thiết lập
  • WCAG 2.1 AA: tiêu chuẩn accessibility
  • Tailwind CSS: phương pháp tạo kiểu
  • Zod: schema validation
  • TypeScript: type safety

🎓 Lộ Trình Học Tập

Nếu bạn mới làm quen với codebase này:

  1. Bắt đầu với EXPLORATION_SUMMARY.txt để có cái nhìn tổng quan
  2. Đọc phần "Directory Structure Overview" trong docs/audits/FRONTEND_EXPLORATION.md
  3. Hiểu cấu trúc App Router
  4. Xem lại các pattern component hiện tại
  5. Sau đó bắt đầu triển khai với FILE_MAPPING_GUIDE.md

📝 Phiên Bản & Lịch Sử

Phiên bản hiện tại: 1.0 - Trước khi triển khai
Được tạo: 9 tháng 4, 2026
Loại phân tích: Rất kỹ lưỡng
Mức độ tin cậy: CAO
Trạng thái: Sẵn sàng triển khai


🎯 Tiêu Chí Thành Công

Triển khai hoàn thành khi:

  • Cả hai route /en/*/vi/* đều hoạt động
  • Tất cả văn bản hardcoded đến từ tệp message
  • Metadata thay đổi theo locale
  • Thông báo validation được dịch
  • Tất cả enum sử dụng i18n
  • Focus trap hoạt động trong dialog
  • Lỗi form được liên kết với aria-describedby
  • Tất cả nút icon có aria-label
  • Độ tương phản màu đạt WCAG AA
  • Điều hướng bằng bàn phím hoạt động
  • Kiểm thử vượt qua cho cả hai locale
  • Kiểm tra axe DevTools vượt qua

Sẵn sàng triển khai? Bắt đầu với EXPLORATION_SUMMARY.txt, sau đó chuyển sang FILE_MAPPING_GUIDE.md 🚀