Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin và mạng Internet phát triển mạnh mẽ, việc ứng dụng tin học hóa đã trở thành yếu tố quyết định đối với phương thức hoạt động của các tổ chức và doanh nghiệp. Sự ra đời của thương mại điện tử giúp các đơn vị sản xuất, kinh doanh tiếp cận khách hàng với tốc độ nhanh chóng và tiết kiệm chi phí so với các kênh thương mại truyền thống.
Đối với các cửa hàng kinh doanh ngành hàng thời trang, cụ thể là mặt hàng giày dép, phương thức bán hàng trực tiếp tại siêu thị hay cửa hàng bộc lộ nhiều điểm hạn chế:
- Khách hàng tiêu tốn thời gian và chi phí đi lại để lựa chọn sản phẩm phù hợp.
- Doanh nghiệp bị giới hạn về không gian quảng bá, chi phí tiếp thị cao và gặp khó khăn trong việc mở rộng tệp khách hàng ngoài khu vực địa lý lân cận.
- Nguy cơ khách hàng tiếp cận phải nguồn hàng không rõ nguồn gốc nếu không có cổng thông tin chính thức từ cơ sở kinh doanh.
Từ thực tiễn đó, đồ án tốt nghiệp "Xây Dựng Website Bán Giày Online Trên Mô Hình MVC" của tác giả Nguyễn Đức Tuyên (ngành Kỹ thuật Phần mềm, Trường Đại học Công nghệ Thông tin & Truyền thông – Đại học Thái Nguyên, năm 2021) được thực hiện nhằm giải quyết các nhiệm vụ cụ thể:
- Nghiên cứu tổng quan về hệ quản trị cơ sở dữ liệu MySQL và ngôn ngữ lập trình kịch bản PHP.
- Tìm hiểu nguyên lý, lịch sử và cách thức vận hành của mô hình kiến trúc MVC (Model – View – Controller).
- Khảo sát nghiệp vụ, phân tích yêu cầu và thiết kế hệ thống thông tin bán giày trực tuyến (bao gồm biểu đồ Use Case, biểu đồ lớp, biểu đồ trình tự và cơ sở dữ liệu quan hệ).
- Xây dựng và triển khai hoàn thiện website thương mại điện tử với hai phân hệ: giao diện mua hàng dành cho khách hàng và giao diện quản trị dành cho người quản lý/nhân viên.
- Đối tượng nghiên cứu: Quy trình quản lý, kinh doanh mặt hàng giày dép và việc áp dụng mô hình kiến trúc MVC kết hợp PHP/MySQL trong xây dựng ứng dụng web.
- Phạm vi nghiên cứu: Thiết kế và hiện thực hóa hệ thống website bán lẻ giày dép với các tính năng chọn sản phẩm, giỏ hàng, đặt hàng, thanh toán trực tuyến đa kênh, quản lý kho, quản lý danh mục và thống kê doanh số.
Cơ sở lý thuyết và phương pháp
Đồ án dựa trên nền tảng lý thuyết phát triển ứng dụng web hướng đối tượng và quy trình phân tích thiết kế hệ thống thông tin:
1. Khung lý thuyết và công nghệ nền tảng
- Hệ quản trị cơ sở dữ liệu MySQL: Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở, hoạt động tích hợp với máy chủ web Apache và PHP; sử dụng cú pháp truy vấn dữ liệu tiêu chuẩn (DDL, DML:
CREATE DATABASE, CREATE TABLE, SELECT, INSERT, UPDATE, DELETE, các mệnh đề WHERE, ORDER BY, LIMIT). Quản lý các thuộc tính khóa chính (PRIMARY KEY), định danh tự tăng (AUTO_INCREMENT), giá trị rỗng (NULL) và miền giá trị (UNSIGNED).
- Ngôn ngữ lập trình PHP: Ngôn ngữ kịch bản phía máy chủ (Server-side Scripting Language), nguồn gốc từ bộ công cụ PHP/FI (Rasmus Lerdorf, 1995) qua các giai đoạn cải tiến Zend Engine trên phiên bản PHP 3, PHP 4 và PHP 5 (hỗ trợ hướng đối tượng OOP, Reflection, Iterators). Đồ án khai thác các cơ chế cốt lõi:
- Cấu trúc cú pháp cơ bản và phương thức xuất dữ liệu (
echo, printf).
- Xử lý biến (
$), hằng số (define), chuỗi và các kiểu dữ liệu.
- Nhận và xử lý dữ liệu biểu mẫu thông qua hai phương thức
$_GET và $_POST.
- Quản lý phiên làm việc và trạng thái người dùng bằng
Cookie (setcookie(), $_COOKIE) và Session (session_start(), $_SESSION, session_destroy()).
- Tích hợp hàm và kết nối MySQL (
mysql_connect, mysql_select_db, mysql_query, mysql_fetch_array, mysql_num_rows, mysql_close).
- Kiến trúc Model – View – Controller (MVC): Mô hình thiết kế được phát minh tại phòng thí nghiệm Xerox PARC vào thập niên 1970 bởi Trygve Reenskaug trên ngôn ngữ Smalltalk-80 và công bố rộng rãi bởi Glenn Krasner và Stephen Pope (1988). Cơ chế tách biệt ba thành phần:
- Model: Chịu trách nhiệm lưu trữ, xử lý logic dữ liệu và tương tác trực tiếp với cơ sở dữ liệu (sử dụng phương thức Active Record pattern), đóng gói dữ liệu thành dạng mảng để chuyển giao.
- View: Thành phần thể hiện giao diện đồ họa, tiếp nhận dữ liệu từ Controller và hiển thị trực quan cho người dùng mà không cần nhúng logic xử lý phức tạp hoặc thông qua các bộ template engine biên dịch nhiều tầng.
- Controller: Trung tâm điều phối, tiếp nhận yêu cầu (request) từ người dùng, gọi các hàm xử lý tại Model, sau đó định tuyến và trả kết quả về View thích hợp.
2. Phương pháp nghiên cứu và thiết kế hệ thống
- Phương pháp phân tích và thiết kế hướng đối tượng (OOAD): Sử dụng hệ thống biểu đồ UML để mô hình hóa cấu trúc và hành vi của hệ thống:
- Biểu đồ Use Case tổng quát và biểu đồ phân rã theo từng nhóm tác nhân.
- Biểu đồ lớp (Class Diagram) cho các đối tượng nghiệp vụ: Lớp lĩnh vực, Quản lý sản phẩm, Quản lý thành viên, Quản lý hóa đơn/đơn hàng, Quản lý nhà sản xuất, Quản lý banner, Quản lý Admin.
- Biểu đồ trình tự (Sequence Diagram) mô tả chi tiết dòng xử lý cho các chức năng đăng nhập, thêm/sửa/xóa sản phẩm, lọc/tìm kiếm sản phẩm theo giá/nhà sản xuất/giới tính, xử lý đơn hàng và thanh toán.
- Phương pháp thiết kế cơ sở dữ liệu quan hệ: Chuẩn hóa các bảng dữ liệu, thiết lập khóa chính, khóa ngoại và ràng buộc toàn vẹn, được cấu trúc trong tệp tin cơ sở dữ liệu
shop_giay.sql.
Thiết kế và triển khai
Hệ thống được thiết kế theo cấu trúc tách biệt giữa phân hệ khách hàng và phân hệ quản trị (admin), áp dụng kiến trúc MVC thuần để tối ưu tốc độ thực thi.
Hệ thống Web MVC
1. Phân tầng môi trường và công nghệ
- Môi trường máy chủ thử nghiệm: XAMPP (chạy Apache, MySQL, PHP) và tiện ích quản lý dòng lệnh / phpMyAdmin.
- Công nghệ giao diện (Frontend): HTML, CSS, JavaScript, Bootstrap nhằm đảm bảo tính trực quan và khả năng tương thích trên trình duyệt.
- Xử lý phía máy chủ (Backend): PHP kết nối cơ sở dữ liệu MySQL theo mô hình phân tách thư mục Controller, Model, View rõ ràng.
2. Phân rã tác nhân và chức năng hệ thống
Hệ thống xác định 4 tác nhân tham gia vào quy trình hoạt động:
| Tác nhân |
Quyền hạn và Chức năng chính |
| Khách hàng (Chưa đăng ký) |
Tìm kiếm sản phẩm; Xem chi tiết thông tin và giá sản phẩm; Xem danh mục sản phẩm mới nhất / đang bán; Chọn size và số lượng giày; Thêm/bớt hàng trong giỏ; Đặt hàng và thực hiện thanh toán; Đăng ký tài khoản. |
| Thành viên (Khách đã đăng ký) |
Đăng nhập hệ thống; Quản lý và chỉnh sửa thông tin cá nhân; Lưu lại đơn hàng; Xem lịch sử đơn hàng đã mua; Mua hàng nhanh theo thông tin đã lưu. |
| Nhân viên |
Tiếp nhận đơn đặt hàng được bàn giao; Tiến hành xác nhận, xử lý giao hàng; Cập nhật trạng thái đơn hàng; Thống kê số liệu liên quan đến tác vụ phụ trách. |
| Người quản lý (Admin) |
Toàn quyền kiểm soát hệ thống: Quản lý danh mục và chi tiết sản phẩm (thêm/sửa/xóa); Quản lý nhà sản xuất; Quản lý danh sách thành viên; Quản trị banner quảng cáo; Quản lý tài khoản Admin và phân quyền; Quản lý đơn hàng; Thống kê doanh số theo tháng, doanh thu và hàng tồn kho; Xuất dữ liệu báo cáo. |
3. Tích hợp thanh toán và tiện ích hỗ trợ
- Kênh thanh toán trực tuyến: Tích hợp cổng thanh toán quốc tế qua PayPal, cổng thanh toán di động MoMo (mã QR) và thanh toán chuyển khoản qua ngân hàng điện tử (ATM/Internet Banking).
- Tiện ích chăm sóc khách hàng: Tích hợp công cụ Chat hỗ trợ trực tuyến và hệ thống tự động gửi Email thông báo trạng thái đặt hàng tới hòm thư của khách hàng.
- Tiện ích xuất dữ liệu quản trị: Hỗ trợ quản trị viên trích xuất danh sách và báo cáo dữ liệu dưới các định dạng Excel, PDF, CSV hoặc chức năng sao chép (Copy).
- Triển khai máy chủ: Triển khai mã nguồn và cơ sở dữ liệu lên dịch vụ máy chủ lưu trữ web (Host).
Nội dung chính theo từng chương
Chương 1: Tổng quan về MySQL và PHP
Chương 1 hệ thống hóa các kiến thức cơ bản về hai công nghệ cốt lõi được sử dụng trong đồ án:
- Cơ sở dữ liệu MySQL: Trình bày định nghĩa, ưu điểm của hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở, các phương thức khởi động qua dòng lệnh (
MySQL -hname -uuser -ppass) hoặc gói ứng dụng hỗ trợ. Định nghĩa các thuật ngữ kỹ thuật (NULL, AUTO_INCREMENT, UNSIGNED, PRIMARY KEY), các kiểu dữ liệu và tập lệnh SQL cơ bản phục vụ quản trị bảng và truy vấn dữ liệu.
- Ngôn ngữ PHP: Khái quát lịch sử phát triển từ phiên bản PHP/FI (1995) đến các bước tiến của PHP 3, PHP 4 (Zend Engine 1) và PHP 5 (Zend Engine 2 bổ sung OOP, XML, Iterators, Reflection). Hướng dẫn 4 cú pháp nhúng mã PHP vào tài liệu web, trong đó nhấn mạnh cú pháp chuẩn
<?php ... ?>. Trình bày kỹ thuật quản lý dữ liệu qua biến, hằng, chuỗi, các kiểu dữ liệu, phương thức truyền dữ liệu biểu mẫu GET/POST, cơ chế quản lý trạng thái qua Cookie và Session, kỹ thuật viết hàm tái sử dụng (function, include, require, include_once, require_once) và các hàm PHP tương tác trực tiếp với MySQL.
Chương 2: Mô hình kiến trúc MVC
Chương 2 đi sâu vào cấu trúc và nguyên lý vận hành của mô hình kiến trúc MVC:
- Lịch sử và nguồn gốc: Quá trình hình thành từ thập niên 1970 tại phòng thí nghiệm Xerox PARC gắn liền với Trygve Reenskaug và các tài liệu công bố chuẩn hóa trên hệ thống Smalltalk-80 của Glenn Krasner và Stephen Pope (1988).
- Bản chất các thành phần: Phân tích chi tiết chức năng của Model (xử lý dữ liệu nghiệp vụ, tương tác CSDL, sử dụng mảng dữ liệu), View (trình diễn giao diện, hạn chế sự phụ thuộc vào các công cụ template cồng kềnh) và Controller (điều hướng yêu cầu, gắn kết Model và View).
- Cơ chế vận hành và luồng sự kiện: Người dùng tương tác trên View $\rightarrow$ Gửi yêu cầu đến Controller $\rightarrow$ Controller gọi phương thức xử lý tại Model $\rightarrow$ Model thao tác dữ liệu và phản hồi kết quả $\rightarrow$ Controller chuyển dữ liệu về View để hiển thị cho người dùng.
- Đánh giá ưu - nhược điểm:
- Ưu điểm: Phân tách rõ ràng giữa giao diện và mã logic, dễ dàng bảo trì, phát triển theo mô-đun, tạo điều kiện cho lập trình viên và người thiết kế giao diện làm việc độc lập song song.
- Nhược điểm: Đòi hỏi lập trình viên có kiến thức chuyên môn vững chắc về lập trình hướng đối tượng; việc nạp nhiều thư viện đối với các dự án lớn có thể ảnh hưởng đến hiệu năng xử lý so với mã nguồn viết thủ công trực tiếp. Giới thiệu sơ lược xu hướng phát triển mở rộng như mô hình HMVC.
Chương 3: Ứng dụng vào bài toán thực tế
Chương 3 là phần trọng tâm về phân tích và thiết kế hệ thống thông tin website bán giày:
- Lý do chọn đề tài và lựa chọn công nghệ: Nhu cầu thực tế của các cửa hàng thời trang trong việc tiếp cận khách hàng trẻ tuổi; phân tích việc chọn PHP, HTML, CSS, JavaScript, Bootstrap và MySQL trên nền XAMPP để tối ưu hiệu năng và dễ dàng triển khai.
- Xác định yêu cầu hệ thống: Thiết lập danh mục chức năng chi tiết cho hai nhóm đối tượng: Khách hàng (xem hàng, lọc sản phẩm, quản lý giỏ hàng, đặt mua, thanh toán) và Quản trị viên (quản lý sản phẩm, đơn hàng, khách hàng, nhà cung cấp, banner, thống kê).
- Mô hình hóa hệ thống bằng UML:
- Xây dựng biểu đồ Use Case tổng quát và 3 biểu đồ Use Case phân rã cho Khách hàng, Nhân viên, Người quản lý.
- Thiết kế 7 biểu đồ lớp: Biểu đồ lớp lĩnh vực, quản lý sản phẩm, quản lý thành viên, quản lý hóa đơn (đơn hàng), quản lý nhà sản xuất, quản lý banner, quản lý admin.
- Xây dựng 23 biểu đồ trình tự bao quát toàn bộ quy trình nghiệp vụ: Đăng nhập hệ thống, thêm/sửa/xóa sản phẩm, xem/xử lý đơn hàng, thống kê sản phẩm, thống kê hóa đơn theo tháng, quản lý thành viên, quản lý banner, thêm/sửa/xóa tài khoản và quyền admin, hiển thị và tìm kiếm sản phẩm theo giá/nhà sản xuất/giới tính/từ khóa, quy trình mua hàng cho khách vãng lai và thành viên.
- Thiết kế cơ sở dữ liệu quan hệ: Xác định cấu trúc các bảng và mối quan hệ ràng buộc, lưu trữ trong tệp
shop_giay.sql.
Chương 4: Hoàn thiện sản phẩm
Chương 4 mô tả kết quả xây dựng và cài đặt các giao diện chức năng của website:
- Giao diện người dùng (Khách hàng): Hiện thực hóa trang chủ, danh sách sản phẩm mới nhất, danh sách sản phẩm đang bán, mô-đun đăng ký/đăng nhập, trang chi tiết sản phẩm cho phép lựa chọn size và số lượng, trang quản lý giỏ hàng. Cài đặt các cổng thanh toán (PayPal, MoMo qua QR code, chuyển khoản ATM Banking), giao diện tra cứu đơn hàng đã mua, tiện ích trò chuyện (chat) hỗ trợ trực tuyến và chức năng gửi email tự động xác nhận đơn hàng.
- Giao diện quản trị (Admin): Hiện thực hóa trang đăng nhập bảo mật, hệ thống xem/thêm/sửa thông tin sản phẩm và danh mục, công cụ xuất dữ liệu (Excel, PDF, CSV, Copy), mô-đun thống kê trực quan doanh số theo tháng, thống kê hàng tồn kho và thống kê tổng doanh thu.
- Đưa hệ thống lên môi trường thực tế: Triển khai đóng gói mã nguồn và tải website lên dịch vụ lưu trữ máy chủ (Host).
Kết quả và đóng góp
1. Kết quả đạt được
- Xây dựng hoàn chỉnh một ứng dụng website thương mại điện tử chuyên ngành giày dép vận hành trên nền tảng PHP và hệ quản trị cơ sở dữ liệu MySQL (
shop_giay.sql).
- Ứng dụng thành công mô hình kiến trúc MVC để tổ chức mã nguồn, chia tách độc lập giữa tầng truy xuất dữ liệu (Model), tầng giao diện (View) và tầng điều hướng logic (Controller).
- Hoàn thiện đầy đủ các chức năng nghiệp vụ thương mại điện tử:
- Lọc và tìm kiếm giày theo nhiều tiêu chí (khoảng giá, nhà sản xuất, giới tính, tên sản phẩm).
- Quy trình đặt hàng chi tiết cho phép tùy chọn kích cỡ (size) và số lượng.
- Tích hợp thành công 3 kênh thanh toán: PayPal, MoMo QR Code, Ngân hàng trực tuyến (ATM Banking).
- Tích hợp dịch vụ gửi email thông báo tự động và kênh chat tương tác trực tiếp với khách hàng.
- Hệ thống báo cáo thống kê doanh số theo tháng, doanh thu, tồn kho và xuất báo cáo đa định dạng (Excel, PDF, CSV).
2. Đóng góp của đồ án
- Cung cấp tài liệu phân tích thiết kế hệ thống chi tiết bao gồm hệ thống 23 biểu đồ trình tự và 7 biểu đồ lớp chuyên biệt cho bài toán bán lẻ trực tuyến.
- Đưa ra giải pháp tổ chức mã nguồn theo mô hình MVC thủ công trên ngôn ngữ PHP cơ bản, giúp giảm sự phụ thuộc vào các framework nặng hoặc các bộ template engine phức tạp, đảm bảo tính gọn nhẹ và tốc độ phản hồi của ứng dụng web.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế:
- Theo thừa nhận của tác giả, kiến thức cá nhân và nguồn tài liệu tham khảo còn một số giới hạn nhất định nên hệ thống có thể còn phát sinh sai sót trong quá trình vận hành thực tế.
- Mô hình MVC cơ bản khi quy mô hệ thống tăng trưởng có thể phải tải nhiều thư viện và mã nguồn xử lý, dễ dẫn đến hiện tượng giảm tốc độ nếu không được tối ưu cấu trúc chuyên sâu.
- Hướng mở rộng:
- Nghiên cứu và ứng dụng mô hình kiến trúc phân cấp nâng cao hơn như HMVC (Hierarchical Model-View-Controller) để chia nhỏ hệ thống thành các mô-đun độc lập hoàn toàn, phục vụ các bài toán quy mô lớn.
- Tiếp tục tối ưu hóa trải nghiệm người dùng trên giao diện di động và nâng cấp các cơ chế bảo mật cho quy trình thanh toán trực tuyến.
Giá trị tham khảo
Đồ án là tài liệu tham khảo thiết thực cho:
- Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Nắm bắt quy trình thực tế từ việc khảo sát yêu cầu, xây dựng tài liệu UML (Use Case, Class Diagram, Sequence Diagram) đến việc hiện thực hóa mã nguồn PHP theo mô hình MVC không dùng framework.
- Người phát triển ứng dụng web: Tham khảo cách thiết kế cơ sở dữ liệu quan hệ cho website bán hàng, cách thức tích hợp các cổng thanh toán phổ biến tại Việt Nam (MoMo, ATM Banking) và quốc tế (PayPal), cũng như cách xây dựng các mô-đun xuất dữ liệu báo cáo (Excel, PDF, CSV) và gửi email tự động.
Câu hỏi thường gặp
1. Đồ án sử dụng bộ công nghệ và môi trường nào để phát triển hệ thống?
Hệ thống được phát triển bằng ngôn ngữ PHP kết hợp HTML, CSS, JavaScript và Bootstrap cho giao diện; hệ quản trị cơ sở dữ liệu MySQL chạy trên môi trường máy chủ cục bộ XAMPP/AppServ; mã nguồn cơ sở dữ liệu được đóng gói trong tệp shop_giay.sql.
2. Hệ thống phân chia những tác nhân nào và quyền hạn của từng tác nhân ra sao?
Hệ thống phân chia thành 4 tác nhân chính:
- Khách hàng: Xem thông tin, tìm kiếm, chọn size/số lượng, giỏ hàng, đặt mua và thanh toán.
- Thành viên: Khách hàng đã có tài khoản, có thêm chức năng quản lý thông tin cá nhân và xem lại lịch sử đơn hàng đã mua.
- Nhân viên: Tiếp nhận đơn hàng do quản lý chuyển, xử lý giao hàng và thống kê theo phạm vi nhiệm vụ.
- Người quản lý (Admin): Toàn quyền quản trị danh mục sản phẩm, thành viên, banner, quản lý tài khoản admin, phân quyền, xử lý đơn hàng, xuất báo cáo và thống kê doanh thu, tồn kho, doanh số theo tháng.
3. Website hỗ trợ những phương thức thanh toán trực tuyến nào?
Website tích hợp 3 hình thức thanh toán chính:
- Thanh toán quốc tế qua cổng PayPal.
- Thanh toán di động qua cổng ví MoMo bằng mã QR.
- Thanh toán chuyển khoản ngân hàng qua thẻ ATM / Internet Banking.
4. Tác giả đánh giá ưu điểm và nhược điểm của mô hình MVC như thế nào trong đồ án?
- Ưu điểm: Tách bạch rõ ràng giữa Model, View và Controller giúp dự án dễ bảo trì, module hóa chức năng, dễ phát triển, cho phép lập trình viên và người thiết kế giao diện làm việc đồng thời; mã lệnh trong sáng, dễ mở rộng.
- Nhược điểm: Đòi hỏi kiến thức chuyên môn vững về mô hình chuẩn và lập trình hướng đối tượng; khó triển khai đối với các hệ thống quá phức tạp nếu không chuyển sang các biến thể mở rộng như HMVC; việc phải nạp/load nhiều thư viện xử lý có thể làm giảm tốc độ so với viết mã thuần đơn lẻ.
Kết luận
Đồ án tốt nghiệp "Xây Dựng Website Bán Giày Online Trên Mô Hình MVC" của sinh viên Nguyễn Đức Tuyên đã hoàn thành mục tiêu nghiên cứu lý thuyết về PHP, MySQL và kiến trúc MVC, đồng thời chuyển hóa thành công vào bài toán thực tiễn của một website thương mại điện tử. Hệ thống được thiết kế bài bản thông qua bộ công cụ mô hình hóa UML đầy đủ và xây dựng hoàn chỉnh hai phân hệ người dùng và quản trị với các tính năng chọn sản phẩm, giỏ hàng, tích hợp thanh toán đa kênh và thống kê bán hàng. Đây là công trình mang tính ứng dụng cao, phản ánh chuẩn mực quy trình phát triển phần mềm phục vụ công tác đào tạo kỹ sư công nghệ thông tin.