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

Trong bối cảnh chuyển đổi số và sự phát triển mạnh mẽ của thương mại điện tử, việc xây dựng các nền tảng trực tuyến đóng vai trò then chốt giúp các doanh nghiệp trong ngành dịch vụ tiếp cận thị trường rộng lớn và quản lý hoạt động kinh doanh hiệu quả. Đối với các cơ sở kinh doanh cà phê và bánh ngọt, việc vận hành truyền thống thường đối mặt với nhiều thách thức về tài chính, mặt bằng địa lý và công sức quản lý thủ công các khâu từ sản phẩm, đơn đặt hàng đến thanh toán. Xuất phát từ thực tiễn đó, nhóm tác giả thuộc Khoa Công nghệ Thông tin, Trường Đại học Tài nguyên và Môi trường Hà Nội đã thực hiện đề tài “Xây dựng website bán cafe & bánh ngọt” trong khuôn khổ học phần Phát Triển Hệ Thống Trên Nền Web (học kỳ I, năm học 2023 – 2024).

Mục tiêu và các nhiệm vụ nghiên cứu chính của đề tài bao gồm:

  1. Khảo sát nhu cầu thực tế và đặc tả yêu cầu bài toán quản lý kinh doanh, bán hàng trực tuyến cho cửa hàng cà phê và bánh ngọt.
  2. Phân tích và mô hình hóa hệ thống bằng ngôn ngữ UML (Unified Modeling Language), bao gồm biểu đồ Use Case, biểu đồ tuần tự (Sequence Diagram) và biểu đồ hoạt động (Activity Diagram).
  3. Thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh đáp ứng các nghiệp vụ lưu trữ sản phẩm, danh mục, người dùng, đơn hàng và slide quảng cáo.
  4. Xây dựng giao diện web động phục vụ hai nhóm đối tượng chính: khách hàng mua sắm trực tuyến và ban quản trị (Admin) điều hành cửa hàng.
  5. Tích hợp các chức năng cốt lõi của một trang thương mại điện tử, bao gồm quản lý giỏ hàng, xử lý đơn hàng và tích hợp phương thức thanh toán qua VNPay song song với tiền mặt.

Đối tượng nghiên cứu của đề tài là quy trình nghiệp vụ bán hàng, quản lý đơn đặt hàng và quản trị dữ liệu cho cửa hàng cà phê - bánh ngọt trên môi trường mạng. Phạm vi nghiên cứu về mặt không gian và thời gian được giới hạn trong phạm vi đề tài bài tập lớn kết thúc học phần tại Trường Đại học Tài nguyên và Môi trường Hà Nội năm 2023, tập trung vào kiến trúc ứng dụng web hướng đối tượng kết hợp cơ sở dữ liệu quan hệ MySQL.


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

Đề tài sử dụng các cơ sở lý thuyết về phát triển phần mềm trên nền tảng web, phương pháp phân tích thiết kế hệ thống hướng đối tượng và mô hình cơ sở dữ liệu quan hệ. Các công nghệ và phương pháp cụ thể được áp dụng gồm:

  • Khung công nghệ và ngôn ngữ lập trình:

    • PHP (Hypertext Preprocessor): Ngôn ngữ kịch bản mã nguồn mở phía máy chủ (server-side) phục vụ xử lý logic nghiệp vụ, truy vấn cơ sở dữ liệu và xuất mã HTML động ra trình duyệt. Văn bản trình bày lịch sử phát triển qua các phiên bản (PHP 3, PHP 4, PHP 5, PHP 7, PHP 8 với JIT Compiler).
    • JavaScript: Ngôn ngữ thực thi phía client-side và tương tác với cấu trúc Document Object Model (DOM) để tăng tính linh hoạt cho giao diện người dùng.
    • HTML và CSS: Ngôn ngữ đánh dấu siêu văn bản và định dạng kiểu dáng phân tầng nhằm xây dựng cấu trúc và giao diện trang web.
    • Hệ quản trị cơ sở dữ liệu MySQL: Lưu trữ và quản lý toàn bộ dữ liệu quan hệ của hệ thống thông qua công cụ quản trị trực quan phpMyAdmin.
  • Phương pháp và công cụ mô hình hóa hệ thống:

    • Áp dụng phương pháp phân tích thiết kế hướng đối tượng bằng UML.
    • Sử dụng phần mềm STAR UML và công cụ vẽ trực tuyến Draw.io (diagrams.net) để xây dựng các biểu đồ Use Case tổng quát/phân rã, biểu đồ tuần tự và biểu đồ hoạt động.
  • Môi trường phát triển và công cụ hỗ trợ:

    • Trình soạn thảo mã nguồn mã nguồn mở Visual Studio Code (VS Code).
    • Gói môi trường phát triển cục bộ XAMPP (tích hợp Apache Web Server, MySQL, PHP, Perl).

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

