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

Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 cùng xu thế toàn cầu hóa đã thúc đẩy thương mại điện tử phát triển mạnh mẽ, trở thành phương thức kinh doanh giữ vai trò thiết yếu trong nền kinh tế. Phương thức mua sắm trực tuyến cho phép người tiêu dùng tiếp cận thông tin chi tiết về sản phẩm, đối chiếu giá cả và đặt mua hàng từ xa một cách thuận tiện, đồng thời hạn chế sự bất tiện của phương thức mua hàng truyền thống như tốn kém thời gian đi lại hay nguy cơ lây nhiễm dịch bệnh (như dịch bệnh Covid-19 trong bối cảnh thực hiện nghiên cứu). Đối với các doanh nghiệp và cửa hàng bán lẻ, việc sở hữu một nền tảng website là yêu cầu cần thiết để mở rộng tệp khách hàng trực tuyến và tăng cường năng lực cạnh tranh.

Đề tài "Xây dựng website bán giày cho cửa hàng The Shoe Shop" được thực hiện bởi sinh viên Huỳnh Quốc Khánh (ngành Kỹ thuật Phần mềm, Viện Kỹ thuật – Công nghệ, Trường Đại học Thủ Dầu Một) dưới sự hướng dẫn của ThS. Nguyễn Hữu Vĩnh vào tháng 09/2021.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Xây dựng các chức năng cần thiết của một website thương mại điện tử phục vụ khách hàng tìm kiếm, lựa chọn, quản lý giỏ hàng, áp dụng mã giảm giá, tính phí vận chuyển theo khu vực và đặt mua giày trực tuyến.
  2. Xây dựng phân hệ quản trị dành cho quản trị viên (Admin) nhằm kiểm soát dữ liệu sản phẩm, danh mục, thương hiệu, phân quyền tài khoản, theo dõi đơn hàng và thống kê doanh thu.
  3. Thiết kế giao diện trực quan, thân thiện, tương thích và hiển thị linh hoạt trên nhiều loại thiết bị (máy tính để bàn, máy tính bảng, điện thoại thông minh).
  • Đối tượng nghiên cứu: Quy trình vận hành thương mại điện tử, phân tích thiết kế hệ thống và mã nguồn website bán giày trực tuyến cho cửa hàng The Shoe Shop.
  • Phạm vi nghiên cứu: Mô hình kinh doanh của cửa hàng bán lẻ giày dép The Shoe Shop; môi trường triển khai ứng dụng web trên máy chủ cục bộ và hệ quản trị cơ sở dữ liệu quan hệ tại thời điểm năm 2021.

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

Đề tài áp dụng các lý thuyết về phát triển phần mềm theo mô hình MVC (Model - View - Controller), chuẩn hóa cơ sở dữ liệu quan hệ và kiến trúc ứng dụng web.

Các công nghệ và công cụ phát triển được tác giả lựa chọn bao gồm:

  • Mô hình máy chủ LAMP: Kết hợp hệ điều hành Linux, máy chủ web Apache, hệ quản trị cơ sở dữ liệu MySQL và ngôn ngữ lập trình PHP.
  • Ngôn ngữ PHP và Laravel Framework: Sử dụng nền tảng Laravel (mô hình MVC) để xây dựng phần mềm xử lý phía máy chủ (Back-end), tận dụng cơ chế PDO nhằm chống tấn công SQL Injection, sử dụng token ẩn để ngăn ngừa tấn công CSRF, cơ chế Escape biến tự động trên View nhằm chống tấn công XSS, cùng thư viện SwiftMailer hỗ trợ chức năng gửi thư điện tử.
  • Bootstrap Framework: Framework HTML, CSS và JavaScript cung cấp hệ thống lưới responsive, các thành phần giao diện mẫu (typography, forms, buttons, tables, navigation, modal, carousels) tương thích tốt từ các trình duyệt hiện đại (Chrome, Firefox, Safari, Opera) đến Internet Explorer (từ bản IE9 trở lên).
  • Thư viện jQuery và kỹ thuật AJAX: Sử dụng jQuery (kích thước gọn nhẹ xấp xỉ 19KB gzipped, bộ chọn Sizzle) để đơn giản hóa thao tác xử lý phần tử DOM, bắt sự kiện và hiệu ứng; tích hợp kỹ thuật AJAX (Asynchronous JavaScript and XML) thông qua đối tượng XMLHttpRequest để truyền tải, cập nhật dữ liệu từng phần không đồng bộ mà không cần tải lại toàn bộ trang web.

