Giới thiệu dự án
Ngành dịch vụ ẩm thực và đồ uống (F&B - Food and Beverage) tại Việt Nam duy trì tốc độ tăng trưởng kép hàng năm (CAGR) ấn tượng từ 10-12%. Tuy nhiên, hơn 70% các cửa hàng kinh doanh quán cà phê quy mô vừa và nhỏ (SMBs) vẫn đang vận hành dựa trên các phương thức thủ công hoặc bán tự động rời rạc. Tại điểm kinh doanh thực nghiệm – quán cà phê Sala Cafe (TP. Hồ Chí Minh), quy trình vận hành bộc lộ nhiều điểm nghẽn nghiêm trọng trong các khung giờ cao điểm (Peak hours) và dịp lễ: thời gian chờ phục vụ tăng gấp 2-3 lần, tỷ lệ sai sót thực đơn khi ghi chép tay dao động từ 15-20%, quy trình thanh toán mất từ 5-10 phút/bàn, và công tác kiểm kê kho nguyên liệu trễ hạn theo chu kỳ tuần gây thất thoát từ 8-12% chi phí nguyên vật liệu.
[Khách hàng] ──(QR Code)──> [Web Client Order] ──┐
▼
[Nhân viên] ──(Android App)──> [Spring Boot REST API] <──> [MySQL 8.0 DB]
│
▼
[Quầy Pha Chế] <──(Realtime Sync)── [Firebase Realtime DB]
Dự án "Website Quản lý Quán Cà phê" do sinh viên Nguyễn Tấn Luông thực hiện dưới sự hướng dẫn khoa học của ThS. Huỳnh Trung Trụ tại Học viện Công nghệ Bưu chính Viễn thông (PTIT TP.HCM) giải quyết toàn diện bài toán tối ưu hóa vận hành F&B thông qua kiến trúc kết hợp Web-Mobile-Cloud.
Hệ thống đặt ra 5 mục tiêu cụ thể:
- Xây dựng cổng quản trị Web Admin đa chức năng trên nền tảng Java Servlet/JSP và Spring Boot.
- Phát triển ứng dụng di động Android chuyên dụng cho nhân viên phục vụ, tích hợp đầy đủ nghiệp vụ gọi món, chuyển bàn, gộp bàn và thanh toán.
- Thiết lập hệ thống đồng bộ dữ liệu thời gian thực (Real-time synchronization) giữa quầy phục vụ và quầy pha chế qua Firebase Realtime Database với độ trễ dưới 100ms.
- Triển khai phân hệ tự phục vụ (Self-ordering) qua mã QR động tại từng bàn.
- Số hóa quy trình quản lý kho, tự động tính toán giá vốn dựa trên công thức pha chế (Recipe) và kích hoạt cảnh báo tồn kho ngưỡng tới hạn.
Phạm vi nghiên cứu tập trung vào mô hình phục vụ tại chỗ kết hợp mang đi tại Sala Cafe, với các ràng buộc kỹ thuật trên hạ tầng máy chủ cục bộ kết hợp dịch vụ điện toán đám mây Firebase.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Khảo sát thực tế các phương pháp quản lý F&B phổ biến trên thị trường cho thấy sự phân hóa rõ rệt giữa chi phí và hiệu quả vận hành:
| Tiêu chí so sánh |
Phương pháp ghi chép thủ công |
POS đóng gói (KiotViet, CukCuk) |
Giải pháp hệ thống đề tài |
| Chi phí đầu tư ban đầu |
Gần như bằng 0 |
Định kỳ hàng tháng/năm |
Tối ưu hóa trên hạ tầng sẵn có |
| Tốc độ truyền tin Order |
Thủ công (120 - 300 giây) |
10 - 30 giây (mạng nội bộ) |
Tức thì (< 1 giây qua Firebase) |
| Khả năng tự gọi món (QR) |
Không hỗ trợ |
Phụ thuộc gói nâng cao |
Tích hợp sẵn theo bàn vật lý |
| Kiểm soát định lượng kho |
Sai lệch lớn, kiểm kê cuối tuần |
Có hỗ trợ cơ bản |
Liên kết trực tiếp công thức pha chế |
| Tính tùy biến & Mở rộng |
Không |
Bị khóa theo nhà cung cấp |
Mã nguồn mở, dễ dàng module hóa |
Yêu cầu người dùng được lượng hóa và phân loại theo ma trận MoSCoW:
- Must-have (Bắt buộc): Xác thực tài khoản đa quyền (Quản lý, Phục vụ, Pha chế), luồng gọi món và in hóa đơn tại bàn, cập nhật trạng thái đơn hàng thời gian thực đến quầy Bar, module quản lý định lượng kho nguyên liệu.
- Should-have (Nên có): Chuyển/gộp bàn tự động gộp hóa đơn, cảnh báo nguyên liệu dưới ngưỡng an toàn, phân hệ quét mã QR cho khách hàng tự gọi món.
- Could-have (Có thể có): Biểu đồ trực quan hóa doanh số bán chạy theo khoảng thời gian tùy chỉnh, module quản lý chiến dịch khuyến mãi chống trùng lặp thời gian.
- Won't-have (Chưa thực hiện): Tích hợp cổng thanh toán trực tuyến qua ví điện tử bên thứ ba (MoMo, VNPay), hệ thống nhận diện khuôn mặt khách hàng thân thiết.
Thiết kế hệ thống
Kiến trúc tổng thể được xây dựng theo mô hình Client-Server phân tầng (3-tier architecture):
- Tầng Trình diễn (Presentation Layer): Web Portal cho quản trị viên (HTML5, CSS3, Bootstrap 4, jQuery, JavaScript ES6) và Mobile App cho nhân viên (Android Native SDK, Java, Volley Networking Library).
- Tầng Nghiệp vụ (Business Logic Layer): Hệ sinh thái kép gồm Java Servlet/JSP chạy trên Apache Tomcat 9.0 phục vụ quản trị Web và Spring Boot 2.2 RESTful API xử lý các giao thức truyền nhận JSON với Android App và Web Client. Xác thực bảo mật áp dụng giao thức Auth0 JSON Web Token (JWT) mã hóa HMAC256.
- Tầng Dữ liệu (Data Layer): Hệ quản trị cơ sở dữ liệu quan hệ MySQL 8.0 lưu trữ bền vững (Persistence storage) kết hợp Firebase Realtime Database đảm nhận vai trò kênh truyền đồng bộ trạng thái (Message broker/Event bus) không lưu trạng thái (Stateless).
graph TD
ClientApp[Android App / QR Web Client] -->|HTTPS REST Request + JWT| APIGateway[Spring Boot 2.2 RESTful API]
AdminWeb[Web Admin Dashboard] -->|HTTP / JSP Servlet| AppServer[Apache Tomcat Server]
APIGateway -->|JDBC / JPA Query| MySQLDB[(MySQL 8.0 Database)]
AppServer -->|JDBC Query| MySQLDB
APIGateway -->|WebSocket Event Push| FirebaseDB[(Firebase Realtime Database)]
FirebaseDB -->|Realtime Stream| BarScreen[Quầy Pha Chế / Bartender Screen]
Cơ sở dữ liệu quan hệ được chuẩn hóa ở dạng chuẩn 3NF với 17 bảng thực thể chính. Cấu trúc bảng và lược đồ quan hệ định lượng chi tiết:
-- Thiết kế lược đồ bảng cấu thành sản phẩm và quản lý định lượng
CREATE TABLE `Products` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`product_name` VARCHAR(255) NOT NULL,
`id_category` INT NOT NULL,
`price` DOUBLE NOT NULL,
`image` VARCHAR(255),
`note` TEXT,
CONSTRAINT `fk_prod_cat` FOREIGN KEY (`id_category`) REFERENCES `Categories`(`id`)
);
CREATE TABLE `Ingredients` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`ingredient_name` VARCHAR(255) NOT NULL,
`id_ing_category` INT NOT NULL,
`unit` VARCHAR(50) NOT NULL,
`warning_threshold` DOUBLE NOT NULL DEFAULT 10.0,
`stock_quantity` DOUBLE NOT NULL DEFAULT 0.0,
CONSTRAINT `fk_ing_cat` FOREIGN KEY (`id_ing_category`) REFERENCES `Ingredient_Category`(`id`)
);
CREATE TABLE `Recipe` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`id_product` INT NOT NULL,
`id_ingredient` INT NOT NULL,
`quantity` DOUBLE NOT NULL,
CONSTRAINT `fk_rec_prod` FOREIGN KEY (`id_product`) REFERENCES `Products`(`id`),
CONSTRAINT `fk_rec_ing` FOREIGN KEY (`id_ingredient`) REFERENCES `Ingredients`(`id`)
);
Phương pháp luận phát triển (Methodology)
Dự án áp dụng quy trình phát triển phần mềm lặp linh hoạt (Agile/Scrum rút gọn) với tổng thời gian thực hiện 12 tuần, chia thành 4 Sprint:
- Sprint 1 (Tuần 1-3): Khảo sát hiện trạng Sala Cafe, mô hình hóa nghiệp vụ bằng UML (Use Case, DFD cấp 0, ERD) và khởi tạo Schema MySQL.
- Sprint 2 (Tuần 4-6): Xây dựng Core Web Module (Servlet/JSP), Module xác thực người dùng và Quản lý danh mục/Sản phẩm/Bàn.
- Sprint 3 (Tuần 7-9): Xây dựng Spring Boot RESTful API, thiết kế giao diện Android App với Android Studio và tích hợp Firebase Realtime Database.
- Sprint 4 (Tuần 10-12): Kiểm thử tích hợp (Integration Testing), triển khai thử nghiệm thực tế tại Sala Cafe và hiệu chỉnh hiệu năng.
Implementation và kết quả
Quy trình phát triển và Thuật toán cốt lõi
Trọng tâm xử lý logic của hệ thống tập trung vào 2 thuật toán:
- Thuật toán tính giá vốn tự động (Cost of Goods Sold - COGS): Định lượng chính xác chi phí nguyên liệu cấu thành để ngăn ngừa thiết lập giá bán dưới điểm hòa vốn:
$$\text{COGS} = \sum_{i=1}^{n} (\text{Quantity}_i \times \text{LatestUnitPrice}_i)$$
Trong đó $\text{Quantity}_i$ là định lượng nguyên liệu $i$ trong bảng Recipe, và $\text{LatestUnitPrice}_i$ là đơn giá nhập kho gần nhất trong bảng Import_Detail.
- Cơ chế đồng bộ hóa luồng đơn hàng với Firebase:
// Đoạn mã xử lý lưu hóa đơn và đẩy sự kiện sang Firebase Realtime Database
@RestController
@RequestMapping("/api/v1/orders")
public class OrderApiController {
@Autowired
private OrderService orderService;
@PostMapping("/create")
public ResponseEntity<?> createOrder(@Valid @RequestBody OrderRequestDTO orderDto,
@RequestHeader("Authorization") String bearerToken) {
// 1. Xác thực tính hợp lệ của token
if (!JwtUtils.validateToken(bearerToken)) {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Token không hợp lệ hoặc đã hết hạn");
}
// 2. Lưu trạng thái hóa đơn vào MySQL Database
Bill savedBill = orderService.saveOrderTransaction(orderDto);
// 3. Chuẩn bị Payload đẩy dữ liệu Realtime sang Firebase cho Bar Screen
Map<String, Object> firebasePayload = new HashMap<>();
firebasePayload.put("billId", savedBill.getId());
firebasePayload.put("tableName", savedBill.getTable().getTableName());
firebasePayload.put("orderTime", new SimpleDateFormat("HH:mm:ss dd/MM/yyyy").format(new Date()));
firebasePayload.put("items", savedBill.getBillDetails());
firebasePayload.put("status", "PENDING_PREPARATION");
FirebaseDatabase.getInstance().getReference("KitchenOrders")
.child(String.valueOf(savedBill.getId()))
.setValueAsync(firebasePayload);
return ResponseEntity.ok(new ApiResponse(true, "Đơn hàng đã được gửi đến quầy pha chế", savedBill.getId()));
}
}
// Client Android lắng nghe dữ liệu pha chế hoàn tất từ Firebase
DatabaseReference kitchenRef = FirebaseDatabase.getInstance().getReference("KitchenOrders");
kitchenRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildChanged(DataSnapshot snapshot, String previousChildName) {
String status = snapshot.child("status").getValue(String.class);
if ("COMPLETED".equals(status)) {
String tableName = snapshot.child("tableName").getValue(String.class);
NotificationHelper.showNotification(getApplicationContext(),
"Món ăn sẵn sàng", "Bàn " + tableName + " đã được pha chế xong!");
}
}
@Override
public void onCancelled(DatabaseError error) { Log.e("FirebaseSync", error.getMessage()); }
});
Kiểm thử và Đánh giá hiệu năng
Kiểm thử hệ thống được thực thi trên môi trường máy chủ cục bộ (Intel Core i5-8250U, 8GB RAM) và 10 thiết bị di động Android (Android 8.0 đến Android 10). Kiểm thử tải (Load Testing) bằng Apache JMeter với kịch bản mô phỏng 200 người dùng đồng thời (Concurrent Users) gửi yêu cầu gọi món:
[200 Virtual Users] ──HTTP Request──> [Spring Boot API Server]
- Throughput: 185.4 req/sec
- Average Latency: 142 ms
- Error Rate: 0.00%
- Peak Memory: 320 MB JVM Heap
- Độ bao phủ kiểm thử (Test Coverage): 88.5% đối với các tầng Service và Repository sử dụng JUnit và Mockito.
- Thời gian phản hồi API trung bình: 142ms cho các truy vấn đọc/ghi giao dịch hóa đơn.
- Tốc độ đồng bộ Firebase Realtime: Dao động từ 65ms - 95ms trên kết nối Wi-Fi chuẩn 802.11n.
- Tỷ lệ phát hiện lỗi (Bug Resolution): 42 lỗi được ghi nhận trong giai đoạn Beta Testing, khắc phục thành công 100% trước khi nghiệm thu.
Kết quả đạt được
Hệ thống hoàn thành 100% các yêu cầu chức năng đề ra trong đề cương:
- Phân hệ Web Admin điều hành trơn tru các tác vụ CRUD cho 8 nhóm thực thể (Người dùng, Bàn/Khu vực, Menu, Danh mục, Kho, Phiếu nhập, Khuyến mãi, Thống kê).
- Ứng dụng Android chạy ổn định, hỗ trợ thao tác chuyển bàn và gộp bàn chỉ với 2 lần chạm, tự động tính toán lại hóa đơn chuẩn xác.
- Tính năng Self-ordering qua mã QR hoạt động chuẩn xác trên mọi trình duyệt di động mà không cần cài đặt thêm ứng dụng từ bên thứ ba.
Đổi mới và đóng góp
- Kiến trúc dữ liệu phân tán lai (Hybrid Data Architecture): Kết hợp tính toàn vẹn giao dịch (ACID) của MySQL với tốc độ truyền tin hướng sự kiện dạng NoSQL của Firebase Realtime Database. Cấu trúc này giảm tải đến 75% các truy vấn lặp lại (Polling query) lên cơ sở dữ liệu chính.
- Hệ thống liên kết định lượng kho động (Dynamic Recipe Mapping): Khắc phục triệt để tình trạng thất thoát định lượng. Mỗi khi một sản phẩm được xác nhận bán ra, lượng tồn kho của từng nguyên liệu thành phần trong bảng
Ingredients tự động khấu trừ theo đúng tỷ lệ định mức.
- Cơ chế xác thực phân tán stateless với Auth0 JWT: Cho phép mở rộng điểm truy cập (POS Terminal, Mobile Device) không giới hạn mà không gây nghẽn bộ nhớ lưu session trên server.
+-------------------------------------------------------------+
| HIỆU QUẢ TỐI ƯU HÓA HOẠT ĐỘNG |
+-------------------------------------------------------------+
| Thời gian Order-to-Kitchen: Giảm 68% (từ 5p còn 1.5p) |
| Tỷ lệ sai sót order/nhầm món: Giảm 92% (dưới 1.5%) |
| Tốc độ tính tiền/in hóa đơn: Giảm 60% (từ 5p còn 2p) |
| Tỷ lệ thất thoát nguyên liệu kho: Giảm 80% |
+-------------------------------------------------------------+
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế tại Sala Cafe
Hệ thống được vận hành theo quy trình khép kín tối ưu:
- Kịch bản gọi món tại bàn: Khách hàng ngồi tại Bàn 04 (Khu A) quét mã QR dán trên mặt bàn. Menu điện tử hiển thị giao diện gọi món. Sau khi khách nhấn "Thông báo", tín hiệu được đẩy về Android App của nhân viên phục vụ. Nhân viên kiểm tra, xác nhận trong 5 giây. Ngay lập tức, màn hình tại quầy pha chế hiển thị chi tiết tên món, số lượng kèm ghi chú đặc biệt ("ít đường, nhiều đá"). Khi pha chế hoàn tất, quầy Bar bấm "Hoàn thành", kích hoạt chuông báo trên điện thoại nhân viên để chuyển đồ uống đến đúng bàn.
- Kịch bản chuyển/gộp bàn: Khi nhóm khách Bàn 04 muốn chuyển sang Bàn 08 (đang có khách), nhân viên chọn tính năng "Gộp bàn" trên ứng dụng Android. Hệ thống tự động hợp nhất các chi tiết đơn hàng (
Bill_Details) vào một mã hóa đơn duy nhất và cập nhật trạng thái Bàn 04 thành "Bàn trống".
sequenceDiagram
autonumber
actor Khach as Khách hàng
actor PhucVu as Nhân viên Phục vụ
actor PhaChe as Nhân viên Pha chế
participant System as Web/Android App
participant Cloud as Firebase & MySQL
Khach->>System: Quét mã QR & Chọn món
System->>PhucVu: Gửi yêu cầu xác nhận đơn
PhucVu->>System: Bấm "Xác nhận"
System->>Cloud: Ghi nhận Bill (MySQL) & Đẩy Realtime (Firebase)
Cloud->>PhaChe: Cập nhật danh sách pha chế tức thì
PhaChe->>System: Bấm "Hoàn thành pha chế"
System->>PhucVu: Thông báo mang món cho bàn
PhucVu->>Khach: Phục vụ đồ uống
Chiến lược triển khai và Yêu cầu hệ thống
Hệ thống được đóng gói để triển khai linh hoạt trên hạ tầng On-premise hoặc Private Cloud:
- Máy chủ ứng dụng (Server Node): Ubuntu Server 18.04 LTS / Windows Server, JDK 1.8 trở lên, Apache Tomcat 9.0, MySQL 8.0 Server. Cấu hình tối thiểu: 2 Core CPU, 4GB RAM, 50GB SSD.
- Thiết bị đầu cuối (Client Nodes):
- Quản lý/Thu ngân: Máy tính cá nhân chạy trình duyệt Chrome/Firefox/Edge.
- Phục vụ: Thiết bị di động Android 6.0 (Marshmallow) trở lên, kết nối mạng Wi-Fi băng tần 2.4GHz/5GHz.
- Khách hàng: Mọi smartphone có camera và trình duyệt tiêu chuẩn.
Phân tích Hiệu quả Đầu tư (Cost-Benefit & ROI Analysis)
- Chi phí đầu tư ban đầu: Thiết lập hệ thống mã nguồn mở tiết kiệm 100% phí bản quyền phần mềm so với các gói POS thương mại (tiết kiệm ~6.000.000 - 10.000.000 VNĐ/năm).
- Tối ưu hóa nhân sự: Giảm thiểu 1 vị trí nhân viên chạy bàn trong giờ cao điểm nhờ luồng gọi món QR và điều phối tự động, tiết kiệm trực tiếp 5.000.000 VNĐ/tháng chi phí vận hành.
- Thời gian hoàn vốn (ROI): Dự kiến đạt điểm hòa vốn sau 3.5 tháng triển khai thông qua việc cắt giảm lãng phí nguyên liệu và tăng vòng quay phục vụ bàn (Table turnover rate) lên 22%.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Phân hệ đồng bộ dữ liệu thời gian thực phụ thuộc vào đường truyền Internet ra cổng dịch vụ Firebase; khi mạng Internet diện rộng bị ngắt, chỉ còn các luồng mạng LAN cục bộ hoạt động.
- Chưa tích hợp chữ ký số và máy in nhiệt bluetooth trực tiếp từ điện thoại Android của nhân viên.
Định hướng nâng cấp
- Kiến trúc Offline-First: Xây dựng cơ chế Local Cache và SQLite đồng bộ hai chiều (Bi-directional sync) khi có mạng trở lại.
- Ứng dụng Trí tuệ nhân tạo (AI Engine): Áp dụng thuật toán học máy (Machine Learning) dựa trên chuỗi thời gian (Time-series Forecasting) để dự báo nhu cầu nhập kho nguyên liệu theo mùa vụ, ngày lễ và điều kiện thời tiết.
- Mở rộng mô hình Chuỗi (Multi-tenant SaaS Architecture): Tách biệt cơ sở dữ liệu logic để hỗ trợ quản trị chuỗi nhiều chi nhánh quán cà phê trên một hạ tầng thống nhất.
Đối tượng hưởng lợi
- Sinh viên & Học viên Công nghệ: Cung cấp tài liệu tham khảo hoàn chỉnh từ thiết kế UML, mô hình cơ sở dữ liệu quan hệ đến triển khai thực tế full-stack (Java Servlet, Spring Boot, Android, Firebase).
- Lập trình viên (Developers): Cung cấp mẫu thiết kế chuẩn (Design Patterns) về việc kết hợp giữa kiến trúc RESTful API Stateless và hệ cơ sở dữ liệu Realtime Event-driven.
- Chủ doanh nghiệp F&B: Cung cấp giải pháp phần mềm độc lập, không chịu phí thuê bao định kỳ, nâng cao hiệu suất vận hành và kiểm soát chặt chẽ giá vốn nguyên vật liệu.
- Nhà nghiên cứu ứng dụng: Minh chứng cho tính khả thi của việc ứng dụng công nghệ di động và điện toán đám mây vào chuyển đổi số các mô hình kinh doanh truyền thống.
Câu hỏi thường gặp
1. Hệ thống có thể hoạt động hoàn toàn trong mạng nội bộ (Offline LAN) khi mất Internet không?
Phần lõi quản trị Web Admin và cơ sở dữ liệu MySQL chạy hoàn toàn cục bộ trong mạng LAN nên các hoạt động quản lý kho, sản phẩm, và in hóa đơn tại quầy thu ngân vẫn diễn ra bình thường. Tuy nhiên, tính năng đồng bộ thời gian thực đến quầy pha chế qua Firebase và gọi món từ xa qua QR Code yêu cầu kết nối Internet để truyền nhận dữ liệu.
2. Giới hạn chịu tải tối đa của hệ thống là bao nhiêu kết nối đồng thời?
Với cấu hình máy chủ tầm trung (4 Cores, 8GB RAM), kiến trúc Spring Boot REST API có khả năng xử lý ổn định 300-500 yêu cầu/giây, tương đương với quy mô phục vụ cùng lúc từ 50-80 bàn ăn mà không xảy ra hiện tượng trễ hay nghẽn hàng đợi (Queue saturation).
3. Làm thế nào để đảm bảo tính duy nhất và không bị giả mạo khi khách hàng quét mã QR gọi món?
Mỗi bàn vật lý được gán một mã định danh duy nhất (UUID) tích hợp trong đường dẫn QR Code. Hệ thống kiểm tra trạng thái bàn theo thời gian thực: chỉ các bàn ở trạng thái "Trống" hoặc "Đang phục vụ" mới có thể gửi yêu cầu đặt món, và mọi đơn hàng từ khách đều phải qua bước phê duyệt một chạm của nhân viên phục vụ trước khi gửi xuống bếp.
4. Chi phí bảo trì và nâng cấp định kỳ hệ thống ước tính như thế nào?
Do sử dụng nền tảng mã nguồn mở (Java, MySQL, Linux, Android) và gói dịch vụ miễn phí (Spark Plan) của Google Firebase cho quy mô quán đơn lẻ, chi phí duy trì phần mềm định kỳ xấp xỉ 0 đồng. Chi phí bảo trì chủ yếu tập trung vào khấu hao phần cứng máy chủ và thiết bị di động.
5. Dữ liệu công thức pha chế (Recipe) và giá vốn có được bảo mật an toàn trước nhân viên không?
Hệ thống sử dụng cơ chế phân quyền dựa trên vai trò (Role-Based Access Control - RBAC). Chỉ tài khoản có quyền ROLE_MANAGER mới có quyền truy cập module công thức pha chế, giá nhập nguyên liệu và báo cáo tài chính. Nhân viên phục vụ (ROLE_WAITER) và pha chế (ROLE_BARTENDER) chỉ xem được danh sách món và ghi chú pha chế tương ứng.
Kết luận
Đồ án tốt nghiệp "Website Quản lý Quán Cà phê" của tác giả Nguyễn Tấn Luông đã xây dựng thành công một giải pháp công nghệ toàn diện, giải quyết triệt để các vấn đề nhức nhối trong quản lý vận hành F&B thực tế tại Sala Cafe. Bằng sự kết hợp chặt chẽ giữa nền tảng Web quản trị Java Spring Boot, ứng dụng di động Android tiện lợi và công nghệ đồng bộ đám mây Firebase Realtime Database, dự án đã chứng minh được tính khả thi kỹ thuật cao cùng giá trị kinh tế rõ nét. Đây là nền tảng vững chắc để tiếp tục phát triển thành sản phẩm thương mại hóa hoàn chỉnh trong hệ sinh thái chuyển đổi số ngành bán lẻ và dịch vụ ẩm thực.