Hệ thống được thiết kế theo cấu trúc phân quyền dựa trên 2 tác nhân (Actor) chính: Khách hàng và Quản trị viên (Admin).

1. Phân tích chức năng và mô hình hóa Use Case

Hệ thống phân chia rõ vai trò và quyền hạn của từng đối tượng:

STT Tác nhân (Actor) Diễn giải vai trò
1 Quản trị (Admin) Người chịu trách nhiệm chính, duy trì, điều hành và sở hữu toàn bộ quyền quản trị hệ thống.
2 Khách hàng Cá nhân sử dụng hệ thống để tìm kiếm, tham khảo, đặt mua sản phẩm và thanh toán.

Các Use Case phân rã chính bao gồm:

  • Quản lý giỏ hàng: Tìm kiếm sản phẩm, xem mô tả sản phẩm, thêm vào giỏ hàng, cập nhật số lượng/xóa sản phẩm, thanh toán và đăng nhập tài khoản.
  • Quản lý đơn hàng: Xem danh sách đơn đặt hàng, kiểm tra trạng thái đơn hàng, xác nhận thông tin đơn hàng hoặc hủy đơn.
  • Quản lý sản phẩm & danh mục: Thêm mới, chỉnh sửa thông tin, xóa sản phẩm và danh mục sản phẩm.
  • Quản lý tài khoản: Quản lý tài khoản khách hàng (xem thông tin, xem đơn đặt hàng, xóa tài khoản lỗi) và quản lý tài khoản nhân viên (xem thông tin, cập nhật thông tin, xóa tài khoản khi nghỉ việc).

2. Thiết kế cơ sở dữ liệu quan hệ

Cơ sở dữ liệu của hệ thống được xây dựng trên MySQL gồm 8 bảng dữ liệu quan hệ chính với cấu trúc thuộc tính và ràng buộc chi tiết như sau:

Tên bảng Mục đích lưu trữ Các trường dữ liệu chính (Thuộc tính & Kiểu) Khóa chính / Khóa ngoại
admin_account Quản lý tài khoản ban quản trị Id INT(11), User_name VARCHAR(255), Pass_word VARCHAR(255), Full_name VARCHAR(50), Email VARCHAR(50), Address VARCHAR(50), Number_phone VARCHAR(11), Level_admin INT(1), Create_date DATETIME, Cookie VARCHAR(255), Status_delete INT(11) Khóa chính: Id
order_product Lưu trữ thông tin đơn đặt hàng id INT(11), User_id VARCHAR(255), Create_at DATETIME, Name VARCHAR(255), Address VARCHAR(255), Phone_number VARCHAR(255), Status VARCHAR(255), Total_money DOUBLE, Status_recieve VARCHAR(20), Cancel_order INT(11), Id_personnel INT(11) Khóa chính: id
order_details Chi tiết mặt hàng trong từng đơn Order_id INT(11), Name_product VARCHAR(255), Product_id INT(11), Quantity INT(11), Unit_price DOUBLE Khóa chính: Order_id, Product_id
category Danh mục phân loại sản phẩm id INT(11), name VARCHAR(50), slug VARCHAR(255), status VARCHAR(255), Create_at DATETIME, Update_at DATETIME, Status_delete INT(11) Khóa chính: id
product Thông tin mặt hàng cafe & bánh id INT(11), name VARCHAR(255), price DOUBLE, Img_product VARCHAR(255), quantity INT(11), descrip VARCHAR(255), Production_company VARCHAR(255), Create_at DATETIME, Update_at DATETIME, Category_id INT(11), Name_category VARCHAR(255), pay INT(11), sale INT(10), Status_delete INT(11) Khóa chính: id
Khóa ngoại: Category_id
user_account Tài khoản khách hàng thành viên id INT(11), name VARCHAR(255), Email_account VARCHAR(255), password VARCHAR(255), Phone_number VARCHAR(255), Address_user VARCHAR(255), Create_at DATETIME, Status_delete INT(11) Khóa chính: id
comment_product Quản lý phản hồi, bình luận id INT(11), id_product INT(11), Id_user VARCHAR(255), Name_user VARCHAR(255), content VARCHAR(255) Khóa chính: id
Khóa phụ: id_product, Id_user
slider Quản lý hình ảnh trình chiếu slide id INT(11), name_slider VARCHAR(50), Slider_img VARCHAR(50), Create_at DATETIME, Update_at DATETIME, Status VARCHAR(255) Khóa chính: id

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

CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN

Chương này tập trung trình bày bối cảnh ra đời, tính cấp thiết và các yêu cầu kỹ thuật nền tảng của hệ thống:

  • Tính cần thiết của đề tài: Khái quát vai trò của thương mại điện tử đối với ngành dịch vụ nói chung và việc kinh doanh quán cà phê, bánh ngọt nói riêng. Đặt ra bài toán giải quyết sự tiện lợi trong khâu quản lý, tiết kiệm công sức và nâng cao hiệu suất bán lẻ trực tuyến.
  • Đặc tả yêu cầu bài toán:
    • Yêu cầu khách hàng: Cho phép hiển thị danh sách mặt hàng, hỗ trợ đặt hàng trực tiếp và hiển thị hóa đơn mua sắm.
    • Yêu cầu quản trị viên: Tiếp nhận và xử lý đơn đặt hàng; thực hiện các thao tác thêm, sửa, xóa danh mục và sản phẩm.
    • Lĩnh vực chuyên môn: Lập trình phát triển ứng dụng trên nền web bằng HTML, CSS, PHP, JavaScript phục vụ thương mại điện tử.
    • Yêu cầu phi chức năng: Giao diện trực quan, bắt mắt, phản hồi nhanh chóng khi người dùng thao tác, đảm bảo tính bảo mật và toàn vẹn dữ liệu.
  • Tổng quan công nghệ: Giới thiệu nền tảng kỹ thuật bao gồm ngôn ngữ PHP (lịch sử phát triển qua các phiên bản), JavaScript (cơ chế DOM, hàm hạng nhất), HTML, CSS, cùng các công cụ Visual Studio Code, phpMyAdmin, XAMPP, STAR UML và Draw.io.

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Chương 2 là phần trọng tâm về kỹ nghệ phần mềm của đồ án, chi tiết hóa toàn bộ các mô hình phân tích và thiết kế:

  • Mô tả bài toán và phân tích yêu cầu: Phân định rõ 2 nhóm luồng nghiệp vụ của Khách hàng (xem thông tin, lọc/tìm kiếm theo từ khóa, xem chi tiết giá/thành phần, quản lý giỏ hàng, thanh toán qua VNPay/tiền mặt) và Admin (quản lý sản phẩm, danh mục, đơn hàng, tài khoản khách hàng và tài khoản nhân viên).
  • Mô hình Use Case: Xây dựng Use Case tổng quát và 6 bảng mô tả kịch bản ca sử dụng chi tiết (Quản lý giỏ hàng, Quản lý đơn hàng, Quản lý sản phẩm, Quản lý danh mục sản phẩm, Quản lý tài khoản khách hàng, Quản lý tài khoản nhân viên).
  • Hệ thống biểu đồ tuần tự (Sequence Diagram): Mô tả chi tiết trình tự gửi/nhận thông điệp giữa Actor, Boundary, Controller và Database qua 15 biểu đồ tuần tự:
    1. Biểu đồ tuần tự chức năng đăng nhập và đăng ký.
    2. Biểu đồ tuần tự chức năng tìm kiếm sản phẩm.
    3. Biểu đồ tuần tự chức năng thêm sản phẩm vào giỏ hàng.
    4. Biểu đồ tuần tự chức năng thanh toán.
    5. Biểu đồ tuần tự chức năng quản lý đơn hàng.
    6. Biểu đồ tuần tự chức năng thêm mới, chỉnh sửa và xóa sản phẩm.
    7. Biểu đồ tuần tự chức năng thêm mới, sửa và xóa danh mục sản phẩm.
    8. Biểu đồ tuần tự chức năng xóa tài khoản khách hàng.
    9. Biểu đồ tuần tự chức năng chỉnh sửa thông tin và xóa tài khoản nhân viên.
  • Hệ thống biểu đồ hoạt động (Activity Diagram): Chi tiết hóa các nhánh rẽ và luồng dữ liệu cho các chức năng đăng nhập, đăng ký, giỏ hàng, đơn hàng, sản phẩm, danh mục, tài khoản khách hàng và tài khoản nhân viên.
  • Thiết kế cơ sở dữ liệu: Xây dựng mô hình quan hệ cơ sở dữ liệu và đặc tả chi tiết 8 bảng dữ liệu quan hệ (admin_account, order_product, order_details, category, product, user_account, comment_product, slider).

