Golang · Clean Architecture · REST and WebSocket
Realtime Chat
Dịch vụ trò chuyện được thiết kế cho môi trường vận hành thực tế, cung cấp xác thực, quan hệ bạn bè, nhóm và tin nhắn thời gian thực. REST API dùng Gin, còn Gorilla WebSocket duy trì đăng ký theo nhóm và phân phối tin nhắn tới thành viên đang kết nối. Mã truy cập JWT đi cùng mã làm mới trong cookie HttpOnly để cân bằng trải nghiệm và bảo mật. Tệp đính kèm được tải lên vùng lưu trữ, còn lược đồ PostgreSQL được chuyển đổi tự động khi khởi động.
cmd/api khởi tạo dependency → HTTP/WebSocket delivery → Use Case → Domain Contract → PostgreSQL và file storage infrastructure. Domain không phụ thuộc Gin hay GORM; delivery layer chuyển request thành input cho Use Case. WebSocket Hub quản lý connection và subscription, còn Repository chịu trách nhiệm persistence.
Tech stack
Kiến trúc
Clean Architecture · REST and WebSocket
cmd/api khởi tạo dependency → HTTP/WebSocket delivery → Use Case → Domain Contract → PostgreSQL và file storage infrastructure. Domain không phụ thuộc Gin hay GORM; delivery layer chuyển request thành input cho Use Case. WebSocket Hub quản lý connection và subscription, còn Repository chịu trách nhiệm persistence.
Core features
- Đăng ký, đăng nhập và tự động đăng nhập sau khi tạo tài khoản
- Mã truy cập JWT và mã làm mới HttpOnly
- Gửi và xử lý lời mời kết bạn
- Tạo nhóm và quản lý thành viên
- Trò chuyện nhóm thời gian thực bằng WebSocket
- Tải tệp lên và đính kèm vào tin nhắn
- Tích hợp sẵn các bản chuyển đổi cơ sở dữ liệu
- CORS và xác thực dữ liệu tại lớp tiếp nhận