Đăng nhập/Đăng ký: Người dùng có thể đăng nhập hoặc đăng ký bằng số điện thoại và xác nhận bằng mã OTP. (Hoặc login bằng facebook/google)
Xem danh sách khuyến mãi: Người dùng có thể xem danh sách các khuyến mãi từ cửa hàng. Mỗi khuyến mãi yêu cầu một số lượng điểm nhất định để có thể đổi.
Đổi khuyến mãi bằng điểm và chọn khuyến mãi vào QR code của ứng dụng.
Xem lịch sử tích điểm: Người dùng có thể xem lịch sử các hoạt động tích điểm của mình.
Nhận thông báo từ ứng dụng: Người dùng có thể nhận các thông báo liên quan đến ứng dụng, như thông báo về khuyến mãi mới, thông báo về số điểm đã tích lũy, v.v.
Xem thông tin cá nhân: Người dùng có thể xem và cập nhật thông tin cá nhân của mình.
Quản lý cửa hàng
Quản lý khuyến mãi và cửa hàng: Người quản lý cửa hàng có thể thêm, chỉnh sửa hoặc xóa các khuyến mãi.
Quét mã QR: Người dùng có thể tích điểm thông qua việc quét mã QR. Mã QR này chứa ID người dùng và mã khuyến mãi (nếu có). Thực hiện chọn dịch vụ và cộng điểm cho người dùng và xem khuyến mãi người dùng đã đổi.
Quản lý dịch vụ của cửa hàng và số điểm cộng cho mỗi dịch vụ
Các thực thể của ứng dụng:
Người dùng (Admin, User, Quản lý) - Firebase Authencation
Service(id, name, description, should_notification,period, points_reward): period là khoảng định kì mà khách hàng sẽ muốn sử dụng dịch vụ, point_reward là điểm thưởng nhận được.
Transaction(id, type, points, reason, shop_id, user_id, service_id hoặc reward_id): service_id sẽ hiển thị khi cộng điểm cho khách, còn reward_id là khi khách đổi điểm nên điểm sẽ bị trừ. Type sẽ lưu trạng thái cộng hay trừ.
Người dùng
Quản lý cửa hàng
Các thực thể của ứng dụng:
Nhớ sài redis để cache dữ liệu nha