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

Trong bối cảnh công nghệ thông tin và xu thế thương mại điện tử phát triển mạnh mẽ, phương thức tiếp cận khách hàng truyền thống của các cửa hàng kinh doanh thiết bị tin học — điển hình là việc sử dụng bảng báo giá giấy — bộc lộ nhiều hạn chế. Chi phí in ấn và phân phối bảng giá tương đối cao, trong khi danh mục linh kiện máy tính ngày càng đa dạng và giá cả biến động liên tục. Mặt khác, phương thức thủ công không đáp ứng được yêu cầu về độ phủ thông tin, thiếu công cụ quản lý dữ liệu người dùng, quản lý kho hàng hóa, cập nhật giá linh hoạt và theo dõi thanh toán.

Đề tài "Xây dựng website bán linh kiện máy tính cho Công ty TNHH MTSHOP" được thực hiện nhằm giải quyết các bất cập trên bằng cách chuyển đổi quy trình giới thiệu và bán hàng sang môi trường trực tuyến. Mục tiêu nghiên cứu và triển khai của đồ án được phân định cụ thể theo hai nhóm đối tượng:

  1. Về phía người dùng (khách hàng):

    • Cung cấp công cụ tìm kiếm và tra cứu linh kiện máy tính theo nhu cầu sử dụng (học tập, làm việc, giải trí hoặc đồ họa).
    • Hiển thị đầy đủ thông tin chi tiết, đặc điểm kỹ thuật và giá cả của từng linh kiện.
    • Hỗ trợ tính năng xây dựng cấu hình máy tính phù hợp với nhu cầu cá nhân.
    • Cung cấp cơ chế quản lý giỏ hàng trực tuyến (thêm, bớt, xem tổng tiền) và thực hiện quy trình đặt mua hàng thuận tiện, nhanh chóng.
  2. Về phía người quản trị hệ thống (Admin):

    • Thiết lập cơ chế xác thực và phân quyền truy cập an toàn cho người quản trị.
    • Quản lý tập trung thông tin tài khoản người dùng và thông tin khách hàng.
    • Quản lý danh mục hàng hóa và thông tin chi tiết của từng sản phẩm linh kiện.
    • Cập nhật, chỉnh sửa và xóa dữ liệu trực tiếp trên cơ sở dữ liệu thông qua giao diện trang quản trị.
    • Tiếp nhận, xử lý và cập nhật trạng thái các đơn đặt hàng.

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

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ bán hàng, quản lý đơn hàng và dữ liệu sản phẩm linh kiện máy tính tại Công ty TNHH MTSHOP.
  • Phạm vi thực hiện: Đồ án chuyên ngành thuộc học phần Báo cáo mã nguồn mở, Viện Kỹ thuật Công nghệ – Trường Đại học Thủ Dầu Một; thực hiện bởi sinh viên Võ Minh Tấn dưới sự hướng dẫn của ThS. Nguyễn Hữu Vĩnh; hoàn thành vào tháng 11 năm 2021 tại Bình Dương.

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

