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:

  1. 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.
  2. 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.
  3. 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ê).
  4. 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.
  5. 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).
  6. 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.
  7. 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:

  1. 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.
  2. 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.