Bối cảnh và vấn đề nghiên cứu

Trong ngành dịch vụ ẩm thực và đồ uống (F&B), đặc biệt là mô hình kinh doanh quán cà phê, việc ứng dụng công nghệ thông tin vào quản lý vận hành đang trở thành nhu cầu thiết yếu. Theo khảo sát thực tiễn của nhóm tác giả tại thời điểm nghiên cứu (2020–2021), hầu hết các phần mềm điểm bán hàng (POS - Point of Sale) truyền thống chủ yếu được xây dựng trên nền tảng ứng dụng máy tính để bàn (Desktop) hoặc giao diện web. Mô hình này bộc lộ nhiều hạn chế: đối với các cửa hàng quy mô lớn có lượng nhân sự và khách hàng đông, hoặc các cửa hàng quy mô nhỏ bị giới hạn về nguồn lực tài chính và không gian lắp đặt, việc phụ thuộc hoàn toàn vào hệ thống máy tính cồng kềnh gây khó khăn cho việc vận hành linh hoạt và mở rộng.

Mặt khác, thị trường xuất hiện các nền tảng giao đồ ăn trực tuyến trung gian như GrabFood, Gojek Food, Now Food (ShopeeFood). Các nền tảng này kết nối khách hàng với cửa hàng, hỗ trợ khuyến mãi, mã giảm giá và định vị tài xế. Tuy nhiên, các chủ quán cà phê buộc phải sử dụng song song hai hệ thống độc lập: phần mềm POS nội bộ để quản lý bán hàng tại chỗ và ứng dụng đối tác giao hàng của bên thứ ba. Sự tách rời này dẫn đến tình trạng dữ liệu bán hàng, thực đơn, trạng thái món và doanh thu không được đồng bộ hóa theo thời gian thực, gây cản trở lớn trong công tác quản lý tổng thể.

Từ bối cảnh đó, đồ án tốt nghiệp "Mobile applications for coffeeshop management and customer connection" (Ứng dụng di động quản lý quán cà phê và kết nối khách hàng) của sinh viên Võ Minh Hiếu và Lê Minh Tiến, dưới sự hướng dẫn của ThS. Nguyễn Đức Khoan tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (khoá 2017–2021), được thực hiện nhằm giải quyết các vấn đề trên.

Mục tiêu và nhiệm vụ nghiên cứu cụ thể bao gồm:

  1. Xây dựng hệ thống phần mềm toàn diện lấy thiết bị di động làm trung tâm, kết nối trực tiếp khách hàng cuối (End-user) và chủ quán cà phê.
  2. Hỗ trợ đầy đủ các quy trình nghiệp vụ điểm bán hàng (POS) trên ứng dụng di động cho các bộ phận: Quản lý, Phục vụ, Pha chế, Thu ngân.
  3. Xây dựng phân hệ ứng dụng di động cho khách hàng nhằm duyệt thực đơn, đặt món trực tiếp, theo dõi đơn hàng và định vị tài xế.
  4. Xây dựng phân hệ ứng dụng di động cho tài xế giao hàng (Shipper) tiếp nhận đơn trong bán kính 5km và cập nhật trạng thái vận chuyển.
  5. Xây dựng phân hệ quản trị trên nền tảng web (CMS) cho Quản trị viên hệ thống (Admin) và Chủ cửa hàng (Primary user) để quản lý cấu hình, nhân sự, thực đơn, khu vực bàn và voucher khuyến mãi.

Đối tượng nghiên cứu của đề tài là quy trình quản trị vận hành quán cà phê, quy trình xử lý đơn hàng tại chỗ và đơn hàng trực tuyến, cùng mô hình kết nối đa tác nhân (Khách hàng – Cửa hàng – Tài xế – Quản trị viên). Phạm vi triển khai tập trung vào mô hình kinh doanh quán cà phê, dữ liệu thực tế tại TP. Hồ Chí Minh trong thời gian thực hiện từ tháng 12/2020 đến tháng 07/2021.


Cơ sở lý thuyết và phương pháp

Đồ án ứng dụng phương pháp thiết kế và phát triển hệ thống phần mềm hướng đối tượng kết hợp với mô hình dịch vụ web hướng API (RESTful Architecture). Nhóm tác giả tổng hợp lý thuyết nền tảng về quy trình bán hàng F&B, cơ chế định vị không gian địa lý và kiến trúc ứng dụng di động đa nền tảng.

