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

Sự phát triển của công nghệ thông tin và mạng Internet đã thúc đẩy mạnh mẽ các hoạt động kinh doanh chuyển dịch sang môi trường trực tuyến. Mô hình kinh doanh online được nhiều cửa hàng lựa chọn nhằm mở rộng khả năng tiếp cận khách hàng và tối ưu hóa doanh thu. Cùng với sự phổ biến của điện thoại thông minh, nhu cầu mua sắm và tìm kiếm các sản phẩm đồng hồ tại thị trường Việt Nam gia tăng đáng kể.

Tuy nhiên, thị trường này có sự tham gia của hàng trăm, hàng ngàn đơn vị kinh doanh, tạo ra mức độ cạnh tranh cao. Việc mỗi cửa hàng áp dụng các mức giá, chính sách và chương trình ưu đãi khác nhau khiến người tiêu dùng gặp khó khăn trong việc tra cứu thông tin, so sánh giá cả và lựa chọn sản phẩm phù hợp. Để giải quyết vấn đề này, đề tài "Thiết kế website bán đồng hồ qua mạng" (hay "Phân tích thiết kế và xây dựng Website bán đồng hồ") được thực hiện nhằm xây dựng một kênh thông tin và bán hàng trực tuyến, hỗ trợ người dùng tiếp cận sản phẩm và dịch vụ thuận tiện.

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

  1. Trình bày các vấn đề lý thuyết liên quan đến ngôn ngữ lập trình PHP, hệ quản trị cơ sở dữ liệu MySQL và mô hình kiến trúc MVC.
  2. Phân tích hệ thống phần mềm bao gồm thiết kế giao diện và các hoạt động (activities) nhằm đáp ứng nhu cầu sử dụng thực tế.
  3. Triển khai, cài đặt và hoàn thiện chương trình ứng dụng.

Đố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ế và xây dựng website thương mại điện tử chuyên ngành bán lẻ đồng hồ.
  • Phạm vi công nghệ: Ứng dụng ngôn ngữ lập trình PHP, Framework Laravel, cơ sở dữ liệu MySQL, kết hợp HTML và CSS.
  • Phạm vi nghiệp vụ: Tập trung vào các chức năng khảo sát từ thực tế, phục vụ hai nhóm người dùng chính là Quản trị viên (Admin) và Khách hàng (Customer), bao gồm việc bán hàng trực tuyến và hỗ trợ thông tin dịch vụ sửa chữa, bảng giá.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết và công nghệ sử dụng

Khóa luận xây dựng trên nền tảng lý thuyết phân tích thiết kế hướng đối tượng (OOAD), kiến trúc phần mềm và các công nghệ phát triển web tiêu chuẩn:

  • Phân tích và thiết kế hướng đối tượng (OOAD): Là giai đoạn phát triển mô hình của bài toán dựa trên các đối tượng và khái niệm thực tế. Tác giả vận dụng 5 nguyên tắc cốt lõi trong thiết kế hướng đối tượng:

    1. Nguyên tắc đơn trách nhiệm: Một lớp chỉ nên có một lý do duy nhất để thay đổi và xử lý một chức năng đơn lẻ.
    2. Nguyên tắc Đóng/Mở (Open/Closed): Các lớp, mô-đun cần mở cho việc mở rộng tính năng mới nhưng đóng đối với việc chỉnh sửa mã nguồn sẵn có.
    3. Nguyên tắc thay thế Liskov: Lớp dẫn xuất (lớp con) phải có khả năng thay thế hoàn toàn cho lớp cha.
    4. Nguyên tắc phân tách Interface: Chương trình không bị ép buộc phải cài đặt các giao diện (interface) mà nó không sử dụng.
    5. Nguyên tắc đảo ngược phụ thuộc: Các mô-đun cấp cao không phụ thuộc vào mô-đun cấp thấp; cả hai đều phụ thuộc thông qua lớp trừu tượng (abstraction).
  • Ngôn ngữ đánh dấu và định dạng (HTML & CSS):

    • HTML (Hypertext Markup Language): Được sử dụng để định nghĩa cấu trúc và nội dung của trang web thông qua hệ thống thẻ (đoạn văn, tiêu đề, danh sách, hình ảnh, bảng biểu).
    • CSS (Cascading Style Sheets): Được dùng để mô tả cách trình bày các tài liệu HTML/XHTML (phông chữ, màu sắc, kích thước, bố cục hiển thị).
