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

Trong bối cảnh công nghệ thông tin và lĩnh vực thương mại điện tử phát triển mạnh mẽ, việc ứng dụng các nền tảng trực tuyến giúp cá nhân và doanh nghiệp kinh doanh tiếp cận khách hàng một cách nhanh chóng và hiệu quả. Nhu cầu sở hữu website giới thiệu, kinh doanh sản phẩm và tạo không gian tương tác ngày càng trở nên thiết yếu.

Đề tài "Xây Dựng Website Bán Sách Cho Sinh Viên" được tác giả Tô Thị Kim Ngân (Lớp D17PM02, Viện Kỹ thuật - Công nghệ, Trường Đại học Thủ Dầu Một) thực hiện trong khuôn khổ đồ án môn học Phát triển phần mềm mã nguồn mở, dưới sự hướng dẫn của ThS. Nguyễn Hữu Vĩnh (hoàn thành ngày 30 tháng 11 năm 2020).

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

  1. Tổng hợp, áp dụng các kiến thức về công nghệ phần mềm mã nguồn mở để xây dựng một website thương mại điện tử hiện đại, dễ bảo trì và nâng cấp.
  2. Thiết kế hệ thống giới thiệu các danh mục sách, hỗ trợ sinh viên tìm kiếm thông tin, xem trước nội dung và mua sách phục vụ học tập, nghiên cứu và giải trí.
  3. Xây dựng kênh tương tác cho phép độc giả để lại bình luận, đánh giá về các tác phẩm sách ưa thích.
  4. Cung cấp phân hệ quản trị (Admin) hỗ trợ quản lý danh mục, cập nhật sản phẩm, theo dõi đơn hàng và phân quyền tài khoản.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế, cài đặt và kiểm thử ứng dụng web bán sách trực tuyến; các công nghệ mã nguồn mở gồm PHP, MySQL, Framework Laravel và công cụ kiểm thử Selenium.
  • Phạm vi đối tượng phục vụ: Khách hàng trọng tâm là sinh viên có nhu cầu mua sách tham khảo, sách tự học và sách giải trí; hệ thống có định hướng mở rộng thành sàn thương mại điện tử toàn diện trong tương lai.

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

Đề tài sử dụng hệ thống lý thuyết về phát triển phần mềm mã nguồn mở và kiến trúc ứng dụng web đa tầng:

  • Ngôn ngữ PHP và Hệ quản trị cơ sở dữ liệu MySQL: Nền tảng lập trình kịch bản phía máy chủ kết hợp cơ sở dữ liệu quan hệ có tốc độ xử lý cao, ổn định, khả năng chuyển đổi linh hoạt trên nhiều hệ điều hành và hỗ trợ giao dịch mạnh mẽ.
  • Framework Laravel: Nền tảng mã nguồn mở xây dựng trên mô hình kiến trúc MVC (Model - View - Controller), tích hợp các thành phần của Symfony, quản lý gói phụ thuộc qua Composer, sử dụng giao diện dòng lệnh Artisan terminal và tương thích tốt trên môi trường Linux lẫn Windows.
  • Cơ chế an toàn ứng dụng web: Tích hợp sẵn Eloquent ORM sử dụng PHP Data Objects (PDO) để ngăn chặn tấn công SQL Injection; sử dụng trường token ẩn bảo vệ hệ thống trước tấn công Cross-Site Request Forgery (CSRF); tự động lọc (escape) biến truyền ra View nhằm triệt tiêu lỗ hổng Cross-Site Scripting (XSS).