Thành phần hệ thống Công nghệ / Nền tảng sử dụng Vai trò và đặc tính kỹ thuật
Mobile Application (Frontend) Flutter SDK (Google), ngôn ngữ Dart Xây dựng giao diện đa nền tảng (iOS, Android) từ một cơ sở mã nguồn duy nhất; ứng dụng tính năng Hot Reload, kiến trúc phân lớp điều khiển từng điểm ảnh và bộ widget theo chuẩn Material Design
Web CMS (Frontend) ReactJS Library (Facebook), Semantic UI kit Xây dựng giao diện quản trị dạng Single Page Application (SPA), cơ chế tái sử dụng component (Reusable components), kết xuất dữ liệu linh hoạt
Application Server (Backend) Node.js Runtime, Express.js Framework Xây dựng hệ thống RESTful API tập trung, xử lý bất đồng bộ (non-blocking I/O), thống nhất ngôn ngữ JavaScript cho cả phía máy chủ và máy khách
Dịch vụ tích hợp Google Maps API, SMS Gateway, OAuth Social Login Cung cấp tính năng bản đồ, định vị vị trí tài xế, tính toán khoảng cách/thời gian/phí giao hàng, gửi tin nhắn SMS kích hoạt tài khoản nhân viên, xác thực đăng nhập qua Google và Facebook

Phương pháp nghiên cứu thực nghiệm được áp dụng qua các bước: khảo sát yêu cầu thực tế từ các mô hình giao đồ ăn và ứng dụng POS hiện hành; phân tích thiết kế hệ thống bằng sơ đồ Use Case, sơ đồ quan hệ thực thể (ERD), sơ đồ tuần tự (Sequence Diagram), sơ đồ hoạt động (Activity Diagram), sơ đồ máy trạng thái (State Machine Diagram); và cuối cùng là lập trình triển khai mã nguồn kết hợp kiểm thử phần mềm (Testing).


Thiết kế và triển khai hệ thống

Hệ thống được thiết kế thành một hệ sinh thái tích hợp gồm 4 phân hệ ứng dụng tương tác với một cơ sở dữ liệu và máy chủ Backend Node.js/Express.js duy nhất.

+---------------------------------------------------------------+
|                       BACKEND SERVER                          |
|             (Node.js + Express.js + Database)                |
+--------+----------------+------------------+------------------+
         |                |                  |                  |
         v                v                  v                  v
+----------------+ +----------------+ +----------------+ +---------------+
|    POS APP     | |   CLIENT APP   | |  SHIPPER APP   | |    CMS WEB    |
| (Mobile/Dart)  | | (Mobile/Dart)  | | (Mobile/Dart)  | | (ReactJS/Kit) |
| - Quản lý bàn  | | - Đăng nhập MXH| | - Nhận đơn 5km | | - Phân quyền  |
| - Đặt/Tách món | | - Giỏ hàng     | | - Đổi trạng thái| - Quản lý quán |
| - Bếp/Pha chế  | | - Theo dõi đơn | | - Bản đồ/Gọi điện| - Menu/Voucher |
| - Thu ngân/Bill| | - Bản đồ/Ship  | | - Lịch sử giao | | - SMS nhân sự |
+----------------+ +----------------+ +----------------+ +---------------+

1. Phân hệ Ứng dụng Bán hàng (POS Application)