Tiêu chí HTML CSS
Bản chất Ngôn ngữ đánh dấu mô tả tài liệu web Ngôn ngữ quy định cách hiển thị phần tử
Vai trò Tạo khung cấu trúc và nội dung văn bản Định dạng phong cách, màu sắc, bố cục
Cơ chế hoạt động Sử dụng các thẻ (tags) Sử dụng các bộ chọn và thuộc tính kiểu
  • Mô hình kiến trúc MVC (Model – View – Controller):

    • Model: Đảm nhiệm chức năng lưu trữ dữ liệu, truy xuất cơ sở dữ liệu và xử lý các logic nghiệp vụ.
    • View: Chịu trách nhiệm hiển thị dữ liệu trực quan cho người dùng dựa trên thông tin nhận từ Model.
    • Controller: Xử lý tương tác từ người dùng (bàn phím, chuột), tiếp nhận yêu cầu, cập nhật trạng thái của Model và điều phối thay đổi trên View.
  • Ngôn ngữ PHP và Laravel Framework:

    • PHP: Ngôn ngữ lập trình kịch bản mã nguồn mở, phát triển từ những năm 1990, phục vụ phát triển ứng dụng web động và quản trị cơ sở dữ liệu.
    • Laravel Framework: Khung làm việc PHP hỗ trợ cấu trúc MVC với các đặc tính: tính mô-đun hóa cao, hệ thống xác thực (authentication) tích hợp, cơ chế định tuyến (routing) linh hoạt thân thiện với SEO, bộ nhớ đệm (caching) tối ưu hiệu năng và cơ chế bảo mật (mã hóa mật khẩu dạng hash, chống tấn công SQL Injection).

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp tiếp cận: Vận dụng phương pháp phân tích thiết kế hướng đối tượng (OOAD), mô hình hóa hệ thống bằng ngôn ngữ UML thông qua biểu đồ ca sử dụng (Use Case Diagram), biểu đồ tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram).
  • Nguồn dữ liệu: Dữ liệu khảo sát nghiệp vụ thực tế về nhu cầu mua sắm, giá cả, dịch vụ sửa chữa đồng hồ và các thông số quản trị hệ thống bán lẻ.

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

Hệ thống được thiết kế phân quyền rõ rệt thành hai nhóm tác nhân: Khách hàng (Customer) và Quản trị viên (Admin).

Phân tích ca sử dụng (Use Case)

Các ca sử dụng được đặc tả chi tiết với điều kiện đầu vào, dòng sự kiện chính, dòng sự kiện rẽ nhánh (A1) và điều kiện đầu ra:

Tác nhân Nhóm chức năng / Ca sử dụng Mô tả hoạt động chính và xử lý rẽ nhánh
Khách hàng (Customer) Đăng ký / Đăng nhập / Đăng xuất Nhập thông tin tài khoản; hệ thống kiểm tra tính hợp lệ, báo lỗi nếu nhập sai (A1) hoặc lưu tài khoản/phiên làm việc nếu hợp lệ.
Xem chi tiết sản phẩm Lấy thông tin chi tiết sản phẩm theo mã và hiển thị lên giao diện form.
Đặt hàng & Thanh toán Quản lý giỏ hàng (cập nhật số lượng, xóa sản phẩm); kiểm tra tồn kho (báo không đủ nếu vượt số lượng - A1); nhập thông tin nhận hàng và thanh toán.
Quản lý đơn hàng cá nhân Xem danh sách đơn đã đặt, xem chi tiết; thực hiện xóa đơn hàng nếu đơn chưa giao dịch (báo lỗi nếu đã giao dịch - A1).
Cập nhật thông tin cá nhân Thay đổi thông tin cá nhân; hệ thống kiểm tra định dạng và cập nhật cơ sở dữ liệu.
Đánh giá sản phẩm Đánh giá sản phẩm đã mua theo từng đơn hàng; lưu dữ liệu đánh giá vào hệ thống.
Quản trị viên (Admin) Quản lý danh mục & Quản lý từ khóa Thêm, sửa, xóa, tìm kiếm danh mục và từ khóa sản phẩm; kiểm tra ràng buộc dữ liệu trước khi xóa.
Quản lý sản phẩm Thêm sản phẩm mới, cập nhật thông tin sản phẩm, tìm kiếm và xóa sản phẩm không còn ràng buộc.
Quản lý đơn hàng Xem danh sách, tra cứu đơn hàng, xem chi tiết đơn và cập nhật trạng thái/thông tin đơn đặt hàng.
Quản lý thành viên Tra cứu thông tin người dùng, theo dõi lịch sử thành viên mua hàng và thực hiện xóa tài khoản vi phạm.
Quản lý bài viết, menu, slide Thêm, sửa, xóa, tìm kiếm bài viết tin tức; cập nhật cấu trúc menu hiển thị; quản trị hình ảnh slide trình chiếu trên trang chủ.