Đồ án vận dụng kiến trúc phát triển ứng dụng web hiện đại cùng các công nghệ mã nguồn mở phổ biến để xây dựng hệ thống phần mềm thương mại điện tử:

  • Mô hình kiến trúc MVC (Model – View – Controller): Tách biệt rõ ràng giữa tầng dữ liệu (Model), tầng giao diện (View) và tầng điều khiển logic (Controller), giúp nâng cao hiệu suất xử lý, chuẩn hóa tài liệu và thuận lợi cho việc bảo trì, mở rộng mã nguồn.
  • Ngôn ngữ lập trình PHP: Ngôn ngữ kịch bản phía máy chủ (server-side script) mã nguồn mở, hỗ trợ khả năng nhúng linh hoạt vào mã nguồn HTML, kết nối hiệu quả với các hệ quản trị cơ sở dữ liệu quan hệ và chiếm thị phần lớn trên các nền tảng web.
  • Framework Laravel (phiên bản 7.12): Khung làm việc mã nguồn mở dựa trên PHP do Taylor Otwell phát triển, hỗ trợ hệ thống định tuyến (Routing) mạnh mẽ thừa hưởng từ Symfony, tính năng Database Migration giúp kiểm soát cấu trúc cơ sở dữ liệu bằng mã PHP, kỹ thuật ORM tích hợp PDO phòng chống tấn công SQL Injection và cơ chế CSRF token chống giả mạo yêu cầu chéo trang.
  • Framework Bootstrap & Thư viện jQuery: Bộ công cụ giao diện người dùng hỗ trợ thiết kế web tương thích đa thiết bị (Responsive Design) qua hệ thống lưới (Grid System) và tiền xử lý Sass/Less; tích hợp bộ biểu tượng Glyphicons Halflings; kết hợp jQuery để xử lý các hiệu ứng động, tương tác và các yêu cầu Ajax.
  • Nền tảng điện toán đám mây Heroku (PaaS): Nền tảng PaaS vận hành ứng dụng trên các máy ảo (dynos), hỗ trợ mở rộng theo chiều ngang hoặc chiều dọc, tích hợp môi trường cơ sở dữ liệu, chứng chỉ SSL miễn phí và kết nối trực tiếp với GitHub.
  • Công cụ phát triển: Môi trường máy chủ cục bộ XAMPP, công cụ quản lý cơ sở dữ liệu Navicat, trình soạn thảo mã nguồn Visual Studio Code và hệ quản trị cơ sở dữ liệu MySQL.

Phương pháp nghiên cứu:

  • Phương pháp phân tích nghiệp vụ: Khảo sát luồng giao dịch bán lẻ linh kiện máy tính thực tế (từ bước xem danh mục, chọn hàng, lập hóa đơn đến thanh toán và giao nhận).
  • Phương pháp mô hình hóa hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa UML để xây dựng 10 biểu đồ Use Case (phân rã chức năng cho Khách hàng, Quản trị viên và Người dùng vãng lai), các biểu đồ hoạt động (Activity Diagram) cho luồng Đăng nhập, Đặt hàng, Quản lý đơn hàng và biểu đồ lớp (Class Diagram).
  • Phương pháp thiết kế cơ sở dữ liệu quan hệ: Chuẩn hóa dữ liệu, xác định các trường khóa chính, khóa ngoại và ràng buộc toàn vẹn cho hệ thống.

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

1. Kiến trúc công nghệ và môi trường thực thi

Hệ thống được phát triển hoàn toàn theo mô hình MVC trên nền tảng PHP Framework Laravel phiên bản 7.12, cơ sở dữ liệu quan hệ MySQL, giao diện responsive sử dụng Bootstrap kết hợp jQuery, và được cấu hình để có thể triển khai thực tế trên nền tảng PaaS Heroku.

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

Cơ sở dữ liệu của hệ thống bao gồm 6 bảng thực thể chính, được chuẩn hóa nhằm đáp ứng đầy đủ quy trình bán hàng và quản trị:

STT Tên bảng (Entity) Chức năng lưu trữ dữ liệu Khóa chính
1 products Danh sách thông tin chi tiết linh kiện, giá niêm yết, đường dẫn hình ảnh ProductId
2 bills Thông tin đơn đặt hàng tổng quát, ngày đặt, tổng tiền, trạng thái bill_id
3 bill_details Thông tin chi tiết các sản phẩm trong từng đơn hàng, số lượng, giá bán id
4 categories Danh sách các danh mục phân loại linh kiện máy tính categoryID
5 users Tài khoản truy cập hệ thống của người dùng và quản trị viên Id
6 customers Thông tin cá nhân, địa chỉ nhận hàng và số điện thoại của người mua Id

