ulflow_phattt2901 b18758034e chore{init): Cập nhật inorege
Loại bỏ các file local không cần thiết lên repo
2025-05-07 11:58:18 +07:00
2025-05-06 02:26:24 +07:00
2025-05-07 11:58:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-05 20:59:27 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-07 11:58:18 +07:00
2025-05-02 15:12:18 +07:00
2025-05-02 18:45:38 +07:00
2025-05-02 15:12:18 +07:00

Matching App (v2)

Go Version PostgreSQL Docker HTMX

Hệ thống kết nối các cá nhân dựa trên thuật toán matching thông minh, được thiết kế theo nguyên tắc Domain-Driven Design với trải nghiệm người dùng là ưu tiên hàng đầu.

Tổng quan dự án

Matching App là một ứng dụng kết nối giữa các cá nhân dựa trên sở thích, tính cách, và các yếu tố tương thích khác. Hệ thống hỗ trợ quy mô lớn với 20,000+ người tham gia và 5,000+ lượt matching.

Đặc điểm nổi bật

  • Thuật toán matching thông minh dựa trên nhiều yếu tố
  • Thiết kế hướng người dùng với giao diện đơn giản, trực quan
  • Hỗ trợ tính năng quà tặng và rút thưởng ngẫu nhiên
  • Hiệu suất cao, xử lý đồng thời 100+ request/s với độ trễ API <500ms

Tính năng chính

  • Đăng ký profile: Thu thập thông tin cá nhân và sở thích
  • Matching: Thuật toán ghép cặp dựa trên sự tương thích
  • Xem và lựa chọn kết quả: Người dùng có thể xem và lựa chọn từ 3 kết quả matching tiềm năng
  • Hệ thống quà tặng: Phân bổ quà tặng ngẫu nhiên cho người tham gia
  • Báo cáo và phân tích: Bảng điều khiển admin với các báo cáo và thống kê chi tiết

Công nghệ sử dụng

  • Backend: Go (1.20+)
  • Database: PostgreSQL
  • Frontend: HTMX + Vanilla JavaScript
  • Containerization: Docker + Docker Compose
  • CI/CD: DroneCI
  • Storage: S3 (cho lưu trữ ảnh người dùng)

Kiến trúc hệ thống

Dự án được xây dựng theo mô hình Domain-Driven Design với các thành phần chính:

  • Resource: Các Aggregate DDD (Profile, MatchOutcome, Gift, GiftAllocation)
  • Transaction: Các Saga điều phối luồng nghiệp vụ phức tạp
  • Adapter: Xử lý giao tiếp với các hệ thống bên ngoài
  • Helper: Các thư viện, tiện ích dùng chung
  • UIUX: Lớp giao diện người dùng

Xem chi tiết kiến trúc tại docs/architecture.md.

Bắt đầu sử dụng

Yêu cầu hệ thống

  • Go 1.20+
  • Docker và Docker Compose
  • PostgreSQL 14+ (hoặc sử dụng Docker)
  • Make (cho các lệnh tiện ích)

Cài đặt môi trường phát triển

  1. Clone repository:

    git clone [repo-url]
    cd matchingv2
    
  2. Cài đặt biến môi trường:

    cp .env.example .env
    

    (Chỉnh sửa file .env theo cấu hình mong muốn)

  3. Khởi động môi trường phát triển:

    make dev
    

Các lệnh hữu ích

Phát triển

  1. Linting

    golangci-lint run
    
  2. Chạy unit tests

    go test ./...
    
  3. Build binary

    go build -o matching-app cmd/api/main.go
    
  4. Khởi động môi trường với hot-reload

    air
    

Docker

  1. Build và khởi động Docker

    docker-compose up --build -d
    
  2. Kiểm tra logs

    docker-compose logs -f app
    
  3. Dừng môi trường Docker

    docker-compose down
    

Kiểm tra Health-check

curl http://localhost:8080/healthz

Hoặc truy cập API cấu hình:

curl http://localhost:8080/campaign/config

Tài liệu dự án

Liên hệ

Để biết thêm thông tin hoặc báo cáo vấn đề, vui lòng liên hệ với nhóm phát triển.

Description
Zee Application
Readme 7.5 MiB
Complete CICD Latest
2025-05-05 19:26:24 +00:00
Languages
Makefile 44.2%
Go 40.3%
Dockerfile 12.5%
Shell 3%