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

Khóa luận tốt nghiệp "Building a multi-platform system for food ordering and delivery" (Xây dựng hệ thống đa nền tảng cho việc đặt và giao đồ ăn) được thực hiện bởi nhóm tác giả Đỗ Huỳnh Bảo Đăng, Nguyễn Ngọc Mạnh và Nguyễn Thanh Tịnh thuộc ngành Kỹ thuật Phần mềm (Software Engineering), Khoa Đào tạo Quốc tế, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, dưới sự hướng dẫn của ThS. Nguyễn Trần Thi Văn và phản biện của TS. Lê Văn Vinh.

Theo trình bày của nhóm tác giả, lý do lựa chọn đề tài xuất phát từ sự bùng nổ của thị trường giao đồ ăn trực tuyến trên toàn cầu và tại Việt Nam. Văn bản chỉ ra rằng vào năm 2025, thị trường giao đồ ăn toàn cầu được dự báo đạt quy mô 1,41 nghìn tỷ USD với tốc độ tăng trưởng kép hàng năm (CAGR) xấp xỉ 8%. Sự thay đổi hành vi tiêu dùng sau đại dịch COVID-19 đã biến việc đặt thức ăn trực tuyến thành nhu cầu thiết yếu hàng ngày: gần 80% bữa ăn từ nhà hàng được dự kiến sẽ tiêu thụ ngoài cơ sở kinh doanh phục vụ tại chỗ, và khoảng 40% người trưởng thành thực hiện đặt đồ ăn từ 3 đến 5 lần mỗi tháng.

Tuy nhiên, nhóm tác giả nhận định các nền tảng thương mại điện tử đa ngành thông thường không phản ánh chính xác các đặc thù nghiệp vụ chuyên sâu của lĩnh vực ẩm thực (quản lý món ăn, cập nhật thực đơn theo thời gian thực, duy trì độ ấm/chất lượng món ăn, điều phối giao vận nhanh, tích hợp bản đồ số). Do đó, việc xây dựng một hệ thống chuyên biệt mang tên "Yummy Go" nhằm kết nối đồng bộ bốn nhóm tác nhân gồm khách hàng, nhà hàng, tài xế giao hàng và quản trị viên là yêu cầu cấp thiết.

Mục tiêu và nhiệm vụ nghiên cứu được văn bản xác định cụ thể:

  1. Nghiên cứu cơ sở lý thuyết và các công nghệ xây dựng hệ thống đa nền tảng: ReactJS, React Native, ExpressJS, cơ sở dữ liệu quan hệ (MySQL) và cơ sở dữ liệu trên bộ nhớ đệm (Redis).
  2. Khảo sát hiện trạng và phân tích đối chuẩn hai ứng dụng phổ biến trên thị trường là GrabFood và ShopeeFood.
  3. Thu thập, mô hình hóa yêu cầu người dùng, xây dựng biểu đồ use case và đặc tả chi tiết 51 trường hợp sử dụng (use case).
  4. Thiết kế kiến trúc hệ thống, biểu đồ lớp (Class Diagram), biểu đồ tuần tự (Sequence Diagram) cho các nghiệp vụ trọng tâm (đăng ký, đăng nhập/đăng xuất, đặt hàng, chatbot hỗ trợ, điều phối tài xế) và thiết kế giao diện cho từng nền tảng.
  5. Hiện thực hóa và kiểm thử phần mềm trên cả giao diện Web và ứng dụng Di động (iOS/Android), thực hiện kiểm thử đơn vị (Unit testing) và kiểm thử tích hợp (Integration testing).

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ đặt, chế biến, giao nhận món ăn và mô hình kiến trúc phần mềm đa nền tảng phục vụ quản lý chuỗi cung ứng ẩm thực on-demand.
  • Phạm vi thời gian: Đồ án được thực hiện trong thời gian 12 tuần (bắt đầu từ ngày 24/02/2025 đến ngày 18/05/2025).
  • Phạm vi kỹ thuật: Triển khai 4 phân hệ tương tác gồm Ứng dụng Di động cho Khách hàng (Customer App), Ứng dụng Di động cho Nhà hàng (Restaurant App), Ứng dụng Di động cho Tài xế (Driver/Shipper App) và Trang Quản trị trên nền tảng Web (Admin Portal).