Chi tiết thuộc tính và ràng buộc của các bảng chính:

  • Bảng products: ProductId (bigint, PK), CategoryID (bigint, Not Null), ProductName (varchar(255), Not Null), ListPrice (int, Not Null), ProductImage (varchar(255)), Image1 (varchar(255)), Image2 (varchar(255)), Image3 (varchar(255)), Description (text), Create_at (timestamp), Update_at (timestamp).
  • Bảng bills: bill_id (int, PK), customerID (int, Not Null), date_order (datetime, Not Null), total (double, Not Null), note (varchar(255), Not Null), status (varchar(255), Not Null), create_at (timestamp, Not Null), update_at (timestamp, Not Null).
  • Bảng bill_details: id (int, PK), bill_id (int, Not Null), productID (int, Not Null), quantily (float, Not Null), price (bigint, Not Null), create_at (timestamp, Not Null), update_at (timestamp, Not Null).
  • Bảng categories: categoryID (bigint, PK), categoryName (varchar(255), Not Null), cate_description (text), create_at (timestamp), update_at (timestamp).
  • Bảng users: Id (bigint, PK), name (varchar(255), Not Null), email (varchar(255), Not Null), password (varchar(255), Not Null), Email_verified_at (varchar(255)), typeuser (varchar(255), Not Null), Remember_token (varchar(100), Not Null), create_at (timestamp), update_at (timestamp).
  • Bảng customers: Id (bigint, PK), name (varchar(255), Not Null), email (varchar(255), Not Null), address (varchar(100), Not Null), Phone_number (varchar(255)), note (varchar(255)), create_at (timestamp), update_at (timestamp).

3. Các phân hệ chức năng đã xây dựng

Phân hệ người dùng (Client Side):

  • Trang chủ: Hiển thị thanh menu điều hướng (Giới thiệu, Sản phẩm, Liên hệ, Giỏ hàng, Trang Admin), thanh tìm kiếm nhanh và danh mục sản phẩm nổi bật.
  • Trang đăng nhập / Đăng ký: Cho phép người dùng tạo tài khoản mới và đăng nhập để sử dụng các dịch vụ của website.
  • Trang giỏ hàng: Hệ thống tự động khởi tạo giỏ hàng riêng cho mỗi phiên truy cập, cho phép thêm, sửa đổi số lượng hoặc xóa linh kiện.
  • Trang đặt hàng: Tiếp nhận thông tin giao hàng (họ tên, địa chỉ, số điện thoại, ghi chú); sau khi khách hàng bấm xác nhận, dữ liệu được chuyển đến quản trị viên và hệ thống tự động gửi email phản hồi về hòm thư của khách hàng.
  • Trang tra cứu & chi tiết: Cung cấp trang tìm kiếm sản phẩm đa tiêu chí, trang chi tiết sản phẩm (kèm tính năng xem sản phẩm liên quan và gửi bình luận đánh giá) và trang theo dõi trạng thái đơn hàng.

Phân hệ quản trị (Admin Side):

  • Trang chủ thống kê: Bảng điều khiển trực quan tổng hợp số lượng danh mục, số lượng sản phẩm, tổng đơn hàng và số người dùng đang có trên hệ thống.
  • Quản lý danh mục: Hỗ trợ xem chi tiết, thêm mới, sửa đổi thông tin và xóa danh mục linh kiện.
  • Quản lý sản phẩm: Quản trị danh sách linh kiện, cập nhật giá, thông số kỹ thuật, hình ảnh minh họa và xóa sản phẩm.
  • Quản lý người dùng: Quản lý danh sách tài khoản thành viên trong hệ thống, chỉnh sửa thông tin hoặc xóa tài khoản.
  • Quản lý đơn hàng: Xem chi tiết các đơn đặt hàng từ khách hàng, cập nhật trạng thái xử lý (chờ duyệt, đang xử lý, hoàn tất) hoặc xóa đơn hàng.
  • Tìm kiếm quản trị: Hỗ trợ quản trị viên tra cứu nhanh sản phẩm trong kho dữ liệu lớn.

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