Thiết kế tương tác và cơ sở dữ liệu

Hệ thống xây dựng 9 biểu đồ tuần tự mô tả chi tiết luồng thông điệp giữa giao diện, bộ điều khiển và cơ sở dữ liệu:

  1. Biểu đồ tuần tự Đăng ký tài khoản.
  2. Biểu đồ tuần tự Đăng nhập hệ thống.
  3. Biểu đồ tuần tự Xem dữ liệu trang quản lý.
  4. Biểu đồ tuần tự Thêm dữ liệu trang quản lý.
  5. Biểu đồ tuần tự Cập nhật dữ liệu trang quản lý.
  6. Biểu đồ tuần tự Xóa dữ liệu trang quản lý.
  7. Biểu đồ tuần tự Tìm kiếm dữ liệu trang quản lý.
  8. Biểu đồ tuần tự Đặt hàng.
  9. Biểu đồ tuần tự Đánh giá sản phẩm.

Về mặt dữ liệu, mối quan hệ giữa các thực thể và cấu trúc bảng được chuẩn hóa thông qua Biểu đồ lớp (Class Diagram), kết nối chặt chẽ giữa các đối tượng người dùng, sản phẩm, danh mục, đơn vị giỏ hàng, đơn hàng và nội dung truyền thông.


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

CHƯƠNG I: CƠ SỞ LÝ THUYẾT

Chương I tập trung tổng hợp các nền tảng lý thuyết và công nghệ nền tảng phục vụ xây dựng ứng dụng web:

  • Trình bày định nghĩa phân tích thiết kế hướng đối tượng (OOAD) và phân tích sâu 5 nguyên tắc SOLID trong kiến trúc hướng đối tượng.
  • So sánh sự khác nhau giữa ngôn ngữ đánh dấu HTML (xây dựng cấu trúc, nội dung) và ngôn ngữ định dạng CSS (thiết lập phong cách, giao diện) dựa trên tài liệu chuẩn của W3Schools.
  • Giới thiệu mô hình kiến trúc MVC, nêu rõ vai trò chuyên biệt của ba thành phần Model, View, Controller và các ưu điểm: phân tách mã nguồn rõ ràng, thuận tiện trong vận hành, bảo trì, kiểm soát luồng xử lý và phù hợp cho các dự án phần mềm.
  • Giới thiệu ngôn ngữ PHP và Framework Laravel; phân tích các tính năng cốt lõi của Laravel gồm: tính mô-đun hóa, tính năng tạo xác thực bằng lệnh đơn giản, định tuyến hỗ trợ URL thân thiện, cơ chế bộ nhớ đệm tăng hiệu năng và tính năng bảo mật mật khẩu dạng hash cùng khả năng chống tấn công truy vấn.

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