Ứng dụng POS di động hỗ trợ 4 nhóm tác nhân làm việc trong cùng một giao diện được phân quyền:

  • Quản lý (Manager/Shop Owner): Toàn quyền truy cập mọi chức năng, quản lý người dùng, mở khóa tài khoản, giám sát đơn hàng và xem báo cáo thống kê.
  • Nhân viên Phục vụ (Waiter): Quản lý trạng thái bàn theo khu vực (bàn trống/có khách), tạo đơn hàng tại bàn, tìm kiếm món, sửa đơn, thực hiện ghép 2 bàn thành một đơn hoặc tách đơn bàn đã ghép. Gửi thông báo chuyển món đến quầy pha chế và gửi yêu cầu thanh toán đến thu ngân.
  • Nhân viên Pha chế (Bartender): Giao diện bếp chia làm 3 cột trạng thái: Đang chờ (Open), Đang chế biến (Processing), và Sẵn sàng phục vụ (Ready). Cho phép tìm kiếm đơn theo ID, chuyển đổi giữa chế độ xem danh sách đơn hàng và danh sách món lẻ (Dishes view), sắp xếp món theo thời gian chế biến (Sort dishes by duration) để tối ưu thứ tự phục vụ.
  • Nhân viên Thu ngân (Cashier): Tiếp nhận yêu cầu thanh toán, áp dụng mã giảm giá (voucher), ghi nhận hình thức thanh toán (tiền mặt, thẻ tín dụng, ví điện tử), xuất hóa đơn, xem thống kê doanh thu theo ngày và theo tháng.
  • Tính năng chung: Điểm danh nhân viên đầu ca làm việc (Get attendance) và đăng xuất.

2. Phân hệ Ứng dụng Khách hàng (Client Application)

  • Đăng nhập thuận tiện qua mạng xã hội (Google, Facebook) hoặc tài khoản hệ thống.
  • Xem danh sách món ăn, thức uống phân loại theo danh mục; hiển thị danh sách các món phổ biến, món nổi bật; lọc sản phẩm theo các tiêu chí: cửa hàng gần tôi, đồ uống, bánh ngọt, miễn phí vận chuyển.
  • Xem chi tiết cửa hàng, khoảng cách và ước tính thời gian giao hàng.
  • Quản lý giỏ hàng, chọn voucher khuyến mãi, lựa chọn phương thức thanh toán và gửi đơn đặt hàng.
  • Theo dõi vòng đời đơn hàng theo thời gian thực và theo dõi vị trí thực tế của shipper trên giao diện tích hợp bản đồ Google Maps.
  • Quản lý hồ sơ cá nhân và xem lịch sử các đơn đặt hàng đã hoàn thành.

3. Phân hệ Ứng dụng Tài xế (Shipper Application)

  • Tiếp nhận đơn hàng giao trong phạm vi bán kính 5km xung quanh vị trí hiện tại của tài xế.
  • Màn hình theo dõi hành trình (Track screen) tích hợp Google Maps để chỉ đường từ cửa hàng đến địa chỉ người nhận.
  • Cập nhật liên tục trạng thái giao hàng (Nhận đơn -> Đang lấy món -> Đang giao -> Đã hoàn thành), kích hoạt thông báo tự động đồng bộ sang ứng dụng khách hàng.
  • Điều hướng mở trình gọi điện thoại (Call dial) để liên lạc nhanh với khách hàng hoặc cửa hàng.
  • Quản lý lịch sử giao hàng và cập nhật hồ sơ cá nhân.

4. Phân hệ Quản trị Web (CMS Web Application)

  • Quản trị viên cấp cao (Admin): Quản lý tài khoản chủ quán (Primary user), khóa tài khoản vi phạm, đặt lại mật khẩu, khởi tạo danh mục sản phẩm dùng chung toàn hệ thống, tạo và quản lý tài khoản shipper thuộc hệ sinh thái.
  • Chủ cửa hàng (Primary user): Thiết lập thông tin cửa hàng, tạo tài khoản nhân viên theo từng vai trò (Waiter, Bartender, Cashier, Shipper riêng của quán) và gửi thông tin tài khoản tự động qua tin nhắn SMS; quản lý danh mục sản phẩm và bảng giá; tạo và quản lý mã voucher giảm giá; thiết lập sơ đồ khu vực (Area) và sơ đồ bàn (Table) cho ứng dụng POS.

5. Kiểm thử hệ thống (System Testing)

Nhóm tác giả đã xây dựng kịch bản kiểm thử (Test cases) chi tiết cho cả 4 phân hệ ứng dụng, bao gồm kiểm thử giao diện (UI Testing), kiểm thử chức năng (Functional Testing) cho từng Use Case (từ UC_1.1 đến UC_1.18 của POS, SA 1.0 đến SA 1.5 của Shipper, CA 1.0 đến CA 1.15 của Client, và CMS 1.1 đến CMS 1.19 của CMS), và kiểm thử tích hợp luồng dữ liệu liên phân hệ.