Chương 1: Tổng quan

Chương 1 giới thiệu lý do lựa chọn đề tài xuất phát từ sự bùng nổ của thương mại điện tử trong cuộc cách mạng công nghiệp 4.0; phân tích thực trạng kinh doanh linh kiện máy tính thủ công và nêu rõ sự cần thiết của việc số hóa quy trình bán hàng cho Công ty TNHH MTSHOP. Tác giả khái quát các yêu cầu chức năng đối với người dùng, quản trị viên và phác thảo cấu trúc 5 module cốt lõi: Module sản phẩm; Module tìm kiếm, liên hệ, giới thiệu; Module quản lý sản phẩm, đơn hàng; Module giỏ hàng; Module đăng ký thành viên, đăng nhập hệ thống.

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

Chương 2 trình bày tổng quan các kiến thức nền tảng và công nghệ được ứng dụng trong đề tài. Nội dung bao gồm: khái niệm PaaS Heroku, cơ chế hoạt động qua dynos, chính sách gói miễn phí (giới hạn 550 giờ/tháng, chế độ ngủ sau 2–3 giờ không có traffic); lịch sử và ưu điểm của PHP Framework Laravel (mô hình MVC, di chuyển cơ sở dữ liệu Migration, bảo mật PDO, token CSRF); các thành phần của Bootstrap (CSS, JS, jQuery, Responsive Grid System, Glyphicons Halflings); và vai trò của ngôn ngữ PHP trong lập trình web động kết hợp hệ quản trị MySQL.

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

Chương 3 tập trung vào công tác phân tích và thiết kế kỹ thuật. Tác giả xác định 3 tác nhân tương tác (Khách hàng, Admin, User/Khách vãng lai); chi tiết hóa yêu cầu người dùng; xây dựng hệ thống biểu đồ Use Case tổng quát và 9 biểu đồ Use Case chi tiết; thiết kế các biểu đồ hoạt động thể hiện luồng xử lý đăng nhập, đặt hàng và quản lý đơn hàng; xây dựng biểu đồ lớp mô tả quan hệ giữa các đối tượng; và lập bảng đặc tả cấu trúc 6 bảng cơ sở dữ liệu (products, bills, bill_details, categories, users, customers).

Chương 4: Thiết kế và xây dựng Website

Chương 4 mô tả chi tiết kết quả lập trình và xây dựng giao diện thực tế của website MTSHOP trên nền tảng Laravel 7.12 và MySQL. Chương này trình bày cấu trúc và hình ảnh minh họa cho 8 giao diện phía người dùng (Trang chủ hiển thị, Trang đăng nhập, Trang giỏ hàng, Trang đặt hàng, Email thông báo sau đặt hàng, Trang chi tiết đơn hàng, Trang tìm kiếm, Trang chi tiết sản phẩm) và 6 giao diện phía quản trị (Trang chủ thống kê, Trang quản lý danh mục, Trang quản lý sản phẩm, Trang quản lý người dùng, Trang quản lý đơn hàng, Trang tìm kiếm quản trị).

Chương 5: Kết luận và hướng phát triển

