Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh ngành dịch vụ ăn uống và nhà hàng phát triển mạnh mẽ, nhu cầu ứng dụng công nghệ thông tin vào công tác quản trị và vận hành trở nên cấp thiết nhằm thay thế các phương thức thủ công tốn nhiều thời gian và dễ phát sinh sai sót. Đề tài khóa luận tốt nghiệp kỹ sư Công nghệ thông tin (chuyên ngành Công nghệ phần mềm) của sinh viên Phạm Kim Hùng và Lê Hoàng Hưng, dưới sự hướng dẫn của ThS. Nguyễn Trần Thi Văn tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (2020), tập trung giải quyết bài toán tin học hóa hoạt động quản lý tại các cơ sở kinh doanh ăn uống quy mô vừa và nhỏ.
Khảo sát hiện trạng thực tế tại Quán ăn Idol (địa chỉ đường số 18, phường Linh Trung, quận Thủ Đức, TP. Hồ Chí Minh) cho thấy cơ cấu tổ chức gồm khoảng 20 bàn ăn, vận hành bởi 1 quản lý, 2 nhân viên thu ngân và 6 nhân viên phục vụ/chạy bàn. Hoạt động nghiệp vụ tại cơ sở này bộc lộ nhiều điểm hạn chế:
- Khi khách gọi món, nhân viên phụ trách bàn phải ghi tay 2 bản phiếu gọi món (order) gồm số bàn, ngày và tên nhân viên; trong đó 1 bản chuyển xuống nhà bếp và 1 bản chuyển về quầy thu ngân.
- Trường hợp khách gọi thêm món, nhân viên tiếp tục ghi thêm phiếu mới.
- Nhân viên thu ngân phải tính toán tiền thủ công bằng máy tính bỏ túi dựa trên tập hóa đơn giấy ghi tay, sau đó đưa phiếu tính tiền cho nhân viên đem ra bàn cho khách thanh toán.
- Quy trình thủ công hoàn toàn này thường xuyên gây ra sự chậm trễ trong khâu phục vụ, nhầm lẫn số liệu thanh toán và tạo phiền toái cho khách hàng cũng như gây thất thoát cho khâu quản lý.
Mục tiêu và nhiệm vụ nghiên cứu của khóa luận được phân định cụ thể như sau:
-
Nhiệm vụ lý thuyết:
- Tìm hiểu phương pháp và kỹ thuật lập trình cơ sở dữ liệu trên nền tảng Windows Forms (.NET).
- Khảo sát và phân tích toàn diện các quy trình nghiệp vụ quản lý nhà hàng, quán ăn.
- Nghiên cứu nền tảng Node.js phục vụ xây dựng dịch vụ máy chủ API (RESTful API).
- Nghiên cứu framework React Native phục vụ xây dựng ứng dụng trên thiết bị di động.
-
Nhiệm vụ thực hành:
- Xây dựng phần mềm quản lý quán ăn trên nền tảng Desktop (Windows Forms) đáp ứng đầy đủ các nhóm chức năng: quản lý nhân viên, thực đơn, bàn ăn, khu vực, loại món, công thức định lượng món, chấm công, nguyên liệu, tài khoản, khách hàng; phân hệ thống kê doanh thu và lương; phân hệ thao tác tại bàn (đặt món, tính tiền, xuất hóa đơn VAT, chuyển bàn, gộp bàn, đặt bàn trước, trả món, hủy bàn, xuất hóa đơn tạm tính); phân hệ quản trị hệ thống (đăng nhập, đăng xuất, đổi mật khẩu, chốt ca làm việc).
- Xây dựng ứng dụng di động (Mobile App) dành riêng cho nhân viên phục vụ với các chức năng: thao tác tại bàn (đặt món, tính tiền, hủy bàn, yêu cầu xuất hóa đơn tạm tính về quầy thu ngân, xem thông tin cá nhân) và quản trị tài khoản (đăng nhập, đăng xuất).
- Đối tượng nghiên cứu: Quy trình quản lý và vận hành nghiệp vụ nhà hàng, quán ăn; mô hình dữ liệu và các giải pháp phần mềm quản lý phân tán trên Desktop và Mobile.
- Phạm vi nghiên cứu: Mô hình vận hành quán ăn thực tế tại Quán ăn Idol (Thủ Đức, TP.HCM); thời gian thực hiện đề tài kéo dài trong 15 tuần (từ ngày 30/03/2020 đến ngày 12/07/2020).
Cơ sở lý thuyết và phương pháp
Khóa luận kết hợp giữa nghiên cứu lý thuyết công nghệ phần mềm và khảo sát thực nghiệm nghiệp vụ để xây dựng kiến trúc hệ thống phù hợp.
-
Khung công nghệ và nền tảng phát triển:
- Nền tảng ứng dụng máy trạm (Desktop): Microsoft Windows Forms (WinForms) xây dựng bằng ngôn ngữ C# trên .NET Framework, tích hợp bộ thư viện giao diện người dùng DevExpress phiên bản 17.1.
- Nền tảng ứng dụng di động (Mobile): React Native hỗ trợ đa nền tảng (Android và iOS).
- Nền tảng máy chủ dịch vụ: Node.js xây dựng kiến trúc RESTful API phục vụ truyền tải và đồng bộ dữ liệu giữa thiết bị di động và cơ sở dữ liệu trung tâm.
- Hệ quản trị cơ sở dữ liệu và kỹ thuật tương tác dữ liệu: Microsoft SQL Server 2017; sử dụng Entity Framework và LINQ to SQL để ánh xạ đối tượng và xử lý truy vấn dữ liệu.
- Công cụ lập trình: Microsoft Visual Studio 2017 và Visual Studio Code.
-
Phương pháp nghiên cứu:
- Phương pháp khảo sát hiện trạng: Phân tích cơ cấu tổ chức, sơ đồ luồng công việc và các chứng từ thực tế tại cơ sở ăn uống.
- Phương pháp phân tích và mô hình hóa: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng biểu đồ trường hợp sử dụng (Use Case Diagram), bảng đặc tả Use Case chi tiết, biểu đồ tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram) theo từng tầng kiến trúc.
- Phương pháp thiết kế cấu trúc dữ liệu: Xây dựng sơ đồ luồng dữ liệu (DFD), chuẩn hóa cơ sở dữ liệu quan hệ và mô hình hóa thực thể kết hợp (ERD).
- Phương pháp kiểm thử phần mềm: Thực hiện kiểm thử chức năng và kiểm tra luồng nghiệp vụ trên cả hai nền tảng theo từng mốc tiến độ dự án.
-
Nguồn dữ liệu: Dữ liệu khảo sát sơ cấp thu thập trực tiếp tại Quán ăn Idol, bao gồm quy chuẩn thực đơn, phân loại món, cấu trúc nguyên liệu, bảng biểu ca làm việc và chứng từ thanh toán.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình kiến trúc phân tầng kết hợp ứng dụng khách - máy chủ (Client-Server), bảo đảm việc xử lý đồng bộ giữa quầy thu ngân và nhân viên phục vụ tại bàn.
| Thành phần hệ thống |
Nền tảng công nghệ |
Đối tượng sử dụng |
Chức năng chính |
| Phân hệ Desktop |
C# WinForms, DevExpress 17.1, LINQ to SQL, Entity Framework |
Quản lý, Thu ngân |
Quản lý hệ thống, danh mục, kho nguyên liệu, công thức, nhân sự, chấm công, chốt ca, thu ngân, in hóa đơn, báo cáo doanh thu |
| Phân hệ Mobile |
React Native, JavaScript (iOS / Android) |
Nhân viên phục vụ (Order) |
Xem sơ đồ bàn theo khu vực, tra cứu thực đơn, nhận đặt bàn, gọi món tại bàn, gửi yêu cầu in bill tạm tính |
| Máy chủ trung gian |
Node.js (RESTful API) |
Toàn hệ thống |
Xử lý các yêu cầu nghiệp vụ từ Mobile, xác thực dữ liệu và giao tiếp với hệ quản trị CSDL |
| Cơ sở dữ liệu |
Microsoft SQL Server 2017 |
Toàn hệ thống |
Lưu trữ tập trung toàn bộ dữ liệu quan hệ của hệ thống |
Thiết kế cấu trúc cơ sở dữ liệu
Cơ sở dữ liệu quan hệ của hệ thống được thiết kế chuẩn hóa với các thực thể chính:
NHANVIEN (MaNV, HoTen, Phai, NgaySinh, DiaChi, SDT, NgayVaoLam, LuongCoBan): Quản lý hồ sơ nhân sự và định mức lương cơ bản.
TAIKHOAN (MaNV, TenDN, MatKhau, LoaiTK, TrangThai): Quản lý tài khoản đăng nhập hệ thống; mật khẩu được mã hóa an toàn trước khi lưu trữ.
LOAITAIKHOAN (MaLoaiTK, TenLoaiTK): Phân quyền nhóm người dùng (Chủ quán/Quản trị viên, Nhân viên thu ngân, Nhân viên phục vụ).
CA (MaCa, GioBatDau, GioKetThuc): Danh mục các ca làm việc trong ngày.
CHAMCONG (MaNV, NgayLam, MaCa): Ghi nhận dữ liệu công làm việc thực tế của nhân viên.
NGUYENLIEU (MaNL, TenNL, DVT, SoLuong): Quản lý định lượng và số lượng tồn kho của từng nguyên liệu.
LOAIMON (MaLoai, TenLoai): Phân loại món ăn, đồ uống.
THUCDON (MaMon, TenMon, DonGia, DVT, MaLoai, HinhAnh): Danh mục chi tiết các món ăn, thức uống phục vụ tại quán.
CONGTHUC (MaMon, MaNguyenLieu, HamLuong): Bảng liên kết định nghĩa định mức thành phần nguyên liệu cấu thành nên một đơn vị món ăn.
- Cùng các bảng liên quan đến bàn ăn, khu vực, hóa đơn chi tiết và phiếu đặt bàn.
Thiết kế xử lý và luồng dữ liệu (DFD)
Hệ thống áp dụng quy trình xử lý thuật toán tiêu chuẩn cho các nghiệp vụ cập nhật dữ liệu:
- Hệ thống tiếp nhận tập dữ liệu đầu vào ($D_1$) từ thao tác của người dùng trên giao diện.
- Khởi tạo kết nối an toàn tới cơ sở dữ liệu máy chủ.
- Tải tập dữ liệu hiện hành ($D_3$) từ bảng dữ liệu tương ứng.
- Hiển thị thông tin lên giao diện người dùng.
- Thực thi các thao tác nghiệp vụ (Thêm, Sửa, Xóa) tương ứng với từng thuộc tính thực thể.
- Đánh giá trạng thái thực thi: nếu kiểm tra hợp lệ, hệ thống tiến hành lưu dữ liệu cập nhật ($D_4$) xuống cơ sở dữ liệu và xuất thông báo thành công ($D_6$); nếu dữ liệu vi phạm ràng buộc toàn vẹn, xuất cảnh báo lỗi và hủy thao tác.
- Đóng kết nối cơ sở dữ liệu.
Yêu cầu phi chức năng và an toàn hệ thống
- Hiệu năng: Thời gian phản hồi cho các tác vụ tra cứu và cập nhật dữ liệu trên cả hai nền tảng không vượt quá 5 giây.
- Bảo mật và phân quyền: Mỗi người dùng chỉ được phép truy cập các chức năng tương ứng với quyền hạn được cấp; dữ liệu mật khẩu người dùng được mã hóa lưu trữ.
- Tính toàn vẹn và lưu trữ: Dữ liệu có khả năng lưu trữ ổn định trên 10 năm, không xảy ra thất thoát hay sai lệch dữ liệu trong quá trình vận hành đồng thời.
Nội dung chính theo từng chương
Phần 1: Mở đầu
Trình bày tính cấp thiết của đề tài xuất phát từ nhu cầu thực tiễn của ngành dịch vụ ăn uống và sự cần thiết của việc áp dụng phần mềm quản lý. Xác định mục đích đề tài là xây dựng hệ thống quản trị quán ăn hai nền tảng (WinForms và Mobile). Thiết lập phương pháp nghiên cứu, kế hoạch làm việc 15 tuần và các kết quả dự kiến đạt được.
Chương 1: Khảo sát hiện trạng
Nội dung chương tập trung vào hai phần:
- Hiện trạng tổ chức: Khảo sát chi tiết mô hình hoạt động của Quán ăn Idol (Linh Trung, Thủ Đức) với quy mô 20 bàn, 1 quản lý, 2 thu ngân và 6 nhân viên phục vụ.
- Hiện trạng nghiệp vụ: Phân tích chi tiết quy trình ghi phiếu order giấy 2 liên, cách thức tính tiền bằng máy tính bỏ túi và các tồn tại thực tế (chậm trễ, sai lệch, nhầm lẫn). Tổng hợp các nhóm nghiệp vụ chính cần tin học hóa: Quản lý (nhân viên, món ăn, công thức, bàn, vị trí, chấm công), Kết xuất (đặt bàn, tính tiền, xuất hóa đơn), Tìm kiếm (món ăn, nhân viên) và Thống kê (doanh thu, lương).
Chương 2: Xác định yêu cầu – Mô hình hóa yêu cầu
Chương này xác định toàn bộ yêu cầu chức năng, phi chức năng và yêu cầu hệ thống. Mô hình hóa các yêu cầu thông qua hệ thống 30 biểu đồ và bảng đặc tả Use Case chi tiết:
| Phân hệ |
Danh sách các Use Case được mô hình hóa và đặc tả |
| Phân hệ WinForms |
Quản lý nhân viên, Chấm công, Quản lý thực đơn, Chỉnh sửa công thức, Quản lý loại món, Quản lý bàn, Quản lý khu vực, Quản lý tài khoản, Xem báo cáo thống kê, Thống kê doanh thu, Thống kê lương, Chuyển bàn, Gộp bàn, Đặt bàn, Chọn món, Chốt ca, Tính tiền, Xuất hóa đơn (hỗ trợ VAT 10%), Đổi mật khẩu, Đăng nhập, Đăng xuất |
| Phân hệ Mobile |
Xem danh sách thực đơn, Xem danh sách khu vực, Xem danh sách bàn, Đặt bàn, Chọn món ăn, Yêu cầu xuất bill tạm tính, Xem thông tin cá nhân, Đăng nhập, Đăng xuất |
Chương 3: Phân tích và thiết kế
Đây là chương trọng tâm của khóa luận, bao gồm:
- Thiết kế cơ sở dữ liệu: Xây dựng sơ đồ luồng dữ liệu (DFD), mô tả tập dữ liệu $D_1, D_3, D_4, D_6$, thuật toán xử lý dữ liệu và thiết kế bảng logic cho từng phân hệ: Nhân viên, Tài khoản, Chấm công, Nguyên liệu, Loại món, Thực đơn, Công thức.
- Thiết kế giao diện: Xây dựng sơ đồ màn hình trực quan cho toàn bộ hệ thống trên WinForms (Đăng nhập, Trang chủ, Quản lý tài khoản, Danh sách bàn, Chọn món, Chuyển bàn, Gộp bàn, Đặt bàn, Xuất bill, Quản lý công thức, Chấm công, Thống kê doanh thu/lương...) và giao diện Mobile (Đăng nhập, Thực đơn, Danh sách bàn, Đặt món, Thông tin cá nhân).
- Thiết kế xử lý: Xây dựng lược đồ tuần tự (Sequence Diagram) cho 5 chức năng then chốt: Đăng nhập, Chọn món, Xuất hóa đơn, Thống kê doanh thu, Chốt ca làm việc. Xây dựng lược đồ lớp chi tiết cho tầng giao diện, tầng nghiệp vụ, tầng dữ liệu trên WinForms và lược đồ lớp trên Mobile.
Chương 4: Cài đặt và thử nghiệm
Trình bày cấu hình môi trường phát triển phần mềm (Visual Studio 2017, SQL Server 2017, DevExpress 17.1, Visual Studio Code, Node.js). Trình bày quy trình kiểm thử hệ thống, đối soát luồng dữ liệu giữa thiết bị di động và máy trạm thu ngân, tiến hành sửa lỗi và tối ưu hóa hiệu năng ứng dụng.
Phần 3: Kết luận
Tổng kết mức độ hoàn thành nhiệm vụ nghiên cứu, đánh giá các ưu điểm đạt được của hệ thống, nhận định các mặt hạn chế còn tồn tại và đề xuất định hướng phát triển phần mềm trong tương lai.
Kết quả và đóng góp
Hạn chế và hướng nghiên cứu tiếp
Giá trị tham khảo
Khóa luận là tài liệu tham khảo có giá trị học thuật và thực tiễn cao cho:
- Sinh viên ngành Công nghệ thông tin, Công nghệ phần mềm, Hệ thống thông tin: Tham khảo phương pháp phân tích thiết kế hệ thống thông tin hoàn chỉnh, từ bước khảo sát hiện trạng thực tế, mô hình hóa Use Case, xây dựng sơ đồ luồng dữ liệu DFD đến thiết kế lược đồ lớp và lược đồ tuần tự theo chuẩn công nghệ phần mềm.
- Người phát triển ứng dụng quản lý đa nền tảng: Tham khảo mô hình kiến trúc kết hợp giữa ứng dụng máy trạm C# WinForms (sử dụng DevExpress, Entity Framework, LINQ to SQL) và ứng dụng di động React Native thông qua RESTful API xây dựng trên Node.js.
- Các phần đáng tham khảo nhất trong tài liệu:
- Tập hợp 30 bảng đặc tả Use Case chi tiết với đầy đủ mô tả, tác nhân kích hoạt, tiền điều kiện và các bước thực hiện tuần tự.
- Mô hình dữ liệu quản lý công thức cấu thành món ăn (
CONGTHUC, NGUYENLIEU, THUCDON) và mô hình quản lý ca làm việc kết hợp chấm công (CA, CHAMCONG, NHANVIEN).
- Thiết kế luồng xử lý chi tiết (DFD và lược đồ tuần tự) cho các nghiệp vụ đặc thù: Đặt món, Chuyển bàn, Gộp bàn, Chốt ca và Thống kê doanh thu.
Câu hỏi thường gặp
1. Khóa luận được khảo sát và xây dựng dựa trên hiện trạng thực tế của cơ sở kinh doanh nào?
Khóa luận được khảo sát trực tiếp tại Quán ăn Idol, tọa lạc tại đường số 18, phường Linh Trung, quận Thủ Đức, TP. Hồ Chí Minh. Cơ sở này có quy mô khoảng 20 bàn ăn, cơ cấu nhân sự gồm 1 quản lý, 2 nhân viên thu ngân và 6 nhân viên phục vụ/chạy bàn, trước đó vận hành hoàn toàn bằng phương thức ghi phiếu tay 2 liên và tính tiền bằng máy tính bỏ túi.
2. Ngăn xếp công nghệ (Tech Stack) được sử dụng để phát triển hệ thống gồm những gì?
Hệ thống sử dụng C# Windows Forms kết hợp thư viện DevExpress 17.1 cho ứng dụng máy trạm Desktop; framework React Native cho ứng dụng di động (chạy trên iOS và Android); Node.js để xây dựng RESTful API làm cầu nối trung gian; hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2017 cùng các kỹ thuật tương tác dữ liệu LINQ to SQL và Entity Framework.
3. Ứng dụng di động (Mobile App) trong đề tài phục vụ cho đối tượng nào và gồm những chức năng gì?
Ứng dụng di động được thiết kế chuyên biệt cho nhân viên phục vụ (Order) của quán ăn. Các chức năng chính bao gồm: Đăng nhập/Đăng xuất tài khoản (nhập địa chỉ IP, tên đăng nhập, mật khẩu); Xem danh sách khu vực và danh sách bàn; Xem danh mục thực đơn theo phân loại thức ăn/nước uống; Chọn món ăn và số lượng để đặt món cho từng bàn; Gửi yêu cầu in hóa đơn tạm tính về quầy thu ngân; Hủy bàn và Xem thông tin cá nhân của nhân viên.
4. Cơ sở dữ liệu của hệ thống quản lý định lượng và nguyên liệu món ăn thông qua những bảng nào?
Hệ thống quản lý định lượng thông qua 3 bảng chính: NGUYENLIEU (lưu trữ thông tin mã nguyên liệu, tên nguyên liệu, đơn vị tính, số lượng tồn), THUCDON (lưu trữ mã món, tên món, đơn giá, đơn vị tính, mã loại, hình ảnh) và bảng liên kết CONGTHUC (lưu trữ khóa chính phức hợp gồm MaMon, MaNguyenLieu cùng trường dữ liệu HamLuong để xác định định mức nguyên liệu tiêu hao cho từng món ăn).
5. Chức năng xuất hóa đơn trên phân hệ WinForms hỗ trợ những nghiệp vụ thanh toán nào?
Chức năng xuất hóa đơn trên WinForms cho phép hiển thị danh sách các món ăn đã gọi theo bàn, tổng số tiền, tính toán số tiền thối lại cho khách dựa trên số tiền khách đưa, cho phép in ấn hoặc xuất hóa đơn ra các định dạng tệp khác nhau. Hệ thống hỗ trợ in hóa đơn tạm tính và tự động cộng thêm 10% tiền thuế VAT vào tổng tiền thanh toán khi khách hàng có yêu cầu xuất hóa đơn đỏ.
Kết luận
Khóa luận "Xây dựng phần mềm quản lý quán ăn" của sinh viên Phạm Kim Hùng và Lê Hoàng Hưng đã hoàn thành trọn vẹn mục tiêu tin học hóa quy trình vận hành quán ăn từ khâu phục vụ tại bàn đến quản lý thu ngân và quản trị nhân sự. Đề tài ứng dụng thành công kiến trúc đa nền tảng kết hợp giữa Desktop (C# WinForms), Mobile (React Native) và dịch vụ máy chủ (Node.js RESTful API) trên nền cơ sở dữ liệu Microsoft SQL Server 2017. Toàn bộ các quy trình phân tích yêu cầu, mô hình hóa Use Case, thiết kế cơ sở dữ liệu và xây dựng giao diện xử lý đều được thực hiện bài bản, có tính ứng dụng thực tiễn cao và cung cấp tài liệu tham khảo giá trị cho các nghiên cứu phát triển phần mềm quản lý cùng lĩnh vực.