Nội dung chính theo từng chương

Chương 1: Tính cấp thiết của đề tài (The urgency of the project)

Chương 1 tập trung phân tích bối cảnh phát triển của công nghệ di động và nhu cầu chuyển đổi số trong ngành dịch vụ quán cà phê. Nhóm tác giả phân tích chi tiết ưu nhược điểm của các ứng dụng giao thức ăn phổ biến (GrabFood, Gojek Food, Now Food) và các giải pháp POS hiện hữu, từ đó chỉ ra mâu thuẫn: các cửa hàng đang phải dùng các ứng dụng rời rạc, thiếu tính đồng bộ.

Chương này xác định mục tiêu xây dựng hệ thống hợp nhất 4 phân hệ lấy Flutter làm nền tảng di động cốt lõi; giới thiệu tổng quan các công nghệ lựa chọn gồm Flutter SDK, ngôn ngữ Dart, môi trường máy chủ Node.js, framework Express.js, thư viện ReactJS và Semantic UI kit. Đồng thời, chương 1 cũng định nghĩa cấu trúc vai trò của các tác nhân (Actors) trong toàn bộ hệ thống.

Chương 2: Phân tích yêu cầu và Thiết kế hệ thống (Analysis & System Design)

Nội dung chương 2 bao gồm toàn bộ quá trình mô hình hóa hệ thống phần mềm:

  • Đặc tả Use Case: Xây dựng bảng và sơ đồ Use Case cho từng phân hệ (POS: 18 use cases; Shipper: 6 use cases; Client: 16 use cases; CMS: 19 use cases). Mỗi use case đều có bảng đặc tả chi tiết gồm mã định danh, tác nhân, điều kiện tiên quyết, luồng sự kiện chính và luồng ngoại lệ.
  • Yêu cầu phi chức năng: Phân tích các tiêu chí về tính sẵn sàng (Availability) của hệ thống Backend, hiệu năng xử lý, tính bảo mật dữ liệu người dùng và khả năng tương thích đa nền tảng.
  • Kiến trúc và Mô hình dữ liệu: Trình bày sơ đồ kiến trúc phân lớp Front-end/Back-end, sơ đồ quan hệ thực thể (ERD) mô tả cơ sở dữ liệu quan hệ lưu trữ thông tin người dùng, nhân viên, sản phẩm, khu vực, bàn, đơn hàng, chi tiết đơn hàng, giao hàng và thống kê.
  • Sơ đồ tuần tự và Hoạt động: Thiết kế chi tiết các luồng nghiệp vụ phức tạp gồm: quy trình thanh toán (Payment sequence diagram), quy trình chuyển đổi trạng thái đơn hàng (Change state order sequence diagram), luồng tính toán thống kê (Statistic sequence diagram), quy trình đặt hàng từ Client App và quy trình nhận đơn từ Shipper App.
  • Sơ đồ máy trạng thái: Mô tả chu trình chuyển đổi trạng thái của một đơn hàng giao nhận (Delivery order state machine) từ lúc tạo đơn, chuyển bếp, đóng gói, bàn giao shipper đến khi khách nhận hàng thành công.
  • Thiết kế giao diện người dùng (UI Design): Bản vẽ thiết kế wireframe và giao diện đồ họa hoàn chỉnh của các màn hình chính (Màn hình Order, Màn hình Khu vực/Bàn, Màn hình Bếp/Pha chế, Màn hình Thanh toán, Màn hình Giỏ hàng, Màn hình Định vị Shipper, Màn hình Quản trị CMS).

Chương 3: Triển khai hệ thống và Kiểm thử (System Implementation and Testing)

Chương 3 trình bày chi tiết về môi trường phát triển phần mềm, cơ chế quản lý mã nguồn (Source code management), hướng dẫn cấu hình máy chủ web Node.js, cài đặt và triển khai ứng dụng Web Client (ReactJS). Phần trọng tâm của chương là tài liệu kiểm thử:

  • Thiết lập danh mục các giai đoạn kiểm thử và các loại kiểm thử được áp dụng.
  • Bảng kịch bản kiểm thử (Test Cases) chi tiết cho từng phân hệ: bộ kiểm thử POS App, bộ kiểm thử Shipper App, bộ kiểm thử Client App và bộ kiểm thử CMS App (kèm điều kiện kiểm tra, dữ liệu đầu vào, kết quả mong đợi và trạng thái thực thi).

