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

Đề tài "Xây dựng website bán đồ ăn Việt" được thực hiện trong bối cảnh cuộc cách mạng công nghệ thông tin bùng nổ, kéo theo sự phát triển mạnh mẽ của các nền tảng thương mại điện tử và xu hướng kinh doanh trực tuyến. Tác giả chỉ ra rằng hình thức kinh doanh online mang lại khả năng tiếp cận khách hàng nhanh chóng, thuận tiện hơn nhiều so với mô hình bán hàng truyền thống. Đặc biệt, kể từ sau đại dịch Covid-19 với các đợt giãn cách xã hội kéo dài, việc mua bán trực tiếp tại cửa hàng bị hạn chế nghiêm ngặt, gây tổn thất lớn cho các doanh nghiệp chỉ duy trì kênh bán hàng ngoại tuyến (offline). Thực trạng này đã thúc đẩy mạnh mẽ nhu cầu mua sắm trực tuyến của người tiêu dùng, đồng thời gia tăng nhu cầu tìm kiếm, khám phá các nét ẩm thực mới mẻ qua mạng.

Trước thực tiễn đó, đồ án hướng tới giải quyết bài toán ứng dụng công nghệ web để quảng bá ẩm thực Việt Nam và phục vụ việc đặt hàng trực tuyến. Văn bản xác định 4 nhiệm vụ nghiên cứu chính:

  1. Tìm hiểu yêu cầu ứng dụng đối với hệ thống bán đồ ăn trực tuyến.
  2. Tìm hiểu các công nghệ, kỹ thuật phát triển web liên quan.
  3. Phân tích và thiết kế hệ thống ứng dụng chi tiết.
  4. Cài đặt và hiện thực hóa ứng dụng website hoàn chỉnh.

Mục tiêu tổng quát của đồ án là xây dựng một website phục vụ cộng đồng, giới thiệu và quảng bá các món ăn Việt Nam, tạo điều kiện cho khách hàng tiếp cận sản phẩm thuận tiện và nâng cao trải nghiệm mua sắm đồ ăn trực tuyến.

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ bán lẻ thực phẩm trực tuyến, phương pháp phân tích thiết kế hướng đối tượng và kỹ thuật xây dựng ứng dụng web thương mại điện tử.
  • Phạm vi không gian: Ứng dụng nền tảng web có thể truy cập và sử dụng ở bất kỳ đâu thông qua mạng Internet.
  • Phạm vi đối tượng sử dụng: Phân định rõ 2 nhóm tác nhân tương tác chính trong hệ thống gồm Khách hàng (người mua sắm) và Quản lý (người quản trị cửa hàng).

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

Đồ án ứng dụng mô hình kiến trúc phân lớp hướng đối tượng trong kỹ thuật phần mềm, kết hợp giữa các ngôn ngữ lập trình web tiêu chuẩn và hệ quản trị dữ liệu hiện đại để xây dựng giải pháp toàn diện:

  • Công nghệ phía máy khách (Frontend):
    • HTML (Hypertext Markup Language): Ngôn ngữ đánh dấu siêu văn bản đảm nhiệm việc định hình cấu trúc và nội dung trang web. Văn bản điểm qua tiến trình phát triển qua các phiên bản HTML 2, HTML 3, HTML 4 và HTML 5.
    • CSS (Cascading Style Sheets): Công cụ định kiểu theo tiêu chuẩn của World Wide Web Consortium (W3C), phục vụ việc thiết kế giao diện, trình bày bố cục và định dạng hiển thị.
    • JavaScript: Ngôn ngữ kịch bản thực thi trên trình duyệt (client-side script) nhằm tăng cường tính động, xử lý tương tác giao diện và kiểm tra dữ liệu biểu mẫu (form validation).
  • Công nghệ phía máy chủ (Backend):
    • Node.js: Môi trường thực thi JavaScript đa nền tảng phía máy chủ, xây dựng trên nền tảng Google V8 JavaScript engine. Điểm cốt lõi được tác giả khai thác là kiến trúc hướng sự kiện (event-driven), cơ chế vào/ra không khóa (non-blocking I/O) và xử lý bất đồng bộ (asynchronous/background processing), cho phép vận hành như một web server độc lập.
    • Express.js Framework: Khung ứng dụng web chạy trên Node.js theo mô hình MVC (Model - View - Controller), cung cấp các thành phần phần mềm trung gian (Middleware) để quản lý truy cập cơ sở dữ liệu, xử lý yêu cầu HTTP và hệ thống bảng định tuyến (routing table).
  • Công nghệ dữ liệu và dịch vụ đám mây:
    • MySQL: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở, đảm nhận việc lưu trữ các dữ liệu có cấu trúc phân lớp ngăn nắp (người dùng, danh mục, sản phẩm, đơn hàng, hóa đơn, voucher).
    • Firebase: Nền tảng dịch vụ đám mây của Google, được tích hợp nhằm khai thác dịch vụ cơ sở dữ liệu thời gian thực (Real-time Database) và Firebase Cloud Messaging để xử lý tính năng trò chuyện trực tiếp (chat) giữa người dùng.
    • Cổng thanh toán: Tích hợp giải pháp thanh toán điện tử quốc tế PayPal song song với phương thức thanh toán tiền mặt khi nhận hàng (COD).