Phương pháp thực hiện đồ án bao gồm:

  • Phương pháp phân tích và thiết kế hệ thống: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng sơ đồ Lớp (Class Diagram), sơ đồ Ca sử dụng (Use-Case Diagram), sơ đồ Tuần tự (Sequence Diagram) và sơ đồ Hoạt động (Activity Diagram).
  • Phương pháp phát triển phần mềm: Hiện thực hóa giao diện và logic xử lý dựa trên mô hình MVC với công cụ soạn thảo mã nguồn Visual Studio Code trên nền máy chủ cục bộ XAMPP (Apache, MySQL, phpMyAdmin).
  • Phương pháp kiểm thử phần mềm: Ứng dụng công cụ Selenium để thiết lập môi trường kiểm thử tự động các chức năng và sự kiện trên website.

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

Hệ thống được thiết kế theo kiến trúc chuẩn của Laravel framework, phân định rõ ràng giữa tầng dữ liệu, tầng logic điều hướng và tầng giao diện người dùng.

Yêu cầu cấu hình phần cứng và môi trường

Thành phần Thông số kỹ thuật tối thiểu
Bộ vi xử lý (CPU) Tối thiểu 2 Core
Bộ nhớ trong (RAM) Tối thiểu 2 GB RAM
Dung lượng lưu trữ Tối thiểu 10 GB ổ cứng
Môi trường phát triển XAMPP (Apache, MySQL, phpMyAdmin), Composer, Artisan CLI
Môi trường soạn thảo & kiểm thử Visual Studio Code, Selenium

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống được tổ chức qua các bảng dữ liệu có cấu trúc quan hệ chặt chẽ:

Tên bảng Khóa chính Các trường thuộc tính chính Chức năng lưu trữ
product (Sach) id name, id_type, description, unit_price, promotion_price, Image, New, created_at, updated_at Lưu trữ thông tin chi tiết sản phẩm sách, giá bán, giá khuyến mãi và trạng thái sách mới
slide id Image, created_at, updated_at Lưu trữ hình ảnh trình chiếu (slide) và thông tin liên quan đến nhà xuất bản
User id full_name, Email, Password, Phone, Address, Role, created_at, updated_at Quản lý tài khoản người dùng, mật khẩu, thông tin cá nhân và phân quyền hệ thống
Customer id Name, Gender, Email, Address, phone_number, Note, created_at, updated_at Lưu trữ dữ liệu khách hàng thực hiện đăng ký và đặt hàng
type_products id name, created_at, updated_at Quản lý danh mục mã loại và tên chủ đề phân loại sách
bills id id_customer, date_order, total, payment, note, created_at, updated_at Quản lý thông tin tổng quan hóa đơn mua hàng, ngày đặt, tổng tiền và hình thức thanh toán
bill_detail id id_bill, id_product, quantity, unit_price, created_at, updated_at Lưu trữ chi tiết đơn hàng, liên kết khóa ngoại giữa bảng hóa đơn và bảng sản phẩm

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

Chương 1: Giới thiệu

Chương mở đầu trình bày lý do chọn đề tài xuất phát từ nhu cầu thực tiễn trong kinh doanh sách và ứng dụng công nghệ mã nguồn mở hiện đại. Nội dung xác định phạm vi phục vụ chính là đối tượng sinh viên có nhu cầu mua sách tham khảo, sách tự học và đọc giải trí. Tác giả phân chia chức năng tổng thể thành hai phân hệ: phía khách hàng (đăng ký, đăng nhập, tìm kiếm, xem chi tiết sản phẩm, đặt hàng, quản lý thông tin) và phía quản trị (quản lý sản phẩm, chỉnh sửa thông tin, xóa sản phẩm, quản lý chủ đề và phân quyền). Chương này cũng xác lập danh mục công nghệ triển khai gồm PHP, Laravel, Symfony, Composer, Artisan, XAMPP, phpMyAdmin và Visual Studio Code cùng yêu cầu phần cứng tối thiểu.

Chương 2: Tổng quan PHP & MySQL

