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

Sự chuyển dịch của mô hình thương mại bán lẻ sang môi trường trực tuyến đã diễn ra nhanh chóng tại Việt Nam dưới tác động của hạ tầng viễn thông và thiết bị di động thông minh. Đặc biệt, giai đoạn phòng chống đại dịch Covid-19 đã làm gia tăng đáng kể nhu cầu giao dịch thực phẩm và hàng tiêu dùng thiết yếu từ xa nhằm hạn chế tiếp xúc trực tiếp. Người tiêu dùng ngày càng ưu tiên sử dụng các ứng dụng di động để lựa chọn sản phẩm tươi sống phục vụ bữa ăn hằng ngày, đồng thời đòi hỏi tính tiện lợi trong thanh toán, theo dõi hành trình đơn hàng và tương tác tư vấn trực tiếp với người bán.

Đề tài khóa luận tốt nghiệp "Xây dựng ứng dụng di động bán thực phẩm tươi sống" do hai sinh viên Võ Ngọc Nghĩa (MSSV: 18110164) và Nguyễn Phan Nhật Tú (MSSV: 18110232), thuộc ngành Công nghệ Thông tin, Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh thực hiện dưới sự hướng dẫn của TS. Lê Văn Vinh (thời gian thực hiện từ ngày 07/03/2022 đến ngày 18/06/2022). Nhiệm vụ khóa luận được xác lập theo 4 nội dung cụ thể trong văn bản:

  1. Xác định tên đề tài: Xây dựng ứng dụng di động bán thực phẩm tươi sống.
  2. Thu thập các số liệu, tài liệu ban đầu: Thực hiện khảo sát hiện trạng thông qua các website, ứng dụng điện thoại đang vận hành trên thị trường và tham khảo các quy trình nghiệp vụ thương mại điện tử thực tế.
  3. Nội dung thực hiện đề tài:
    • Xây dựng ứng dụng di động cho phép khách hàng tìm kiếm, chọn lựa và đặt mua các mặt hàng thực phẩm tươi sống.
    • Xây dựng hệ thống trang web và ứng dụng hỗ trợ công tác quản trị, quản lý người dùng, quản lý sản phẩm và điều hành các hoạt động kinh doanh trực tuyến.
  4. Xây dựng sản phẩm hoàn chỉnh: Hệ sinh thái phần mềm gồm ứng dụng di động dành cho khách hàng/nhân viên và trang web quản trị phục vụ quản lý và bán thực phẩm tươi sống.

Về đối tượng nghiên cứu, đề tài tập trung vào hai nhóm đối tượng chính:

  • Đối tượng kỹ thuật và công nghệ: Khảo cứu, tích hợp các công nghệ xây dựng hệ thống thương mại điện tử đa nền tảng gồm NodeJS, ReactJS, ExpressJS, MongoDB (MERN stack), kết hợp framework di động Flutter, cơ chế truyền thông thời gian thực Socket.IO, dịch vụ lưu trữ Firebase Storage, hạ tầng điện toán đám mây Vultr, cổng thanh toán VNPay, PayPal và dịch vụ xác thực viễn thông Twilio.
  • Đối tượng nghiệp vụ: Nghiên cứu các quy trình quản lý, lưu kho, vận hành đơn hàng, tích điểm thưởng và chăm sóc khách hàng trong mô hình kinh doanh thực phẩm tươi sống trực tuyến.

Về phạm vi nghiên cứu:

  • Không gian ứng dụng: Hệ thống hướng đến các chủ thể kinh doanh thực phẩm trực tuyến và tệp khách hàng có nhu cầu mua sắm thực phẩm tươi sống thuận tiện, hỗ trợ đặt hàng, nhận tư vấn trực tiếp và áp dụng các chương trình ưu đãi.
  • Nền tảng triển khai: Ứng dụng di động hoạt động trên các hệ điều hành phổ biến và hệ thống quản trị trên nền tảng web.
  • Thời gian nghiên cứu: Giai đoạn thu thập dữ liệu, phân tích thiết kế và kiểm thử diễn ra từ tháng 3 năm 2022 đến tháng 6 năm 2022.

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