Phương pháp nghiên cứu được triển khai theo quy trình kỹ thuật phần mềm chuẩn mực: khảo sát nghiệp vụ thực tế, mô hình hóa hệ thống bằng ngôn ngữ UML (biểu đồ usecase, biểu đồ lớp thực thể, biểu đồ tuần tự), thiết kế lược đồ cơ sở dữ liệu quan hệ và lập trình cài đặt ứng dụng thực tế.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình kiến trúc web đa tầng (Client-Server / MVC) với sự phân tách rõ ràng giữa giao diện người dùng, logic xử lý nghiệp vụ tại máy chủ và tầng quản trị dữ liệu:

[ Giao diện Khách hàng / Quản trị (HTML/CSS/JS) ]
[ Máy chủ Backend (Node.js & Express.js MVC / Routing / Middleware) ]
  [ CSDL MySQL ]                     [ Firebase Cloud / Realtime DB ]
 (Lưu trữ giao dịch, sản phẩm,...)   (Xử lý trò chuyện thời gian thực)

Quá trình phân tích hệ thống xác định chi tiết 11 nhóm usecase và 26 kịch bản hoạt động:

STT Nhóm chức năng chính Tác nhân thực hiện Mục đích và mô tả nghiệp vụ
1 Tìm kiếm và Đánh giá Khách hàng Tra cứu danh sách sản phẩm theo từ khóa/bộ lọc; xem chi tiết món ăn; chấm điểm số sao và viết bình luận đánh giá.
2 Đặt mua hàng Khách hàng Thêm món ăn vào giỏ hàng, tùy chỉnh số lượng, ghi chú đơn hàng; chọn thanh toán COD hoặc qua PayPal.
3 Lịch sử đặt hàng Khách hàng Tra cứu danh sách đơn hàng đã mua, theo dõi trạng thái vận chuyển và xem chi tiết từng hóa đơn.
4 Quản lý bạn bè Khách hàng Tìm kiếm người dùng khác, gửi kết bạn, xóa bạn bè và tặng phiếu giảm giá (voucher) cho bạn bè.
5 Trò chuyện (Chat) Khách hàng Tìm kiếm người dùng và nhắn tin trò chuyện trực tiếp theo thời gian thực (Real-time).
6 Báo cáo thống kê Quản lý Thống kê doanh thu bán hàng và tổng số lượng đơn hàng theo khoảng thời gian tùy chọn.
7 Quản lý sản phẩm Quản lý Thực hiện thêm mới món ăn, chỉnh sửa thông tin sản phẩm và xóa sản phẩm khỏi hệ thống.
8 Quản lý danh mục Quản lý Thêm mới nhóm danh mục món ăn, sửa tên danh mục và xóa danh mục sản phẩm.
9 Quản lý đơn hàng Quản lý Duyệt danh sách đơn, xem chi tiết, cập nhật trạng thái đơn hàng, đổi trạng thái thanh toán, xuất/in hóa đơn và xóa đơn.
10 Quản lý phiếu giảm giá Quản lý Tạo mới mã voucher giảm giá, cập nhật giá trị/thời hạn khuyến mãi và xóa phiếu giảm giá.
11 Xác thực người dùng Khách hàng / Quản lý Đăng ký tài khoản thành viên mới và đăng nhập phân quyền vào hệ thống.