Kết quả và đóng góp

1. Kết quả đạt được

  • Triển khai thành công hệ sinh thái 4 ứng dụng phần mềm hoạt động đồng bộ trên một nền tảng cơ sở dữ liệu tập trung:
    1. Ứng dụng POS (Mobile): Hoạt động trơn tru trên thiết bị di động, đáp ứng đầy đủ nghiệp vụ cho phục vụ (chọn bàn, đặt món, ghép/tách bàn), pha chế (lọc đơn, chuyển trạng thái, sắp xếp theo thời gian chế biến), thu ngân (áp voucher, thanh toán) và quản lý cửa hàng.
    2. Ứng dụng Khách hàng (Mobile): Cho phép đặt món trực tuyến, tích hợp đăng nhập mạng xã hội, định vị bản đồ và giám sát hành trình giao hàng.
    3. Ứng dụng Tài xế (Mobile): Tự động quét và nhận đơn trong phạm vi 5km, cung cấp bản đồ dẫn đường và cập nhật trạng thái đơn hàng theo thời gian thực.
    4. Ứng dụng Quản trị Web (CMS): Quản lý tập trung toàn bộ danh mục, thực đơn, cấu hình khu vực bàn, quản lý nhân sự và phân quyền thông qua gửi tin nhắn SMS kích hoạt.
  • Tối ưu hóa hiệu năng ứng dụng di động nhờ cơ chế biên dịch mã nguồn của Flutter SDK, giao diện người dùng trực quan, tương thích đa nền tảng Android và iOS.
  • Xây dựng thành công máy chủ RESTful API trên Node.js/Express.js, đảm bảo xử lý luồng dữ liệu đồng bộ giữa các phân hệ.

2. Đóng góp của đề tài

  • Khắc phục triệt để sự phân mảnh giữa hệ thống bán hàng tại chỗ và hệ thống giao hàng trực tuyến cho các quán cà phê vừa và nhỏ.
  • Cung cấp giải pháp chuyển dịch từ mô hình POS cố định trên máy tính cồng kềnh sang mô hình di động hóa toàn diện, giúp tiết kiệm chi phí đầu tư thiết bị phần cứng ban đầu cho chủ quán.
  • Đóng góp một thiết kế mẫu hoàn chỉnh về mặt kỹ thuật (từ phân tích use case, thiết kế ERD, sequence diagrams đến kịch bản kiểm thử) cho các hệ thống phần mềm F&B đa tác nhân.

Hạn chế và hướng nghiên cứu tiếp

Căn cứ trên phạm vi và nội dung trình bày trong đồ án, hệ thống còn một số điểm giới hạn cần hoàn thiện:

  • Tích hợp cổng thanh toán trực tuyến: Hệ thống mới chỉ dừng lại ở việc hỗ trợ các lựa chọn phương thức thanh toán logic và thanh toán tiền mặt/thẻ tại quầy; chưa tích hợp sâu API với các cổng thanh toán điện tử trực tuyến phổ biến (như MoMo, ZaloPay, VNPay) trên ứng dụng khách hàng.
  • Xử lý đơn hàng tải cao và phân tán: Kiến trúc máy chủ Backend Node.js được thiết kế tập trung, cần bổ sung giải pháp cân bằng tải (Load Balancing) và kiến trúc Microservices khi hệ thống mở rộng phục vụ đồng thời hàng trăm chuỗi quán cà phê lớn.
  • Hệ thống gợi ý thông minh: Ứng dụng Client hiện hiển thị danh mục theo bộ lọc tĩnh, chưa tích hợp thuật toán học máy (Machine Learning) để gợi ý món ăn/thức uống cá nhân hóa dựa trên lịch sử đặt hàng của người dùng.

Giá trị tham khảo