CHƯƠNG 3: GIAO DIỆN WEB

Chương 3 trình bày các màn hình giao diện thực tế đã được triển khai, minh chứng cho kết quả lập trình:

  • Phân hệ Client (Khách hàng):
    • Giao diện trang chủ: Hiển thị banner slider, danh mục và các sản phẩm nổi bật.
    • Giao diện Đăng ký / Đăng nhập: Hỗ trợ khách hàng tạo tài khoản và xác thực vào hệ thống.
    • Giao diện Tìm kiếm & Chi tiết sản phẩm: Cho phép tìm kiếm theo từ khóa, xem hình ảnh minh họa, mô tả chi tiết và giá sản phẩm.
    • Giao diện Giỏ hàng: Cung cấp chức năng cập nhật số lượng/tổng giá, xóa từng món, xóa toàn bộ giỏ hàng và xem lịch sử đơn hàng đã đặt.
    • Giao diện Thanh toán: Hỗ trợ xác nhận thông tin đơn hàng và tích hợp cổng thanh toán trực tuyến VNPay song song với hình thức thanh toán tiền mặt.
  • Phân hệ Admin (Quản trị):
    • Giao diện Đăng nhập trang quản trị: Cơ chế xác thực riêng biệt cho tài khoản quản trị viên.
    • Giao diện Quản lý sản phẩm: Bảng danh sách sản phẩm cùng form thêm mới và chỉnh sửa thông tin sản phẩm.
    • Giao diện Quản lý đơn đặt hàng: Danh sách đơn hàng từ người dùng, chức năng xử lý chuyển trạng thái đơn hàng và xác nhận đơn hàng thành công.
    • Giao diện Quản lý slide: Danh sách banner và form thêm mới slide trình chiếu.
    • Giao diện Quản lý tài khoản: Bảng danh sách và công cụ cập nhật/xóa tài khoản khách hàng cũng như tài khoản nhân viên.

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

  • Kết quả đạt được:

    • Xây dựng thành công hệ thống website bán hàng hoàn chỉnh cho quán cà phê và bánh ngọt với hai phân hệ tách biệt (Client và Admin).
    • Hoàn thiện bộ tài liệu phân tích thiết kế hệ thống theo chuẩn UML với đầy đủ biểu đồ Use Case, 15 biểu đồ tuần tự, 8 biểu đồ hoạt động và mô hình quan hệ cơ sở dữ liệu chuẩn hóa gồm 8 bảng thực thể.
    • Hiện thực hóa đầy đủ các luồng chức năng thương mại điện tử cốt lõi: duyệt sản phẩm, tìm kiếm, giỏ hàng tương tác, đặt hàng, quản trị danh mục/sản phẩm/nhân viên và tích hợp thành công phương thức thanh toán điện tử VNPay.
  • Giải pháp và kiến nghị của tác giả:

    • Ứng dụng giải pháp bán hàng trực tuyến nhằm giúp các doanh nghiệp dịch vụ đồ uống tối ưu hóa quy trình quản lý, giảm thiểu chi phí mặt bằng và mở rộng khả năng tiếp cận khách hàng trên không gian số.
    • Khuyến nghị áp dụng mô hình phân quyền rõ ràng giữa khách hàng, nhân viên và quản trị viên cấp cao để đảm bảo an toàn vận hành.
  • Đóng góp của đồ án:

    • Cung cấp một mô hình ứng dụng web mẫu hoàn chỉnh ở quy mô bài tập lớn chuyên ngành, kết hợp chặt chẽ giữa lý thuyết kỹ nghệ phần mềm (UML) và thực hành lập trình web (PHP/MySQL).

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

  • Hạn chế:

    • Đồ án được thực hiện trong phạm vi môn học Phát Triển Hệ Thống Trên Nền Web nên tập trung chủ yếu vào việc xây dựng các chức năng nghiệp vụ cơ bản, chưa đề cập sâu đến các giải pháp tối ưu hóa hiệu năng máy chủ khi lưu lượng truy cập lớn hoặc kiểm thử tự động (Unit Test/Integration Test).
    • Các ràng buộc về logic nghiệp vụ trong bảng cơ sở dữ liệu còn ở mức cơ bản, một số trường dữ liệu lưu thông tin danh mục hoặc trạng thái dưới dạng chuỗi chưa được tối ưu hóa chuẩn hóa bậc cao.
  • Hướng phát triển tiếp:

    • Nâng cấp và mở rộng thêm các tính năng nâng cao như hệ thống báo cáo thống kê doanh thu đa chiều, quản lý tồn kho chi tiết theo nguyên vật liệu.
    • Tích hợp thêm các cổng thanh toán điện tử khác và hoàn thiện cơ chế phân quyền chi tiết hơn cho từng cấp độ nhân viên.