Tại tầng dữ liệu, tác giả xây dựng lược đồ cơ sở dữ liệu quan hệ MySQL bao gồm các thực thể liên kết chặt chẽ: người dùng, sản phẩm, danh mục, đơn hàng, chi tiết đơn hàng, phiếu giảm giá và bảng liên kết bạn bè. Các luồng xử lý tuần tự (Sequence Diagrams) được đặc tả đầy đủ cho từng bước gửi nhận thông điệp giữa các lớp Boundary, Control và Entity, bao gồm việc bắt các ngoại lệ nhập thiếu thông tin, hết hàng hoặc không tìm thấy bản ghi.

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

Chương 1: Giới thiệu đề tài và công nghệ sử dụng

Chương mở đầu tập trung trình bày lý do lựa chọn đề tài xuất phát từ sự bùng nổ của công nghệ thông tin và nhu cầu chuyển đổi sang kinh doanh online sau bối cảnh đại dịch Covid-19. Tác giả xác định mục tiêu của đề tài là xây dựng một ứng dụng web phục vụ việc giới thiệu, quảng bá và kinh doanh đồ ăn Việt Nam.

Về mặt công nghệ, chương 1 hệ thống hóa cơ sở lý thuyết của từng công cụ trong ngăn xếp phát triển:

  • Phân tích vai trò của HTML (từ phiên bản HTML 2 đến HTML 5) và CSS theo chuẩn W3C trong việc xây dựng khung giao diện;
  • Vai trò của JavaScript trong việc xử lý tương tác động và kiểm tra form;
  • Nền tảng Node.js với bộ máy thực thi V8, kiến trúc hướng sự kiện, mô hình non-blocking I/O và xử lý bất đồng bộ;
  • Khung làm việc Express.js với kiến trúc MVC, cơ chế Middleware và hệ thống định tuyến (Routing);
  • Hệ quản trị cơ sở dữ liệu MySQL với ưu điểm hiệu năng, tính kết nối và bảo mật;
  • Nền tảng dịch vụ đám mây Firebase cùng các tính năng nổi bật như Real-time Database và Cloud Messaging.

Chương 2: Phân tích và thiết kế hệ thống website bán đồ ăn Việt

Chương 2 là phần nội dung trọng tâm về mặt kỹ thuật phần mềm, bắt đầu từ việc xác định mục tiêu, phạm vi hoạt động của website và phân loại 2 tác nhân người dùng là Khách hàng và Quản lý. Tác giả lập bảng mô tả 11 usecase tổng quát (Bảng 2.1) kèm biểu đồ usecase tổng quát và các biểu đồ usecase chi tiết cho từng phân hệ.

Nội dung chương xây dựng chi tiết 26 kịch bản usecase (từ Bảng 2.2 đến Bảng 2.27), bao gồm:

  • Luồng tìm kiếm sản phẩm, xem chi tiết và đánh giá số sao/bình luận;
  • Luồng thêm sản phẩm vào giỏ hàng, cập nhật số lượng, ghi chú, xóa món ăn và thanh toán (chọn COD hoặc xác nhận qua modal PayPal);
  • Luồng xem chi tiết lịch sử đơn hàng;
  • Luồng kết bạn, xóa bạn và chọn voucher để gửi tặng bạn bè;
  • Luồng xem báo cáo thống kê doanh thu theo mốc thời gian;
  • Luồng quản trị CRUD (thêm, sửa, xóa) đối với sản phẩm, danh mục món ăn và phiếu giảm giá;
  • Luồng xử lý đơn hàng của Admin gồm cập nhật trạng thái đơn, đổi trạng thái thanh toán, xuất/in hóa đơn và xóa đơn;
  • Luồng đăng ký tài khoản mới với các kiểm tra hợp lệ dữ liệu.

Chương này cũng hoàn thiện biểu đồ lớp thực thể (Entity Class Diagram), hệ thống các biểu đồ tuần tự cho 14+ quy trình nghiệp vụ và lược đồ cơ sở dữ liệu quan hệ hoàn chỉnh trên MySQL.

Chương 3: Cài đặt ứng dụng website bán đồ ăn Việt