Chương 2 cung cấp bức tranh tổng quan về lịch sử phát triển và lý do lựa chọn các công nghệ cốt lõi:

  • Tiến trình phát triển PHP: Phân tích các giai đoạn từ PHP/FI (Rasmus Lerdorf phát triển năm 1995), PHP/FI 2.0 (1997 với khoảng 50.000 tên miền, chiếm 1% Internet), PHP 3.0 (Andi Gutmans và Zeev Suraski viết lại năm 1997, ra mắt tháng 6/1998, chiếm xấp xỉ 10% máy chủ web), PHP 4.0 (ra mắt tháng 5/2000 với động cơ Zend Engine, chiếm 20% tên miền Internet), PHP 5.0 (ra mắt tháng 7/2004 với Zend Engine 2, bổ sung PDO ở bản 5.1), đến định hướng của PHP 6.
  • Đánh giá ưu thế: Lý giải việc chọn PHP dựa trên tính mở, cộng đồng lớn, thư viện phong phú, khả năng kết nối nhiều hệ quản trị cơ sở dữ liệu và hỗ trợ lập trình hướng đối tượng. Phân tích ưu điểm của MySQL về tính ổn định, tốc độ cao, khả năng chạy trên hơn 20 nền tảng (Linux, Windows, OS/X, HP-UX, Solaris...).
  • Đặc trưng Framework Laravel: Nêu bật các ưu điểm vượt trội gồm: cấu trúc MVC rõ ràng, tài liệu hướng dẫn chuẩn xác, khả năng khởi tạo nhanh các tính năng xác thực người dùng thông qua lệnh $ php artisan make:auth, tích hợp các lớp bảo mật chống SQL Injection, CSRF, XSS và khả năng mở rộng linh hoạt.

Chương 3: Phân tích và thiết kế hệ thống

Chương 3 tập trung mô hình hóa hệ thống bằng các biểu đồ UML và đặc tả kỹ thuật:

  • Thiết kế dữ liệu: Trình bày sơ đồ lớp tổng quát và chi tiết 7 bảng dữ liệu quan hệ (product, slide, User, Customer, type_products, bills, bill_detail).
  • Mô hình hóa Ca sử dụng (Use-Case): Xây dựng sơ đồ Use-case tổng quan và chi tiết kèm bảng đặc tả từng ca sử dụng:
    • Đăng nhập (Bảng 8): Actor gồm Admin và Khách hàng; mô tả luồng sự kiện chính từ hiển thị màn hình, kiểm tra thông tin đến đăng nhập thành công và luồng phụ cảnh báo sai thông tin.
    • Đăng xuất (Bảng 9): Cho phép người dùng kết thúc phiên làm việc.
    • Xem sản phẩm (Bảng 10): Cho phép khách hàng xem toàn bộ danh mục, lọc theo thể loại hoặc theo nhà sản xuất.
    • Xem giỏ hàng và Cập nhật giỏ hàng (Bảng 11, Bảng 12): Cho phép xem lại các mặt hàng đã chọn, điều chỉnh số lượng hoặc xóa sản phẩm khỏi giỏ kèm luồng phụ xử lý khi hết hàng tồn kho.
    • Mua hàng và Thanh toán (Bảng 13, Bảng 14): Quy trình thêm hàng vào giỏ và hoàn tất đặt hàng với hai hình thức: thanh toán khi nhận hàng hoặc thanh toán qua ngân hàng trực tuyến (kèm các luồng phụ xử lý lỗi giao dịch ngân hàng).
    • Quản trị hệ thống (Bảng 15, Bảng 16): Chức năng dành cho Admin quản lý danh sách đơn hàng và cập nhật thông tin sản phẩm.
  • Sơ đồ Tuần tự và Hoạt động: Mô hình hóa luồng xử lý tương tác giữa Actor, Giao diện, Điều khiển và Dữ liệu cho các tiến trình: Đăng ký, Đăng nhập, Xem sản phẩm, Tìm kiếm sản phẩm, Đặt hàng, Kiểm tra tình trạng đơn hàng và Quản lý thông tin cá nhân.

Chương 4: Giao diện phần mềm website