Chương 5 tổng kết toàn bộ quá trình thực hiện đồ án chuyên ngành. Tác giả đánh giá kết quả đạt được về mặt kỹ năng lập trình PHP/Laravel/MySQL và kiến thức chuyên ngành; tự nhận định các ưu điểm nổi bật, thẳng thắn chỉ ra các nhược điểm kỹ thuật còn tồn đọng và đề xuất định hướng nâng cấp hệ thống trong tương lai.


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

  • Kết quả triển khai kỹ thuật:

    • Hoàn thành xây dựng website thương mại điện tử bán linh kiện máy tính MTSHOP hoạt động trên kiến trúc MVC của Laravel 7.12 và hệ quản trị cơ sở dữ liệu MySQL.
    • Thiết kế thành công giao diện web responsive bằng Bootstrap và jQuery, tối ưu khả năng hiển thị trên nhiều kích thước màn hình.
    • Xây dựng hoàn chỉnh luồng nghiệp vụ mua hàng: duyệt sản phẩm -> đưa vào giỏ hàng -> nhập form thông tin giao hàng -> ghi nhận đơn hàng vào cơ sở dữ liệu -> tự động gửi email xác nhận đến khách hàng.
    • Xây dựng phân hệ quản trị tập trung cho phép thống kê số liệu, quản lý danh mục, quản lý sản phẩm kèm nhiều hình ảnh mô tả, quản lý thông tin khách hàng và cập nhật trạng thái đơn hàng.
  • Đóng góp của đồ án:

    • Cung cấp một giải pháp ứng dụng công nghệ mã nguồn mở (PHP, Laravel, Bootstrap, MySQL, Heroku) có tính khả thi cho mô hình kinh doanh bán lẻ linh kiện máy tính quy mô vừa và nhỏ.
    • Thể hiện đầy đủ quy trình kỹ thuật phần mềm từ bước khảo sát nghiệp vụ thực tế, mô hình hóa phân tích thiết kế bằng UML (Use Case, Activity, Class Diagram), chuẩn hóa cơ sở dữ liệu quan hệ đến khâu lập trình và kiểm thử giao diện.

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

1. Hạn chế hiện tại

Theo tự đánh giá của tác giả trong văn bản, đồ án còn tồn tại một số hạn chế kỹ thuật:

  • Hệ thống có quy mô nhỏ, chủ yếu mang tính chất mô phỏng quy trình bán hàng.
  • Cấu trúc cơ sở dữ liệu còn đơn giản, chưa bao quát được toàn bộ các thông số kỹ thuật phức tạp của linh kiện máy tính.
  • Cơ chế phân quyền người dùng và quản trị viên chưa đạt mức tối ưu.
  • Chưa tích hợp module thanh toán trực tuyến tự động (mới dừng ở bước ghi nhận đơn hàng và gửi email).
  • Hệ thống vẫn còn một số lỗi nhỏ trong quá trình vận hành và còn thiếu một số xử lý kiểm tra yêu cầu (request).

2. Hướng phát triển tiếp

  • Hoàn thiện đầy đủ các yêu cầu nghiệp vụ chuyên sâu của hệ thống bán hàng trực tuyến.
  • Nâng cấp và tối ưu hóa hệ thống phân quyền quản trị đa cấp, nâng cao độ an toàn bảo mật.
  • Mở rộng cấu trúc cơ sở dữ liệu phong phú hơn để quản lý chi tiết thông số linh kiện và kiểm soát tồn kho chính xác.
  • Tích hợp các cổng thanh toán trực tuyến tự động.
  • Tối ưu hóa tốc độ xử lý của website, đồng thời nghiên cứu xu hướng và trải nghiệm người dùng để tiếp tục bổ sung các tính năng phù hợp.

Giá trị tham khảo

Báo cáo đồ án chuyên ngành này mang lại giá trị tham khảo thiết thực cho:

  • 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 cụ thể về phương pháp xây dựng một ứng dụng web bán hàng hoàn chỉnh sử dụng framework Laravel và cơ sở dữ liệu MySQL.
  • Người học lập trình web mã nguồn mở: Cung cấp tài liệu tổng quan dễ hiểu về cách áp dụng kiến trúc MVC, tích hợp thư viện Bootstrap, kỹ thuật ORM, bảo vệ CSRF trong Laravel và cách thức vận hành của nền tảng điện toán đám mây Heroku.
  • Học viên thực hiện đồ án tốt nghiệp: Cung cấp mẫu phân tích thiết kế hệ thống chuẩn hóa, bao gồm danh mục biểu đồ Use Case chi tiết, biểu đồ hoạt động nghiệp vụ và quy cách thiết kế các bảng dữ liệu cho một hệ thống thương mại điện tử cơ bản.

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