Chương 3 trình bày kết quả hiện thực hóa phần mềm trên môi trường thực tế, thể hiện qua 28 giao diện người dùng được chụp từ hệ thống đang chạy:

  • Giao diện người dùng: Trang chủ hiển thị món ăn, trang kết quả tìm kiếm theo bộ lọc, trang chi tiết món ăn kèm khu vực bình luận/đánh giá, trang giỏ hàng với chức năng điều chỉnh số lượng, trang thanh toán lựa chọn hình thức nhận hàng hoặc thanh toán online qua PayPal, trang tra cứu lịch sử đơn hàng và theo dõi tiến trình đơn.
  • Giao diện tương tác xã hội: Trang quản lý danh sách bạn bè, hộp thoại tìm kiếm kết bạn, giao diện gửi tặng voucher cho bạn bè, module trò chuyện (chat) thời gian thực và tìm người trò chuyện.
  • Giao diện quản trị (Admin): Bảng điều khiển thống kê doanh thu và đơn hàng, bảng danh sách và form thêm/sửa/xóa sản phẩm, giao diện quản lý danh mục món ăn kèm cảnh báo xác nhận xóa, trang quản lý hóa đơn (cho phép đổi trạng thái xử lý đơn, cập nhật trạng thái thanh toán, xuất/in hóa đơn ra bản in), form quản lý phiếu giảm giá, cùng module xác thực đăng ký và đăng nhập tài khoản.

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

Đồ án đã hoàn thành toàn bộ 4 nhiệm vụ nghiên cứu đặt ra ban đầu, xây dựng thành công một website thương mại điện tử hoàn chỉnh phục vụ kinh doanh đồ ăn Việt Nam. Các kết quả cụ thể bao gồm:

  • Về mặt kỹ thuật và kiến trúc: Xây dựng hệ thống hoàn chỉnh dựa trên ngăn xếp Node.js, Express.js (mô hình MVC), MySQL và Firebase. Đồ án thiết lập tài liệu kỹ thuật phần mềm đầy đủ từ biểu đồ usecase, 26 kịch bản xử lý chi tiết (bao gồm kịch bản chính và luồng ngoại lệ), biểu đồ lớp thực thể đến hệ thống biểu đồ tuần tự và lược đồ CSDL quan hệ.
  • Về mặt chức năng người dùng (Khách hàng): Cung cấp giải pháp mua sắm trực tuyến khép kín từ tìm kiếm, xem chi tiết món ăn, đánh giá, quản lý giỏ hàng đến lựa chọn thanh toán bằng tiền mặt (COD) hoặc trực tuyến qua cổng PayPal; hỗ trợ tra cứu lịch sử và theo dõi trạng thái giao hàng.
  • Về mặt tương tác xã hội: Điểm mới của hệ thống so với các website thương mại điện tử cơ bản là việc tích hợp tính năng kết bạn, nhắn tin trò chuyện trực tiếp (chat realtime qua Firebase) và cho phép người dùng chia sẻ, tặng phiếu giảm giá (voucher) cho bạn bè trong mạng lưới.
  • Về mặt quản trị kinh doanh (Admin): Cung cấp công cụ quản trị đa chức năng giúp chủ cửa hàng quản lý toàn diện danh mục, sản phẩm, phiếu giảm giá, theo dõi và in hóa đơn đơn hàng, cũng như xuất báo cáo thống kê doanh thu theo thời gian.

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

  • Hạn chế: Tác giả tự nhận định trong lời cảm ơn rằng do thời gian thực hiện và kinh nghiệm thực tế còn hạn chế, đồ án khó tránh khỏi những thiếu sót nhất định. Về phạm vi kỹ thuật trong văn bản, hệ thống được thiết kế chủ yếu cho mô hình một cửa hàng đơn lẻ; đồ án chưa trình bày các số liệu đo lường về kiểm thử tải (load testing), tối ưu hóa hiệu năng máy chủ khi lượng người dùng đồng thời tăng cao, cũng như chưa có các kịch bản kiểm thử tự động chuyên sâu.
  • Hướng nghiên cứu và phát triển tiếp: Dựa trên phạm vi và kiến trúc đã xây dựng, các hướng mở rộng tiềm năng gồm có việc nâng cấp hệ thống sang mô hình sàn đa cửa hàng (Multi-vendor), phát triển ứng dụng di động đồng bộ dữ liệu (Mobile App), tích hợp thêm nhiều cổng thanh toán nội địa và ứng dụng thuật toán gợi ý món ăn thông minh dựa trên lịch sử mua sắm của khách hàng.

Giá trị tham khảo