Khóa luận thiết lập nền tảng lý thuyết kỹ thuật dựa trên các công nghệ lập trình web, lập trình di động và hệ quản trị cơ sở dữ liệu hiện đại, cụ thể:

  • Ngăn xếp công nghệ MERN (MongoDB - ExpressJS - ReactJS - NodeJS):
    • MongoDB: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented), lưu trữ dữ liệu dưới dạng BSON (tương tự JSON) theo cơ chế schema động. Cơ sở dữ liệu này không đòi hỏi các câu lệnh join phức tạp, tận dụng bộ nhớ trong (RAM) để tăng tốc độ truy xuất và tối ưu hóa khả năng mở rộng dữ liệu.
    • ExpressJS: Framework mã nguồn mở trên nền tảng NodeJS, cung cấp hệ thống định tuyến (routing), xử lý middleware linh hoạt giữa request và response, phục vụ xây dựng các giao diện lập trình ứng dụng (RESTful API).
    • ReactJS: Thư viện JavaScript mã nguồn mở của Facebook dành cho việc xây dựng giao diện người dùng web động dựa trên cơ chế chia nhỏ thành phần (component-based) có khả năng tái sử dụng mã nguồn và duy trì hiệu năng cao.
    • NodeJS: Môi trường thực thi JavaScript phía máy chủ xây dựng trên nền tảng V8 JavaScript Engine của Google, vận hành theo kiến trúc đơn luồng (single-thread), hướng sự kiện với cơ chế vào/ra bất đồng bộ (non-blocking I/O) giúp xử lý đồng thời lượng lớn kết nối với mức tiêu thụ tài nguyên bộ nhớ thấp.
  • Framework ứng dụng di động Flutter: Bộ công cụ phát triển phần mềm (SDK) mã nguồn mở của Google sử dụng ngôn ngữ lập trình Dart theo hướng đối tượng (OOP). Flutter sử dụng reactive framework và cơ chế dựng hình 2D độc lập (2D rendering engine) thông qua hệ thống widget phân cấp, hỗ trợ biên dịch mã nguồn đa nền tảng (Android và iOS).
  • Công nghệ truyền thông thời gian thực Socket.IO: Giải pháp kết nối hai chiều liên tục giữa máy khách và máy chủ thông qua giao thức WebSocket, tích hợp cơ chế phòng chat (rooms) và bảo mật dữ liệu nhị phân phục vụ tính năng trao đổi tin nhắn tức thời.
  • Hạ tầng đám mây và dịch vụ bổ trợ:
    • Firebase: Nền tảng của Google cung cấp các dịch vụ Firebase Hosting (lưu trữ và phân phối ứng dụng web), Firebase Storage (lưu trữ tệp đa phương tiện do người dùng tải lên) và Cloud Messaging (FCM gửi thông báo đẩy đến thiết bị).
    • Vultr: Nhà cung cấp máy chủ ảo cá nhân (VPS) trên nền tảng phần cứng 100% ổ cứng SSD, cho phép cấu hình và triển khai mã nguồn backend.
    • Dịch vụ xác thực và thanh toán: Dịch vụ viễn thông Twilio cung cấp mã OTP qua tin nhắn/email phục vụ khôi phục mật khẩu; các cổng thanh toán trực tuyến bên thứ ba gồm VNPay và PayPal bên cạnh hình thức trả tiền mặt khi nhận hàng (COD).