Chương 4 tổng hợp và minh họa 19 màn hình chức năng của website:

  • Giao diện người dùng (Khách hàng): Trang chủ (Hình 34), Trang đăng ký (Hình 35), Trang đăng nhập (Hình 36), Trang chi tiết sản phẩm (Hình 37), Trang tìm kiếm sản phẩm (Hình 38), Trang đổi mật khẩu (Hình 39), Trang quên mật khẩu (Hình 40), Trang đặt hàng (Hình 41), Trang chỉnh sửa thông tin cá nhân (Hình 42), Trang sản phẩm theo thể loại (Hình 43), Trang giới thiệu (Hình 44).
  • Giao diện quản trị (Admin): Trang quản trị sản phẩm (Hình 45), Trang chỉnh sửa banner (Hình 46), Trang quản trị thêm mới sản phẩm (Hình 47), Trang quản trị xóa sản phẩm (Hình 48), Trang kiểm tra đơn hàng (Hình 49), Trang chỉnh sửa quyền hạn (Hình 50), Trang danh mục chủ đề (Hình 51), Trang thêm chủ đề sách (Hình 52).

Chương 5: Cài đặt và Kiểm thử

Chương 5 trình bày cách thức tổ chức cấu trúc mã nguồn, cấu hình các sự kiện chức năng trong website trên nền tảng Laravel và quy trình cài đặt công cụ Selenium để thực hiện kiểm thử tự động phần mềm, bảo đảm các luồng xử lý sự kiện và thao tác người dùng hoạt động chính xác.

Chương 6: Tài liệu tham khảo

Liệt kê các nguồn tư liệu học thuật, tài liệu hướng dẫn kỹ thuật của Laravel, PHP, MySQL và tài liệu kiểm thử phục vụ xây dựng đồ án.


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

Đồ án đã hoàn thành các mục tiêu đề ra về mặt kỹ thuật và ứng dụng thực tiễn:

  • Xây dựng thành công website bán sách trực tuyến hoàn chỉnh với đầy đủ quy trình từ duyệt sản phẩm, lọc theo chủ đề, xem chi tiết, quản lý giỏ hàng đến đặt hàng và chọn phương thức thanh toán.
  • Thiết kế hệ thống cơ sở dữ liệu quan hệ chuẩn hóa gồm 7 thực thể chính, bảo đảm tính toàn vẹn dữ liệu giữa thông tin khách hàng, sản phẩm, đơn hàng và chi tiết đơn hàng.
  • Hoàn thiện hệ thống trang quản trị cho phép người quản lý thực hiện toàn diện các tác vụ CRUD (Tạo mới, Đọc, Cập nhật, Xóa) đối với sản phẩm, chủ đề sách, biểu ngữ (banner) và theo dõi tình trạng đơn hàng.
  • Ứng dụng quy trình phát triển dựa trên mô hình MVC và các tiêu chuẩn bảo mật sẵn có của Laravel (chống SQL Injection qua PDO, chống CSRF và XSS), kết hợp thiết lập quy trình kiểm thử tự động với Selenium.

Hạn chế và hướng phát triển

Theo tự đánh giá của tác giả trong văn bản, đồ án còn một số hạn chế do năng lực và thời gian thực hiện có giới hạn, khó tránh khỏi những thiếu sót trong quá trình phát triển chương trình.

Hướng phát triển mở rộng được đề xuất:

  • Mở rộng phạm vi và tính năng của hệ thống để phát triển thành một trang web thương mại điện tử hoàn chỉnh, quy mô lớn hơn.
  • Nâng cấp và hoàn thiện thêm các tính năng tương tác chuyên sâu, tối ưu hóa giao diện và trải nghiệm người dùng trong tương lai.

Giá trị tham khảo