Đồ án là tài liệu tham khảo có giá trị chuyên môn cao cho:

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Nguồn tham khảo hữu ích cho việc triển khai đồ án tốt nghiệp, bài tập lớn chuyên ngành về phát triển ứng dụng web thương mại điện tử sử dụng JavaScript toàn diện (Full-stack JavaScript với Node.js, Express.js).
  • Người học phân tích thiết kế hệ thống: Cung cấp mẫu tài liệu chuẩn mực về quy trình mô hình hóa UML, đặc biệt là cách thức viết kịch bản usecase chi tiết có phân nhánh ngoại lệ và thiết kế biểu đồ tuần tự cho các luồng nghiệp vụ phức tạp (thanh toán điện tử, tặng quà, chat realtime).
  • Lập trình viên phát triển web: Cung cấp phương án thực tế trong việc kết hợp cơ sở dữ liệu quan hệ MySQL cho nghiệp vụ bán hàng với cơ sở dữ liệu đám mây Firebase Real-time Database cho tính năng giao tiếp thời gian thực.

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

1. Khách hàng trên website có thể lựa chọn những phương thức thanh toán nào khi đặt mua đồ ăn? Khách hàng có thể lựa chọn 2 phương thức thanh toán được tích hợp sẵn: thanh toán bằng tiền mặt khi nhận hàng (COD) hoặc thanh toán trực tuyến qua cổng thanh toán quốc tế PayPal thông qua giao diện modal xác nhận trên website.

2. Tính năng Quản lý bạn bè trong hệ thống bao gồm những nghiệp vụ cụ thể nào? Tính năng Quản lý bạn bè cho phép khách hàng tra cứu tìm kiếm người dùng khác trong hệ thống theo tên, gửi yêu cầu kết bạn, xem chi tiết thông tin bạn bè, thực hiện thao tác xóa bạn bè và đặc biệt là chức năng lựa chọn các phiếu giảm giá (voucher) có sẵn để gửi tặng cho bạn bè.

3. Chức năng trò chuyện (chat) trực tiếp trên website được xây dựng bằng công nghệ nào? Chức năng trò chuyện trực tiếp được xây dựng bằng cách tích hợp nền tảng dịch vụ đám mây Firebase của Google, cụ thể là dịch vụ cơ sở dữ liệu thời gian thực (Real-time Database) và Firebase Cloud Messaging, giúp truyền nhận tin nhắn tức thì giữa những người dùng mà không làm tăng tải xử lý cho máy chủ chính.

4. Phân hệ Quản trị (Admin) cung cấp những chức năng gì để kiểm soát và xử lý đơn hàng? Phân hệ Quản lý đơn hàng của Admin cho phép: xem danh sách và chi tiết từng hóa đơn, cập nhật thay đổi trạng thái tiến trình đơn hàng (đang chuẩn bị, đang giao, đã hoàn thành...), thay đổi trạng thái thanh toán của đơn, xuất/in hóa đơn (tải xuống bản in hóa đơn) và thực hiện thao tác xóa đơn hàng khi cần thiết.

5. Hệ thống sử dụng cơ sở dữ liệu nào để lưu trữ thông tin sản phẩm và giao dịch? Hệ thống sử dụng hệ quản trị cơ sở dữ liệu quan hệ MySQL để tổ chức và lưu trữ toàn bộ các bảng dữ liệu có cấu trúc bao gồm thông tin tài khoản người dùng, sản phẩm món ăn, danh mục, đơn đặt hàng, chi tiết hóa đơn và các phiếu giảm giá khuyến mãi.

Kết luận

Đồ án tốt nghiệp "Xây dựng website bán đồ ăn Việt" của sinh viên Nguyễn Mạnh Cường (ngành Công nghệ thông tin, Học viện Công nghệ Bưu chính Viễn thông) đã giải quyết trọn vẹn bài toán xây dựng nền tảng thương mại điện tử chuyên biệt cho ẩm thực Việt Nam. Đề tài thể hiện phương pháp tiếp cận kỹ thuật phần mềm bài bản từ khâu phân tích yêu cầu, thiết kế kiến trúc phân lớp, mô hình hóa dữ liệu đến cài đặt thực nghiệm trên nền tảng Node.js, Express.js, MySQL và Firebase. Không chỉ đáp ứng đầy đủ các quy trình mua sắm, thanh toán và quản trị đơn hàng cốt lõi, sản phẩm còn mở rộng các tính năng tương tác mạng xã hội độc đáo như trò chuyện trực tuyến và tặng voucher bạn bè. Đây là công trình kỹ thuật phần mềm hoàn chỉnh, có giá trị ứng dụng thực tế và là tài liệu tham khảo chất lượng cho sinh viên khối ngành công nghệ.