Tổng quan hệ thống
1. Sơ đồ kiến trúc mức cao
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Ứng dụng khách │ │ Trang quản trị │ │ Trang web │
│ hàng (iOS/ │ │ (admin/) │ │ (frontend/) │
│ Android apps/) │ │ │ │ │
└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
│ HTTPS + JWT│ │
└──────────────┬────────┴──────────────────────┘
▼
┌───────────────────┐ ┌──────────────┐
│ Backend API │◄──────►│ MariaDB │
│ (Express 5) │ │ (Dữ liệu) │
└─────┬───────┬─────┘ └──────────────┘
│ │
┌───────────▼──┐ ┌─▼──────────────────────┐
│ Omise (thẻ) │ │ Firebase FCM (thông báo)│
└──────────────┘ └────────────────────────┘
2. Thành phần chính
| Thành phần |
Vai trò |
Ghi chú |
| API Backend |
Mọi nghiệp vụ: tài khoản, đơn hàng, giá, khuyến mãi, thông báo |
Bảo vệ bằng JWT |
| Ứng dụng khách hàng |
Điểm chạm chính của khách hàng |
Hỗ trợ iOS & Android, đa ngôn ngữ |
| Trang quản trị |
Quản lý nội dung, helper, đơn, khuyến mãi |
Dành cho nhân viên vận hành |
| Omise |
Cổng thanh toán thẻ tín dụng/ghi nợ |
Lưu thẻ an toàn theo chuẩn PCI |
| Firebase FCM |
Thông báo đẩy realtime |
Kèm badge số lượng chưa đọc |
3. Môi trường
| Môi trường |
Dùng để |
Dữ liệu |
| Dev |
Phát triển tính năng mới |
Dữ liệu giả lập |
| Staging |
Kiểm thử chấp nhận (UAT) |
Dữ liệu giống production, đã ẩn danh |
| Production |
Khách hàng thật |
Dữ liệu thật — chỉ vận hành mới được vào |
4. Vai trò người dùng
| Vai trò |
Mô tả |
Hành động chính |
| Khách hàng (Customer) |
Người đặt dịch vụ |
Đăng ký, đặt lịch, thanh toán, đánh giá |
| Helper (Người trợ giúp) |
Người thực hiện dịch vụ |
Nhận việc, cập nhật tiến trình |
| Quản trị viên (Admin) |
Nhân viên vận hành nền tảng |
Quản lý helper, giá, khuyến mãi, xử lý khiếu nại |
| Khách (Guest) |
Chưa đăng nhập |
Xem trang giới thiệu, dịch vụ; phải đăng ký để đặt lịch |