Cơ sở lý thuyết và phương pháp nghiên cứu

Nhóm tác giả đã vận dụng các khung kiến trúc phần mềm và công nghệ web/mobile hiện đại, đồng thời kết hợp phương pháp nghiên cứu khảo sát đối chuẩn thực tế.

Khung lý thuyết và công nghệ sử dụng

Hệ thống sử dụng ngăn xếp công nghệ đồng nhất trên nền tảng JavaScript/TypeScript:

  • ReactJS & TSX: Thư viện giao diện người dùng sử dụng Virtual DOM để tối ưu hóa hiệu năng render, áp dụng cơ chế liên kết dữ liệu một chiều (One-way data binding) thông qua Props và State. TSX bổ sung hệ thống định kiểu tĩnh (static typing) của TypeScript vào cú pháp HTML-like, giảm thiểu lỗi lúc biên dịch (compile-time) và nâng cao khả năng tái sử dụng component.
  • React Native: Khung phát triển ứng dụng di động đa nền tảng cho phép sử dụng chung một cơ sở mã nguồn (codebase) để biên dịch sang các thành phần giao diện gốc (native UI components) trên cả Android và iOS, hỗ trợ tính năng Hot Reloading và liên kết trực tiếp với mã nguồn native (Java, Kotlin, Swift, Objective-C).
  • Node.js & ExpressJS: Nền tảng thực thi JavaScript phía máy chủ xây dựng trên V8 engine với mô hình hướng sự kiện (event-driven), vào/ra không chặn (non-blocking I/O) chạy đơn luồng (single-thread), kết hợp ExpressJS để định tuyến (routing), xử lý middleware và xây dựng hệ thống RESTful API.
  • MySQL: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) sử dụng lưu trữ bảng có cấu trúc với lược đồ cố định, hỗ trợ các storage engine như InnoDB và MyISAM, tuân thủ nghiêm ngặt các thuộc tính ACID (Atomicity, Consistency, Isolation, Durability) nhằm đảm bảo toàn vẹn dữ liệu cho các giao dịch đơn hàng và thanh toán.
  • Redis: Hệ thống lưu trữ cấu trúc dữ liệu trên bộ nhớ RAM (in-memory data store) với độ trễ thấp, đóng vai trò làm bộ nhớ đệm (caching), quản lý phiên làm việc (session management), hỗ trợ các cấu trúc dữ liệu đa dạng (strings, hashes, lists, sets, sorted sets) và cung cấp cơ chế bền vững hóa dữ liệu (snapshotting, append-only files - AOF).
  • Thư viện tích hợp: Mapbox API phục vụ hiển thị bản đồ số, xác định tọa độ và tối ưu lộ trình giao hàng; Recharts / Chart.js phục vụ trực quan hóa số liệu thống kê báo cáo doanh thu.
Lớp thành phần Công nghệ / Nền tảng Vai trò và đặc tính kỹ thuật
Giao diện Di động React Native, TSX, Redux Phát triển ứng dụng khách hàng, nhà hàng, tài xế đa nền tảng iOS & Android
Giao diện Quản trị ReactJS, TSX, Recharts/Chart.js Cổng quản trị web (Admin Portal), quản lý danh mục, báo cáo thống kê
Dịch vụ Máy chủ Node.js, ExpressJS Hệ thống xử lý trung tâm, cung cấp RESTful API, xác thực và phân quyền
Cơ sở dữ liệu chính MySQL (InnoDB engine) Lưu trữ quan hệ: người dùng, thực đơn, chi tiết đơn hàng, giao dịch
Bộ nhớ đệm & Phiên Redis Caching dữ liệu tần suất cao, tối ưu tốc độ đọc/ghi, quản lý phiên và hàng đợi
Dịch vụ Bản đồ Mapbox API Định vị GPS nhà hàng, khách hàng, theo dõi lộ trình di chuyển của tài xế