Phương pháp nghiên cứu thực tế được tác giả áp dụng gồm:

  • Phương pháp tự học và nghiên cứu tài liệu kỹ thuật: Nghiên cứu tài liệu chính thức, khóa học trực tuyến về các framework mã nguồn mở Dart, Flutter, ReactJS, ExpressJS và hệ quản trị NoSQL MongoDB.
  • Phương pháp khảo sát hiện trạng thực tế: Phân tích, so sánh ưu điểm và nhược điểm của 3 ứng dụng thương mại điện tử thực phẩm đang vận hành tại Việt Nam: App Sài Gòn Co.op, App Bách Hóa Xanh và App FoodHub nhằm xác định bài toán nghiệp vụ cần giải quyết.
  • Phương pháp mô hình hóa hướng đối tượng: Ứng dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng lược đồ use case, lược đồ tuần tự (sequence diagrams), lược đồ lớp (class diagram) và cấu trúc thực thể cơ sở dữ liệu.
  • Phương pháp thực nghiệm và kiểm thử chức năng: Cài đặt sản phẩm, cấu hình máy chủ VPS, triển khai ứng dụng web lên Firebase Hosting và thực hiện kiểm thử hộp đen trên các ca sử dụng cụ thể.

Nguồn dữ liệu của nghiên cứu xuất phát từ kết quả khảo sát trải nghiệm người dùng thực tế trên các ứng dụng mua bán thực phẩm, các tài liệu kỹ thuật chuyên ngành công nghệ thông tin và bộ dữ liệu sản phẩm, đơn hàng, người dùng được tạo lập thử nghiệm trong cơ sở dữ liệu MongoDB.


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 client-server, tách biệt giữa tầng lưu trữ dữ liệu, tầng cung cấp dịch vụ backend và các tầng giao diện người dùng trên web và thiết bị di động.

[Flutter Mobile App / ReactJS Web App]
[Backend NodeJS & ExpressJS Server trên Vultr VPS]
[Cơ sở dữ liệu MongoDB & Lưu trữ tệp Firebase Storage]

Kiến trúc phân tầng và ngăn xếp công nghệ

Hệ thống phân chia rõ ràng các module công nghệ đảm nhiệm từng chức năng:

  • Tầng cơ sở dữ liệu: MongoDB lưu trữ các collection tương ứng với các đối tượng tài khoản, sản phẩm, giỏ hàng, đơn vị kho, đơn đặt hàng, tin nhắn và khuyến mãi. Tệp hình ảnh sản phẩm và avatar được lưu trữ trên Firebase Storage.
  • Tầng máy chủ (Backend): Xây dựng trên NodeJS và ExpressJS, được triển khai trên máy chủ ảo cá nhân Vultr VPS (đặt tại trung tâm dữ liệu Singapore/Nhật Bản để tối ưu độ trễ cho thị trường Việt Nam). Server đóng vai trò cung cấp RESTful API cho ứng dụng khách và điều phối sự kiện giao tiếp thời gian thực qua thư viện Socket.IO.
  • Tầng máy khách (Frontend):
    • Ứng dụng di động: Viết bằng Flutter/Dart, phân chia cấu trúc package rõ ràng (màn hình hiển thị, quản lý trạng thái, dịch vụ API), cung cấp giao diện cho khách hàng và nhân viên.
    • Ứng dụng web: Viết bằng ReactJS, phục vụ công tác quản trị của Admin và hỗ trợ khách hàng mua sắm trên trình duyệt, triển khai thông qua công cụ Firebase Tools và Firebase Hosting.

Cơ cấu phân quyền và mô hình hóa chức năng

Hệ thống định nghĩa 4 nhóm tác nhân (actors): Khách vãng lai (Guest), Khách hàng (User), Nhân viên (Staff) và Quản trị viên (Admin), bao quát 36 use case chức năng:

Nhóm tác nhân Danh mục use case và chức năng chính
Guest Đăng ký tài khoản (UC_FF_001), Đăng nhập (UC_FF_002), Quên mật khẩu qua mã OTP (UC_FF_004).
User (Khách hàng) Đăng xuất (UC_FF_003), Đổi mật khẩu (UC_FF_005), Xem thông tin cá nhân (UC_FF_006/017), Xem thực đơn/danh mục sản phẩm (UC_FF_007), Tìm kiếm theo tên/loại (UC_FF_009), Xem chi tiết sản phẩm (UC_FF_011), Quản lý giỏ hàng (thêm, tăng giảm số lượng, xóa) (UC_FF_010/012/013/014), Thanh toán đơn hàng qua VNPay (UC_FF_015), PayPal (UC_FF_016) hoặc COD (UC_FF_029), Quản lý và hủy đơn hàng (UC_FF_018/019/020), Đánh giá đơn hàng/sản phẩm đã nhận (UC_FF_021), Nhắn tin tư vấn với Admin qua Socket.IO (UC_FF_008), Áp dụng mã khuyến mãi (UC_FF_034), Trả lời câu hỏi mini game kiếm xu thưởng (UC_FF_035).
Staff (Nhân viên) Quản lý đơn hàng khách đặt, nhận thông báo khi có đơn hàng phát sinh, quản lý thông tin cá nhân.
Admin (Quản trị viên) Chuyển đổi trạng thái đơn hàng (UC_FF_022: Chờ xác nhận → Đã xác nhận → Đang giao → Đã giao / Đã hủy), Thống kê sản phẩm nổi bật và khách hàng mua nhiều nhất (UC_FF_023/024), Quản lý tài khoản và khóa người dùng vi phạm (UC_FF_025/026), Xem tin nhắn và trò chuyện tư vấn trực tiếp với khách hàng (UC_FF_027/028), Tạo và điều chỉnh thông tin sản phẩm (UC_FF_030/031), Quản lý bộ câu hỏi mini game (UC_FF_032), Quản lý và phát hành voucher khuyến mãi (UC_FF_033), Quản lý phiếu xuất/nhập kho (UC_FF_036).

Kiểm thử hệ thống

Nhóm tác giả thực hiện kiểm thử chức năng (functional testing) theo phương pháp hộp đen trên cả hai nền tảng web và thiết bị di động, lập thành các bảng kịch bản kiểm thử chi tiết:

  • Kiểm thử chức năng xem thông tin cá nhân (Bảng 4.5).
  • Kiểm thử chức năng thay đổi ảnh đại diện bằng cách chụp ảnh từ thiết bị (Bảng 4.6).
  • Kiểm thử chức năng đổi mật khẩu với các điều kiện hợp lệ và không hợp lệ (Bảng 4.7).
  • Kiểm thử chức năng xem danh sách đơn hàng theo từng trạng thái cụ thể (Bảng 4.8).
  • Kiểm thử chức năng chuyển đổi trạng thái đơn hàng của quản trị viên (Bảng 4.9).

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

Chương 1. Tổng quan về MERN

Chương này trình bày cơ sở lý thuyết chi tiết về các công nghệ, framework cấu thành giải pháp phần mềm:

  • Phân tích kiến trúc của ngăn xếp MERN bao gồm MongoDB, ExpressJS, ReactJS và NodeJS. Khóa luận làm rõ vai trò của MongoDB với tư cách cơ sở dữ liệu NoSQL tối ưu truy xuất, không đòi hỏi cấu trúc bảng cứng nhắc; ExpressJS đóng vai trò tầng trung gian xử lý logic API gọn nhẹ; ReactJS xây dựng giao diện ứng dụng web phía client bằng kiến trúc component linh hoạt; NodeJS xử lý đa tác vụ với cơ chế bất đồng bộ non-blocking I/O.
  • Giới thiệu framework Flutter của Google và ngôn ngữ lập trình Dart, phân tích thế mạnh về khả năng biên dịch ứng dụng native cho Android/iOS từ một cơ sở mã nguồn duy nhất và hệ thống widget phong phú.
  • Giới thiệu tổng quan hệ sinh thái dịch vụ đám mây Firebase (Realtime Database, Authentication, Cloud Functions, Cloud Storage, Hosting, Cloud Messaging) và hướng dẫn chi tiết quy trình 5 bước triển khai ứng dụng web lên Firebase Hosting thông qua dòng lệnh firebase deploy.
  • Giới thiệu dịch vụ máy chủ VPS Vultr, nêu rõ các đặc tính về hạ tầng 100% ổ cứng SSD, mạng lưới 16 trung tâm dữ liệu toàn cầu, cấu trúc chi phí thuê máy chủ theo giờ và các bước kết nối máy chủ qua giao thức SSH để thiết lập môi trường triển khai mã nguồn backend.
  • Phân tích giao thức Socket.IO trong việc thiết lập kênh truyền thông thời gian thực client-server phục vụ tính năng nhắn tin tư vấn trực tiếp giữa người mua và bộ phận hỗ trợ.

