diff --git a/apps/web-docs/src/components/docs/DocsContentClient.tsx b/apps/web-docs/src/components/docs/DocsContentClient.tsx index bdbc4605..53b5d1a8 100644 --- a/apps/web-docs/src/components/docs/DocsContentClient.tsx +++ b/apps/web-docs/src/components/docs/DocsContentClient.tsx @@ -18,7 +18,7 @@ const LoadingDocs = () => ( const DocNotFound = ({ slug }: { slug: string }) => (

Documentation Not Found

-

The requested documentation "{slug}" could not be found.

+

The requested documentation "{slug}" could not be found.

Please check the URL or navigate using the sidebar.

); diff --git a/apps/web-docs/src/components/docs/DocsSearch.tsx b/apps/web-docs/src/components/docs/DocsSearch.tsx index b9788576..490ab511 100644 --- a/apps/web-docs/src/components/docs/DocsSearch.tsx +++ b/apps/web-docs/src/components/docs/DocsSearch.tsx @@ -42,7 +42,7 @@ export default function DocsSearch({ placeholder, locale = 'en', docsNavigation category: group.label[currentLocale], href: `/${currentLocale}/docs/${item.slug}` })) - ), [currentLocale]); + ), [currentLocale, docsNavigation]); // Calculate search results using useMemo instead of useEffect const results = useMemo(() => { diff --git a/docs/vi/guides/getting-started.md b/docs/vi/guides/getting-started.md index 5d821251..f791b90d 100644 --- a/docs/vi/guides/getting-started.md +++ b/docs/vi/guides/getting-started.md @@ -16,20 +16,20 @@ Trước khi bắt đầu, đảm bảo bạn đã cài đặt: -* **Node.js**: v20.0.0 trở lên +* **Node.js**: v20.0.0 trở lên (khuyến nghị v22+ hoặc v25+) ```bash node -v - # v20.10.0 + # v25.2.1 ``` -* **PNPM**: v8.0.0 trở lên (sử dụng pnpm workspaces) +* **PNPM**: v8.15.0 trở lên (sử dụng pnpm workspaces) ```bash pnpm -v - # 8.12.0 + # 8.15.0 ``` -* **Docker & Docker Compose**: Cho infrastructure cục bộ +* **Docker & Docker Compose**: v24.0.0 trở lên cho infrastructure cục bộ ```bash docker -v - # Docker version 24.0.0 + # Docker version 29.1.3, build f52814d ``` * **Git**: Để quản lý version * **Tài khoản Neon**: Serverless PostgreSQL (https://neon.tech) @@ -49,9 +49,35 @@ graph TD IAM --> Redis[(Redis Cache)] IAM --> Kafka[Kafka Events] - style Traefik fill:#e1f5ff - style DB fill:#f0e1ff - style Redis fill:#fff4e1 + style Client fill:#7F8C8D,color:#fff + style Traefik fill:#2980B9,color:#fff + style IAM fill:#27AE60,color:#fff + style Template fill:#E67E22,color:#fff + style DB fill:#8E44AD,color:#fff + style Redis fill:#F39C12,color:#fff + style Kafka fill:#3498DB,color:#fff +``` + +### Color Palette / Bảng màu + +```mermaid +graph LR + A["Primary
#2980B9"] --> B["Data/Cache
#F39C12"] + B --> C["Success
#27AE60"] + C --> D["Warning
#E67E22"] + D --> E["Error
#C0392B"] + E --> F["Processing
#8E44AD"] + F --> G["Info
#3498DB"] + G --> H["Neutral
#7F8C8D"] + + style A fill:#2980B9,color:#fff + style B fill:#F39C12,color:#fff + style C fill:#27AE60,color:#fff + style D fill:#E67E22,color:#fff + style E fill:#C0392B,color:#fff + style F fill:#8E44AD,color:#fff + style G fill:#3498DB,color:#fff + style H fill:#7F8C8D,color:#fff ``` ## Cấu trúc Dự án @@ -60,23 +86,42 @@ Repository tuân theo cấu trúc monorepo: ``` Base/ -├── apps/ # Ứng dụng Frontend -│ ├── web-client/ # Next.js web application -│ └── mobile-client/ # Flutter mobile application -├── services/ # Backend microservices -│ ├── iam-service/ # Service xác thực & phân quyền -│ └── _template/ # Template cho service mới -├── packages/ # Thư viện chia sẻ (Shared libraries) -│ ├── logger/ # Structured logging -│ ├── types/ # TypeScript types chia sẻ -│ └── http-client/ # Client HTTP nội bộ -├── infra/ # Cấu hình Infrastructure -│ ├── traefik/ # Cấu hình API Gateway -│ └── databases/ # Scripts thiết lập Database -├── deployments/ # Cấu hình Deploy -│ ├── local/ # Docker Compose cho dev -│ └── k8s/ # Kubernetes manifests -└── docs/ # Tài liệu +├── apps/ # Ứng dụng Frontend +│ ├── app-admin/ # Admin dashboard application +│ ├── app-client/ # Client mobile application (Flutter) +│ ├── web-client/ # Next.js web application +│ └── web-docs/ # Documentation website (Next.js) +├── services/ # Backend microservices +│ ├── iam-service/ # Service xác thực & phân quyền +│ └── _template/ # Template cho service mới +├── packages/ # Thư viện chia sẻ (Shared libraries) +│ ├── auth-sdk/ # Authentication SDK +│ ├── config/ # Shared configuration utilities +│ ├── http-client/ # Client HTTP nội bộ +│ ├── logger/ # Structured logging (@goodgo/logger) +│ ├── tracing/ # OpenTelemetry tracing +│ └── types/ # TypeScript types chia sẻ +├── infra/ # Cấu hình Infrastructure +│ ├── databases/ # Scripts thiết lập Database +│ ├── docker/ # Docker configurations +│ ├── observability/ # Prometheus, Grafana, Loki configs +│ ├── secrets/ # Secrets management templates +│ └── traefik/ # Cấu hình API Gateway +├── deployments/ # Cấu hình Deploy +│ ├── local/ # Docker Compose cho dev +│ ├── staging/ # Staging environment configs +│ └── production/ # Production Kubernetes manifests +├── scripts/ # Automation scripts +│ ├── build/ # Build scripts +│ ├── db/ # Database utilities +│ ├── deploy/ # Deployment scripts +│ ├── dev/ # Development helpers +│ ├── observability/ # Monitoring setup scripts +│ ├── setup/ # Initial setup scripts +│ └── utils/ # Utility scripts +└── docs/ # Tài liệu + ├── en/ # English documentation + └── vi/ # Vietnamese documentation ``` ## Cài đặt & Thiết lập