Phương pháp nghiên cứu

Nhóm thực hiện phương pháp nghiên cứu thực nghiệm kết hợp khảo sát so sánh đối chuẩn (benchmarking) trên hai nền tảng dẫn đầu thị trường là GrabFood và ShopeeFood. Quá trình đánh giá được thực hiện trên 3 tiêu chí:

  1. Chất lượng nội dung (Content Quality): Cách hiển thị hình ảnh, giá cả, đánh giá món ăn và sự đa dạng thực đơn.
  2. Thiết kế và trải nghiệm người dùng (UX/UI): Tính trực quan, tốc độ tải trang, tính thích ứng màn hình (responsiveness) và độ mượt của luồng thao tác đặt hàng.
  3. Tính năng (Functionality): Hỗ trợ đa cổng thanh toán, cập nhật trạng thái đơn hàng thời gian thực, tích hợp bản đồ số theo dõi tài xế, quản lý mã giảm giá (voucher/coupon), hệ thống báo cáo doanh thu cho đối tác và công cụ điều hành của quản trị viên.

Nguồn dữ liệu trong đồ án bao gồm: số liệu dự báo thị trường từ các báo cáo ngành F&B, đặc tả yêu cầu chức năng trích xuất từ phân tích đối thủ cạnh tranh, và dữ liệu cấu trúc phục vụ thử nghiệm được thiết kế trực tiếp trong cơ sở dữ liệu hệ thống.


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

Hệ thống "Yummy Go" được thiết kế theo mô hình phân tầng hướng dịch vụ, phục vụ bốn tác nhân với các thẩm quyền và luồng nghiệp vụ riêng biệt.

Phân rã chức năng theo nhóm tác nhân

   [ Khách hàng ]      [ Nhà hàng ]          [ Tài xế ]         [ Quản trị ]
   - Tìm kiếm món      - Quản lý thực đơn    - Nhận cuốc xe     - Duyệt nhà hàng
   - Giỏ hàng & Đơn    - Cập nhật giá/kho    - Định vị dẫn đường- Quản lý người dùng
   - Mapbox Tracking   - Theo dõi trạng thái - Cập nhật tiến độ - Cấu hình coupon
   - Đánh giá & Chat   - Báo cáo doanh thu   - Quản lý thu nhập - Giám sát hệ thống
  1. Phân hệ Khách hàng (Customer): Đăng ký/đăng nhập, tìm kiếm và lọc món ăn theo khoảng giá/đánh giá/danh mục, tùy biến món ăn (chọn topping, ghi chú chế biến), quản lý giỏ hàng, chọn địa chỉ giao nhận (GPS/thủ công), thanh toán nhiều hình thức (tiền mặt COD, thẻ ngân hàng, ví điện tử), theo dõi vị trí đơn hàng trên bản đồ Mapbox theo thời gian thực, hủy đơn, đánh giá chất lượng món ăn và dịch vụ của tài xế, tương tác với chatbot hỗ trợ.
  2. Phân hệ Đối tác Nhà hàng (Restaurant/Seller): Đăng ký thông tin kinh doanh, quản lý danh mục thực đơn (thêm/sửa/xóa món, cập nhật giá, quản lý biến thể topping), bật/tắt trạng thái hoạt động ("Active" hoặc "Closed"), tiếp nhận đơn hàng mới, cập nhật trạng thái chế biến (đang chuẩn bị, sẵn sàng giao), quản lý chương trình giảm giá/coupon riêng của quán, theo dõi ví tiền và biểu đồ doanh thu theo chu kỳ.
  3. Phân hệ Đối tác Tài xế (Driver/Shipper): Đăng ký và nộp hồ sơ xác thực, bật/tắt trạng thái sẵn sàng nhận đơn, nhận thông báo cuốc xe mới theo bán kính phù hợp, xem thông tin điểm lấy hàng và điểm giao hàng, dẫn đường qua bản đồ tích hợp, cập nhật trạng thái giao vận (đã lấy hàng, đang giao, đã giao thành công), liên lạc với khách hàng và quản lý ví thu nhập cá nhân.
  4. Phân hệ Quản trị viên (Admin): Quản trị danh sách người dùng (khóa/mở tài khoản), thẩm định và phê duyệt hồ sơ đối tác nhà hàng, kiểm soát danh mục sản phẩm toàn hệ thống, quản lý và phát hành coupon khuyến mãi diện rộng, điều phối xử lý tranh chấp đơn hàng, giám sát biểu đồ doanh thu và vận hành tổng thể trên Dashboard.