Chương 2. Khảo sát hiện trạng và xác định yêu cầu

Chương này tập trung vào công tác nghiên cứu tiền khả thi, khảo sát thực tế và xác lập các yêu cầu phần mềm:

  • Khảo sát 3 ứng dụng tiêu biểu:
    • App Sài Gòn Co.op: Đánh giá cao việc phân bố cục hợp lý, tính năng quét mã QR giới thiệu/giảm giá, quản lý số lượng giỏ hàng, nhận diện sinh trắc học vân tay/khuôn mặt. Tuy nhiên, ứng dụng tồn tại hạn chế như giao diện chưa bắt mắt, bắt buộc đơn hàng tối thiểu trên 200.000 VNĐ mới cho đặt hàng, thiếu cổng thanh toán trực tuyến, chưa có tính năng đánh giá sản phẩm và danh sách lựa chọn siêu thị còn hạn chế.
    • App Bách Hóa Xanh: Ưu điểm nổi bật ở bố cục khoa học, gợi ý sản phẩm giảm giá, hiển thị sản phẩm khi giỏ rỗng, chi tiết tiền ship, lưu lịch sử địa chỉ và cho phép chọn mốc thời gian nhận hàng. Nhược điểm là chưa có mục đánh giá chất lượng sản phẩm, quy trình thanh toán chưa tối ưu (chỉ cho chọn hình thức thanh toán sau khi đã tạo đơn) và cho phép đặt hàng khi chưa đăng nhập dẫn đến nguy cơ bị hủy đơn ("boom hàng").
    • App FoodHub: Ưu điểm ở quy trình đăng ký đơn giản bằng số điện thoại, giao diện hiện đại, tính năng mạng xã hội đăng bài chia sẻ, tích điểm đổi thưởng kích cầu mua sắm và hỗ trợ song ngữ. Khuyết điểm được chỉ ra là thiếu danh mục thực đơn chuyên biệt cho người có chế độ ăn kiêng hoặc bệnh lý.
  • Xác định yêu cầu hệ thống:
    • Yêu cầu chức năng phân định rõ theo từng nhóm người dùng (Guest, User, Staff, Admin) nhằm khắc phục các hạn chế từ các app đã khảo sát (bổ sung đánh giá sản phẩm, tích hợp đa dạng cổng thanh toán, hỗ trợ tư vấn trực tuyến).
    • Yêu cầu phi chức năng: Đảm bảo giao diện người dùng trực quan, có hiệu ứng chuyển trang mượt mà, hệ thống backend và frontend được triển khai ổn định trên Vultr và Firebase.
  • Mô hình hóa yêu cầu: Xây dựng 2 lược đồ use case tổng thể (Guest - User và Staff - Admin) kèm theo bảng danh mục chi tiết 36 use case (từ UC_FF_001 đến UC_FF_036) và các bảng đặc tả use case tiêu chuẩn cho các luồng hoạt động chính (Đăng ký, Đăng nhập, Đăng xuất, Quên mật khẩu, Đổi mật khẩu, Quản lý giỏ hàng, Xem sản phẩm, Thêm/sửa/xóa sản phẩm, Thanh toán qua VNPay và PayPal).

Các nội dung kỹ thuật tiếp theo theo danh mục đồ án

