Thiết kế hệ thống¶
Cập nhật gần nhất: 17/03/2026
Kiến trúc tổng thể¶
flowchart TD
A["BeFam Flutter app (Android/iOS)"] --> B["Firebase Auth"]
A --> C["Cloud Firestore"]
A --> D["Firebase Storage"]
A --> E["Cloud Functions v2 (asia-southeast1)"]
A --> F["Firebase Cloud Messaging"]
A --> K["Luồng thanh toán VNPay"]
E --> C
E --> F
K --> L["Payment Gateway"]
L --> E
G["GitHub Actions CI/CD"] --> H["Nhánh bảo vệ staging/main"]
G --> I["GitHub Releases + GHCR images"]
G --> J["Deploy Firebase + GitHub Pages"]
Ranh giới runtime¶
- mobile chịu trách nhiệm lớp hiển thị và điều phối trạng thái cục bộ
- Firestore là nguồn dữ liệu chuẩn cho nghiệp vụ
- Cloud Functions xử lý luồng nhiều document và gửi push
- xác nhận thanh toán và thay đổi trạng thái gói nằm ở phía server
- quyền lợi gói được tính phía server và phản ánh về UI
- Firebase Rules đảm bảo phạm vi clan và phân quyền
Môi trường và topology nhánh¶
- nhánh tích hợp:
staging - nhánh phát hành production:
main - Firebase production project:
be-fam-3ab23 - vùng functions chính:
asia-southeast1 - múi giờ scheduler:
Asia/Ho_Chi_Minh
Đặc tính hệ thống hiện tại¶
- mặc định ứng dụng dùng tiếng Việt, có tiếng Anh dự phòng
- ngữ cảnh phiên đồng bộ qua custom claims và
users/{uid} - push notification hỗ trợ các nhóm mục tiêu chính
- workflow release tạo artifact mobile và image container
Nguyên tắc thiết kế đang áp dụng¶
- quan hệ chuẩn nằm ở
relationships; mảng phi chuẩn hóa ởmembersđể tăng tốc độ đọc - thao tác nhạy cảm phải kiểm soát theo vai trò và phạm vi
- ưu tiên trạng thái rõ ràng và log có cấu trúc hơn side effect ngầm