Mô hình hóa thiết kế (UML)

Đồ án xây dựng hoàn chỉnh hệ thống tài liệu mô hình hóa bao gồm:

  • Biểu đồ lớp (Class Diagram - Hình 14): Định nghĩa cấu trúc thực thể dữ liệu gồm User, Customer, Restaurant, Shipper, Food, Category, Order, OrderDetail, Topping, Coupon, Review, Feedback, Payment.
  • Biểu đồ tuần tự (Sequence Diagrams - Hình 15 đến Hình 19):
    • Sequence diagram Signup (Hình 15): Mô tả quá trình tương tác giữa giao diện người dùng, máy chủ ExpressJS và cơ sở dữ liệu khi xác thực dữ liệu đầu vào và tạo mới bản ghi tài khoản.
    • Sequence diagram Login/Logout (Hình 16): Mô tả quy trình kiểm tra thông tin định danh, cấp phát và hủy bỏ phiên làm việc hoặc mã khóa xác thực.
    • Sequence diagram Order (Hình 17): Mô tả chuỗi tương tác đa bên từ khi khách hàng gửi yêu cầu giỏ hàng, hệ thống kiểm tra tồn kho, tạo bản ghi đơn hàng, trừ mã khuyến mãi và gửi thông báo đơn mới đến nhà hàng.
    • Sequence diagram Chatbot (Hình 18): Luồng tiếp nhận câu hỏi của người dùng, phân tích và trả về câu trả lời tự động hỗ trợ giải đáp nhanh.
    • Sequence diagram Find driver (Hình 19): Quy trình thuật toán định vị quét các tài xế khả dụng gần vị trí nhà hàng, gửi lời mời nhận đơn và xử lý phản hồi chấp nhận cuốc xe.

Thiết kế giao diện và Kiểm thử phần mềm

Nhóm tác giả đã lập bảng chi tiết thành phần giao diện (UI Objects) cho hơn 40 màn hình hệ thống (từ Bảng 52 đến Bảng 92) và tiến hành kiểm thử chức năng theo các bộ kịch bản kiểm thử:

  • Bảng 93: Kịch bản kiểm thử ứng dụng Khách hàng (User application test cases).
  • Bảng 94: Kịch bản kiểm thử ứng dụng Nhà hàng (Restaurant application test cases).
  • Bảng 95: Kịch bản kiểm thử ứng dụng Tài xế (Driver application test cases).
  • Bảng 96: Kịch bản kiểm thử cổng Quản trị Web (Admin web test cases).

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

Chapter 1: Introduction

Chương mở đầu trình bày tính cấp thiết của đề tài trong bối cảnh thị trường giao đồ ăn trực tuyến mở rộng mạnh mẽ. Nội dung chương phân tích chi tiết ý nghĩa khoa học (đóng góp vào mô hình tích hợp đa nền tảng, kiến trúc microservices/cloud-native, nghiên cứu tương tác người - máy và thuật toán điều phối giao hàng) và ý nghĩa thực tiễn (giúp các nhà hàng vừa và nhỏ tiếp cận thị trường số mà không cần tự đầu tư đội ngũ giao vận riêng; tạo sinh kế linh hoạt cho tài xế; cung cấp trải nghiệm ẩm thực đa dạng cho người dùng). Nhóm tác giả xác định phương pháp tiếp cận nghiên cứu, các yêu cầu kỹ thuật chuyên ngành và giới thiệu tổng quan ngăn xếp công nghệ: MySQL, Redis, ReactJS, React Native và NodeJS (ExpressJS).