Dựa trên cấu trúc mục lục và danh mục tài liệu của khóa luận, các nội dung kỹ thuật tiếp theo được nhóm tác giả triển khai bao gồm:

  • Thiết kế phần mềm: Trình bày mô hình thiết kế tổng quan phần mềm, lược đồ lớp (class diagram), hệ thống lược đồ tuần tự (sequence diagrams) mô tả chi tiết quy trình xử lý dữ liệu của các chức năng (đăng nhập, đăng ký, thêm/sửa/xóa giỏ hàng, thanh toán điện tử VNPay/PayPal, nhắn tin trực tuyến qua Socket.IO, cập nhật trạng thái đơn hàng, gửi thông báo đẩy đến điện thoại, trả lời câu hỏi tích lũy xu và phát hành voucher khuyến mãi); thiết kế lược đồ cơ sở dữ liệu MongoDB và bộ thiết kế giao diện chi tiết gồm 79 màn hình đồ họa (từ SC_001 đến SC_058) trên cả ứng dụng di động và giao diện web quản trị.
  • Cài đặt và kiểm thử: Mô tả sơ đồ tổ chức cấu trúc thư mục dự án ở tầng Backend (NodeJS/Express), Frontend di động (Flutter) và Frontend quản trị (ReactJS); lập bảng thống kê các thư viện phụ thuộc và tiến hành các ca kiểm thử chức năng theo kịch bản thực tế.
  • Kết quả đạt được, nhược điểm và hướng phát triển: Đánh giá tổng kết các mục tiêu đã hoàn thành, chỉ ra những hạn chế kỹ thuật và định hình kế hoạch nâng cấp sản phẩm.

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

Kết quả chính của đề tài

Hệ thống phần mềm đã được hoàn thiện và đóng gói thành công với đầy đủ các thành phần kỹ thuật:

  • Ứng dụng di động (Flutter): Hoàn thiện hệ thống giao diện và luồng xử lý trên nền tảng di động bao gồm màn hình xác thực tài khoản, màn hình trang chủ danh mục món ăn tươi sống, màn hình chi tiết sản phẩm, màn hình quản lý giỏ hàng, module thanh toán tích hợp VNPay và PayPal, chức năng quản lý địa chỉ nhận hàng, theo dõi đơn hàng theo 5 trạng thái vận chuyển, module đánh giá sản phẩm sau mua hàng, giao diện chat trực tiếp với cửa hàng và trò chơi trả lời câu hỏi tích lũy xu thưởng.
  • Ứng dụng web quản trị (ReactJS): Hoàn thiện bảng điều khiển (dashboard) dành cho Admin và Staff phục vụ công tác quản lý tài khoản người dùng, quản trị danh mục và thông tin sản phẩm, quản lý xuất/nhập kho hàng, tạo lập mã voucher giảm giá, quản trị bộ câu hỏi mini game, quản lý đơn hàng và chức năng thống kê doanh số/khách hàng tiêu biểu thông qua biểu đồ trực quan.
  • Hệ thống Backend (NodeJS/ExpressJS/MongoDB): Xây dựng hoàn chỉnh kiến trúc RESTful API phục vụ trao đổi dữ liệu JSON/BSON, tích hợp Socket.IO xử lý nhắn tin tức thời hai chiều, tích hợp dịch vụ lưu trữ hình ảnh Firebase Storage và triển khai thành công mã nguồn máy chủ lên hạ tầng VPS Vultr và ứng dụng web lên Firebase Hosting.

Giải pháp và kiến nghị của tác giả

Nhằm giải quyết những bất cập ghi nhận được từ quá trình khảo sát các ứng dụng bán hàng lớn (Sài Gòn Co.op, Bách Hóa Xanh), nhóm tác giả đã đề xuất và cài đặt các giải pháp kỹ thuật cụ thể:

  • Bổ sung cơ chế đánh giá sản phẩm bằng bình luận và điểm số sau khi đơn hàng hoàn thành để tăng tính minh bạch về chất lượng thực phẩm tươi sống.
  • Khắc phục nguy cơ gian lận và tình trạng "boom hàng" bằng việc yêu cầu bắt buộc đăng ký/đăng nhập tài khoản hợp lệ trước khi đặt mua và thiết lập cổng xác thực người dùng.
  • Tối ưu quy trình thanh toán bằng cách tích hợp cổng thanh toán trực tuyến (VNPay, PayPal) ngay trong luồng tạo đơn hàng, đồng thời vẫn duy trì lựa chọn thanh toán khi nhận hàng (COD).
  • Không áp đặt hạn mức giá trị đơn hàng tối thiểu, tạo điều kiện thuận lợi cho khách hàng có nhu cầu mua sắm thực phẩm với số lượng nhỏ lẻ hằng ngày.
  • Bổ sung cơ chế giữ chân khách hàng thông qua mini game trả lời câu hỏi để tích lũy xu thưởng đổi mã giảm giá và hệ thống tư vấn trực tiếp qua kênh chat thời gian thực.

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