1. Đồ án "Website bán linh kiện máy tính MTSHOP" được xây dựng bằng những công nghệ và công cụ nào?
Website được phát triển dựa trên ngôn ngữ lập trình PHP kết hợp Framework Laravel phiên bản 7.12 (mô hình MVC), hệ quản trị cơ sở dữ liệu MySQL, giao diện responsive sử dụng Framework Bootstrap, HTML, CSS và jQuery. Các công cụ hỗ trợ gồm có XAMPP, Navicat, Visual Studio Code và nền tảng đám mây Heroku.

2. Cơ sở dữ liệu của hệ thống gồm những bảng nào và thông tin chi tiết đơn hàng được lưu trữ ở đâu?
Cơ sở dữ liệu gồm 6 bảng chính: products (thông tin sản phẩm), bills (thông tin đơn hàng tổng quát), bill_details (hay order_details - lưu chi tiết từng món hàng, số lượng, giá trên đơn), categories (danh mục sản phẩm), users (tài khoản hệ thống) và customers (thông tin khách hàng đặt hàng). Thông tin chi tiết các mặt hàng trong đơn được lưu trữ tại bảng bill_details.

3. Sau khi khách hàng hoàn tất việc nhập thông tin đặt hàng, hệ thống xử lý như thế nào?
Sau khi khách hàng điền đầy đủ thông tin (họ tên, địa chỉ, số điện thoại) và bấm xác nhận, hệ thống sẽ lưu thông tin đơn hàng vào cơ sở dữ liệu, gửi dữ liệu về trang quản trị để quản trị viên duyệt đơn, đồng thời tự động kích hoạt gửi một email phản hồi xác nhận đơn hàng đến địa chỉ email mà khách hàng đã cung cấp.

4. Tác giả tự chỉ ra những điểm còn thiếu sót và cần cải tiến nhất của website là gì?
Tác giả nêu rõ website còn mang tính chất mô phỏng, cơ sở dữ liệu nhỏ, phân quyền chưa tối ưu, chưa kết hợp xử lý chức năng thanh toán hóa đơn trực tuyến, vẫn còn một số lỗi nhỏ khi vận hành và còn thiếu một số xử lý request.

5. Vì sao tác giả lựa chọn Laravel làm framework phát triển chính cho đề tài?
Theo phân tích trong báo cáo, Laravel là framework mã nguồn mở miễn phí, hỗ trợ cấu trúc MVC và lập trình hướng đối tượng OOP rõ ràng, sở hữu hệ thống thư viện và cộng đồng hỗ trợ lớn, hỗ trợ tính năng Database Migration giúp quản lý cơ sở dữ liệu dễ dàng, và tích hợp sẵn các cơ chế bảo mật như ORM PDO chống SQL Injection cùng cơ chế token ngăn chặn tấn công CSRF.


Kết luận

Đồ án "Xây dựng website bán linh kiện máy tính cho Công ty TNHH MTSHOP" do sinh viên Võ Minh Tấn thực hiện đã hoàn thành mục tiêu thiết kế và triển khai một ứng dụng thương mại điện tử hoàn chỉnh trên nền tảng Laravel 7.12 và MySQL. Văn bản thể hiện đầy đủ quy trình xây dựng phần mềm từ khâu khảo sát thực tế, mô hình hóa hệ thống bằng biểu đồ UML, thiết kế cơ sở dữ liệu quan hệ đến xây dựng giao diện người dùng và bảng điều khiển quản trị. Mặc dù hệ thống còn mang tính chất mô phỏng và cần hoàn thiện thêm tính năng thanh toán trực tuyến, công trình là tài liệu học thuật và kỹ thuật có giá trị tham khảo rõ ràng cho sinh viên chuyên ngành Công nghệ thông tin và Kỹ thuật phần mềm.