Chapter 2: Theoretical Background

Chương này tập trung trình bày các cơ sở lý thuyết công nghệ cốt lõi được áp dụng trong quá trình phát triển hệ thống:

  • Cơ chế Virtual DOM và luồng dữ liệu một chiều của ReactJS; vai trò của Props và State trong việc quản lý trạng thái component.
  • Cú pháp mở rộng TSX trong TypeScript, nhấn mạnh ưu thế tối ưu hóa tốc độ biên dịch, khả năng bắt lỗi kiểu dữ liệu tại thời điểm biên dịch và nâng cao khả năng tái cấu trúc mã nguồn.
  • Kiến trúc đơn luồng bất đồng bộ dựa trên cơ chế hướng sự kiện của Node.js, framework ExpressJS trong việc xử lý middleware và quản lý định tuyến HTTP.
  • Nguyên lý hoạt động của RDBMS MySQL, cấu trúc bảng quan hệ, bảo đảm tính toàn vẹn dữ liệu qua chuẩn ACID, cơ chế sao chép (replication) và các bộ máy lưu trữ dữ liệu (InnoDB, MyISAM).
  • Hệ thống Redis in-memory: đặc tính truy xuất dữ liệu tốc độ cao từ RAM, các kiểu dữ liệu nâng cao, các phương thức duy trì dữ liệu trên đĩa cứng (Snapshotting, AOF) và mô hình dự phòng High Availability với Redis Sentinel.
  • Framework React Native: kiến trúc viết một lần chạy trên cả hai nền tảng Android/iOS, khả năng render thành phần giao diện gốc (Native UI components) và cơ chế Hot Reloading.

Chapter 3: Survey, Requirements Modelling

Chương 3 trình bày khảo sát thực trạng thông qua hai ứng dụng thương mại GrabFood và ShopeeFood theo 3 tiêu chí: Chất lượng nội dung, Thiết kế & Trải nghiệm người dùng, và Chức năng. Dựa trên kết quả khảo sát, tác giả tiến hành thu thập và chuẩn hóa yêu cầu cho hệ thống "Yummy Go", phân loại chi tiết theo bốn tác nhân: Khách hàng (13 nhóm chức năng), Nhà hàng (10 nhóm chức năng), Tài xế (8 nhóm chức năng), và Quản trị viên (8 nhóm chức năng). Chương này bao gồm các sơ đồ ca sử dụng tổng quát (Hình 8 đến Hình 13) và xây dựng 51 bảng đặc tả ca sử dụng chi tiết (từ Bảng 1 - UC01 Login đến Bảng 51 - UC51 Review Restaurant), xác định mã định danh, mô tả, tác nhân, mức độ ưu tiên, điều kiện tiên quyết, điều kiện kết thúc và luồng sự kiện chính.

Chapter 4: System Design

Chương 4 mô tả toàn diện các mô hình thiết kế tĩnh và động của hệ thống:

  • Biểu đồ lớp (Class Diagram - Hình 14) thiết lập mối quan hệ giữa các thực thể trong cơ sở dữ liệu.
  • Các biểu đồ tuần tự trọng yếu (Hình 15 đến Hình 19) phân tích chi tiết cơ chế trao đổi thông điệp giữa Actor, View, Controller, Service và Database.
  • Thiết kế luồng làm việc (Workflows) và giao diện chi tiết của 4 phân hệ:
    • Phân hệ khách hàng: Màn hình Đăng nhập/Đăng ký, Trang chủ (Home 1, Home 2), Chi tiết nhà hàng, Chi tiết món ăn, Giỏ hàng, Đánh giá nhà hàng, Danh sách đơn hàng, Trạng thái đơn hàng, Chi tiết đơn hàng, Chatbot, Thông tin cá nhân.
    • Phân hệ nhà hàng: Danh sách đơn mới tiếp nhận, Quản lý thực đơn, Chỉnh sửa món ăn, Cập nhật bảng giá, Thêm món ăn mới, Báo cáo thống kê doanh thu, Quản lý thông tin quán, Ví tiền nhà hàng, Lịch sử đơn hàng, Quản lý mã giảm giá, Phản hồi đánh giá.
    • Phân hệ tài xế: Màn hình tiếp nhận đơn hàng mới, Thông tin chi tiết tài xế và lộ trình giao nhận.
    • Phân hệ quản trị web: Đăng nhập quản trị, Bảng điều khiển (Dashboard), Quản lý đối tác nhà hàng, Chi tiết nhà hàng, Danh sách sản phẩm, Đơn hàng của nhà hàng, Danh sách và chi tiết tài xế, Quản trị mã khuyến mãi, Quản trị phản hồi người dùng, Danh sách và chi tiết đơn hàng toàn hệ thống. Tất cả các màn hình đều đi kèm bảng phân rã chi tiết các đối tượng hiển thị (từ Bảng 52 đến Bảng 92).

