# Giới thiệu chung ## Tổng quan - ULFlow Golang Starter Kit là một khung phát triển backend theo mô hình Domain-Driven Design (DDD) - Được thiết kế để tạo ra các ứng dụng có thể bảo trì và mở rộng dễ dàng - Mục tiêu: Cung cấp một cấu trúc dự án chuẩn, các thành phần cơ bản và công cụ phát triển hiệu quả ## Nguyên tắc thiết kế - **User-Centric**: Ưu tiên trải nghiệm người dùng, giảm thiểu sự phức tạp - **Data-Oriented Programming (DOP)**: Thiết kế xoay quanh luồng dữ liệu và các biến đổi dữ liệu - **Domain-Driven Design (DDD)**: Áp dụng các khái niệm cốt lõi (Bounded Context, Aggregates, Domain Events) ## Tầm nhìn - Tạo ra nền tảng phát triển linh hoạt, dễ mở rộng cho các dự án backend Golang - Tích hợp các công nghệ hiện đại, best practices, và quy trình phát triển chuẩn - Cung cấp môi trường phát triển thống nhất cho team ## Hướng dẫn cài đặt ### Yêu cầu hệ thống - Go 1.23 - Docker và Docker Compose - Git ### Cài đặt 1. Clone repository ```bash git clone [repo-url] my-project cd my-project ``` 2. Thiết lập môi trường ```bash cp .env.example .env # Chỉnh sửa file .env theo nhu cầu ``` 3. Khởi động dev server ```bash make dev ``` ## Cấu trúc thư mục Dự án được tổ chức theo cấu trúc DDD chuẩn, với các thành phần chính: ``` │── .gitea/ # Gitea workflows & hooks │── cmd/ # Điểm vào của ứng dụng │ └── app/ # Main application │── internal/ # Mã nguồn chính của ứng dụng │ │── domain/ # Các đối tượng nghiệp vụ cốt lõi │ │ │── resource/ # Resource (Aggregates/Entities) │ │ └── transaction/ # Transaction (Use Cases) │ │── adapter/ # Giao tiếp với bên ngoài │ │ │── persistence/ # Repository implementations │ │ └── externalapi/ # External API clients │ │── helper/ # Tiện ích chung │ │ │── config/ # Configuration │ │ │── logger/ # Logging │ │ │── security/ # Authentication/Authorization │ │ └── validation/ # Input validation │ └── transport/ # Giao tiếp với client │ └── http/ # HTTP handlers & middleware │── docs/ # Tài liệu │── templates/ # Các file mẫu │── configs/ # File cấu hình │── migrations/ # Database migrations │── api/ # API definitions (OpenAPI/Swagger) │── scripts/ # Các tiện ích │── test/ # End-to-end tests └── tools/ # Development tools ## Hỗ trợ và đóng góp - Báo lỗi và feature request: Tạo issue trên repository - Đóng góp: Tạo pull request theo quy trình được mô tả trong workflow.md - Liên hệ: [email/contact-info]