Khóa luận chỉ ra một số hạn chế khách quan và chủ quan trong quá trình thực hiện:

  • Nhóm sinh viên thừa nhận còn hạn chế về chiều sâu kiến thức chuyên môn và thiếu kinh nghiệm khảo sát thực tế chuyên sâu trong lĩnh vực vận hành chuỗi cung ứng thực phẩm tươi sống.
  • Về công nghệ: Việc thiết kế các hiệu ứng hoạt họa (animation) trên Flutter đòi hỏi nhiều tài nguyên và kỹ thuật phức tạp hơn so với CSS truyền thống; dịch vụ máy chủ Vultr phụ thuộc vào hệ thống hỗ trợ kỹ thuật qua hình thức gửi phiếu yêu cầu (ticket) nên tốc độ phản hồi chưa tức thời, đồng thời tài khoản máy chủ bị giới hạn hạn mức sử dụng ban đầu.
  • Về tính năng nghiệp vụ: Ứng dụng chưa xây dựng được phân hệ thực đơn chuyên biệt dành cho các đối tượng khách hàng có nhu cầu dinh dưỡng đặc thù (người bệnh lý hoặc người trong chế độ ăn kiêng nghiêm ngặt) như nhận định đã chỉ ra trong phần khảo sát ứng dụng FoodHub.

Hướng phát triển tiếp theo của đề tài bao gồm việc tối ưu hóa hiệu năng render giao diện ứng dụng di động, nâng cấp thuật toán gợi ý thực phẩm dựa trên hành vi mua sắm, hoàn thiện phân hệ quản lý kho vận chuyên sâu và mở rộng thêm các kênh thanh toán điện tử nội địa khác.


Giá trị tham khảo

Báo cáo khóa luận cung cấp tài liệu tham khảo có giá trị học thuật và thực tiễn cho sinh viên thuộc các ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin:

  • Quy trình phân tích thiết kế phần mềm thương mại điện tử: Là tài liệu tham khảo chi tiết cho sinh viên đang thực hiện đồ án chuyên ngành hoặc đồ án tốt nghiệp về quy trình chuyển đổi từ bước khảo sát hiện trạng thực tế sang việc lập tài liệu đặc tả use case, vẽ lược đồ tuần tự (sequence diagrams) và thiết kế cơ sở dữ liệu phi quan hệ (NoSQL).
  • Mô hình kết hợp công nghệ đa nền tảng: Minh họa cụ thể cách thức kết nối giữa backend viết bằng NodeJS/Express với hai nền tảng frontend độc lập gồm web ReactJS và ứng dụng di động Flutter.
  • Tích hợp các dịch vụ bên thứ ba: Cung cấp các bước hiện thực hóa tính năng thực tế như giao tiếp thời gian thực bằng Socket.IO, gửi tin nhắn xác thực qua Twilio, thanh toán điện tử qua cổng VNPay/PayPal và phương pháp đóng gói, triển khai ứng dụng lên hạ tầng đám mây Firebase Hosting và máy chủ ảo Vultr VPS.

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