Báo cáo đồ án mang lại giá trị tham khảo hữu ích cho sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và các ngành kỹ thuật liên quan:

  • Tài liệu tham khảo đồ án môn học: Là mẫu tài liệu hoàn chỉnh cho học phần Phát triển phần mềm mã nguồn mở, minh họa rõ ràng từ khâu giới thiệu công nghệ, khảo sát lịch sử, phân tích thiết kế hệ thống đến triển khai giao diện.
  • Mẫu biểu đồ và đặc tả Use-Case: Các bảng đặc tả ca sử dụng chi tiết (từ Bảng 8 đến Bảng 17) cùng danh mục sơ đồ tuần tự, sơ đồ hoạt động là nguồn tham khảo cụ thể cho sinh viên khi làm tài liệu phân tích thiết kế hệ thống.
  • Hướng dẫn kiến trúc MVC với Laravel: Cung cấp tư liệu thực tế về cách tổ chức cơ sở dữ liệu và tích hợp các chức năng cốt lõi của một hệ thống thương mại điện tử cơ bản.

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

1. Đề tài được thực hiện bởi ai, thuộc đơn vị đào tạo nào?

Đề tài do sinh viên Tô Thị Kim Ngân (MSSV: 1724801030083, Lớp D17PM02) thực hiện dưới sự hướng dẫn của ThS. Nguyễn Hữu Vĩnh tại Viện Kỹ thuật - Công nghệ, Trường Đại học Thủ Dầu Một, hoàn thành vào ngày 30 tháng 11 năm 2020.

2. Các công nghệ và công cụ chính nào được sử dụng trong dự án?

Hệ thống sử dụng ngôn ngữ lập trình PHP, Framework Laravel (theo mô hình MVC), các thành phần Symfony, trình quản lý gói Composer, công cụ dòng lệnh Artisan, hệ quản trị cơ sở dữ liệu MySQL quản lý qua phpMyAdmin trên nền XAMPP, môi trường lập trình Visual Studio Code và công cụ kiểm thử tự động Selenium.

3. Cơ sở dữ liệu của hệ thống gồm những bảng nào?

Cơ sở dữ liệu gồm 7 bảng chính: product (bảng Sach lưu sản phẩm), slide (lưu ảnh slide/nhà xuất bản), User (lưu tài khoản và phân quyền), Customer (lưu thông tin khách đặt hàng), type_products (lưu danh mục chủ đề sách), bills (lưu thông tin hóa đơn đơn hàng), và bill_detail (lưu chi tiết các sản phẩm trong hóa đơn).

4. Hệ thống đã tích hợp những giải pháp bảo mật nào từ framework?

Dự án tận dụng các cơ chế bảo mật có sẵn của Laravel gồm: sử dụng PDO trong Eloquent ORM để ngăn chặn tấn công SQL Injection, sử dụng token ẩn trong form để chống tấn công CSRF, và tự động xử lý escape các biến hiển thị ra View để phòng chống lỗ hổng XSS.

5. Khách hàng có những lựa chọn thanh toán nào khi mua sách trên website?

Theo đặc tả Use-case Thanh toán (Bảng 14), hệ thống hỗ trợ hai phương thức thanh toán: thanh toán khi nhận hàng hoặc thanh toán trực tuyến qua cổng kết nối của ngân hàng.


Kết luận

Báo cáo đồ án môn học "Xây Dựng Website Bán Sách Cho Sinh Viên" của tác giả Tô Thị Kim Ngân đã trình bày chi tiết quy trình xây dựng ứng dụng thương mại điện tử mã nguồn mở dựa trên nền tảng PHP, MySQL và Laravel framework. Văn bản hoàn thành đầy đủ các nội dung từ tổng quan công nghệ, phân tích thiết kế hệ thống với các biểu đồ UML chuẩn hóa, thiết kế cơ sở dữ liệu 7 bảng quan hệ đến xây dựng giao diện và thiết lập môi trường kiểm thử với Selenium. Đồ án phản ánh đúng năng lực tổng hợp kiến thức chuyên ngành và là tài liệu tham khảo thực hành hữu ích cho sinh viên khối ngành kỹ thuật phần mềm.