Phương pháp nghiên cứu thực tế gồm có:

  • Phương pháp nghiên cứu tài liệu: Thu thập, tổng hợp tài liệu chuyên ngành về lập trình PHP, tài liệu hướng dẫn Laravel, Bootstrap, jQuery và quy trình an toàn bảo mật web.
  • Phương pháp khảo sát thực tế: Khảo sát quy trình nghiệp vụ mua bán hàng trực tuyến thực tế, phân tích cấu trúc chức năng thông qua việc đối chiếu với website thương mại điện tử thực tế (hệ thống website Navi Booking tại địa chỉ http://navi.vn).

Thiết kế và kiến trúc hệ thống

Hệ thống được tổ chức phân quyền thành hai tác nhân chính: Khách hàng (User) và Quản trị viên (Admin), liên kết với cơ sở dữ liệu quan hệ gồm 17 bảng dữ liệu được thiết kế chi tiết:

Tên bảng CSDL Khóa chính Chức năng lưu trữ dữ liệu
tbl_customer customer_id Thông tin tài khoản khách hàng (tên, email, mật khẩu, địa chỉ).
tbl_product product_id Thông tin sản phẩm giày (tên, danh mục, nhãn hiệu, size, mô tả, giá tiền, hình ảnh, trạng thái, số lượng).
tbl_category category_id Danh mục sản phẩm (tên, mô tả, danh mục cha, trạng thái, thứ tự sắp xếp).
tbl_brand brand_id Thương hiệu sản phẩm (tên, mô tả, trạng thái, thứ tự sắp xếp).
tbl_favorite favorite_id Danh sách sản phẩm yêu thích của khách hàng (customer_id, product_id).
tbl_order order_id Thông tin đơn hàng (mã khách hàng, mã vận chuyển, phương thức thanh toán, tổng tiền, tiền giảm từ coupon, phí vận chuyển, ngày đặt, trạng thái).
tbl_order_detials order_detials_id Chi tiết mặt hàng trong đơn hàng (mã hóa đơn, mã sản phẩm, số lượng, đơn giá).
tbl_shipping shipping_id Thông tin người nhận hàng (tên, số điện thoại, email, địa chỉ, ghi chú giao hàng).
tbl_payment payment_id Phương thức và tình trạng thanh toán của đơn hàng.
tbl_feeship fee_id Dữ liệu cấu hình phí vận chuyển theo khu vực hành chính (tỉnh/thành, quận/huyện, xã/phường).
tbl_tinhthanhpho matp Danh mục đơn vị hành chính cấp tỉnh/thành phố (tên, loại).
tbl_quyanhuyen maqh Danh mục đơn vị hành chính cấp quận/huyện (tên, loại, mã tỉnh/thành phố trực thuộc matp).
tbl_xaphuongthitran xaid Danh mục đơn vị hành chính cấp xã/phường/thị trấn (tên, loại, mã quận/huyện trực thuộc maqh).
tbl_coupon coupon_id Thông tin mã giảm giá (tên mã, mã code, số lượng, giá trị giảm, điều kiện giảm theo % hoặc tiền mặt, thời gian bắt đầu/kết thúc, trạng thái).
tbl_admin admin_id Tài khoản quản trị hệ thống (email, mật khẩu, họ tên, số điện thoại).
tbl_roles id_roles Danh mục các vai trò, quyền hạn trong hệ thống quản trị.
admin_roles id_admin_roles Bảng trung gian phân quyền giữa tài khoản admin và vai trò (admin_id, roles_id).

Hệ thống cung cấp sơ đồ liên kết màn hình và đặc tả luồng xử lý chi tiết cho 9 Use Case trọng tâm:

  1. Đặc tả UC Đăng ký: Cho phép khách hàng nhập thông tin tài khoản; hệ thống kiểm tra tính hợp lệ và thông báo kết quả.
  2. Đặc tả UC Đăng nhập: Kiểm tra thông tin định danh (email, mật khẩu) cho cả tác nhân Khách hàng và Admin.
  3. Đặc tả UC Mua hàng: Cho phép khách hàng chọn mặt hàng, tùy chỉnh số lượng, thêm/xóa sản phẩm trong giỏ hàng và chuyển tiếp sang bước thanh toán.
  4. Đặc tả UC Thay đổi thông tin: Hỗ trợ người dùng cập nhật hồ sơ cá nhân đã lưu trong hệ thống.
  5. Đặc tả UC Thanh toán: Xử lý xác nhận đơn hàng, địa chỉ giao nhận và phương thức thanh toán (Checkout -> Order Now).
  6. Đặc tả UC Quản lý sản phẩm: Cho phép Admin thực hiện các thao tác thêm mới (tự động phát sinh mã sản phẩm), hiệu chỉnh thông tin, cập nhật trạng thái hoặc xóa sản phẩm.
  7. Đặc tả UC Quản lý thương hiệu: Cho phép Admin thêm, sửa, xóa và hiển thị danh mục các thương hiệu giày.
  8. Đặc tả UC Quản lý danh mục: Cho phép Admin quản lý cây danh mục sản phẩm của hệ thống.
  9. Đặc tả UC Quản lý đơn hàng: Cho phép Admin theo dõi danh sách đơn hàng, chuyển đổi trạng thái đơn hàng theo chu trình từ Pending (Chờ duyệt) sang Shipting (Đang giao hàng) và Remove (Xóa/hoàn tất).

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

Chương 1: Tổng quan

Chương 1 thiết lập bài toán tổng quan về việc xây dựng nền tảng thương mại điện tử chuyên ngành giày dép cho cửa hàng The Shoe Shop. Tác giả chỉ rõ thực trạng kinh doanh truyền thống đang gặp nhiều hạn chế trước xu hướng số hóa và nhu cầu mua sắm tại nhà của người tiêu dùng. Chương này xác định rõ mục tiêu xây dựng một website hoàn chỉnh cả phân hệ bán hàng lẫn phân hệ quản trị, đồng thời đưa ra phạm vi nghiên cứu và phương pháp tiếp cận thực tế thông qua việc nghiên cứu tài liệu kỹ thuật và đối chiếu các website thương mại điện tử đang hoạt động.

Chương 2: Cơ sở lý thuyết

Chương 2 phân tích quy trình mua sắm truyền thống so với quy trình mua sắm trực tuyến, nêu bật kết quả khảo sát từ trang web thực tế navi.vn. Tác giả trình bày chi tiết về kiến trúc các công nghệ được sử dụng:

  • Đặc tính của thư viện JavaScript jQuery trong xử lý DOM, xử lý sự kiện và hỗ trợ AJAX.
  • Cơ chế hoạt động của AJAX trong việc giao tiếp dữ liệu bất đồng bộ với máy chủ thông qua XMLHttpRequests.
  • Tính năng của CSS Framework Bootstrap trong việc xây dựng giao diện responsive thích ứng đa màn hình.
  • Nền tảng môi trường LAMP, nguyên lý hoạt động của ngôn ngữ PHP khi tương tác cùng máy chủ Apache và MySQL.
  • Cấu trúc framework Laravel theo mô hình MVC, các tiện ích tích hợp sẵn như hệ thống bảo mật (chống SQL Injection qua PDO, chống CSRF bằng Token ẩn, chống XSS qua Blade templating) và API thư viện SwiftMailer.

Chương 3: Phân tích thiết kế cơ sở dữ liệu và hệ thống

Chương 3 tập trung vào công tác phân tích yêu cầu người dùng, khảo sát chức năng hệ thống và thiết kế mô hình dữ liệu. Tác giả mô tả chi tiết:

  • Yêu cầu lưu trữ danh mục sản phẩm, lịch sử giao dịch, tính toán phí giao hàng theo 3 cấp hành chính (Tỉnh/Thành phố, Quận/Huyện, Xã/Phường/Thị trấn) và cơ chế giảm giá theo coupon.
  • Lược đồ cơ sở dữ liệu gồm 17 thực thể quan hệ, liệt kê rõ các trường thông tin và khóa chính cho từng bảng.
  • Hệ thống sơ đồ Use Case tổng quát, Use Case dành riêng cho Admin và Use Case dành cho Khách hàng.
  • Văn bản đặc tả chi tiết 9 Use Case chính (bao gồm luồng sự kiện chính, luồng phụ và điều kiện trước/sau).
  • Sơ đồ liên kết màn hình giao diện người dùng và quản trị viên.

Chương 4: Xây dựng ứng dụng

Chương 4 mô tả kết quả lập trình và hiện thực hóa các giao diện chức năng của hệ thống:

  • Phân hệ Quản trị (Admin):
    • Giao diện đăng nhập Admin tích hợp cơ chế xác thực bảo mật bằng mã captcha.
    • Bảng điều khiển (Dashboard) thống kê dữ liệu: số lượng tài khoản khách hàng, số lượng đơn hàng chưa duyệt, doanh thu 7 ngày gần nhất và biểu đồ thống kê doanh thu theo mốc ngày chỉ định.
    • Giao diện quản lý danh mục, thương hiệu và sản phẩm (hỗ trợ nhập size, giá, ảnh, mô tả, số lượng tồn kho).
    • Phân hệ quản lý đơn hàng: hiển thị danh sách đơn đặt hàng, xem chi tiết hóa đơn, thực hiện duyệt đơn và xuất hóa đơn.
    • Phân hệ cấu hình mã giảm giá (coupon), tính phí vận chuyển theo khu vực hành chính và quản lý phân quyền tài khoản quản trị.
  • Phân hệ Khách hàng (User):
    • Giao diện đăng ký, đăng nhập tài khoản người dùng.
    • Giao diện hiển thị danh sách sản phẩm, bộ lọc sản phẩm theo mức giá, phân loại theo danh mục và thương hiệu.
    • Giao diện chi tiết sản phẩm và tính năng thêm sản phẩm vào danh sách yêu thích (tbl_favorite).
    • Quy trình giỏ hàng, nhập mã giảm giá, tự động tính phí vận chuyển dựa trên địa chỉ nhận hàng, chọn phương thức thanh toán và hoàn tất đặt hàng.
    • Giao diện quản lý hồ sơ cá nhân, đổi mật khẩu và tra cứu lịch sử các hóa đơn đã mua cùng chi tiết từng đơn hàng.

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

Đồ án đã xây dựng thành công ứng dụng web thương mại điện tử hoàn chỉnh cho cửa hàng The Shoe Shop với các kết quả cụ thể:

  • Hiện thực hóa đầy đủ hệ thống chức năng: Hoàn thiện 17 bảng cơ sở dữ liệu liên kết chặt chẽ; tích hợp thành công hai phân hệ chức năng riêng biệt cho Quản trị viên và Khách hàng.
  • Tích hợp các tính năng nghiệp vụ mở rộng: Xây dựng module tính phí vận chuyển linh hoạt theo địa bàn hành chính 3 cấp (Tỉnh/Thành phố, Quận/Huyện, Xã/Phường); module áp dụng mã coupon giảm giá (tính theo tỷ lệ phần trăm hoặc số tiền cố định); chức năng lưu sản phẩm yêu thích và chức năng thống kê doanh thu theo mốc thời gian.
  • Đảm bảo tính bảo mật và trải nghiệm người dùng: Áp dụng mã captcha cho trang quản trị, sử dụng cơ chế bảo mật có sẵn của Laravel (PDO, CSRF token, XSS filtering), đồng thời ứng dụng Bootstrap và AJAX để tối ưu tốc độ phản hồi và tính tương thích trên các thiết bị di động.

Về mặt đóng góp, đồ án cung cấp một sản phẩm ứng dụng có khả năng triển khai thực tế cho các cửa hàng bán lẻ giày dép quy mô vừa và nhỏ, đồng thời đóng vai trò như một tài liệu tham khảo hoàn chỉnh về quy trình thiết kế và phát triển ứng dụng web thương mại điện tử bằng PHP/Laravel.

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

Dựa trên phạm vi và nội dung được trình bày trong văn bản báo cáo:

  • Hạn chế: Hệ thống được thiết kế và kiểm thử trên môi trường cục bộ; phân hệ thanh toán trực tuyến và tích hợp các cổng thanh toán trung gian chưa được chi tiết hóa sâu về mặt kỹ thuật; quy trình xử lý luồng đơn hàng vẫn phụ thuộc vào các thao tác xác nhận trạng thái thủ công giữa khách hàng và người quản trị.
  • Hướng phát triển: Tác giả xác định tiếp tục hoàn thiện và phát triển thêm các tính năng nâng cao cho website trong mục "Hướng phát triển" của đồ án nhằm nâng cao hiệu quả vận hành thực tế.

Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo hữu ích cho:

  • Sinh viên chuyên ngành Kỹ thuật Phần mềm, Công nghệ Thông tin đang thực hiện đồ án chuyên ngành, khóa luận tốt nghiệp về đề tài xây dựng website thương mại điện tử.
  • Người học cần tham khảo cấu trúc phân tích thiết kế hệ thống theo chuẩn: từ khảo sát yêu cầu, mô hình hóa Use Case, thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh (đặc biệt là mô hình địa giới hành chính Việt Nam và phân quyền Roles) đến việc lập trình ứng dụng trên nền tảng Laravel Framework.

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

1. Hệ thống sử dụng những công nghệ và framework nào để phát triển?
Website được xây dựng trên nền tảng LAMP (Linux, Apache, MySQL, PHP) kết hợp cùng Laravel Framework ở phía máy chủ. Giao diện người dùng sử dụng thư viện Bootstrap, jQuery và kỹ thuật truyền tải dữ liệu không đồng bộ AJAX.

2. Cơ sở dữ liệu của hệ thống gồm bao nhiêu bảng và quản lý những thực thể nào?
Cơ sở dữ liệu bao gồm 17 bảng: tbl_customer, tbl_product, tbl_category, tbl_brand, tbl_favorite, tbl_order, tbl_order_detials, tbl_shipping, tbl_payment, tbl_feeship, tbl_tinhthanhpho, tbl_quyanhuyen, tbl_xaphuongthitran, tbl_coupon, tbl_admin, tbl_roles, và admin_roles.

3. Cơ chế tính phí vận chuyển được thiết kế và lưu trữ như thế nào?
Phí vận chuyển được quản lý thông qua bảng tbl_feeship, liên kết trực tiếp với hệ thống danh mục địa giới hành chính 3 cấp gồm Tỉnh/Thành phố (tbl_tinhthanhpho), Quận/Huyện (tbl_quyanhuyen) và Xã/Phường/Thị trấn (tbl_xaphuongthitran) để tự động áp dụng mức phí tương ứng khi khách hàng chọn địa chỉ nhận hàng.

4. Những giải pháp an toàn và bảo mật nào được áp dụng trong ứng dụng?
Website tích hợp mã captcha tại giao diện đăng nhập Admin; tận dụng các cơ chế bảo mật của Laravel bao gồm PDO để chống SQL Injection, sử dụng trường Token ẩn chống tấn công CSRF, cơ chế Escape biến chống tấn công XSS và phân quyền tài khoản quản trị theo vai trò (tbl_roles, admin_roles).

5. Chu trình quản lý trạng thái đơn hàng phía Admin diễn ra như thế nào?
Khi khách hàng đặt hàng, đơn hàng được liệt kê trong hệ thống ở trạng thái chờ duyệt (Pending). Khi Admin phê duyệt, hệ thống chuyển trạng thái sang đang giao (Shipting). Sau khi khách hàng nhận được hàng và xác nhận, hệ thống chuyển sang trạng thái hoàn tất (Remove), cho phép người quản trị dọn dẹp hoặc gỡ bỏ đơn hàng khỏi danh sách chờ xử lý.

Kết luận

Đồ án "Xây dựng website bán giày cho cửa hàng The Shoe Shop" của sinh viên Huỳnh Quốc Khánh đã hoàn thành mục tiêu xây dựng một ứng dụng thương mại điện tử hoàn chỉnh trên nền tảng PHP và Laravel Framework. Báo cáo thể hiện quy trình phân tích thiết kế bài bản, từ việc đặc tả yêu cầu, thiết kế 17 bảng cơ sở dữ liệu quan hệ đến việc hiện thực hóa đầy đủ các phân hệ chức năng cho Khách hàng và Quản trị viên. Đề tài là tài liệu thực hành có giá trị tham khảo rõ ràng cho sinh viên kỹ thuật phần mềm trong việc phát triển các hệ thống web bán hàng trực tuyến.