Giới thiệu dự án
Thị trường kinh doanh dịch vụ ẩm thực và đồ uống (F&B - Food and Beverage), đặc biệt là phân khúc trà sữa và cà phê, đang duy trì tốc độ tăng trưởng ấn tượng với tỷ lệ hơn 15% mỗi năm tại Việt Nam. Tuy nhiên, phần lớn các cửa hàng vừa và nhỏ vẫn vận hành dựa trên các phương thức thủ công như ghi order trên giấy hoặc sử dụng các bảng tính Excel rời rạc. Phương thức này bộc lộ nhiều điểm nghẽn nghiêm trọng: thất thoát doanh thu từ 15% đến 25% do sai lệch tính toán, thời gian phục vụ mỗi lượt khách kéo dài từ 3 đến 5 phút, khó khăn trong việc kiểm soát tình trạng bàn trống/bàn có khách theo từng khu vực, và không thể tổng hợp báo cáo doanh thu theo thời gian thực.
Đồ án "Hệ thống quản lý cửa hàng bán trà sữa (HKT)" được nghiên cứu và phát triển bởi nhóm sinh viên Khoa Công nghệ Thông tin - Trường Cao đẳng Kỹ thuật Cao Thắng (Nguyễn Dương Việt Hào, Phạm Duy Khánh, Phạm Nhật Trường) dưới sự hướng dẫn của Thầy Trần Quang Khải. Đề tài tập trung giải quyết bài toán tự động hóa toàn diện quy trình vận hành điểm bán hàng (POS - Point of Sale) cho chuỗi hoặc cửa hàng trà sữa độc lập thông qua giải pháp phần mềm chuyên dụng trên nền tảng Windows.
+-------------------------------------------------------------------------------+
| HỆ THỐNG QUẢN LÝ BÁN TRÀ SỮA HKT |
+---------------------------------------+---------------------------------------+
| PHÂN HỆ BÁN HÀNG (POS) | PHÂN HỆ QUẢN TRỊ (ADMIN) |
| - Đăng nhập & Xác thực quyền | - Quản lý Nhân viên & Phân quyền |
| - Sơ đồ Bàn theo Khu vực (Area/Table)| - Quản lý Danh mục & Sản phẩm (M/L) |
| - Tạo Order, Chọn Size & Giảm giá | - Quản lý Hóa đơn & Chi tiết hóa đơn |
| - Chuyển bàn & Tách/Ghép bàn | - Thống kê Doanh thu & Báo cáo SSRS |
| - Thanh toán & In hóa đơn ReportView | - Quản lý Tài khoản & Phân loại TK |
+---------------------------------------+---------------------------------------+
| KIẾN TRÚC 3 LỚP (GUI - BUS - DAO) |
| C# .NET Framework | Guna UI 2.0 | Entity Framework | SQL Server |
+-------------------------------------------------------------------------------+
Mục tiêu cụ thể của dự án
- Chuẩn hóa quy trình bán hàng: Rút ngắn thời gian lập hóa đơn và gọi món xuống dưới 20 giây cho mỗi lượt giao dịch, hỗ trợ linh hoạt các tùy chọn kích cỡ (Size M, Size L) và chiết khấu giảm giá.
- Tối ưu hóa quản trị không gian quán: Mô hình hóa trực quan hệ thống bàn ăn theo từng khu vực thực tế (trong nhà, ngoài trời, tầng lầu), cho phép kiểm tra trạng thái và điều chuyển bàn linh hoạt.
- Phân quyền và bảo mật dữ liệu: Thiết lập cơ chế kiểm soát truy cập dựa trên vai trò (Role-Based Access Control - RBAC) phân định rõ ràng giữa nhân viên thu ngân và nhà quản lý.
- Tự động hóa báo cáo tài chính: Tích hợp công cụ trích xuất hóa đơn và tổng hợp báo cáo thống kê doanh số theo mốc thời gian tùy chọn với độ chính xác tuyệt đối.
Phạm vi và giới hạn của đề tài
- Phạm vi triển khai: Ứng dụng Desktop chạy trên môi trường hệ điều hành Windows, kết nối cơ sở dữ liệu tập trung qua mạng nội bộ (LAN).
- Giới hạn hiện tại: Tập trung tối ưu hóa phương thức thanh toán tiền mặt truyền thống và in phiếu thanh toán trực tiếp; chưa tích hợp cổng thanh toán trực tuyến (VietQR, ví điện tử) hay đồng bộ đa nền tảng qua Cloud Web API.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Quá trình khảo sát thực tế tại các mô hình kinh doanh F&B quy mô vừa và nhỏ cho thấy ba giải pháp quản lý phổ biến hiện nay đều tồn tại các nhược điểm nhất định:
| Tiêu chí so sánh |
Quản lý thủ công / Sổ sách |
Phần mềm SaaS Cloud |
Hệ thống Windows Forms HKT |
| Chi phí đầu tư ban đầu |
Rất thấp (dưới 500.000 VNĐ) |
Phí thuê bao hàng tháng (300.000 - 600.000 VNĐ/tháng) |
Chi phí một lần, miễn phí duy trì |
| Phụ thuộc kết nối Internet |
Không |
100% (ngưng trệ nếu mất mạng) |
Hoạt động offline hoàn toàn trên mạng LAN |
| Độ trễ thao tác UI |
Chậm (ghi chép bằng tay) |
Phụ thuộc tốc độ đường truyền (500ms - 2s) |
Phản hồi tức thì (< 50ms) nhờ native desktop |
| Nguy cơ sai sót dữ liệu |
Rất cao (> 20% lỗi nhầm đơn) |
Thấp (< 1%) |
Tuyệt đối chính xác qua ràng buộc CSDL |
| Khả năng tùy biến nghiệp vụ |
Thấp |
Bị giới hạn bởi nhà cung cấp |
Toàn quyền nâng cấp mã nguồn |
Dựa trên phương pháp phân tích yêu cầu MoSCoW, hệ thống HKT được xác định các nhóm tính năng trọng tâm:
- Must-Have (Bắt buộc có): Đăng nhập xác thực, quản lý sơ đồ bàn/khu vực, lên đơn món theo Size M/L, tính tiền tự động kèm chiết khấu, in hóa đơn qua ReportViewer, quản lý danh mục và sản phẩm, báo cáo doanh thu theo kỳ.
- Should-Have (Nên có): Chuyển đổi bàn cho khách hàng khi thay đổi vị trí ngồi, phân loại tài khoản quản trị và nhân viên, mã hóa mật khẩu người dùng.
- Could-Have (Có thể có): Lọc nâng cao sản phẩm theo nhiều tiêu chí (giá, loại, tên), giao diện phẳng hiện đại với Guna UI.
- Won't-Have (Chưa thực hiện ở giai đoạn này): Đặt món qua app di động của khách hàng, tích hợp thanh toán thẻ/ví điện tử không tiền mặt.
Thiết kế hệ thống
Hệ thống được xây dựng theo Kiến trúc 3 lớp (3-Tier Architecture) chuẩn mực, phân tách rõ ràng trách nhiệm giữa các thành phần phần mềm nhằm tối ưu hóa tính độc lập, dễ bảo trì và khả năng mở rộng:
+--------------------------------------------------------------------------+
| PRESENTATION LAYER (GUI / UI) |
| - Windows Forms + Guna.UI2.WinForms Library (Modern Flat Design) |
| - FormBanHang, FormThanhToan, FormQuanLySanPham, FormBaoCao... |
+--------------------------------------------------------------------------+
│
▼ (Gọi nghiệp vụ / DTO)
+--------------------------------------------------------------------------+
| BUSINESS LOGIC LAYER (BUS / BLL) |
| - KiemTraDangNhap(), TinhThanhTien(), ChuyenBan(), XuLyGiamGia() |
| - Kiểm tra ràng buộc nghiệp vụ, validate dữ liệu đầu vào |
+--------------------------------------------------------------------------+
│
▼ (Truy xuất dữ liệu)
+--------------------------------------------------------------------------+
| DATA ACCESS LAYER (DAO / DAL) |
| - Entity Framework 6.x / ADO.NET Providers |
| - Thực thi LINQ Queries, Stored Procedures, CRUD Operations |
+--------------------------------------------------------------------------+
│
▼ (Lưu trữ quan hệ)
+--------------------------------------------------------------------------+
| DATABASE LAYER (Microsoft SQL Server) |
| - Bảng: SanPham, DanhMuc, HoaDon, ChiTietHoaDon, Ban, KhuVuc, TaiKhoan |
+--------------------------------------------------------------------------+
Technology Stack và phiên bản công nghệ
- Ngôn ngữ lập trình: C# (.NET Framework 4.8 runtime, tận dụng cơ chế biên dịch MSIL và CLR tối ưu hiệu năng).
- Thư viện giao diện: Guna UI Framework (Guna.UI2.WinForms v2.0.4) giúp xây dựng giao diện người dùng phẳng, mượt mà và trực quan.
- Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2019/2022 với cơ chế toàn vẹn dữ liệu quan hệ (RDBMS).
- Công nghệ ORM: Entity Framework 6.x hỗ trợ ánh xạ đối tượng và thao tác dữ liệu qua LINQ.
- Công cụ kết xuất báo cáo: Microsoft ReportViewer v15.0 kết hợp SQL Server Reporting Services (SSRS).
Thiết kế cơ sở dữ liệu (Database Schema)
Cơ sở dữ liệu bao gồm 10 bảng quan hệ được chuẩn hóa (3NF) nhằm triệt tiêu hiện tượng dư thừa dữ liệu:
-- DDL trích xuất cấu trúc các bảng cốt lõi của hệ thống HKT
CREATE TABLE DanhMuc (
MaDanhMuc INT IDENTITY(1,1) PRIMARY KEY,
TenDanhMuc NVARCHAR(50) NOT NULL,
TrangThai BIT NOT NULL DEFAULT 1
);
CREATE TABLE SanPham (
MaSP INT IDENTITY(1,1) PRIMARY KEY,
MaDanhMuc INT FOREIGN KEY REFERENCES DanhMuc(MaDanhMuc),
TenSP NVARCHAR(50) NOT NULL,
HinhAnh NVARCHAR(MAX),
MoTa NVARCHAR(50),
DonViTinh NVARCHAR(5) NOT NULL,
DonGiaM FLOAT NOT NULL,
DonGiaL FLOAT NOT NULL,
TrangThai BIT NOT NULL DEFAULT 1
);
CREATE TABLE KhuVuc (
MaKhuVuc INT IDENTITY(1,1) PRIMARY KEY,
TenKhuVuc NVARCHAR(50) NOT NULL,
TrangThai BIT NOT NULL DEFAULT 1
);
CREATE TABLE Ban (
MaBan INT IDENTITY(1,1) PRIMARY KEY,
TenBan NVARCHAR(20) NOT NULL,
MaKhuVuc INT FOREIGN KEY REFERENCES KhuVuc(MaKhuVuc),
TrangThai BIT NOT NULL DEFAULT 0 -- 0: Bàn trống, 1: Có khách
);
CREATE TABLE HoaDon (
MaHD INT IDENTITY(1,1) PRIMARY KEY,
NgayLapHD DATETIME NOT NULL DEFAULT GETDATE(),
MaNV INT NOT NULL,
TongTien FLOAT NOT NULL DEFAULT 0,
GhiChu NVARCHAR(MAX),
MaBan INT FOREIGN KEY REFERENCES Ban(MaBan),
TrangThai BIT NOT NULL DEFAULT 0 -- 0: Chưa thanh toán, 1: Đã thanh toán
);
CREATE TABLE ChiTietHoaDon (
MaHD INT NOT NULL FOREIGN KEY REFERENCES HoaDon(MaHD),
MaSP INT NOT NULL FOREIGN KEY REFERENCES SanPham(MaSP),
SoLuong INT NOT NULL CHECK (SoLuong > 0),
DonGia FLOAT NOT NULL,
GiamGia FLOAT DEFAULT 0,
ThanhTien FLOAT NOT NULL,
Size CHAR(1) NOT NULL, -- 'M' hoặc 'L'
TrangThai BIT NOT NULL DEFAULT 1,
PRIMARY KEY (MaHD, MaSP, Size)
);
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 lặp (Iterative Software Development) kết hợp kỹ thuật phân rã chức năng theo sơ đồ Use Case và Activity Diagram, chia lộ trình thực hiện thành 4 giai đoạn chính trong 8 tuần:
Tuần 1-2: Khảo sát nghiệp vụ & Thiết kế CSDL (Mô hình ERD, 3NF, Thiết kế Physical Schema)
│
Tuần 3-4: Xây dựng tầng DAO, BUS và Phân quyền Tài khoản (RBAC, Mã hóa MD5)
│
Tuần 5-6: Phát triển phân hệ Bán hàng POS, Quản lý Bàn/Khu vực và Tích hợp Guna UI
│
Tuần 7-8: Lập trình báo cáo ReportViewer, Kiểm thử chấp nhận (UAT) & Đóng gói triển khai
Ma trận đánh giá rủi ro (Risk Assessment Matrix)
- Rủi ro xung đột dữ liệu bàn: Nhiều nhân viên cùng thao tác trên 1 bàn -> Giải pháp: Thiết lập cờ
TrangThai và cơ chế khóa bản ghi (Pessimistic/Optimistic Concurrency Control) trong CSDL.
- Rủi ro sai lệch đơn giá theo Size: Định giá sai khi áp dụng khuyến mãi -> Giải pháp: Tách trường
DonGiaM và DonGiaL trực tiếp trong bảng SanPham, tự động gán giá trị tại lớp BUS.
Implementation và kết quả
Quá trình phát triển và hiện thực hóa mã nguồn
Hệ thống tuân thủ nghiêm ngặt nguyên lý hướng đối tượng (OOP) và mẫu thiết kế phân tầng. Mọi luồng xử lý từ GUI đều đi qua lớp BUS để kiểm tra tính hợp lệ trước khi gọi DAO tương tác với CSDL.
1. Hiện thực tầng truy xuất dữ liệu (Data Access Layer - DAO)
Lớp HoaDonDAO chịu trách nhiệm xử lý các thao tác truy vấn và cập nhật hóa đơn thông qua Entity Framework:
using System;
using System.Collections.Generic;
using System.Linq;
namespace QuanLyQuanTraSuaHKT.DAO
{
public class HoaDonDAO
{
private static HoaDonDAO instance;
public static HoaDonDAO Instance => instance ?? (instance = new HoaDonDAO());
private HoaDonDAO() { }
public int LayMaHoaDonChuaThanhToanTheoBan(int maBan)
{
using (var db = new QuanLyTraSuaEntities())
{
var hoaDon = db.HoaDons
.FirstOrDefault(h => h.MaBan == maBan && h.TrangThai == false);
return hoaDon != null ? hoaDon.MaHD : -1;
}
}
public bool TaoMoiHoaDon(int maBan, int maNV)
{
using (var db = new QuanLyTraSuaEntities())
{
var hd = new HoaDon
{
MaBan = maBan,
MaNV = maNV,
NgayLapHD = DateTime.Now,
TongTien = 0,
TrangThai = false
};
db.HoaDons.Add(hd);
// Cập nhật trạng thái bàn sang có khách (1)
var ban = db.Bans.Find(maBan);
if (ban != null) ban.TrangThai = true;
return db.SaveChanges() > 0;
}
}
}
}
2. Hiện thực tầng xử lý nghiệp vụ (Business Logic Layer - BUS)
Lớp ChiTietHoaDonBUS đảm nhiệm logic tính toán chiết khấu và đơn giá theo từng Size sản phẩm:
namespace QuanLyQuanTraSuaHKT.BUS
{
public class ChiTietHoaDonBUS
{
private static ChiTietHoaDonBUS instance;
public static ChiTietHoaDonBUS Instance => instance ?? (instance = new ChiTietHoaDonBUS());
private ChiTietHoaDonBUS() { }
public double TinhThanhTien(double donGia, int soLuong, double phanTramGiamGia)
{
if (soLuong <= 0) return 0;
double tongChuaGiam = donGia * soLuong;
double tienGiam = tongChuaGiam * (phanTramGiamGia / 100.0);
return tongChuaGiam - tienGiam;
}
public double LayDonGiaTheoSize(SanPham sp, char size)
{
return (char.ToUpper(size) == 'L') ? sp.DonGiaL : sp.DonGiaM;
}
}
}
3. Hiện thực tầng giao diện (Presentation Layer - GUI)
Đoạn mã xử lý sự kiện thêm món vào hóa đơn từ giao diện bán hàng trực quan:
private void btnThemMon_Click(object sender, EventArgs e)
{
if (cboBan.SelectedValue == null)
{
MessageBox.Show("Vui lòng chọn bàn trước khi gọi món!", "Cảnh báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int maBan = (int)cboBan.SelectedValue;
int maSP = (int)cboSanPham.SelectedValue;
int soLuong = (int)nudSoLuong.Value;
char size = rdoSizeL.Checked ? 'L' : 'M';
double giamGia = (double)nudGiamGia.Value;
int maHD = HoaDonDAO.Instance.LayMaHoaDonChuaThanhToanTheoBan(maBan);
if (maHD == -1)
{
HoaDonDAO.Instance.TaoMoiHoaDon(maBan, UserSession.CurrentMaNV);
maHD = HoaDonDAO.Instance.LayMaHoaDonChuaThanhToanTheoBan(maBan);
}
SanPham sp = SanPhamDAO.Instance.LayTheoMa(maSP);
double donGia = ChiTietHoaDonBUS.Instance.LayDonGiaTheoSize(sp, size);
double thanhTien = ChiTietHoaDonBUS.Instance.TinhThanhTien(donGia, soLuong, giamGia);
ChiTietHoaDonDAO.Instance.ThemHoacCapNhat(maHD, maSP, soLuong, donGia, giamGia, thanhTien, size);
HienThiChiTietHoaDonLenGrid(maHD);
}
Kiểm thử và đánh giá chất lượng (Testing & Validation)
Quá trình kiểm thử được thực hiện qua 3 cấp độ: Unit Test cho tầng BUS, Integration Test cho tương tác cơ sở dữ liệu và User Acceptance Testing (UAT) với các kịch bản thực tế:
+----------------------------------------------------------------------------+
| KẾT QUẢ KIỂM THỬ HỆ THỐNG HKT |
+----------------------+--------------------+------------------+-------------+
| Phân loại kiểm thử | Số lượng Test Case | Số ca Đạt (Pass) | Tỷ lệ (%) |
+----------------------+--------------------+------------------+-------------+
| Xác thực & Phân quyền| 15 | 15 | 100.0% |
| Nghiệp vụ Bán hàng | 32 | 31 | 96.8% |
| Quản lý Danh mục/SP | 20 | 20 | 100.0% |
| Chuyển/Ghép bàn | 12 | 11 | 91.7% |
| Báo cáo & Thống kê | 18 | 17 | 94.4% |
+----------------------+--------------------+------------------+-------------+
| TỔNG CỘNG | 97 | 94 | 96.9% |
+----------------------+--------------------+------------------+-------------+
- Đo lường hiệu năng thực tế (Benchmarks):
- Thời gian khởi động ứng dụng: 1.2 giây.
- Thời gian thực thi truy vấn tìm kiếm sản phẩm nâng cao (trên tập 1.000 bản ghi): < 25ms.
- Thời gian kết xuất và nạp mẫu in hóa đơn qua ReportViewer: 180ms.
- Mức chiếm dụng bộ nhớ RAM trung bình: ~85MB - 120MB (cực kỳ nhẹ so với các ứng dụng nền tảng web/Electron).
Đổi mới và đóng góp
- Mô hình hóa trực quan sơ đồ không gian kết hợp trạng thái màu sắc: Hệ thống tự động đồng bộ trạng thái bàn (Trống / Đang phục vụ) theo mã màu trực quan trên giao diện Guna UI, cho phép nhân viên nhận biết tình trạng quán ngay lập tức mà không cần rà soát sổ bộ.
- Cơ chế tính giá linh hoạt theo phân loại Size (M/L): Khắc phục nhược điểm của các hệ thống POS cơ bản vốn phải tạo 2 sản phẩm riêng biệt cho 2 kích cỡ. HKT gộp chung vào một thực thể sản phẩm duy nhất với 2 trường giá
DonGiaM và DonGiaL, giúp giảm 50% số lượng bản ghi dư thừa trong cơ sở dữ liệu.
- Phân tách trách nhiệm triệt để theo kiến trúc 3 lớp: Đảm bảo mã nguồn có tính module hóa cao, tạo điều kiện thuận lợi cho việc tái sử dụng hoặc nâng cấp tầng Presentation (ví dụ chuyển sang WPF hoặc Blazor Web) mà không cần viết lại toàn bộ logic nghiệp vụ ở tầng BUS và DAO.
+-------------------------------------------------------------------------------+
| BẢNG SO SÁNH NĂNG LỰC CẠNH TRANH |
+-------------------------+--------------------+---------------+----------------+
| Tính năng | Sổ sách / Excel | KiotViet/CukCuk| HKT Windows POS|
+-------------------------+--------------------+---------------+----------------+
| Thời gian lập đơn | 180 giây | 25 giây | 18 giây |
| Hoạt động khi mất mạng | Có (nhưng rời rạc) | Hạn chế | 100% Ổn định |
| Chi phí duy trì năm | 0 VNĐ | ~3 - 5 triệu | 0 VNĐ |
| Tùy biến phân Size M/L | Thủ công | Có | Có (Tối ưu DB) |
| In hóa đơn chuyên dụng | Không | Có | Có (SSRS) |
+-------------------------+--------------------+---------------+----------------+
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế tại cửa hàng
Hệ thống đáp ứng trọn vẹn quy trình phục vụ từ lúc khách bước vào quán đến khi hoàn tất thanh toán:
[Khách chọn bàn & Món] ──► [Thu ngân chọn Bàn trên GUI] ──► [Thêm món & Size (M/L)]
│
[In hóa đơn ReportViewer] ◄── [Thu ngân bấm Thanh toán] ◄── [Áp dụng % Giảm giá]
- Giai đoạn tiếp nhận: Nhân viên thu ngân mở giao diện bán hàng, chọn bàn theo khu vực khách đang ngồi (ví dụ: "Bàn 03 - Khu vực Lầu 1").
- Giai đoạn lên thực đơn: Nhân viên click chọn món theo yêu cầu, hệ thống tự động tải đơn giá tương ứng với Size (M hoặc L), nhập số lượng và áp dụng tỷ lệ chiết khấu (nếu có chương trình khuyến mãi).
- Giai đoạn chuyển đổi vị trí: Nếu khách có nhu cầu đổi vị trí ngồi, thu ngân chỉ cần kích hoạt chức năng "Chuyển bàn", hệ thống tự động di chuyển toàn bộ chi tiết hóa đơn hiện tại sang mã bàn mới và giải phóng trạng thái bàn cũ về trạng thái "Trống".
- Giai đoạn kết toán & In phiếu: Khi khách yêu cầu thanh toán, thu ngân xác nhận lệnh tính tiền. Hệ thống tự động khóa hóa đơn, tính tổng doanh thu và kích hoạt
ReportViewer in ra 2 liên hóa đơn chi tiết.
Yêu cầu cấu hình triển khai
- Hệ điều hành: Microsoft Windows 10 / Windows 11 (32-bit hoặc 64-bit).
- Phần cứng tối thiểu: CPU Intel Core i3 thế hệ 4 trở lên, 4GB RAM, 500MB dung lượng ổ cứng trống.
- Phần mềm bổ trợ: Microsoft .NET Framework 4.8 Runtime, Microsoft Report Viewer Redistributable, SQL Server Express LocalDB.
Hiệu quả kinh tế và thời gian thu hồi vốn (ROI)
- Tiết kiệm 100% chi phí bản quyền phần mềm thuê bao hàng năm (tương đương 3.600.000 - 6.000.000 VNĐ/năm cho mỗi điểm bán).
- Giảm thiểu sai sót thất thoát do thu ngân tính nhầm giá, mang lại hiệu quả hoàn vốn đầu tư chỉ trong vòng 1 đến 2 tháng vận hành đầu tiên.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Hệ thống hoạt động dưới dạng Desktop Application đơn lẻ, chưa hỗ trợ đồng bộ dữ liệu thời gian thực qua điện toán đám mây.
- Phụ thuộc hoàn toàn vào hệ điều hành Windows, chưa hỗ trợ thiết bị cầm tay chạy Android/iOS cho nhân viên phục vụ order tại bàn.
- Chưa tích hợp module quản lý xuất nhập tồn kho nguyên vật liệu (bột sữa, trà, trân châu, ly nhựa).
Định hướng nâng cấp mở rộng
- Giai đoạn 1: Xây dựng hệ thống RESTful API bằng ASP.NET Core để tách biệt hoàn toàn CSDL lên Cloud Server.
- Giai đoạn 2: Phát triển ứng dụng Web/Mobile (sử dụng Flutter hoặc React Native) dành riêng cho nhân viên phục vụ nhận order trực tiếp tại bàn khách.
- Giai đoạn 3: Tích hợp cổng thanh toán mã phản hồi nhanh tự động (VietQR Dynamic Code) và các ví điện tử (MoMo, ZaloPay, VNPay).
- Giai đoạn 4: Mở rộng module quản lý định lượng kho nguyên liệu và dự báo nhu cầu nhập hàng tự động.
Đối tượng hưởng lợi
+-------------------------------------------------------------------------------+
| GIÁ TRỊ MANG LẠI CHO CÁC NHÓM ĐỐI TƯỢNG |
+-----------------------+-------------------------------------------------------+
| Sinh viên CNTT | Mẫu tham khảo chuẩn mực về đồ án WinForms 3 lớp, |
| | tích hợp Entity Framework và ReportViewer trong C#. |
+-----------------------+-------------------------------------------------------+
| Lập trình viên C#/.NET| Source code thực chiến về phân quyền RBAC, quản lý |
| | giao dịch hóa đơn và thiết kế UI với Guna Framework. |
+-----------------------+-------------------------------------------------------+
| Chủ cửa hàng F&B | Giải pháp POS miễn phí bản quyền, vận hành ổn định |
| | offline, tiết kiệm hàng triệu đồng chi phí mỗi năm. |
+-----------------------+-------------------------------------------------------+
| Giảng viên & Nghiên cứu| Đề tài mẫu minh họa ứng dụng công nghệ phần mềm vào |
| | số hóa quy trình nghiệp vụ bán lẻ thực tế. |
+-----------------------+-------------------------------------------------------+
Câu hỏi thường gặp
1. Hệ thống HKT yêu cầu cấu hình phần cứng và môi trường như thế nào để vận hành ổn định?
Phần mềm hoạt động mượt mà trên tất cả các dòng máy tính để bàn hoặc laptop chạy hệ điều hành Windows 10/11 với cấu hình tối thiểu từ chip Intel Core i3, RAM 4GB và đã cài đặt sẵn .NET Framework 4.8 cùng Microsoft SQL Server Express (bản miễn phí).
2. Khi cửa hàng xảy ra sự cố mất kết nối mạng Internet, phần mềm có bán hàng được không?
Có. Hệ thống được thiết kế theo kiến trúc Local Database / LAN Client-Server, do đó toàn bộ quy trình từ tạo order, đổi bàn, thanh toán đến in hóa đơn đều hoạt động hoàn toàn bình thường 100% mà không cần đến mạng Internet.
3. Làm thế nào để thay đổi thực đơn hoặc cập nhật giá mới cho từng Size M/L?
Người dùng có tài khoản thuộc vai trò "Quản lý" chỉ cần truy cập vào mục "Quản lý sản phẩm" trên thanh điều hướng, tìm kiếm sản phẩm cần chỉnh sửa và cập nhật lại mức giá cho DonGiaM hoặc DonGiaL, sau đó nhấn nút "Cập nhật". Dữ liệu mới sẽ lập tức được áp dụng cho toàn bộ các hóa đơn tiếp theo.
4. Dữ liệu bán hàng có được bảo mật và sao lưu an toàn không?
Mật khẩu người dùng được mã hóa bảo vệ trong CSDL. Để đảm bảo an toàn dữ liệu định kỳ, người quản trị có thể thực hiện sao lưu (Backup) tập tin .bak của cơ sở dữ liệu SQL Server trực tiếp từ công cụ quản trị SQL Server Management Studio (SSMS).
5. Dự án có thể mở rộng để quản lý chuỗi nhiều cửa hàng cùng lúc được không?
Hoàn toàn khả thi. Bằng cách nâng cấp tầng DAO chuyển sang kết nối cơ sở dữ liệu đám mây (Cloud SQL Server / Azure SQL) hoặc giao tiếp qua Web API trung gian, hệ thống có thể tổng hợp doanh thu của nhiều chi nhánh về một máy chủ quản trị duy nhất.
Kết luận
Đồ án "Hệ thống quản lý cửa hàng bán trà sữa (HKT)" là một công trình nghiên cứu ứng dụng hoàn chỉnh, giải quyết xuất sắc bài toán số hóa quy trình vận hành điểm bán lẻ ngành đồ uống. Bằng việc kết hợp hài hòa giữa ngôn ngữ lập trình C#, kiến trúc 3 lớp vững chắc, thư viện Guna UI hiện đại và hệ quản trị cơ sở dữ liệu SQL Server, nhóm tác giả đã xây dựng thành công một công cụ đắc lực giúp tối ưu hóa thời gian phục vụ, hạn chế tối đa thất thoát tài chính và hỗ trợ ra quyết định kinh doanh chuẩn xác. Đây không chỉ là tài liệu học tập có giá trị thực tiễn cao cho sinh viên ngành Công nghệ Thông tin mà còn là giải pháp công nghệ sẵn sàng ứng dụng thực tế cho các mô hình kinh doanh F&B vừa và nhỏ.