Đồ án tốt nghiệp này mang lại giá trị tham khảo thực tiễn và học thuật cho nhiều đối tượng:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm: Tài liệu là nguồn tham khảo chi tiết về quy trình phân tích thiết kế hệ thống theo chuẩn UML, phương pháp xây dựng kịch bản kiểm thử (Test cases), và kỹ thuật lập trình ứng dụng di động đa nền tảng với Flutter kết hợp Backend Node.js/Express.js.
  • Lập trình viên phát triển ứng dụng F&B: Cung cấp mô hình tham chiếu về luồng nghiệp vụ quản lý quán cà phê (đặc biệt là logic ghép/tách bàn, quản lý hiển thị đơn tại quầy pha chế theo thời gian chế biến món).
  • Chủ doanh nghiệp, đơn vị khởi nghiệp F&B: Tham khảo mô hình kiến trúc công nghệ tinh gọn, giúp chuyển đổi số hoạt động bán hàng và kết nối khách hàng với chi phí đầu tư phần cứng tối thiểu.

Câu hỏi thường gặp

1. Đề tài giải quyết vấn đề cốt lõi nào của các quán cà phê hiện nay?
Đề tài giải quyết sự thiếu đồng bộ khi chủ quán phải dùng riêng rẽ 2 hệ thống: phần mềm POS truyền thống trên máy tính để bàn và ứng dụng giao hàng của bên thứ ba. Hệ thống tích hợp toàn bộ quy trình bán hàng tại chỗ, quản lý nhân viên và đặt hàng giao tận nơi vào một nền tảng duy nhất lấy thiết bị di động làm trung tâm.

2. Hệ sinh thái phần mềm trong đồ án bao gồm những ứng dụng nào?
Hệ thống gồm 4 ứng dụng:

  • Ứng dụng di động POS (dành cho Quản lý, Phục vụ, Thu ngân, Pha chế).
  • Ứng dụng di động Khách hàng (dành cho người dùng đặt món, theo dõi giao hàng).
  • Ứng dụng di động Shipper (dành cho tài xế nhận đơn và cập nhật trạng thái).
  • Ứng dụng Web CMS (dành cho Quản trị viên hệ thống và Chủ cửa hàng quản lý tài nguyên).

3. Công nghệ nào được sử dụng để xây dựng các phân hệ trong hệ thống?

  • Giao diện ứng dụng di động: Flutter Framework (ngôn ngữ Dart).
  • Giao diện ứng dụng quản trị Web: ReactJS kết hợp bộ giao diện Semantic UI kit.
  • Máy chủ dịch vụ Backend: Node.js kết hợp framework Express.js.
  • Dịch vụ tích hợp: Google Maps API (định vị, dẫn đường), SMS Gateway (gửi tài khoản nhân viên), OAuth (đăng nhập Google/Facebook).

4. Nhân viên Pha chế (Bartender) trên ứng dụng POS được hỗ trợ những tính năng đặc thù gì?
Ứng dụng POS cung cấp cho nhân viên pha chế giao diện bếp chia 3 trạng thái (Open, Processing, Ready), tính năng tìm đơn hàng theo ID, tính năng chuyển sang chế độ xem từng món lẻ (Dish view), và đặc biệt là tính năng sắp xếp món theo thời gian chế biến (Sort dish by duration) để tối ưu thứ tự phục vụ.

5. Tài xế (Shipper) tiếp nhận đơn hàng dựa trên quy tắc nào?
Ứng dụng Shipper cho phép tài xế quét và nhận các đơn hàng phát sinh trong bán kính 5km xung quanh vị trí hiện tại của mình, sau đó sử dụng bản đồ Google Maps để theo dõi lộ trình và cập nhật từng bước trạng thái giao hàng về cho khách hàng.


Kết luận

Đồ án tốt nghiệp "Mobile applications for coffeeshop management and customer connection" của sinh viên Võ Minh Hiếu và Lê Minh Tiến đã xây dựng thành công một giải pháp công nghệ toàn diện cho ngành F&B. Bằng việc ứng dụng Flutter, Node.js và ReactJS, hệ thống đã kết nối chặt chẽ 4 phân hệ phần mềm nhằm tối ưu hóa toàn diện quy trình vận hành quán cà phê và nâng cao trải nghiệm đặt hàng của khách hàng. Đây là một công trình nghiên cứu ứng dụng có tính thực tiễn cao, tài liệu thiết kế chi tiết và cấu trúc hoàn chỉnh, phục vụ hiệu quả cho công tác nghiên cứu và triển khai công nghệ phần mềm.