Chapter 5: Implementation and Testing

Chương cuối cùng tổng kết các công cụ triển khai phần mềm được sử dụng trong đồ án, nội dung các mô-đun đã được lập trình hoàn thiện trên thực tế và phân tích ưu điểm, hạn chế của hệ thống. Nhóm tác giả trình bày kết quả kiểm thử chức năng thông qua 4 bảng kịch bản kiểm thử (Bảng 93 đến Bảng 96) tương ứng với 4 phân hệ phần mềm nhằm bảo đảm tính chính xác, tính ổn định và sự nhất quán của luồng dữ liệu trên toàn bộ hệ sinh thái Yummy Go.


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

Kết quả chính đạt được

Căn cứ vào dữ liệu được ghi nhận trong đồ án, nhóm nghiên cứu đã hoàn thành:

  1. Xây dựng tài liệu kỹ thuật hoàn chỉnh gồm 51 bảng đặc tả Use Case chi tiết, bao quát toàn bộ hoạt động đặt, chế biến, điều phối giao nhận và quản lý ẩm thực trực tuyến.
  2. Thiết kế và đặc tả chi tiết các đối tượng trên hơn 40 màn hình giao diện người dùng (Bảng 52 đến Bảng 92), bao gồm cả ứng dụng di động cho ba đối tượng tương tác và giao diện web điều hành của quản trị viên.
  3. Hoàn thiện các sơ đồ tuần tự giải quyết các bài toán then chốt: quản lý phiên xác thực người dùng, xử lý giao dịch đơn hàng đa trạng thái, tích hợp hộp thoại tự động (Chatbot) và quy trình tìm kiếm tài xế lân cận.
  4. Triển khai các kịch bản kiểm thử đơn vị và kiểm thử tích hợp (Bảng 93 đến 96), ghi nhận tính ổn định của hệ thống trong môi trường thử nghiệm 12 tuần.

Giải pháp kỹ thuật do nhóm tác giả đề xuất

  • Xây dựng kiến trúc giao tiếp thống nhất trên nền tảng RESTful API sử dụng Node.js/ExpressJS, cho phép ba ứng dụng di động React Native và cổng quản trị web ReactJS dùng chung một tầng backend xử lý dữ liệu tập trung.
  • Sử dụng mô hình kết hợp cơ sở dữ liệu quan hệ MySQL cho lưu trữ các giao dịch có cấu trúc (đơn hàng, chi tiết đơn, thông tin tài chính) với cơ chế lưu trữ bộ nhớ đệm Redis để giảm tải truy vấn cơ sở dữ liệu, quản lý trạng thái phiên và hỗ trợ xử lý tức thời các tác vụ giao vận.
  • Tích hợp Mapbox API nhằm xử lý bài toán định vị không gian địa lý, hiển thị trực quan lộ trình của tài xế đến địa chỉ khách hàng.

Đóng góp thực tiễn theo công bố của tác giả