Chương II thực hiện mô hình hóa toàn bộ hệ thống bán đồng hồ:

  • Xây dựng sơ đồ Use Case tổng quát và sơ đồ Use Case chi tiết cho từng phân hệ (Customer, Quản lý từ khóa, Quản lý danh mục, Quản lý sản phẩm, Quản lý thành viên, Quản lý menu, Quản lý bài viết, Quản lý đơn hàng, Quản lý slide).
  • Đặc tả chi tiết từng ca sử dụng theo cấu trúc chuẩn: tác nhân, mô tả, điều kiện kích hoạt, dòng sự kiện chính, dòng sự kiện rẽ nhánh (A1) và điều kiện kết thúc.
  • Thiết lập 9 biểu đồ tuần tự nhằm trực quan hóa các tương tác thời gian thực giữa người dùng, hệ thống và cơ sở dữ liệu trong các tác vụ: xác thực, thao tác dữ liệu quản trị (CRUD, tìm kiếm), quy trình đặt hàng và đánh giá sản phẩm.
  • Thiết kế mô hình cơ sở dữ liệu thông qua biểu đồ lớp (Class Diagram) làm nền tảng tổ chức dữ liệu trên hệ quản trị MySQL.

CHƯƠNG III: TRIỂN KHAI PHẦN MỀM

Chương III trình bày kết quả hiện thực hóa phần mềm thông qua các giao diện chức năng chính đã được cài đặt:

  • Giao diện người dùng (Frontend): Giao diện trang chủ (hiển thị slide, menu, danh mục và danh sách đồng hồ), giao diện trang xem chi tiết sản phẩm, giao diện trang đặt hàng (giỏ hàng) và giao diện trang thanh toán.
  • Giao diện quản trị (Backend/Admin): Giao diện đăng nhập trang quản lý, giao diện quản lý danh mục sản phẩm, giao diện quản lý thành viên, giao diện quản lý hệ thống menu điều hướng, giao diện quản lý bài viết tin tức và giao diện theo dõi, xử lý đơn hàng.

CHƯƠNG IV: KẾT LUẬN

Chương IV tổng kết lại các kết quả đạt được sau quá trình nghiên cứu và thực hiện đề tài, đối chiếu với các mục tiêu ban đầu về mặt lý thuyết, phân tích thiết kế và xây dựng sản phẩm website bán hàng hoàn chỉnh.


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

Kết quả chính

  • Hệ thống hóa đầy đủ cơ sở lý thuyết về phân tích thiết kế hướng đối tượng (5 nguyên tắc SOLID), kiến trúc MVC, ngôn ngữ PHP, HTML/CSS và Framework Laravel.
  • Hoàn thành tài liệu phân tích thiết kế hệ thống chi tiết với:
    • 11 sơ đồ Use Case (1 Use Case tổng quát và 10 Use Case phân hệ).
    • 9 biểu đồ tuần tự mô tả chính xác các quy trình nghiệp vụ.
    • 1 biểu đồ lớp chi tiết phục vụ cấu trúc cơ sở dữ liệu.
  • Xây dựng và cài đặt thành công website bán đồng hồ qua mạng với đầy đủ 10 giao diện chức năng cốt lõi cho cả phân hệ người dùng và quản trị viên:
    • Phân hệ khách hàng: Cho phép đăng ký, đăng nhập, tìm kiếm sản phẩm/dịch vụ, xem chi tiết sản phẩm, đặt hàng, quản lý đơn cá nhân, thanh toán, cập nhật thông tin và gửi đánh giá sản phẩm.
    • Phân hệ quản trị: Cho phép quản lý toàn diện từ khóa, danh mục, sản phẩm, thành viên, menu, bài viết, đơn hàng và slide trình chiếu.

Đóng góp của đề tài

  • Ứng dụng quy trình phân tích thiết kế hướng đối tượng chuẩn mực vào một bài toán thương mại điện tử cụ thể.
  • Xây dựng giải pháp kỹ thuật hoàn chỉnh kết hợp giữa Laravel Framework và MySQL, chứng minh tính hiệu quả của mô hình MVC trong việc phân tách logic nghiệp vụ, nâng cao tính bảo mật và tối ưu hóa hiệu năng ứng dụng web.

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

  • Hạn chế: Theo phạm vi trình bày trong văn bản, hệ thống tập trung vào các chức năng nghiệp vụ bán hàng và quản trị cốt lõi dựa trên khảo sát thực tế; một số tính năng mở rộng về thanh toán trực tuyến phức tạp hoặc các dịch vụ sửa chữa chuyên sâu mới dừng lại ở mức giao diện và xử lý dữ liệu cơ bản.
  • Hướng nghiên cứu tiếp: Mở rộng và hoàn thiện các mô-đun tích hợp nâng cao, phát triển thêm các nghiệp vụ hỗ trợ khách hàng đa kênh và tối ưu hóa hệ thống báo cáo thống kê chuyên sâu.