1. Khóa luận sử dụng những công nghệ và nền tảng nào để xây dựng trọn vẹn hệ thống bán thực phẩm tươi sống?
Hệ thống sử dụng ngăn xếp MERN (MongoDB lưu trữ dữ liệu BSON, ExpressJS làm web framework, ReactJS xây dựng giao diện web quản trị, NodeJS làm môi trường thực thi server), kết hợp framework Flutter (ngôn ngữ Dart) cho ứng dụng di động đa nền tảng. Hệ thống sử dụng Socket.IO cho tính năng chat thời gian thực, Firebase Storage lưu ảnh, Twilio xác thực OTP, dịch vụ Vultr VPS để triển khai backend, Firebase Hosting lưu trữ ứng dụng web và hai cổng thanh toán trực tuyến là VNPay và PayPal.

2. Điểm khác biệt và cải tiến chính của ứng dụng này so với ứng dụng Sài Gòn Co.op và Bách Hóa Xanh được khảo sát là gì?
Khóa luận đã khắc phục các hạn chế thực tế được khảo sát: loại bỏ điều kiện bắt buộc đơn hàng phải trên 200.000 VNĐ mới cho phép đặt (nhược điểm của app Sài Gòn Co.op), bổ sung hệ thống đánh giá/bình luận sản phẩm sau mua, tích hợp thanh toán trực tuyến ngay khi tạo đơn và bắt buộc đăng nhập tài khoản nhằm hạn chế tình trạng đặt hàng ảo, hủy đơn không kiểm soát (nhược điểm của app Bách Hóa Xanh).

3. Khách hàng sử dụng ứng dụng di động có những phương thức thanh toán nào để chi trả cho đơn hàng?
Khách hàng có thể lựa chọn 3 hình thức thanh toán được lập trình sẵn trong hệ thống: thanh toán qua ví điện tử/cổng thanh toán nội địa VNPay (UC_FF_015), thanh toán quốc tế qua cổng PayPal (UC_FF_016), hoặc thanh toán bằng tiền mặt khi nhận hàng - COD (UC_FF_029).

4. Vai trò và quyền hạn của Quản trị viên (Admin) trong hệ thống được thiết kế như thế nào?
Admin được cung cấp giao diện quản trị riêng trên web với các quyền hạn: quản lý danh mục sản phẩm (thêm, cập nhật, xóa), quản lý tài khoản nhân viên và khách hàng (bao gồm quyền khóa tài khoản), quản lý chứng từ xuất/nhập kho hàng, thiết lập và phát hành mã voucher khuyến mãi, quản lý bộ câu hỏi mini game, theo dõi biểu đồ thống kê sản phẩm bán chạy/khách hàng mua nhiều nhất, chuyển đổi trạng thái đơn hàng và nhắn tin tư vấn trực tiếp với khách hàng.

5. Cơ chế xác thực tài khoản khi người dùng quên mật khẩu được hệ thống vận hành ra sao?
Theo đặc tả use case UC_FF_004, khi người dùng yêu cầu khôi phục mật khẩu, hệ thống sẽ tiếp nhận thông tin email, sau đó kích hoạt dịch vụ gửi mã xác thực OTP về hòm thư điện tử hoặc số điện thoại (thông qua dịch vụ hỗ trợ như Twilio). Sau khi nhập chính xác mã xác thực, người dùng được chuyển đến màn hình đặt lại mật khẩu mới để cập nhật vào cơ sở dữ liệu.


Kết luận

Khóa luận tốt nghiệp "Xây dựng ứng dụng di động bán thực phẩm tươi sống" của sinh viên Võ Ngọc Nghĩa và Nguyễn Phan Nhật Tú đã giải quyết trọn vẹn bài toán xây dựng hệ sinh thái thương mại điện tử đa nền tảng phục vụ phân phối thực phẩm trực tuyến. Đề tài kết hợp thành công ngăn xếp công nghệ MERN hiện đại với framework di động Flutter, hiện thực hóa 36 use case chức năng từ đặt hàng, thanh toán trực tuyến qua VNPay/PayPal đến tương tác thời gian thực bằng Socket.IO. Toàn bộ hệ thống được triển khai kiểm thử thực tế trên hạ tầng đám mây Firebase và Vultr VPS, cung cấp tài liệu tham khảo kỹ thuật rõ ràng và có tính ứng dụng cao cho việc phát triển các phần mềm bán hàng đa kênh.