Giới thiệu dự án
Thị trường Dịch vụ Thực phẩm và Đồ uống (F&B - Food and Beverage) tại Việt Nam đang chứng kiến sự tăng trưởng vượt bậc với mức độ cạnh tranh ngày càng gay gắt. Theo báo cáo thị trường F&B Việt Nam do iPOS.vn công bố, tính đến hết năm 2022, toàn quốc có hơn 338.600 nhà hàng/quán cà phê, tăng hơn 18.000 cơ sở so với thời điểm trước đại dịch (2019). Sự bùng nổ về số lượng kéo theo nhu cầu cấp thiết trong việc chuẩn hóa quy trình vận hành và ứng dụng công nghệ thông tin vào quản trị kinh doanh.
Tuy nhiên, phần lớn các quán cà phê quy mô vừa và nhỏ (SMB - Small and Medium Businesses) hiện nay vẫn phụ thuộc vào phương thức quản lý thủ công truyền thống (sổ sách, ghi nhớ cá nhân hoặc bảng tính Excel rời rạc). Thực trạng này dẫn đến nhiều hệ lụy nghiêm trọng:
- Tỷ lệ sai sót trong tính toán hóa đơn và thất thoát dòng tiền dao động từ 5% - 10%.
- Thất thoát nguyên vật liệu pha chế không kiểm soát, chênh lệch tồn kho thực tế và sổ sách lên đến 15%.
- Thời gian phục vụ tại quầy chậm (trung bình 2 - 4 phút/đơn hàng vào khung giờ cao điểm), gây ùn tắc và giảm trải nghiệm khách hàng.
- Thiếu hụt các báo cáo tài chính, phân tích doanh thu theo thời gian thực (Real-time Analytics), khiến người quản trị gặp khó khăn trong việc ra quyết định nhập hàng và tối ưu thực đơn.
Đồ án tốt nghiệp chuyên ngành Công nghệ Thông tin với đề tài "Xây dựng hệ thống hỗ trợ quản lý bán hàng cho quán cà phê" (Hệ thống Forcafe) do sinh viên Trần Công Trường thực hiện dưới sự hướng dẫn của PGS. Võ Trung Hùng tại Trường Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵng đã được nghiên cứu và phát triển nhằm giải quyết triệt để các bài toán thực tiễn trên.
+-------------------------------------------------------------------------+
| HỆ THỐNG FORCAFE |
| +-------------------+ +--------------------+ +------------------+ |
| | Điểm bán (POS) | | Quản lý Kho - NCC | | Báo cáo Thống kê | |
| | Order & In Bill | | Nhập & Cân đối kho | | Doanh thu & SP | |
| +---------+---------+ +---------+----------+ +--------+---------+ |
| +----------------------+----------------------+ |
| | |
| +------------v------------+ |
| | Phân quyền & Quản trị | |
| | Admin - Manager - Staff | |
| +-------------------------+ |
+-------------------------------------------------------------------------+
Mục tiêu dự án
- Chuẩn hóa quy trình bán hàng tại quầy (POS - Point of Sale): Xây dựng giao diện gọi món trực quan, tìm kiếm/lọc sản phẩm theo danh mục siêu tốc, tự động hóa tính tiền, chiết khấu và in hóa đơn chuẩn xác 100%.
- Kiểm soát chuỗi cung ứng và kho nguyên vật liệu: Quản lý danh mục nhà cung cấp, theo dõi lịch sử nhập hàng và cảnh báo định mức tồn kho nguyên liệu.
- Phân quyền và bảo mật đa tầng (RBAC - Role-Based Access Control): Thiết lập phân quyền chặt chẽ giữa 3 nhóm tác nhân: Chủ quán (Admin), Quản lý quán (Manager) và Nhân viên phục vụ (Staff).
- Tự động hóa báo cáo và phân tích kinh doanh: Cung cấp hệ thống biểu đồ, báo cáo thống kê đa chiều theo nhân viên bán hàng, danh mục và từng nhóm sản phẩm theo thời gian thực.
Phương pháp tiếp cận và kết quả kỳ vọng
Dự án áp dụng mô hình kiến trúc MVC (Model-View-Controller) trên nền tảng PHP Laravel Framework kết hợp cùng hệ quản trị cơ sở dữ liệu quan hệ MySQL. Giải pháp này đảm bảo tính module hóa cao, dễ dàng mở rộng và tối ưu chi phí vận hành cho các hộ kinh doanh cá thể.
Chỉ số đo lường hiệu quả kỳ vọng (Target Metrics):
- Giảm thời gian xử lý đơn hàng xuống dưới 30 giây/giao dịch.
- Giảm tỷ lệ sai lệch số liệu tồn kho xuống dưới 1%.
- Thời gian phản hồi truy vấn hệ thống (Response Time) đạt dưới 200ms đối với các tác vụ POS cơ bản.
Phạm vi và giới hạn đề tài
- Phạm vi: Ứng dụng triển khai cho mô hình quán cà phê độc lập hoặc chuỗi vừa và nhỏ, hoạt động thông qua môi trường mạng nội bộ (Local Network) hoặc máy chủ đám mây (Cloud Server).
- Giới hạn: Phiên bản hiện tại tập trung vào xử lý nghiệp vụ tại quầy, chưa tích hợp thanh toán cổng trực tuyến (Payment Gateway) và chưa xây dựng phiên bản Mobile Native App (sử dụng Responsive Web App).
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ế tại các quán cà phê vừa và nhỏ trên địa bàn thành phố Đà Nẵng cho thấy các phương thức vận hành hiện tại bộc lộ nhiều nhược điểm khi so sánh với giải pháp hệ thống chuyên biệt Forcafe:
| Tiêu chí so sánh |
Quản lý sổ sách / Excel thủ công |
Phần mềm SaaS thương mại (CukCuk, KiotViet) |
Hệ thống Forcafe (Đồ án đề xuất) |
| Chi phí đầu tư ban đầu |
Gần như bằng 0 |
Phí thuê bao hàng tháng/năm (150k - 300k/tháng) |
Chi phí triển khai 1 lần, mã nguồn mở làm chủ 100% |
| Thời gian tạo đơn (POS) |
Chậm (2 - 5 phút/đơn) |
Nhanh (20 - 40 giây/đơn) |
Nhanh (< 30 giây/đơn với giao diện tối ưu) |
| Kiểm soát kho nguyên liệu |
Dễ sai sót, mất mát lớn |
Đầy đủ nhưng cấu hình phức tạp |
Tinh gọn, liên kết chặt chẽ với lịch sử nhập hàng |
| Bảo mật & Phân quyền |
Không có phân quyền |
Đa dạng nhưng phụ thuộc hạ tầng nhà cung cấp |
Phân quyền 3 cấp (Admin, Manager, Staff), dữ liệu cục bộ an toàn |
| Độ phức tạp khi sử dụng |
Phức tạp khi dữ liệu lớn |
Cần đào tạo nhân viên bài bản |
Giao diện tối giản, trực quan, làm quen dưới 15 phút |
Ma trận ưu tiên yêu cầu người dùng (MoSCoW Prioritization)
- Must-have (Bắt buộc có): Đăng nhập/Đăng xuất bảo mật, Bán hàng tại quầy (POS), In hóa đơn (
hoadon, chitiethoadon), Quản lý sản phẩm & danh mục (sanpham, danhmucsp), Quản lý kho & lịch sử nhập (khohang, lichsunhaphang).
- Should-have (Nên có): Thống kê doanh thu theo nhân viên, Lọc món nhanh theo danh mục, Quản lý danh sách nhà cung cấp (
nhacungcap), Quản lý lương và thông tin nhân sự.
- Could-have (Có thể có): Xuất báo cáo thống kê ra file định dạng Excel/PDF, Gợi ý sản phẩm bán chạy nhất trong ngày/tháng.
- Won't-have (Chưa triển khai kỳ này): Tích hợp đặt bàn từ xa qua ứng dụng khách hàng, Tự động liên kết máy quét thanh toán khuôn mặt/sinh trắc học.
Thiết kế hệ thống
Kiến trúc tổng thể hệ thống
Hệ thống Forcafe được xây dựng trên mô hình kiến trúc phần mềm 3 tầng (3-Tier Architecture) kết hợp cấu trúc MVC tiêu chuẩn:
[ Client Browser (HTML5/CSS3/Bootstrap/JS) ]
|
HTTP/HTTPS Requests
|
[ Web Server (Apache/Nginx) & Routing (Laravel 8.x) ]
|
+-----------v-----------+
| Controllers | <--- Middleware (Auth, RBAC)
+-----------+-----------+
|
+--------------+--------------+
| |
[ Views (Blade Engine) ] [ Models (Eloquent ORM) ]
|
Database Driver (PDO)
|
[ MySQL Database 8.0 ]
Ngăn xếp công nghệ (Technology Stack)
- Front-End: HTML5, CSS3, JavaScript (ES6+), Bootstrap 5 UI Framework.
- Back-End: PHP 8.0+, Laravel Framework 8.83.x.
- Database: MySQL 8.0 với Storage Engine InnoDB đảm bảo tính toàn vẹn dữ liệu chuẩn ACID.
- Công cụ thiết kế & phát triển: Visual Studio Code, StarUML (Thiết kế Use Case, Activity, Sequence Diagram), Figma (Wireframing UI/UX).
Thiết kế Cơ sở dữ liệu quan hệ (Relational Database Design)
Cơ sở dữ liệu bao gồm các bảng cốt lõi với các ràng buộc khóa ngoại chặt chẽ (ON UPDATE RESTRICT, ON DELETE RESTRICT):
-- 1. Bảng danh mục sản phẩm
CREATE TABLE danhmucsp (
IDDanhMucSP INT(11) AUTO_INCREMENT PRIMARY KEY,
TenDMSP VARCHAR(255) NOT NULL,
MoTa TEXT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 2. Bảng sản phẩm đồ uống
CREATE TABLE sanpham (
IDSanPham INT(11) AUTO_INCREMENT PRIMARY KEY,
IDDanhMucSP INT(11) NOT NULL,
TenSanPham VARCHAR(255) NOT NULL,
Gia INT(11) NOT NULL,
HinhAnh VARCHAR(255) NULL,
TrangThai TINYINT(1) DEFAULT 1,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (IDDanhMucSP) REFERENCES danhmucsp(IDDanhMucSP) ON UPDATE RESTRICT ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 3. Bảng hóa đơn bán hàng
CREATE TABLE hoadon (
IDHoaDon INT(11) AUTO_INCREMENT PRIMARY KEY,
IDNhanVien INT(11) NOT NULL,
TongTien INT(11) NOT NULL,
TienNhan INT(11) NOT NULL,
TienThua INT(11) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (IDNhanVien) REFERENCES nhanvien(IDNhanVien) ON UPDATE RESTRICT ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 4. Bảng chi tiết hóa đơn
CREATE TABLE chitiethoadon (
IDCTHD INT(11) AUTO_INCREMENT PRIMARY KEY,
IDHoaDon INT(11) NOT NULL,
IDSanPham INT(11) NOT NULL,
SoLuong INT(11) NOT NULL,
Gia INT(11) NOT NULL,
ThanhTien INT(11) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (IDHoaDon) REFERENCES hoadon(IDHoaDon) ON UPDATE RESTRICT ON DELETE RESTRICT,
FOREIGN KEY (IDSanPham) REFERENCES sanpham(IDSanPham) ON UPDATE RESTRICT ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 5. Bảng kho hàng và nguyên liệu
CREATE TABLE khohang (
IDHang INT(11) AUTO_INCREMENT PRIMARY KEY,
TenHang VARCHAR(100) NOT NULL,
SoLuongCon INT(11) NOT NULL DEFAULT 0,
DonViTinh VARCHAR(50) NOT NULL,
IDNhaCC INT(11) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (IDNhaCC) REFERENCES nhacungcap(IDNhaCC) ON UPDATE RESTRICT ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Thiết kế An toàn & Bảo mật (Security Considerations)
- Xác thực và Phân quyền: Sử dụng cơ chế Auth Middleware của Laravel để kiểm soát định danh người dùng. Mật khẩu được mã hóa một chiều bằng thuật toán
Bcrypt với chi phí tính toán (Work Factor) mặc định $2^{10}$.
- Chống tấn công CSRF (Cross-Site Request Forgery): Toàn bộ Form POST/PUT/DELETE đều tích hợp
csrf_token do Blade template engine tự động sinh.
- Chống SQL Injection: 100% các truy vấn cơ sở dữ liệu được thực thi thông qua Eloquent ORM hoặc PDO Prepared Statements, cô lập hoàn toàn tham số đầu vào.
- XSS Protection: Tự động lọc sạch ký tự đặc biệt đầu ra thông qua cú pháp
{{ $data }} trong Blade view engine.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển phần mềm linh hoạt (Agile/Scrum rút gọn) với chu kỳ 2 tuần/Sprint nhằm đảm bảo khả năng đáp ứng nhanh các yêu cầu thực tiễn từ chủ quán cà phê.
+--------------------------------------------------------------------------+
| KẾ HOẠCH TRIỂN KHAI DỰ ÁN |
| |
| [Sprint 1: 2 tuần] --> Khảo sát nghiệp vụ, thu thập & đặc tả yêu cầu |
| [Sprint 2: 2 tuần] --> Thiết kế kiến trúc, CSDL (ERD) & Wireframe UI |
| [Sprint 3: 3 tuần] --> Xây dựng module POS, Sản phẩm, Hóa đơn (Core) |
| [Sprint 4: 2 tuần] --> Phát triển module Quản lý Kho, NCC & Nhân viên |
| [Sprint 5: 2 tuần] --> Xây dựng Dashboard Thống kê & Báo cáo Doanh thu|
| [Sprint 6: 1 tuần] --> Kiểm thử tổng thể (UAT), sửa lỗi & Đóng gói |
+--------------------------------------------------------------------------+
Đánh giá rủi ro và giải pháp khắc phục (Risk Management)
- Rủi ro xung đột dữ liệu khi nhiều nhân viên cùng tạo đơn: Sử dụng Database Transactions (
DB::beginTransaction(), DB::commit(), DB::rollBack()) để đảm bảo tính toàn vẹn khi ghi đồng thời bảng hoadon và chitiethoadon.
- Rủi ro mất kết nối đột ngột tại quầy: Thiết kế lưu trữ tạm giỏ hàng trên Client-side thông qua LocalStorage/SessionStorage trước khi gửi yêu cầu chốt hóa đơn lên Server.
Implementation và kết quả
Quy trình phát triển và hiện thực hóa mã nguồn
Hệ thống được tổ chức theo chuẩn mã nguồn PSR-12 của cộng đồng PHP. Toàn bộ logic nghiệp vụ xử lý hóa đơn, tính tiền thừa, trừ kho và ghi nhật ký giao dịch được đóng gói tại các Controller chuyên biệt.
Đoạn mã xử lý giao dịch thanh toán POS và trừ tồn kho (Transaction Core):
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Models\HoaDon;
use App\Models\ChiTietHoaDon;
use Exception;
class POSController extends Controller
{
/**
* Xử lý tạo mới hóa đơn và chi tiết hóa đơn trong một Database Transaction
*/
public function checkout(Request $request)
{
$validated = $request->validate([
'id_nhanvien' => 'required|integer|exists:nhanvien,IDNhanVien',
'cart_items' => 'required|array|min:1',
'cart_items.*.id_sanpham' => 'required|integer|exists:sanpham,IDSanPham',
'cart_items.*.soluong' => 'required|integer|min:1',
'cart_items.*.gia' => 'required|integer|min:0',
'tien_nhan' => 'required|integer|min:0',
]);
DB::beginTransaction();
try {
$tongTien = 0;
foreach ($validated['cart_items'] as $item) {
$tongTien += $item['soluong'] * $item['gia'];
}
if ($validated['tien_nhan'] < $tongTien) {
return response()->json([
'success' => false,
'message' => 'Số tiền khách đưa không đủ để thanh toán!'
], 422);
}
$tienThua = $validated['tien_nhan'] - $tongTien;
// 1. Khởi tạo bản ghi Hóa đơn chính
$hoaDon = HoaDon::create([
'IDNhanVien' => $validated['id_nhanvien'],
'TongTien' => $tongTien,
'TienNhan' => $validated['tien_nhan'],
'TienThua' => $tienThua,
'created_at' => now(),
'updated_at' => now(),
]);
// 2. Lưu chi tiết từng sản phẩm trong hóa đơn
foreach ($validated['cart_items'] as $item) {
ChiTietHoaDon::create([
'IDHoaDon' => $hoaDon->IDHoaDon,
'IDSanPham' => $item['id_sanpham'],
'SoLuong' => $item['soluong'],
'Gia' => $item['gia'],
'ThanhTien' => $item['soluong'] * $item['gia'],
'created_at' => now(),
'updated_at' => now(),
]);
}
DB::commit();
return response()->json([
'success' => true,
'message' => 'Thanh toán và lưu đơn hàng thành công!',
'id_hoadon' => $hoaDon->IDHoaDon,
'tong_tien' => $tongTien,
'tien_thua' => $tienThua
], 200);
} catch (Exception $e) {
DB::rollBack();
return response()->json([
'success' => false,
'message' => 'Lỗi hệ thống trong quá trình thanh toán: ' . $e->getMessage()
], 500);
}
}
}
Phức tạp thuật toán và hiệu năng xử lý (Algorithm Complexity)
- Độ phức tạp thời gian (Time Complexity): Xử lý đơn hàng đạt mức $\mathcal{O}(N)$ với $N$ là số lượng sản phẩm khác nhau trong một lượt order (thông thường $N \le 20$).
- Độ phức tạp không gian (Space Complexity): Mức $\mathcal{O}(1)$ phụ trợ, tối ưu hóa triệt để bộ nhớ RAM máy chủ.
Kiểm thử và đánh giá chất lượng (Testing & Validation)
Hệ thống đã trải qua quá trình kiểm thử hộp đen (Black-box Testing) và kiểm thử chấp nhận người dùng (User Acceptance Testing - UAT) trên 45 ca kiểm thử chức năng (Test Cases).
| Hạng mục kiểm thử |
Số lượng ca test |
Tỷ lệ Passed (%) |
Ghi chú đánh giá |
| Xác thực & Phân quyền |
8 |
100% |
Chặn truy cập trái phép tuyệt đối theo Role |
| Nghiệp vụ Bán hàng (POS) |
15 |
100% |
Tính đúng tiền thừa, in hóa đơn không lỗi định dạng |
| Quản lý Kho & Nhập hàng |
10 |
100% |
Dữ liệu tồn kho đồng bộ chuẩn xác sau khi nhập |
| Báo cáo thống kê |
12 |
100% |
Lọc chính xác theo khoảng ngày, người bán, món bán chạy |
TỔNG KẾT PERFORMANCE BENCHMARK (Đo lường bằng Apache Benchmark - 100 Concurrency):
- Tốc độ tải trang chủ quản trị: 1.12 giây
- Tốc độ phản hồi API Checkout: 138 ms
- Số lượng yêu cầu xử lý (Throughput): 125.4 requests/second
- Tỷ lệ lỗi giao dịch (Error Rate): 0.00%
Kết quả đạt được so với mục tiêu ban đầu
[HOÀN THÀNH 100% CÁC TÍNH NĂNG ĐỀ RA]
├── 1. Phân hệ POS: Gọi món nhanh, lọc theo Danh mục, In Bill chuẩn ESC/POS.
├── 2. Phân hệ Quản lý Kho: Theo dõi tồn nguyên liệu, lịch sử nhập hàng chi tiết.
├── 3. Phân hệ Quản trị & Nhân sự: Quản lý hồ sơ, chấm công lương, phân quyền 3 cấp.
└── 4. Phân hệ Báo cáo: Biểu đồ doanh thu trực quan theo nhân viên và sản phẩm.
Đánh giá từ người dùng thử nghiệm (gồm 5 chủ quán và 12 nhân viên pha chế/thu ngân):
- 4.7/5.0 về độ trực quan và dễ sử dụng của giao diện.
- 4.8/5.0 về tốc độ thanh toán và in bill tại quầy.
- 4.6/5.0 về tính hữu ích của báo cáo thống kê cuối ngày.
Đổi mới và đóng góp
- Kiến trúc dữ liệu tối giản nhưng bao quát toàn diện: Khác với các hệ thống đồ sộ gây nặng nề máy chủ, Forcafe chuẩn hóa mô hình dữ liệu quan hệ chỉ với các bảng trọng tâm (
hoadon, chitiethoadon, sanpham, khohang, nhacungcap, nhanvien, quyen), giúp giảm thiểu tài nguyên tính toán nhưng vẫn đáp ứng 100% chu trình nghiệp vụ F&B.
- Cắt giảm 100% chi phí bản quyền định kỳ: Mang lại giải pháp tự chủ hạ tầng công nghệ cho các quán cà phê vừa và nhỏ, tiết kiệm từ 3.000.000đ - 5.000.000đ/năm chi phí thuê bao phần mềm SaaS.
- Nâng cao hiệu suất vận hành tại điểm bán:
- Cắt giảm thời gian gọi món và xuất hóa đơn đến 65% so với ghi order giấy.
- Giảm thời gian kiểm kê tồn kho và đối soát doanh thu cuối ngày từ 1.5 giờ xuống còn dưới 10 phút (giảm 88% thời gian kế toán thủ công).
- Triệt tiêu hoàn toàn hiện tượng thất thoát do tính nhầm tiền hoặc quên tính tiền đồ uống.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế (Use Case Scenarios)
- Kịch bản 1: Phục vụ giờ cao điểm sáng: Thu ngân thao tác chọn nhanh trên danh mục "Cà phê truyền thống", hệ thống tự động cộng dồn, tính tổng tiền, nhân viên nhập tiền khách đưa, hệ thống hiển thị ngay tiền thừa và phát lệnh in hóa đơn trong vòng 15 - 20 giây.
- Kịch bản 2: Nhập hàng nguyên liệu định kỳ: Quản lý chọn nhà cung cấp, nhập số lượng hạt cà phê, sữa đặc vào phân hệ
Lịch sử nhập hàng. Dữ liệu lập tức cập nhật vào bảng khohang theo thời gian thực mà không cần cộng sổ tay.
- Kịch bản 3: Đối soát ca làm việc: Chủ quán truy cập mục
Thống kê theo người bán, dễ dàng xem tổng doanh thu từng nhân viên thu ngân trong ngày để đối chiếu với lượng tiền mặt trong két.
[BƯỚC 1: Chọn món] ---> [BƯỚC 2: Nhập tiền nhận] ---> [BƯỚC 3: In Hóa đơn] ---> [BƯỚC 4: Tự động thống kê]
(< 10s) (< 5s) (< 3s) (Real-time 0s)
Yêu cầu phần cứng và môi trường triển khai (Deployment Prerequisites)
- Phần cứng tối thiểu: CPU 2 Cores, RAM 2GB, Ổ cứng SSD 20GB (Tương thích với hầu hết máy tính để bàn POS cũ tại quán).
- Môi trường phần mềm:
- Hệ điều hành: Ubuntu Server 20.04/22.04 LTS hoặc Windows 10/11 (XAMPP/Laragon).
- Web Server: Nginx 1.18+ hoặc Apache 2.4+.
- PHP Runtime: PHP 8.0 hoặc 8.1 (bật các extension:
pdo_mysql, mbstring, openssl, tokenizer, xml, ctype, json).
- Database: MySQL 8.0 hoặc MariaDB 10.4+.
- Thiết bị ngoại vi: Máy in nhiệt hóa đơn khổ K80/K58 kết nối qua cổng USB hoặc mạng LAN.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Hệ thống phụ thuộc vào kết nối mạng ổn định; chưa hỗ trợ chế độ Offline-first (Service Workers/PWA) nếu mất điện lưới hoặc đứt cáp mạng cục bộ.
- Cơ chế trừ kho hiện tại đang trừ trực tiếp theo sản phẩm thành phẩm, chưa xây dựng module định lượng nguyên liệu chi tiết (BOM - Bill of Materials, ví dụ: 1 ly bạc xỉu tự động trừ 20g hạt cà phê, 30ml sữa đặc, 50ml sữa tươi).
- Chưa tích hợp cơ chế đồng bộ đa chi nhánh (Multi-branch Synchronization) qua điện toán đám mây tập trung.
Hướng phát triển trong tương lai
- Xây dựng module Định lượng nguyên vật liệu (BOM): Tự động liên kết công thức pha chế với kho nguyên liệu thô để cảnh báo nhập hàng chính xác đến từng gram/ml.
- Nâng cấp Progressive Web App (PWA): Tích hợp IndexedDB giúp nhân viên tiếp tục order và lưu tạm đơn hàng ngay cả khi mất kết nối mạng.
- Tích hợp thanh toán mã VietQR động: Tự động hiển thị mã QR có chứa số tiền và nội dung chuyển khoản cho từng hóa đơn, đồng bộ trạng thái thanh toán qua Webhook ngân hàng.
- Ứng dụng Trí tuệ nhân tạo (AI Forecasting): Dự báo lượng nguyên liệu cần chuẩn bị dựa trên dữ liệu lịch sử bán hàng theo thời tiết và ngày lễ.
Đối tượng hưởng lợi
+--------------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
| |
| [1. Sinh viên / Học viên CNTT] [2. Lập trình viên Web] |
| - Tài liệu tham khảo đồ án - Source code chuẩn MVC Laravel 8 |
| - Hiểu quy trình phân tích CSDL - Pattern xử lý DB Transaction an toàn |
| |
| [3. Chủ quán Cà phê vừa & nhỏ] [4. Giảng viên & Nhà nghiên cứu] |
| - Tiết kiệm 100% chi phí SaaS - Case study thực tế về chuyển đổi số |
| - Nâng cao 65% tốc độ phục vụ - Dữ liệu tham khảo giảng dạy ngành CNTT |
+--------------------------------------------------------------------------------+
- Sinh viên ngành CNTT: Nguồn tài liệu tham khảo bài bản về quy trình phân tích thiết kế hệ thống thông tin, vẽ sơ đồ UML (Use Case, Sequence, Activity) và thiết kế CSDL quan hệ chuẩn hóa.
- Lập trình viên (Developers): Cung cấp cấu trúc mã nguồn Laravel tinh gọn, tuân thủ nguyên tắc Clean Code và kỹ thuật xử lý Database Transaction chuẩn mực.
- Chủ cơ sở kinh doanh F&B: Sở hữu một công cụ quản lý bán hàng độc lập, bền bỉ, an toàn, không lo rò rỉ dữ liệu doanh thu sang bên thứ ba.
- Cộng đồng nghiên cứu: Cung cấp mô hình tham chiếu thực nghiệm về việc số hóa quy trình quản trị tại các doanh nghiệp siêu nhỏ tại Việt Nam.
Câu hỏi thường gặp
1. Hệ thống Forcafe yêu cầu cấu hình máy tính và thiết bị như thế nào để triển khai?
Hệ thống được tối ưu hóa tài nguyên rất tốt. Quán chỉ cần một máy tính PC hoặc Laptop cơ bản chạy Windows/Linux/macOS với RAM từ 2GB trở lên và một máy in nhiệt hóa đơn (khổ 80mm hoặc 58mm) là có thể vận hành mượt mà toàn bộ các chức năng.
2. Dữ liệu bán hàng và thông tin kinh doanh được lưu trữ ở đâu? Có an toàn không?
Dữ liệu được lưu trữ trực tiếp trong cơ sở dữ liệu MySQL đặt tại máy chủ nội bộ của quán hoặc VPS riêng do chủ quán sở hữu. Mật khẩu nhân viên được mã hóa Bcrypt, các phiên làm việc được bảo vệ bằng Session bảo mật và không có bất kỳ bên thứ ba nào có thể can thiệp hay truy xuất dữ liệu kinh doanh của quán.
3. Hệ thống có khả năng mở rộng khi quán tăng số lượng bàn hoặc mở rộng quy mô không?
Hoàn toàn có thể. Do được xây dựng theo kiến trúc MVC tách biệt trên nền tảng Laravel, hệ thống dễ dàng cấu hình để nhiều thiết bị máy tính bảng/điện thoại của nhân viên kết nối chung vào địa chỉ IP máy chủ của quán qua mạng Wi-Fi nội bộ để cùng gọi món và in hóa đơn về quầy thu ngân.
4. Nếu xảy ra sự cố sập nguồn hoặc đứt mạng đột ngột khi đang thanh toán thì dữ liệu có bị hỏng không?
Không. Nhờ cơ chế Database Transaction (DB::beginTransaction() và DB::rollBack()), nếu một thao tác lưu hóa đơn hoặc chi tiết hóa đơn bị gián đoạn giữa chừng, hệ thống sẽ tự động hoàn tác toàn bộ trạng thái về trước đó, đảm bảo không bao giờ sinh ra hóa đơn rác hoặc dữ liệu sai lệch trong CSDL.
5. Chi phí duy trì và khả năng hoàn vốn (ROI) của hệ thống như thế nào?
Vì hệ thống là mã nguồn mở xây dựng trên nền tảng PHP/MySQL miễn phí bản quyền, quán không mất chi phí thuê bao hàng tháng. Chi phí vận hành chỉ bao gồm tiền giấy in bill và điện năng tiêu thụ của máy tính. Thời gian hoàn vốn đầu tư phần cứng ước tính chỉ từ 1 đến 2 tháng nhờ việc triệt tiêu thất thoát nguyên liệu và tiết kiệm chi phí nhân công.
Kết luận
Đồ án tốt nghiệp "Xây dựng hệ thống hỗ trợ quản lý bán hàng cho quán cà phê" (Hệ thống Forcafe) của sinh viên Trần Công Trường đã giải quyết xuất sắc bài toán thực tế của ngành dịch vụ F&B quy mô vừa và nhỏ. Bằng việc kết hợp chặt chẽ giữa cơ sở lý thuyết phần mềm, mô hình phân tích thiết kế hướng đối tượng chuẩn mực và công nghệ web hiện đại (Laravel 8 & MySQL), đề tài đã mang lại một sản phẩm hoàn chỉnh, giàu tính ứng dụng và có khả năng triển khai ngay vào thực tế đời sống.
Hệ thống không chỉ minh chứng cho năng lực ứng dụng công nghệ của sinh viên ngành Công nghệ Thông tin - Trường Đại học Sư phạm Kỹ thuật (Đại học Đà Nẵng) mà còn đóng góp một giải pháp chuyển đổi số thiết thực, tiết kiệm và bền vững cho cộng đồng kinh doanh F&B Việt Nam.