# [Guide Title] / [Tiêu đề Hướng dẫn] > **EN**: Brief English description of what this guide covers > **VI**: Mô tả ngắn gọn bằng tiếng Việt về nội dung hướng dẫn này ## Workflow Diagram / Sơ đồ Quy trình ```mermaid flowchart LR Start([Start]) --> Check{Prerequisites
Met?} Check -->|No| Install[Install Prerequisites] Check -->|Yes| Step1[Step 1: Action] Install --> Step1 Step1 --> Step2[Step 2: Action] Step2 --> Step3[Step 3: Action] Step3 --> Verify{Verify
Success?} Verify -->|No| Troubleshoot[Check Troubleshooting] Verify -->|Yes| End([Complete]) Troubleshoot --> Step1 style Start fill:#e1f5ff style End fill:#d4edda style Check fill:#fff3cd style Verify fill:#fff3cd ``` ## Prerequisites / Yêu cầu ### EN: Requirements Before starting this guide, ensure you have: - Requirement 1 with specific version (e.g., Node.js 20+) - Requirement 2 - Requirement 3 ### VI: Yêu cầu Trước khi bắt đầu hướng dẫn này, hãy đảm bảo bạn có: - Yêu cầu 1 với phiên bản cụ thể (ví dụ: Node.js 20+) - Yêu cầu 2 - Yêu cầu 3 **Quick Check / Kiểm tra nhanh**: ```bash # EN: Verify prerequisites / VI: Xác minh yêu cầu node --version # Should be 20 or higher / Phải là 20 hoặc cao hơn docker --version # Should be installed / Phải được cài đặt dotnet --version # Should be 10.0+ for .NET services / Phải là 10.0+ cho .NET services ``` **Example: Local Development Setup for Storage Service** ```bash # Clone repository cd /Users/velikho/Desktop/WORKING/Base # Install dependencies (.NET) cd services/storage-service-net dotnet restore # Setup infrastructure cd ../../deployments/local docker-compose up -d postgres redis minio # Run migrations cd ../../services/storage-service-net dotnet ef database update --project src/StorageService.Infrastructure --startup-project src/StorageService.API ``` ## Overview / Tổng quan ### EN: What You'll Learn By the end of this guide, you will be able to: 1. Outcome 1 2. Outcome 2 3. Outcome 3 **Estimated Time / Thời gian ước tính**: X minutes ### VI: Bạn Sẽ Học Được Gì Khi hoàn thành hướng dẫn này, bạn sẽ có thể: 1. Kết quả 1 2. Kết quả 2 3. Kết quả 3 **Estimated Time / Thời gian ước tính**: X phút ## Step-by-Step Guide / Hướng dẫn Từng bước ### Step 1 / Bước 1: [Action Title] **EN**: English explanation of what this step accomplishes and why it's necessary. **VI**: Giải thích tiếng Việt về những gì bước này đạt được và tại sao nó cần thiết. ```bash # EN: Command description / VI: Mô tả lệnh command-here --flag value # EN: Expected output / VI: Kết quả mong đợi Success message or output ``` **Important Notes / Ghi chú quan trọng**: - Note 1 / Ghi chú 1 - Note 2 / Ghi chú 2 **File to Create / File cần tạo**: ```bash # EN: Create configuration file / VI: Tạo file cấu hình touch .env.local ``` **Example Content / Nội dung ví dụ**: ```env # EN: Environment variables / VI: Biến môi trường ASPNETCORE_ENVIRONMENT=Development DATABASE_URL=postgresql://localhost:5432/mydb REDIS_URL=redis://localhost:6379 Storage__Provider=minio Storage__MinIO__Endpoint=localhost:9000 Storage__MinIO__AccessKey=minioadmin Storage__MinIO__SecretKey=minioadmin ``` ### Real-World Example / Ví dụ Thực tế: Traefik Routing Setup **EN**: How to configure Traefik routing for a new service. **VI**: Cách cấu hình Traefik routing cho service mới. ```yaml # docker-compose.yml services: your-service-net: build: context: ../.. dockerfile: services/your-service-net/Dockerfile environment: - ASPNETCORE_ENVIRONMENT=Development - DATABASE_URL=${DATABASE_URL} labels: # Enable Traefik - "traefik.enable=true" # Define routing rule - "traefik.http.routers.your-service.rule=PathPrefix(`/api/v1/your-service`)" # Specify service port - "traefik.http.services.your-service.loadbalancer.server.port=8080" # Strip prefix middleware - "traefik.http.routers.your-service.middlewares=strip-prefix@docker" networks: - goodgo-network networks: goodgo-network: external: true ``` **Expected Result / Kết quả mong đợi**: - ✅ Service accessible at `http://localhost/api/v1/your-service` - ✅ Traefik dashboard shows the service at `http://localhost:8080` - ✅ Health check endpoint works: `http://localhost/api/v1/your-service/health` ### Step 2 / Bước 2: [Action Title] **EN**: Continue with next step explanation... **VI**: Tiếp tục với giải thích bước tiếp theo... ```typescript // EN: Code example for this step // VI: Ví dụ code cho bước này import { Example } from './example'; const instance = new Example(); await instance.initialize(); ``` **Expected Result / Kết quả mong đợi**: - ✅ Result 1 / Kết quả 1 - ✅ Result 2 / Kết quả 2 ### Step 3 / Bước 3: [Action Title] (Continue pattern for each step) ## Verification / Xác minh **EN**: How to verify that everything is working correctly. **VI**: Cách xác minh mọi thứ đang hoạt động chính xác. ### Quick Test / Kiểm tra nhanh ```bash # EN: Run verification command / VI: Chạy lệnh xác minh curl http://localhost:5000/health # EN: Expected response / VI: Phản hồi mong đợi {"status":"ok","timestamp":"2024-01-01T00:00:00.000Z"} ``` ### Verification Checklist / Danh sách kiểm tra **For .NET Services**: - [ ] Check 1: Service builds successfully / Service build thành công ```bash dotnet build ``` - [ ] Check 2: Database migrations applied / Migrations đã apply ```bash dotnet ef database update --project src/{ServiceName}.Infrastructure --startup-project src/{ServiceName}.API ``` - [ ] Check 3: Service responds to health checks / Service phản hồi health checks ```bash curl http://localhost:8080/health # Expected: {"status":"Healthy"} ``` - [ ] Check 4: Swagger UI accessible / Swagger UI truy cập được ```bash open http://localhost:8080/swagger ``` **For Traefik Integration**: - [ ] Check 5: Service registered in Traefik / Service đăng ký trong Traefik ```bash curl http://localhost:8080/api/http/routers # Should see your-service router ``` - [ ] Check 6: API accessible via gateway / API truy cập được qua gateway ```bash curl http://localhost/api/v1/your-service/health ``` ## Common Issues / Vấn đề Thường gặp ### Issue 1: [Problem Description] **EN Symptoms**: What you see when this problem occurs **VI Triệu chứng**: Những gì bạn thấy khi vấn đề này xảy ra **EN Solution**: ```bash # Steps to fix step-1 step-2 ``` **VI Giải pháp**: ```bash # Các bước để sửa step-1 step-2 ``` ### Issue 2: [Problem Description] (Repeat pattern for common issues) ## Troubleshooting Decision Tree / Cây Quyết định Khắc phục ```mermaid flowchart TD Problem[Service not accessible] --> Check1{Traefik
running?} Check1 -->|No| Solution1[Start Traefik:
docker-compose up traefik] Check1 -->|Yes| Check2{Service
container running?} Check2 -->|No| Solution2[Start service:
docker-compose up your-service] Check2 -->|Yes| Check3{Database
connection OK?} Check3 -->|No| Solution3[Check DATABASE_URL
Run migrations] Check3 -->|Yes| Logs[Check service logs:
docker-compose logs -f] Solution1 --> Resolved{Resolved?} Solution2 --> Resolved Solution3 --> Resolved Logs --> Resolved Resolved -->|No| Support[Check documentation:
docs/vi/guides/troubleshooting.md] Resolved -->|Yes| Success([Success]) style Problem fill:#f8d7da,stroke:#721c24,stroke-width:2px style Success fill:#d4edda,stroke:#155724,stroke-width:2px style Check1 fill:#fff3cd,stroke:#856404,stroke-width:2px style Check2 fill:#fff3cd,stroke:#856404,stroke-width:2px style Check3 fill:#fff3cd,stroke:#856404,stroke-width:2px ``` ## Advanced Options / Tùy chọn Nâng cao **EN**: Optional advanced configurations or alternative approaches. **VI**: Cấu hình nâng cao tùy chọn hoặc cách tiếp cận thay thế. ### Option 1 / Tùy chọn 1: [Title] **EN**: When to use this option and how to implement it. **VI**: Khi nào sử dụng tùy chọn này và cách triển khai. ```bash # Example command advanced-command --option ``` ## Next Steps / Bước Tiếp theo **EN**: What to do after completing this guide. **VI**: Làm gì sau khi hoàn thành hướng dẫn này. **For .NET Services**: - [ ] Next step 1: [Implement CQRS Commands](../skills/cqrs-mediatr.md) - [ ] Next step 2: [Add Repository Pattern](../skills/repository-pattern.md) - [ ] Next step 3: [Setup Redis Caching](../skills/redis-caching.md) - [ ] Next step 4: [Configure Observability](../guides/observability.md) **For Deployment**: - [ ] Next step 1: [Kubernetes Deployment](../guides/deployment.md) - [ ] Next step 2: [Configure CI/CD Pipeline](../guides/ci-cd.md) - [ ] Next step 3: [Setup Monitoring](../guides/observability.md) ## Additional Resources / Tài nguyên Bổ sung ### Related Documentation / Tài liệu Liên quan - [Related Guide 1](../guides/guide-1.md) - EN: Description / VI: Mô tả - [Related Architecture](../architecture/arch-doc.md) - EN: Description / VI: Mô tả - [Related Skill](../skills/skill-doc.md) - EN: Description / VI: Mô tả ### External Resources / Tài nguyên Bên ngoài - [Official Documentation](https://example.com) - EN: What it covers - [Tutorial](https://example.com) - EN: Video or article description ## FAQ / Câu hỏi Thường gặp ### EN: Question 1? Answer 1 in English. ### VI: Câu hỏi 1? Câu trả lời 1 bằng tiếng Việt. ### EN: Question 2? Answer 2 in English. ### VI: Câu hỏi 2? Câu trả lời 2 bằng tiếng Việt. --- **Difficulty / Độ khó**: Beginner/Intermediate/Advanced **Estimated Time / Thời gian ước tính**: X minutes **Authors / Tác giả**: VelikHo (hongochai10@icloud.com)