Giá trị tham khảo

Đồ án tốt nghiệp 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: Làm tài liệu tham khảo mẫu về phương pháp xây dựng báo cáo đồ án tốt nghiệp, đặc biệt là kỹ thuật đặc tả Use Case chi tiết (bao gồm cả dòng sự kiện chính và luồng rẽ nhánh A1) và cách xây dựng biểu đồ tuần tự trong UML.
  • Người phát triển ứng dụng web PHP/Laravel: Cung cấp tài liệu tham khảo về việc áp dụng 5 nguyên tắc hướng đối tượng vào thực tế, cách tổ chức thư mục và phân chia thành phần theo mô hình MVC trên nền tảng Laravel Framework.

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

1. Tác giả đã vận dụng những nguyên tắc hướng đối tượng nào trong đồ án?
Tác giả đã trình bày và áp dụng 5 nguyên tắc hướng đối tượng: (1) Một lớp chỉ xử lý một chức năng đơn lẻ; (2) Các lớp/mô-đun mở cho việc thêm mới nhưng đóng cho việc sửa đổi; (3) Lớp dẫn xuất phải thay thế được lớp cha; (4) Không ép buộc cài đặt interface không dùng; (5) Mô-đun cấp cao và cấp thấp phụ thuộc nhau qua lớp trừu tượng.

2. Kiến trúc MVC được tác giả phân chia nhiệm vụ như thế nào?
Model đảm nhiệm lưu trữ dữ liệu và logic nghiệp vụ; View chịu trách nhiệm trình bày dữ liệu trực quan trên giao diện; Controller tiếp nhận tương tác người dùng, xử lý dữ liệu đầu vào và điều phối cập nhật trạng thái giữa Model và View.

3. Khung làm việc Laravel có những tính năng nổi bật nào được đề cập trong văn bản?
Các tính năng được nêu gồm: tính mô-đun hóa, hệ thống xác thực người dùng tích hợp sẵn, cơ chế định tuyến linh hoạt hỗ trợ SEO, bộ nhớ đệm giúp tăng hiệu suất xử lý và cơ chế bảo mật (lưu mật khẩu dạng hash, chống tấn công truy vấn cơ sở dữ liệu).

4. Luồng xử lý ca sử dụng "Đặt hàng" diễn ra như thế nào khi số lượng sản phẩm không đủ?
Khi khách hàng cập nhật số lượng trong giỏ hàng, hệ thống sẽ kiểm tra lượng hàng tồn kho. Nếu số lượng không đáp ứng, hệ thống sẽ kích hoạt dòng sự kiện rẽ nhánh A1: hiển thị thông báo số lượng sản phẩm không đủ và quay trở lại bước hiển thị giỏ hàng ban đầu.

5. Hệ thống phần mềm đã cài đặt những giao diện quản trị nào cho tác nhân Admin?
Theo Chương III, hệ thống đã triển khai các giao diện quản trị gồm: Giao diện đăng nhập quản lý, Giao diện quản lý sản phẩm, Giao diện quản lý thành viên, Giao diện quản lý menu, Giao diện quản lý bài viết và Giao diện quản lý đơn hàng.


Kết luận

Đồ án tốt nghiệp "Thiết kế website bán đồng hồ qua mạng" của sinh viên Nguyễn Thành Vinh đã giải quyết bài toán thương mại điện tử bán lẻ thông qua quy trình phân tích và thiết kế hướng đối tượng chặt chẽ. Đề tài đã hệ thống hóa lý thuyết về mô hình MVC, ngôn ngữ PHP, cơ sở dữ liệu MySQL và Framework Laravel, đồng thời hoàn thành việc mô hình hóa hệ thống bằng hệ thống biểu đồ Use Case, Sequence Diagram và Class Diagram chi tiết. Sản phẩm cuối cùng đã được triển khai đầy đủ các giao diện chức năng phục vụ nhu cầu mua sắm của khách hàng và công tác vận hành của người quản trị.