Giá trị tham khảo

Tài liệu này có giá trị tham khảo thiết thực cho:

  1. Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu tham khảo trực quan về cấu trúc một bài báo cáo bài tập lớn/đồ án môn học về phát triển web sử dụng kiến trúc PHP - MySQL.
  2. Người học về Phân tích Thiết kế Hệ thống: Tham khảo phương pháp xây dựng bộ biểu đồ UML (Use Case tổng quát, Use Case phân rã kèm bảng mô tả hoạt động, biểu đồ tuần tự và biểu đồ hoạt động) cho một bài toán thương mại điện tử cụ thể.
  3. Lập trình viên web sơ cấp: Tham khảo cách thiết kế cơ sở dữ liệu quan hệ cho website bán hàng và quy trình tổ chức giao diện quản trị Admin cơ bản.

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

1. Đề tài được xây dựng dựa trên những công nghệ và công cụ lập trình nào?
Hệ thống sử dụng các ngôn ngữ HTML, CSS, JavaScript ở phía client và ngôn ngữ PHP kết hợp hệ quản trị cơ sở dữ liệu MySQL ở phía máy chủ. Môi trường phát triển bao gồm Visual Studio Code, gói phần mềm XAMPP, công cụ phpMyAdmin, cùng phần mềm STAR UML và Draw.io phục vụ vẽ sơ đồ thiết kế.

2. Hệ thống hỗ trợ những phương thức thanh toán nào cho khách hàng?
Hệ thống hỗ trợ 2 phương thức thanh toán chính: thanh toán trực tiếp bằng tiền mặt khi nhận hàng và thanh toán trực tuyến thông qua cổng thanh toán VNPay.

3. Cơ sở dữ liệu của website gồm những bảng dữ liệu nào?
Cơ sở dữ liệu của hệ thống bao gồm 8 bảng quan hệ: admin_account (tài khoản quản trị), order_product (đơn đặt hàng), order_details (chi tiết đơn hàng), category (danh mục), product (sản phẩm), user_account (tài khoản người dùng), comment_product (bình luận sản phẩm) và slider (banner quảng cáo).

4. Phân hệ quản trị (Admin) cung cấp những chức năng quản lý cụ thể nào?
Quản trị viên có toàn quyền thực hiện các nghiệp vụ: quản lý sản phẩm (thêm, sửa, xóa), quản lý danh mục sản phẩm (thêm, sửa, xóa), quản lý đơn đặt hàng (xem trạng thái, xác nhận, xử lý đơn), quản lý slide quảng cáo, quản lý tài khoản khách hàng và cập nhật/xóa tài khoản nhân viên.

5. Chức năng giỏ hàng của website hỗ trợ những thao tác gì cho người dùng?
Tại giao diện giỏ hàng, người dùng có thể xem danh sách sản phẩm đã chọn (tên, hình ảnh, đơn giá, số lượng, thành tiền), nhấn nút cập nhật để tính lại tổng tiền khi thay đổi số lượng, xóa từng sản phẩm riêng lẻ, xóa toàn bộ giỏ hàng, xem lại lịch sử đơn hàng đã đặt và chuyển tiếp sang bước thanh toán.


Kết luận

Báo cáo bài tập lớn “Xây dựng website bán cafe & bánh ngọt” của nhóm sinh viên Trường Đại học Tài nguyên và Môi trường Hà Nội đã giải quyết bài toán ứng dụng công nghệ thông tin vào hoạt động kinh doanh trực tuyến ngành dịch vụ đồ uống. Đồ án hoàn thành tốt quy trình phát triển phần mềm từ khảo sát, phân tích thiết kế hướng đối tượng bằng mô hình UML, thiết kế cơ sở dữ liệu quan hệ 8 bảng đến hiện thực hóa giao diện web bằng PHP/MySQL. Đây là tài liệu tham khảo có cấu trúc rõ ràng, phù hợp cho sinh viên chuyên ngành Công nghệ thông tin nghiên cứu và học tập về phát triển hệ thống web thương mại điện tử cơ bản.