Khác với các sàn thương mại điện tử đa ngành quy mô chung, hệ thống Yummy Go tập trung chuyên biệt vào ngành dịch vụ ăn uống. Giải pháp giúp:

  • Hỗ trợ các cơ sở kinh doanh vừa, nhỏ và các bếp ăn đám mây (cloud kitchens) tiếp cận mô hình kinh doanh số mà không đòi hỏi chi phí đầu tư hạ tầng công nghệ hay đội ngũ giao hàng riêng biệt.
  • Tối ưu hóa thu nhập và tính chủ động cho đội ngũ tài xế thông qua cơ chế phân phối đơn hàng tự động và quản lý ví tiền minh bạch.
  • Mang lại trải nghiệm đặt món cá nhân hóa, theo dõi đơn hàng minh bạch cho người tiêu dùng.

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

Hạn chế

Căn cứ vào phạm vi nghiên cứu và nội dung phân tích tại Chương 5 (Strengths and drawbacks):

  • Thời gian nghiên cứu và hiện thực hóa bị giới hạn trong khung thời gian 12 tuần (từ ngày 24/02/2025 đến ngày 18/05/2025), do đó một số tính năng nâng cao chỉ dừng lại ở mức mô hình hóa và triển khai thử nghiệm chức năng cốt lõi.
  • Văn bản ghi nhận hệ thống còn chịu ảnh hưởng bởi các rào cản về mặt kinh nghiệm kỹ thuật ban đầu của nhóm sinh viên trong việc tối ưu hóa hiệu năng toàn diện trên các hệ thống phân tán phức tạp.
  • Chưa có số liệu thử nghiệm tải lớn (load testing) trong điều kiện hàng chục nghìn người dùng truy cập đồng thời hoặc phân tích định lượng về mức tiêu hao tài nguyên mạng khi theo dõi vị trí GPS liên tục.

Hướng nghiên cứu và phát triển tiếp

Các định hướng mở rộng được văn bản đề cập bao gồm:

  • Hoàn thiện và nâng cấp thuật toán điều phối tài xế tự động dựa trên trí tuệ nhân tạo (AI) và tối ưu hóa tuyến đường đa điểm dừng (route optimization algorithms) để rút ngắn hơn nữa thời gian giao hàng.
  • Ứng dụng các giải pháp phân tích dữ liệu lớn và học máy để xây dựng hệ thống gợi ý món ăn (Recommendation System) cá nhân hóa sâu theo hành vi và sở thích của từng khách hàng.
  • Mở rộng hỗ trợ kết nối với nhiều phương thức thanh toán không tiền mặt và hoàn thiện các mô hình nhà hàng mới như bếp ăn đám mây (cloud kitchen) và mô hình tự đến lấy hàng (self-pickup).

Giá trị tham khảo

Báo cáo khóa luận tốt nghiệp này là tài liệu tham khảo có giá trị học thuật và kỹ thuật thực tế cho:

  1. Sinh viên và học viên ngành Kỹ thuật Phần mềm, Công nghệ Thông tin: Có thể tham khảo mô hình tài liệu hóa chuẩn mực cho một đồ án tốt nghiệp phát triển phần mềm hoàn chỉnh, từ bước khảo sát đối chuẩn sản phẩm thương mại đến mô hình hóa yêu cầu hệ thống.
  2. Những người phát triển ứng dụng thương mại điện tử theo nhu cầu (On-Demand Delivery): Cung cấp tài liệu tham khảo thực tế về bộ 51 bảng đặc tả use case chi tiết và hệ thống sơ đồ tuần tự phân tích rõ luồng tương tác giữa bốn bên (Khách hàng - Nhà hàng - Tài xế - Quản trị viên).
  3. Các nhóm dự án sử dụng stack ReactJS, React Native, ExpressJS, MySQL và Redis: Bản thiết kế giao diện và cách thức phân tách đối tượng trên màn hình (Bảng 52 đến Bảng 92) là nguồn mẫu hữu ích để thiết kế kiến trúc phân hệ người dùng di động và cổng quản trị web.

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

