Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh chuyển đổi số và ứng dụng công nghệ thông tin vào các hoạt động dịch vụ thương mại, phương thức quản lý thủ công truyền thống tại các cơ sở kinh doanh ăn uống bộc lộ nhiều điểm hạn chế. Việc ghi chép sổ sách thủ công dễ dẫn đến sai sót số liệu, nhầm lẫn trong khâu tính toán và in hóa đơn, bảo mật thông tin kém, cũng như đòi hỏi nhiều nhân sự thực hiện các công việc kiểm kê, tổng hợp doanh thu một cách rời rạc, không tự động.
Đề tài "Xây dựng và thiết kế phần mềm quản lý Quán Ăn" được sinh viên Lê Văn Hưng (Mã số sinh viên: PD05050) thực hiện dưới sự hướng dẫn của giảng viên Nguyễn Văn Định tại Cao đẳng Thực hành FPT Polytechnic Đà Nẵng (hoàn thành tại Huế, ngày 03 tháng 11 năm 2021). Báo cáo dự án tập trung vào việc nghiên cứu hiện trạng, phân tích nghiệp vụ và xây dựng một ứng dụng máy tính hoàn chỉnh nhằm nâng cao hiệu quả quản lý thông tin nhân sự, thực đơn, hỗ trợ quy trình bán hàng nhanh chóng và tự động hóa công tác lập báo cáo doanh thu.
Mục tiêu và nhiệm vụ của đồ án bao gồm:
- Khảo sát hiện trạng quy trình vận hành quán ăn, xác định rõ ưu điểm và nhược điểm của phương thức quản lý thủ công so với hệ thống tin học hóa mới.
- Xác định các yêu cầu hệ thống về phần cứng, nền tảng công nghệ, yêu cầu lưu trữ, quản lý, thống kê và bảo mật phân quyền người dùng.
- Xây dựng mô hình phân tích chức năng thông qua hệ thống biểu đồ Usecase (Usecase tổng quát, Quản lý nhân viên, Quản lý món ăn, Quản lý bán hàng, Thống kê).
- Thiết kế cơ sở dữ liệu quan hệ (sơ đồ thực thể ERD cấp 1, cấp 2 và cấu trúc chi tiết các bảng) trên hệ quản trị cơ sở dữ liệu.
- Thiết kế và hiện thực hóa giao diện đồ họa người dùng (GUI) cùng hệ thống xử lý nghiệp vụ theo mô hình lớp dữ liệu (Entity - DAO - Helper).
- Viết các thủ tục lưu trữ (Stored Procedures) hỗ trợ tổng hợp doanh thu và tự động cập nhật số lượng tồn kho của món ăn.
- Thực hiện kiểm thử phần mềm (kiểm thử giao diện và kiểm thử chức năng các biểu mẫu) và đóng gói ứng dụng thành file cài đặt thực thi trên môi trường Windows.
Đối tượng nghiên cứu là quy trình quản lý nghiệp vụ tại quán ăn (với mô hình thử nghiệm mẫu là quán ăn "Rice Fresh"). Phạm vi nghiên cứu tập trung vào việc triển khai ứng dụng phần mềm trên nền tảng Desktop (Java Swing kết nối SQL Server) phục vụ cho hai nhóm đối tượng người dùng chính là Quản trị viên (Admin) và Nhân viên phục vụ/thu ngân.
Cơ sở lý thuyết và phương pháp
Đồ án ứng dụng các nguyên lý phân tích thiết kế hệ thống thông tin và kỹ thuật lập trình hướng đối tượng (OOP) trên nền tảng Java tiêu chuẩn.
Khung kiến trúc và công nghệ sử dụng
- Mô hình lập trình hướng đối tượng và kiến trúc phân lớp: Hệ thống được tổ chức thành các lớp tiện ích dùng chung (
XDate, DB), lớp mô tả dữ liệu thực thể (Entity/Model), lớp truy xuất và thao tác dữ liệu (DAO - Data Access Object kế thừa SystemDAO), và lớp giao diện người dùng xây dựng bằng thư viện Java Swing (JDialog, JFrame).
- Nền tảng công nghệ và môi trường thực thi:
- Ngôn ngữ lập trình: Java (Java Development Kit - JDK phiên bản 1.8).
- Môi trường phát triển tích hợp (IDE): NetBeans IDE.
- Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server (sử dụng thư viện kết nối
JDBC - SQLServerDriver).
- Công cụ đóng gói và triển khai: Phần mềm
EXE4J (chuyển đổi tệp .jar sang .exe) và phần mềm Inno Setup (tạo bộ cài đặt phần mềm hoàn chỉnh).
Phương pháp nghiên cứu
- Phương pháp khảo sát và phân tích yêu cầu: Đánh giá các điểm nghẽn của quy trình ghi chép thủ công để xác định yêu cầu phi chức năng và yêu cầu chức năng của hệ thống mới.
- Phương pháp mô hình hóa dữ liệu và chức năng: Sử dụng sơ đồ Usecase để đặc tả luồng tương tác của người dùng và sơ đồ quan hệ thực thể (ERD) để chuẩn hóa cấu trúc dữ liệu quan hệ.
- Phương pháp hiện thực hóa phần mềm (Implementation): Viết mã nguồn tạo lập bảng CSDL, lập trình các Stored Procedure xử lý logic giao dịch phức tạp, và xây dựng các lớp xử lý sự kiện giao diện.
- Phương pháp kiểm thử (Software Testing): Áp dụng phương pháp kiểm thử hộp đen (Black-box testing) để kiểm tra tính toàn vẹn của giao diện (bố cục, kích thước phông chữ, điều hướng) và kiểm thử các ca chức năng (đăng nhập, thêm/sửa/xóa nhân viên, tính toán đơn hàng, ràng buộc dữ liệu).
Nội dung chính theo từng chương
Phần I: Yêu cầu hệ thống và Phân tích Usecase
Tác giả phân tích hiện trạng và so sánh chi tiết giữa hệ thống quản lý thủ công cũ và hệ thống tin học hóa mới:
| Tiêu chí |
Hệ thống cũ (Thủ công) |
Hệ thống mới (Phần mềm) |
| Ưu điểm |
Quản lý món ăn và tài liệu về món ăn rõ ràng theo sổ sách truyền thống. |
Bảo mật tốt; tìm kiếm và thống kê nhanh chóng; bán hàng nhanh chóng; tiết kiệm nhân sự. |
| Nhược điểm |
Bảo mật kém; thống kê phải viết bằng tay không tự động; cần nhiều nhân sự cho các khâu. |
Nhân viên mới cần được trang bị kiến thức cơ bản về sử dụng máy tính. |
Hệ thống xác lập các yêu cầu cụ thể:
- Yêu cầu phần cứng: Máy tính trang bị bộ nhớ RAM tối thiểu 4GB, bộ vi xử lý CPU từ Intel Core i3 trở lên.
- Yêu cầu lưu trữ và quản lý: Lưu trữ đầy đủ dữ liệu về nhân viên, danh mục món ăn, chi tiết hóa đơn bán hàng.
- Yêu cầu thống kê: Tổng hợp doanh thu theo tháng, theo năm và thống kê Top 5 món ăn bán chạy nhất.
- Yêu cầu bảo mật và phân quyền:
- Tất cả người dùng phải đăng nhập hệ thống mới được sử dụng chức năng.
- Quản trị viên (Admin): Có toàn quyền truy cập, quản lý dữ liệu và xem báo cáo thống kê doanh thu.
- Nhân viên: Chỉ thực hiện nghiệp vụ bán hàng, không được xem thống kê doanh thu, không được thêm/sửa/xóa thông tin tài khoản của nhân viên khác.
Phần II: Mô hình triển khai, Thiết kế CSDL và Thiết kế Giao diện
Tác giả hoàn thiện thiết kế cơ sở dữ liệu QuanLyQuanAn gồm 4 bảng thực thể chính: NhanVien, MonAn, HoaDon, HoaDonChiTiet.
Phần giao diện người dùng được tổ chức rõ ràng theo sơ đồ phân cấp cho Admin và Nhân viên, bao gồm các màn hình chính: Form màn hình chào, Form đăng nhập, Form đổi mật khẩu, Form trang chính, Form quản lý nhân viên, Form quản lý món ăn, Form quản lý bán hàng và Form báo cáo thống kê.
Phần III: Thực hiện viết mã (Implementation)
Chương này trình bày toàn bộ mã nguồn xây dựng CSDL, các câu lệnh SQL thao tác dữ liệu, thủ tục lưu trữ, các lớp kết nối JDBC, lớp thực thể và các biểu mẫu giao diện:
- Lập trình lớp tiện ích
XDate xử lý ngày tháng với định dạng dd/MM/yyyy và lớp DB quản lý kết nối JDBC jdbc:sqlserver://localhost;database=QuanLyQuanAn với tài khoản sa.
- Xây dựng lớp xử lý
NhanVienDAO và HoaDonDAO kế thừa lớp dùng chung SystemDAO.
- Xây dựng biểu mẫu
NhanVienJDialog tích hợp các hàm kiểm tra hợp lệ dữ liệu (validation) như kiểm tra chuỗi rỗng, kiểm tra định dạng số điện thoại, kiểm tra trùng khóa chính checkTrungMa, và kiểm tra độ tuổi nhân viên phải đủ 16 tuổi trở lên (check16tuoi tương đương tối thiểu 5844 ngày).
- Xây dựng biểu mẫu
BanHangJDialog hỗ trợ chọn món ăn qua ComboBox, tính thành tiền tự động, ghi nhận đơn hàng, cập nhật trạng thái thanh toán và in mẫu hóa đơn chi tiết cho khách hàng.
Phần IV: Kiểm thử hệ thống
Tác giả tiến hành kiểm thử toàn diện trên hai khía cạnh:
- Kiểm thử giao diện: Đánh giá sự đồng bộ của bố cục (menu ngang, menu dọc), tiêu chuẩn kích thước phông chữ (cỡ chữ 13 cho nội dung thông thường, cỡ chữ 18 in đậm cho tiêu đề, cỡ chữ 15 cho nút bấm và hình ảnh), căn chỉnh lề trái các nút chức năng và định dạng chuẩn ngày tháng
dd/MM/yyyy.
- Kiểm thử biểu mẫu chức năng: Thiết kế các bộ dữ liệu thử nghiệm cho Form Đăng nhập, Form Nhân viên và Form Bán hàng với đầy đủ các trường hợp để trống trường dữ liệu, nhập dữ liệu sai/trùng lặp và nhập dữ liệu hợp lệ.
Phần V: Đóng gói và Hướng dẫn triển khai
Quy trình chuyển giao phần mềm bao gồm:
- Sử dụng công cụ
EXE4J để đóng gói tệp thực thi .jar thành tệp .exe.
- Sử dụng
Inno Setup để tạo gói cài đặt (setup.exe).
- Hướng dẫn thiết lập CSDL SQL Server với tên cơ sở dữ liệu
QuanLyQuanAn, mật khẩu tài khoản sa là 123456, cài đặt ứng dụng trên môi trường JDK 1.8 và chạy ứng dụng với quyền Administrator (lưu ý đường dẫn không chứa ký tự tiếng Việt có dấu).
Thiết kế và triển khai
1. Cấu trúc chi tiết các bảng Cơ sở dữ liệu
Cơ sở dữ liệu QuanLyQuanAn được thiết kế chuẩn hóa với các trường dữ liệu và ràng buộc như sau:
Bảng NhanVien (Quản lý thông tin tài khoản và nhân sự)
| STT |
Tên Trường |
Kiểu Dữ Liệu |
Ràng Buộc |
Mô Tả |
| 1 |
MaNV |
Nchar(10) |
Not null (PK) |
Mã định danh nhân viên |
| 2 |
Password |
Nvarchar(30) |
Not null |
Mật khẩu đăng nhập |
| 3 |
VaiTro |
Bit |
Default 0 |
Vai trò (1: Admin, 0: Nhân viên) |
| 4 |
HoTen |
Nvarchar(30) |
Not Null |
Họ và tên nhân viên |
| 5 |
NgaySinh |
Date |
Not Null |
Ngày tháng năm sinh |
| 6 |
GioiTinh |
Bit |
Default 0 |
Giới tính (1: Nam, 0: Nữ) |
| 7 |
SDT |
Nvarchar(10) |
Not Null |
Số điện thoại liên hệ |
Bảng MonAn (Quản lý danh mục thực đơn)
| STT |
Tên Trường |
Kiểu Dữ Liệu |
Ràng Buộc |
Mô Tả |
| 1 |
MaMon |
Nchar(10) |
Not Null (PK) |
Mã định danh món ăn |
| 2 |
Loai |
Bit |
Default 0 |
Phân loại món ăn |
| 3 |
TenMon |
Nvarchar(50) |
Not Null |
Tên hiển thị của món ăn |
| 4 |
DonVi |
Nvarchar(20) |
Null |
Đơn vị tính (dĩa, phần, lon...) |
| 5 |
SoLuong |
Int |
Not Null |
Số lượng tồn trong kho/bếp |
| 6 |
GiaTien |
Float |
Not Null |
Đơn giá bán |
| 7 |
Hinh |
Nvarchar(50) |
Null |
Tên tệp hình ảnh đại diện |
Bảng HoaDon (Quản lý thông tin đơn hàng tổng quát)
| STT |
Tên Trường |
Kiểu Dữ Liệu |
Ràng Buộc |
Mô Tả |
| 1 |
IDHoaDon |
Int |
Not null (PK) |
Mã số hóa đơn |
| 2 |
MaNV |
Nchar(10) |
Not null |
Mã nhân viên lập hóa đơn |
| 3 |
TenKH |
Nvarchar(30) |
Not null |
Tên khách hàng |
| 4 |
Ban |
Nvarchar(15) |
Null |
Số bàn / Vị trí ngồi |
| 5 |
TrangThai |
Nvarchar(30) |
Not Null |
Trạng thái (Đã/Chưa thanh toán) |
Bảng HoaDonChiTiet (Chi tiết từng món ăn trong hóa đơn)
| STT |
Tên Trường |
Kiểu Dữ Liệu |
Ràng Buộc |
Mô Tả |
| 1 |
IDHoaDon |
Int |
Not null |
Mã hóa đơn liên kết |
| 2 |
MaMon |
Nchar(10) |
Not Null |
Mã món ăn được gọi |
| 3 |
SoLuong |
Int |
Not Null |
Số lượng món ăn |
| 4 |
ThanhTien |
Float |
Not Null |
Tổng số tiền cho món ăn |
| 5 |
NgayThanhToan |
Date |
DEFAULT GETDATE() |
Ngày thực hiện thanh toán |
2. Các thủ tục lưu trữ (Stored Procedures) cốt lõi
Hệ thống triển khai các thủ tục lưu trữ trên SQL Server để tối ưu hiệu năng tính toán và tự động hóa các giao dịch bán hàng:
- Thủ tục tạo đơn hàng và trừ tồn kho tự động (
sp_TruSoLuong):
CREATE PROC [dbo].[sp_TruSoLuong]
@id Nchar(10),
@manv nchar(10),
@tenkh nvarchar(30),
@mamon nchar(10),
@ban Nvarchar(15),
@soluong int,
@thanhtien float
AS
BEGIN
IF EXISTS (SELECT * FROM HoaDon WHERE IDHoaDon = @id)
BEGIN
INSERT INTO HoaDonChiTiet(IDHoaDon, MaMon, SoLuong, ThanhTien)
VALUES (@id, @mamon, @soluong, @thanhtien)
UPDATE MonAn SET SoLuong = SoLuong - @soluong
WHERE MaMon = @mamon
END
ELSE
BEGIN
INSERT INTO HoaDon(IDHoaDon, MaNV, TenKH, Ban)
VALUES (@id, @manv, @tenkh, @ban)
INSERT INTO HoaDonChiTiet(IDHoaDon, MaMon, SoLuong, ThanhTien)
VALUES (@id, @mamon, @soluong, @thanhtien)
UPDATE MonAn SET SoLuong = SoLuong - @soluong
WHERE MaMon = @mamon
END
END
GO
- Thủ tục thống kê doanh thu theo năm (
sp_ThongKeDoanhThu):
CREATE PROC [dbo].[sp_ThongKeDoanhThu](@Year INT)
AS
BEGIN
SELECT COUNT(hd.STT) STT, MAX(hdct.MaMon) MaMon, MAX(hd.MaNV) MaNV,
SUM(DISTINCT hdct.SoLuong) SoLuong, MAX(hdct.NgayThanhToan) NgayThanhToan,
SUM(hdct.ThanhTien) thanhtien
FROM HoaDonChiTiet hdct
JOIN HoaDon hd ON hd.IDHoaDon = hdct.IDHoaDon
WHERE YEAR(NgayThanhToan) = @Year
GROUP BY hd.STT
END
GO
- Thủ tục thống kê doanh thu theo tháng (
sp_ThongKeThang):
ALTER PROC [dbo].[sp_ThongKeThang](@Month INT)
AS
BEGIN
SELECT hdct.MaMon MaMon, hd.MaNV MaNV,
SUM(DISTINCT hdct.SoLuong) SoLuong, SUM(hdct.ThanhTien) ThanhTien
FROM HoaDonChiTiet hdct
JOIN HoaDon hd ON hd.IDHoaDon = hdct.IDHoaDon
WHERE MONTH(NgayThanhToan) = @Month
GROUP BY hdct.NgayThanhToan
END
GO
3. Cấu trúc lớp truy xuất dữ liệu và Giao diện người dùng
Hệ thống sử dụng các mẫu thiết kế hướng đối tượng:
- Lớp
DB cung cấp các phương thức tĩnh: getStmt() (chuẩn bị PreparedStatement hoặc gọi Store Procedure qua CallableStatement), query() (thực thi truy vấn SELECT trả về ResultSet), update() (thực thi lệnh INSERT, UPDATE, DELETE), và value() (lấy giá trị đơn lẻ).
- Lớp
NhanVienDAO và HoaDonDAO định nghĩa các phương thức nghiệp vụ: insert(), update(), delete(), selectById(), selectAll(), selectByKeyword(), inhoadon(), và ChuaThanhToan().
- Cấu trúc mẫu in hóa đơn thanh toán được định dạng trực tiếp trong phương thức
printHoaDon() của BanHangJDialog:
=============================================================================
QUÁN ĂN RICE FRESH
HÓA ĐƠN BÁN HÀNG
=============================================================================
ĐC: 222 Trần Duy Hưng, Cầu Giấy, Hà Nội
SDT: 0359623642
Hotline: 18005555
=============================================================================
Mã Hóa Đơn: [IDHoaDon]
Mã Nhân Viên: [MaNV]
Tên Khách Hàng: [TenKH]
Bàn: [Ban]
Thành Tiền: [ThanhTien]
Số Lượng: [SoLuong]
Ngày Thanh Toán: [NgayThanhToan]
Trạng Thái: Đã Thanh Toán
=============================================================================
Thành Tiền: [Tổng cộng]
=============================================================================
CẢM ƠN QUÝ KHÁCH VÀ HẸN GẶP LẠI
Mọi thắc mắc xin liên hệ hotline: 18005555
4. Kết quả kiểm thử chức năng
Báo cáo tổng hợp các kịch bản kiểm thử cho các biểu mẫu chính của phần mềm:
Kết quả kiểm thử Form Đăng nhập
| TH |
Mô Tả Tình Huống |
Dữ Liệu Mẫu |
Kết Quả Trông Đợi |
Trạng Thái |
| 1 |
Để trống tên đăng nhập và mật khẩu |
(Để trống) |
Hiển thị yêu cầu nhập dữ liệu |
OK |
| 2 |
Đăng nhập sai tên người dùng |
Admin9, admin |
Thông báo sai tên đăng nhập |
OK |
| 3 |
Đăng nhập sai mật khẩu |
admin, 123 |
Thông báo sai mật khẩu |
OK |
| 4 |
Đăng nhập đúng thông tin |
admin, admin |
Xác thực thành công, đóng cửa sổ đăng nhập |
OK |
Kết quả kiểm thử Form Nhân viên
| STT |
Hành Động |
Dữ Liệu Kiểm Thử |
Kết Quả Mong Đợi |
Kết Quả Thực Tế |
| 1 |
Thêm nhân viên để trống |
Không nhập thông tin các trường |
Báo lỗi không được để trống, đổi màu nền ô sang hồng |
Pass |
| 2 |
Thêm nhân viên hợp lệ |
Nhập đầy đủ thông tin: Admin, Nam, 0369765432... |
Thông báo thêm nhân viên thành công |
Pass |
| 3 |
Thêm nhân viên sai/trùng |
Nhập mã admin11 (trùng mã) hoặc ngày sinh dưới 16 tuổi |
Báo mã đã tồn tại hoặc ngày sinh phải trên 16 tuổi, đổi màu ô sang hồng |
Pass |
| 4 |
Sửa nhân viên bất kỳ |
Cập nhật mật khẩu, vai trò, họ tên, SĐT... |
Thông báo cập nhật thành công |
Pass |
| 5 |
Xóa chính mình |
Admin đăng nhập thực hiện xóa tài khoản của chính mình |
Thông báo "Bạn không được xóa chính mình!" và chặn thao tác |
Pass |
| 6 |
Xóa nhân viên khác |
Admin chọn nhân viên khác và xác nhận xóa |
Xóa thành công khỏi CSDL |
Pass |
| 7 |
Điều hướng & Tìm kiếm |
Nhập từ khóa tên nhân viên vào ô tìm kiếm |
Tìm theo tên và hiển thị dữ liệu khớp lên bảng |
Pass |
Kết quả kiểm thử Form Bán hàng
| STT |
Hành Động |
Dữ Liệu Kiểm Thử |
Kết Quả Mong Đợi |
Kết Quả Thực Tế |
| 1 |
Order để trống |
Không nhập thông tin hóa đơn |
Báo lỗi không được để trống, đổi màu ô sang hồng |
Pass |
| 2 |
Order hợp lệ |
Khách hàng: Lê Văn Hưng, Món: Lẩu Hải Sản... |
Tạo đơn thành công và đổ dữ liệu lên bảng bán hàng |
Pass |
| 3 |
Order dữ liệu sai |
Tên KH là số (123), số lượng âm hoặc lớn hơn 1000 |
Báo lỗi định dạng tên (3-25 ký tự) và số lượng (0-1000), đổi màu ô sang hồng |
Pass |
| 4 |
Thanh toán hóa đơn |
Nhập mã hóa đơn và bấm nút Thanh toán |
Thông báo thanh toán thành công, in dữ liệu ra ô hóa đơn |
Pass |
Kết quả và đóng góp
Kết quả chính đạt được
- Xây dựng thành công ứng dụng máy tính "Quản lý Quán Ăn" với giao diện Java Swing trực quan, đáp ứng đầy đủ các luồng nghiệp vụ cơ bản từ đăng nhập, quản lý nhân viên, thực đơn, quản lý bán hàng đến in hóa đơn.
- Chuẩn hóa cấu trúc CSDL gồm 4 bảng dữ liệu và 4 Stored Procedure phục vụ xử lý giao dịch bán hàng (trừ tồn kho trực tiếp) và tổng hợp thống kê doanh thu theo tháng/năm.
- Thiết lập hệ thống kiểm thử hộp đen hoàn chỉnh cho giao diện và chức năng, chứng minh các điều kiện ràng buộc nghiệp vụ (tuổi nhân viên $\ge 16$, số lượng món $0 \le x \le 1000$, phân quyền Admin/Nhân viên, chặn tự xóa tài khoản) hoạt động chính xác.
- Đóng gói hoàn chỉnh ứng dụng thành tệp cài đặt
.exe độc lập thông qua EXE4J và Inno Setup.
Đóng góp thực tiễn và học thuật
- Báo cáo phản ánh quy trình phát triển một phần mềm quản trị nghiệp vụ hoàn chỉnh từ khâu phân tích yêu cầu, thiết kế CSDL, lập trình hướng đối tượng đến kiểm thử và đóng gói.
- Tác giả tự nhận định đề tài là nền tảng nghiên cứu thực tế quan trọng, giúp củng cố toàn diện kiến thức lập trình Java, thao tác CSDL qua JDBC và là cơ sở để phát triển sâu rộng hơn cho các đồ án chuyên ngành sau này.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế:
- Do là lần đầu tiên tự thiết kế và xây dựng phần mềm, tác giả thừa nhận còn có những hạn chế nhất định về kinh nghiệm thực tế và kỹ năng lập trình.
- Ứng dụng hiện tại là phần mềm Desktop cục bộ, đòi hỏi người dùng cuối (nhân viên mới) phải có kiến thức cơ bản về sử dụng máy tính.
- Chưa hỗ trợ mở rộng kết nối mạng nhiều điểm bán hoặc đồng bộ hóa dữ liệu trực tuyến qua môi trường điện toán đám mây.
- Hướng phát triển tiếp theo:
- Tác giả định hướng sử dụng những kết quả và kinh nghiệm từ đề tài này làm nền tảng phát triển cho các đồ án môn học nâng cao trong các học kỳ tiếp theo.
- Bổ sung và hoàn thiện thêm các tính năng nâng cao về quản lý kho nguyên liệu, tối ưu hóa giao diện và mở rộng quy mô quản lý cho chuỗi quán ăn.
Giá trị tham khảo
Đồ án có giá trị tham khảo thiết thực cho:
- Sinh viên ngành Công nghệ thông tin và Phát triển phần mềm: Đặc biệt là sinh viên hệ cao đẳng thực hành đang thực hiện đồ án môn học lập trình Java Desktop (Java Swing), lập trình CSDL với SQL Server và JDBC.
- Người học lập trình Java: Tham khảo cấu trúc phân lớp chuẩn
Entity - DAO - Helper, cách viết các lớp tiện ích (DB, XDate), và cách liên kết dữ liệu giữa ComboBox, JTable với cơ sở dữ liệu quan hệ.
- Tài liệu tham khảo về kiểm thử và đóng gói: Cung cấp mẫu bảng kiểm thử giao diện/chức năng chi tiết và quy trình từng bước chuyển đổi tệp
.jar thành bộ cài đặt .exe thương mại hóa bằng EXE4J và Inno Setup.
Câu hỏi thường gặp
1. Phần mềm quản lý quán ăn yêu cầu cấu hình phần cứng và môi trường công nghệ nào để vận hành?
Phần mềm yêu cầu phần cứng tối thiểu gồm bộ nhớ RAM 4GB và CPU Intel Core i3 trở lên. Về công nghệ, hệ thống chạy trên môi trường Java Runtime Environment (môi trường lập trình JDK 1.8), xây dựng trên IDE NetBeans, và sử dụng hệ quản trị cơ sở dữ liệu Microsoft SQL Server với cổng kết nối JDBC tiêu chuẩn.
2. Cơ sở dữ liệu QuanLyQuanAn được thiết kế gồm những bảng nào?
Cơ sở dữ liệu bao gồm 4 bảng thực thể:
NhanVien: Quản lý thông tin tài khoản, mật khẩu, vai trò, họ tên, ngày sinh, giới tính và số điện thoại.
MonAn: Quản lý mã món, tên món, loại món, đơn vị tính, đơn giá, số lượng tồn và hình ảnh.
HoaDon: Quản lý mã hóa đơn, nhân viên phục vụ, tên khách hàng, số bàn và trạng thái thanh toán.
HoaDonChiTiet: Quản lý chi tiết từng món ăn trong hóa đơn, số lượng đặt, thành tiền và ngày thanh toán.
3. Thủ tục lưu trữ sp_TruSoLuong thực hiện nghiệp vụ gì trong hệ thống?
Thủ tục sp_TruSoLuong nhận các tham số đầu vào của đơn hàng (@id, @manv, @tenkh, @mamon, @ban, @soluong, @thanhtien). Thủ tục kiểm tra nếu mã hóa đơn đã tồn tại thì chỉ thêm món vào HoaDonChiTiet; nếu chưa có thì thêm mới vào cả bảng HoaDon và HoaDonChiTiet. Đồng thời, thủ tục tự động thực hiện lệnh UPDATE MonAn SET SoLuong = SoLuong - @soluong để trừ trực tiếp số lượng món ăn tồn trong kho.
4. Cơ chế phân quyền giữa Quản trị viên (Admin) và Nhân viên được quy định như thế nào?
Hệ thống phân định quyền hạn chặt chẽ: Tài khoản Admin có toàn quyền sử dụng tất cả chức năng, quản lý tài khoản nhân viên và xem báo cáo thống kê doanh thu (theo tháng, theo năm, top món bán chạy). Ngược lại, tài khoản Nhân viên chỉ được thao tác các chức năng bán hàng cơ bản, tuyệt đối không được xem báo cáo doanh thu và không có quyền thêm, sửa, xóa thông tin của nhân viên khác.
5. Quy trình đóng gói và triển khai phần mềm được thực hiện qua những công cụ nào?
Tác giả sử dụng phần mềm EXE4J để chuyển đổi tệp chương trình Java .jar thành tệp thực thi .exe, sau đó dùng phần mềm Inno Setup để tạo gói cài đặt (setup.exe). Khi triển khai trên máy tính đích, người dùng cần chạy script SQL tạo CSDL QuanLyQuanAn, đặt mật khẩu tài khoản sa là 123456, cài đặt JDK 1.8, và chạy file cài đặt với quyền Administrator (lưu ý thư mục cài đặt không được chứa ký tự tiếng Việt có dấu).
Kết luận
Đồ án "Xây dựng và thiết kế phần mềm quản lý Quán Ăn" của sinh viên Lê Văn Hưng đã hoàn thành đầy đủ các mục tiêu đề ra trong việc tin học hóa quy trình quản lý bán hàng và nhân sự tại các cơ sở kinh doanh ăn uống. Ứng dụng được xây dựng hoàn chỉnh trên nền tảng Java Swing và SQL Server, ứng dụng kiến trúc phân lớp hướng đối tượng rõ ràng cùng hệ thống kiểm thử chức năng và giao diện chặt chẽ. Mặc dù là sản phẩm đầu tay với phạm vi triển khai trên máy tính đơn lẻ, đồ án thể hiện tính thực tiễn cao và là tài liệu tham khảo có giá trị cho sinh viên chuyên ngành Công nghệ thông tin trong các môn học phát triển phần mềm ứng dụng.