1. Hệ thống "Yummy Go" phục vụ những đối tượng người dùng nào và mỗi nhóm sử dụng nền tảng nào?
Hệ thống phục vụ bốn nhóm tác nhân: Khách hàng (Customer), Đối tác nhà hàng (Restaurant/Seller), Tài xế giao hàng (Driver/Shipper) và Quản trị viên hệ thống (Admin). Ba nhóm tác nhân đầu tiên tương tác qua các ứng dụng di động chuyên biệt được phát triển bằng React Native (chạy trên iOS và Android), trong khi Quản trị viên sử dụng cổng thông tin quản trị trên nền tảng Web được xây dựng bằng ReactJS.

2. Ngăn xếp công nghệ (tech stack) chính được nhóm tác giả lựa chọn cho đồ án là gì?
Nhóm tác giả sử dụng hệ sinh thái JavaScript/TypeScript bao gồm: Front-End di động xây dựng bằng React Native và TSX; Front-End quản trị xây dựng bằng ReactJS; Back-End máy chủ sử dụng Node.js kết hợp framework ExpressJS; Cơ sở dữ liệu quan hệ là MySQL (sử dụng engine InnoDB); Bộ nhớ đệm và quản lý phiên sử dụng Redis; Dịch vụ bản đồ tích hợp Mapbox API; và Thư viện hiển thị biểu đồ báo cáo là Recharts hoặc Chart.js.

3. Nhóm tác giả đã tiến hành khảo sát hiện trạng dựa trên những ứng dụng nào và theo các tiêu chí đánh giá nào?
Trong Chương 3, nhóm tác giả đã tiến hành khảo sát và đánh giá đối chuẩn hai nền tảng giao đồ ăn phổ biến là GrabFood và ShopeeFood. Các tiêu chí đánh giá bao gồm: (1) Chất lượng nội dung (Content Quality), (2) Thiết kế & Trải nghiệm người dùng (Design & UX), và (3) Tính năng hệ thống (Functionality) phục vụ cho cả người mua, người bán và tài xế.

4. Những sơ đồ tuần tự (Sequence Diagram) cốt lõi nào được đặc tả trong thiết kế hệ thống?
Tại Chương 4, nhóm tác giả xây dựng 5 sơ đồ tuần tự chính phục vụ các luồng nghiệp vụ quan trọng nhất: Đăng ký tài khoản (Signup), Đăng nhập/Đăng xuất (Login/Logout), Đặt hàng (Order), Hộp thoại tự động hỗ trợ (Chatbot) và Quy trình thuật toán tìm kiếm tài xế lân cận (Find driver).

5. Thời gian thực hiện đồ án diễn ra trong bao lâu và ai là người chịu trách nhiệm hướng dẫn, phản biện?
Đồ án được thực hiện trong thời gian 12 tuần, bắt đầu từ ngày 24/02/2025 đến ngày 18/05/2025 tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. Giảng viên hướng dẫn là ThS. Nguyễn Trần Thi Văn và cán bộ phản biện là TS. Lê Văn Vinh.


Kết luận

Đồ án tốt nghiệp "Building a multi-platform system for food ordering and delivery" của nhóm tác giả Đỗ Huỳnh Bảo Đăng, Nguyễn Ngọc Mạnh và Nguyễn Thanh Tịnh đã giải quyết toàn diện bài toán xây dựng nền tảng giao đồ ăn chuyên biệt kết nối bốn tác nhân khách hàng, nhà hàng, tài xế và quản trị viên. Bằng việc kết hợp ngăn xếp công nghệ đồng bộ ReactJS, React Native, Node.js, MySQL và Redis, công trình đã hoàn thiện một hệ sinh thái phần mềm đa nền tảng với 51 use case nghiệp vụ và hệ thống giao diện trực quan. Mặc dù còn hạn chế về thời gian thực hiện trong 12 tuần và chưa triển khai thử nghiệm tải quy mô lớn, đồ án đã chứng minh tính khả thi về mặt kỹ thuật, cung cấp tài liệu thiết kế hệ thống chi tiết và tạo tiền đề vững chắc cho việc tích hợp các mô hình trí tuệ nhân tạo tối ưu hóa giao vận trong tương lai.