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

Đồ án tốt nghiệp "Xây dựng website bán giày trực tuyến bằng VueJS và Spring Boot" được tác giả Vũ Duy Linh thực hiện trong bối cảnh cuộc Cách mạng công nghiệp 4.0 và sự bùng nổ của mạng Internet đang làm thay đổi căn bản thói quen mua sắm của người tiêu dùng. Đặc biệt, sau giai đoạn biến động của đại dịch bệnh, xu hướng chuyển dịch từ thương mại truyền thống sang thương mại điện tử diễn ra mạnh mẽ. Người tiêu dùng, đặc biệt là nhóm lao động trí thức, ưu tiên lựa chọn phương thức mua sắm trực tuyến để tiết kiệm thời gian, giảm thiểu chi phí đi lại và đảm bảo yếu tố an toàn.

Về phía các cơ sở kinh doanh, thực trạng tại nhiều cửa hàng bán lẻ cho thấy các nghiệp vụ quản lý vẫn còn mang tính thủ công:

  • Các hoạt động thường xuyên như nhập hàng, xuất hàng, kiểm kê hàng tồn kho chưa được tin học hóa đồng bộ, dẫn đến năng suất lao động chưa cao.
  • Công tác tính toán doanh thu định kỳ chưa đạt độ chính xác và rõ ràng tuyệt đối.
  • Quy trình quản trị danh mục sản phẩm tiêu tốn nhiều thời gian.
  • Hoạt động quảng bá thương hiệu còn hạn chế, làm giảm khả năng tiếp cận tập khách hàng tiềm năng trên quy mô lớn.

Xuất phát từ thực tiễn trên, tác giả xác định mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm:

  1. Tạo ra một website bán giày trực tuyến phục vụ cho chủ cửa hàng và khách hàng.
  2. Hỗ trợ công tác quản lý việc nhập, xuất hàng hóa dễ dàng với quy mô mở rộng hơn.
  3. Hỗ trợ quảng bá thương hiệu cửa hàng trên các phương tiện truyền thông trực tuyến.
  4. Gia tăng khả năng tiếp cận khách hàng, nâng cao hiệu quả bán hàng và tiết kiệm thời gian giao dịch cho người mua.

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

  • Đối tượng nghiên cứu: Khách hàng mua sắm trực tuyến, chủ cửa hàng và các quy trình giao dịch, biểu mẫu quản lý bán hàng sản phẩm giày dép.
  • Phạm vi không gian và thời gian: Nghiên cứu quy trình nghiệp vụ bán lẻ thực tế, áp dụng dữ liệu khảo sát thương mại điện tử tại Việt Nam (giai đoạn 2019–2021) và quốc tế (năm 2020); thời gian hoàn thành đồ án vào năm 2022.

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

Đồ án xây dựng trên nền tảng lý thuyết phát triển phần mềm theo mô hình Client - Server hiện đại, phân tách độc lập giữa tầng giao diện người dùng (Frontend) và tầng xử lý nghiệp vụ (Backend), kết hợp hệ quản trị cơ sở dữ liệu quan hệ - đối tượng.

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

  • Ngôn ngữ lập trình Java: Ngôn ngữ lập trình hướng đối tượng với nguyên lý "Viết một lần, thực thi khắp nơi" (Write Once, Run Anywhere - WORA). Mã nguồn được biên dịch thành mã byte code và thực thi trên máy ảo Java (JVM). Java sở hữu cơ chế thu gom rác tự động (Garbage Collection) trên bộ nhớ Heap và cơ chế bảo mật nghiêm ngặt thông qua 4 mức kiểm soát (giao diện lớp, trình biên dịch, trình thông dịch mã byte code và trình nạp lớp).
  • Spring Boot Framework: Framework phát triển ứng dụng Java với các tính năng tự động cấu hình (Auto-configuration), quản lý cấu hình bằng Annotation thay thế cho tệp cấu hình XML phức tạp, tích hợp máy chủ nhúng Tomcat sẵn trong gói lưu trữ JAR và hỗ trợ cấu hình qua định dạng YAML.
  • Vue.js Framework: Framework JavaScript tiến bộ (Progressive Framework) dùng để xây dựng giao diện người dùng đơn trang (Single Page Application - SPA). Vue.js cung cấp cấu trúc tối giản, hỗ trợ công cụ dòng lệnh (Vue CLI) cùng hệ sinh thái gồm vue-router, vuex, vue-test-utils và vue-dev-tools.
  • Hệ quản trị cơ sở dữ liệu PostgreSQL: Hệ thống quản trị cơ sở dữ liệu quan hệ - đối tượng (ORDBMS) mã nguồn mở, tích hợp kỹ thuật điều khiển đồng thời nhiều phiên bản (Multi-Version Concurrency Control - MVCC) với cơ chế cô lập ảnh chụp nhanh (Snapshot Isolation), cho phép xử lý đồng thời thao tác đọc và ghi mà không gây khóa tài nguyên.

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

  • Phương pháp thu thập và phân tích tài liệu: Nghiên cứu tài liệu kỹ thuật về JavaScript, Java, kiến trúc Spring Boot, Vue.js và tài liệu thiết kế hệ thống phần mềm.
  • Phương pháp khảo sát thực tế: Tiến hành phỏng vấn, lấy ý kiến trực tiếp từ khách hàng để xác định các yêu cầu chức năng, phi chức năng và quy trình luân chuyển hàng hóa.
  • Phương pháp phân tích và thiết kế hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng biểu đồ Use Case tổng quát, biểu đồ các lớp thực thể (Entity Class Diagram), biểu đồ luồng cơ bản (Basic Flow) và biểu đồ lớp tham gia use case (View of Participating Classes - VOPC).
  • Nguồn dữ liệu thứ cấp: Dữ liệu từ Sách trắng Thương mại điện tử Việt Nam năm 2021 của Bộ Công Thương và số liệu thống kê thương mại điện tử Hoa Kỳ năm 2020.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc phân tầng kết nối Client - Server, đảm bảo tính mô-đun hóa, khả năng bảo trì và nâng cấp độc lập giữa giao diện và hệ thống xử lý trung tâm.

Kiến trúc tổng thể và cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống được chuẩn hóa bao gồm 10 thực thể (Entity) với các trường thông tin và mối quan hệ chặt chẽ:

Tên bảng thực thể Các thuộc tính dữ liệu chính Quan hệ liên kết
Users id, username, password, email, status, created_at, updated_at Liên kết 1 - nhiều với User_Role, Orders, Cart
Role id, role_name, created_at, updated_at Liên kết 1 - nhiều với User_Role
User_Role id, user_id, role_id Bảng trung gian phân quyền người dùng
CustomerInfor id, full_name, email, phone, address, created_at, updated_at Liên kết 1 - 1 với Orders
Category id, name, created_at, updated_at Liên kết 1 - nhiều với Product
Product id, name, description, image, price, quantity, gender, size, rating, has_free_shipping, category_id, created_at, updated_at Thuộc Category, liên kết với CartItem, OrdersDetail
Cart id, user_id, total_price, created_at, updated_at Thuộc Users, chứa nhiều CartItem
CartItem id, cart_id, product_id, quantity, size, created_at, updated_at Liên kết với Cart và Product
Orders id, user_id, customer_infor_id, received_address, created_at, updated_at Liên kết với Users, CustomerInfor, OrdersDetail
OrdersDetail id, order_id, product_id, price, quantity, created_at, updated_at Liên kết với Orders và Product

Phân tích thiết kế chức năng theo Use Case

Hệ thống phân định rõ ràng hai nhóm tác nhân chính:

  1. Khách hàng (User): Thực hiện 9 use case bao gồm Đăng ký, Đăng nhập, Xem danh sách sản phẩm, Xem chi tiết sản phẩm, Tìm kiếm sản phẩm, Thêm vào giỏ hàng, Xem danh sách sản phẩm trong giỏ hàng, Xóa sản phẩm trong giỏ hàng, Đặt hàng, Xem lịch sử mua hàng và Hủy đơn hàng.
  2. Quản trị viên (Admin): Thực hiện các use case chuyên biệt gồm Đăng nhập hệ thống quản lý, Quản lý sản phẩm, Quản lý danh mục sản phẩm và Quản lý tài khoản.

Mỗi use case đều được mô hình hóa chi tiết thông qua cấu trúc VOPC với 4 thành phần chuẩn mực:

  • Lớp giao diện (<<boundary>>): Tiếp nhận tương tác từ người dùng (ví dụ: ChiTietSanPhamUI, GioHangUI).
  • Lớp điều khiển (<<control>>): Điều phối luồng xử lý và nghiệp vụ (ví dụ: ChiTietSanPhamController, GioHangController).
  • Lớp giao tiếp cơ sở dữ liệu (ICSDL): Thực hiện các phương thức đọc/ghi dữ liệu có kiểm soát.
  • Lớp thực thể (<<entity>>): Ánh xạ dữ liệu logic của hệ thống (Product, Cart, CartItem, Orders, Users...).

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

Chương 1: Khảo sát hệ thống

Chương 1 trình bày tổng quan về lý do lựa chọn đề tài, mục tiêu nghiên cứu và phương pháp khảo sát thực tế. Tác giả tổng hợp dữ liệu thực trạng thương mại điện tử nhằm làm rõ tính cấp thiết của việc xây dựng hệ thống bán hàng trực tuyến:

  • Doanh thu thương mại điện tử tại Hoa Kỳ năm 2020 tăng 32,2% so với năm 2019, đạt mốc 188,2 tỷ USD; có 70% người dùng được khảo sát xác nhận mua sắm trực tuyến nhiều hơn trước đại dịch (trong đó 36% mua sắm nhiều hơn đáng kể).
  • Tại Việt Nam, tỷ lệ người dùng Internet tham gia mua sắm trực tuyến tăng từ 77% (năm 2019) lên 88% (năm 2020) theo Sách trắng Thương mại điện tử năm 2021.
  • Khảo sát thực trạng quy trình bán hàng tại các cửa hàng nhỏ lẻ cho thấy tồn tại nhiều hạn chế: ghi chép sổ sách thủ công, quản lý tồn kho và thống kê doanh thu thiếu chính xác, phạm vi quảng bá hẹp. Từ đó, tác giả xác định mục tiêu xây dựng website nhằm tự động hóa quy trình nghiệp vụ và đặt ra mốc thời gian hoàn thành dự án.

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

Chương 2 tập trung phân tích chuyên sâu các công nghệ, ngôn ngữ lập trình và hệ quản trị cơ sở dữ liệu được ứng dụng trong đề tài:

  • Java: Phân tích lịch sử hình thành (James Gosling khởi xướng năm 1991 tại Sun Microsystems, phát hành năm 1994, Oracle mua lại năm 2010), các đặc tính hướng đối tượng hoàn toàn, độc lập nền tảng ở cấp mã nguồn và mã nhị phân, cơ chế thông dịch kết hợp biên dịch, bộ dọn rác tự động và hệ thống bảo mật 4 cấp độ.
  • Spring Boot: Làm rõ các ưu thế tự động cấu hình, loại bỏ tệp XML bằng Annotation, tích hợp sẵn máy chủ web Tomcat trong file JAR và khả năng triển khai linh hoạt.
  • Vue.js: Trình bày về mô hình framework giao diện tiến bộ không yêu cầu bước build phức tạp, sử dụng Vue CLI, hệ sinh thái bổ trợ mạnh mẽ nhưng cũng chỉ rõ các hạn chế như rào cản tài liệu/cộng đồng và mức độ hỗ trợ tài chính cho dự án lớn.
  • PostgreSQL: Phân tích kiến trúc ORDBMS mã nguồn mở, ưu thế vượt trội của cơ chế MVCC trong việc duy trì tính nhất quán dữ liệu mà không cần khóa đọc-ghi, danh mục lưu trữ mở rộng; đồng thời ghi nhận điểm hạn chế về tốc độ truy vấn so với MySQL trong một số kịch bản chuẩn.

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

Chương 3 là phần trọng tâm về kỹ thuật của đồ án, bao gồm:

  • Xác định yêu cầu hệ thống: Yêu cầu chức năng chi tiết cho khách hàng (xem, tìm kiếm, lọc sản phẩm theo kích cỡ, màu sắc, giá; thêm/xóa giỏ hàng, đặt hàng, theo dõi lịch sử, gửi liên hệ) và quản trị viên (đăng nhập quản trị, thống kê doanh số, quản lý đơn hàng, thêm/sửa/xóa sản phẩm, quản lý tài khoản khách hàng). Yêu cầu phi chức năng chú trọng tính thẩm mỹ của giao diện, độ ổn định, khả năng bảo trì và tốc độ xử lý cơ sở dữ liệu.
  • Mô hình hóa hệ thống bằng UML: Xây dựng biểu đồ Use Case tổng quát và biểu đồ quan hệ giữa 10 lớp Entity.
  • Đặc tả chi tiết 14 Use Case: Trình bày tường minh tên use case, mô tả tóm tắt, luồng sự kiện cơ bản (Basic Flow), các luồng rẽ nhánh/ngoại lệ (lỗi nhập liệu, trùng tài khoản, mất kết nối CSDL), tiền điều kiện, hậu điều kiện cùng biểu đồ tuần tự và biểu đồ VOPC tương ứng cho từng chức năng.

Chương 4: Kết quả đạt được

Chương 4 tổng kết kết quả hiện thực hóa phần mềm sau quá trình phân tích và thiết kế:

  • Xây dựng thành công giao diện trang chủ website bán giày với đầy đủ các thành phần điều hướng, danh mục sản phẩm, banner quảng bá và khu vực hiển thị sản phẩm nổi bật.
  • Cài đặt hoàn chỉnh các phân hệ chức năng tương ứng với các use case đã thiết kế: đăng ký, đăng nhập tài khoản, duyệt danh mục sản phẩm, trang chi tiết sản phẩm với đầy đủ thông số kích cỡ/màu sắc/đánh giá, giỏ hàng tương tác thời gian thực, quy trình đặt hàng và giao diện quản trị cửa hàng.

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

Kết quả chính đạt được

  • Xây dựng thành công hệ thống phần mềm website bán giày trực tuyến hoàn chỉnh với sự kết hợp giữa frontend bằng Vue.js và backend bằng Spring Boot, lưu trữ dữ liệu trên PostgreSQL.
  • Số hóa toàn bộ 14 use case nghiệp vụ từ phía người dùng đến quản trị hệ thống, đảm bảo quy trình mua sắm và quản trị hoạt động thông suốt:
    • Khách hàng có thể tìm kiếm, xem chi tiết sản phẩm, quản lý giỏ hàng, thực hiện quy trình đặt hàng (nhập thông tin người nhận, chọn thanh toán) và hủy đơn hàng khi đơn ở trạng thái chờ duyệt.
    • Quản trị viên kiểm soát được danh mục sản phẩm, thông tin tài khoản người dùng và trạng thái các đơn hàng phát sinh.
  • Thiết lập cấu trúc cơ sở dữ liệu chuẩn hóa gồm 10 thực thể quan hệ, đảm bảo tính toàn vẹn dữ liệu và hỗ trợ tốt cho việc mở rộng quy mô sản phẩm.

Giải pháp và đóng góp của tác giả

  • Đề xuất giải pháp tin học hóa toàn diện quy trình bán hàng thủ công tại các cơ sở bán lẻ giày dép, giải quyết triệt để các tồn đọng về nhầm lẫn số liệu doanh thu, kiểm kê kho và mất thời gian quản lý.
  • Hiện thực hóa mô hình kiến trúc tách biệt Client - Server hiện đại, tận dụng tối đa khả năng render giao diện linh hoạt của Vue.js và tính năng xử lý nghiệp vụ mạnh mẽ, an toàn của Spring Boot.
  • Cung cấp tài liệu phân tích thiết kế hệ thống chi tiết theo chuẩn UML, đóng vai trò làm tài liệu tham khảo kỹ thuật cho việc phát triển các hệ thống thương mại điện tử quy mô vừa và nhỏ.

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

Dựa trên nội dung được trình bày trong đồ án, một số hạn chế và hướng mở rộng được ghi nhận như sau:

  • Hạn chế kỹ thuật và phạm vi chức năng:
    • Hệ thống Vue.js được xây dựng ở giai đoạn framework còn một số rào cản về hệ sinh thái tài liệu tiếng Anh và tính linh hoạt cao có thể tiềm ẩn lỗi khi mở rộng tích hợp.
    • Hiệu năng cơ sở dữ liệu PostgreSQL chưa được tối ưu hóa chuyên sâu cho các truy vấn dữ liệu tải cao so với một số hệ quản trị CSDL chuyên biệt về tốc độ.
    • Các chức năng quản trị doanh số và xử lý nghiệp vụ định kỳ mới dừng lại ở mức cơ bản, chưa tích hợp các thuật toán phân tích số liệu nâng cao hoặc báo cáo biểu đồ trực quan chuyên sâu.
  • Hướng nghiên cứu và phát triển tiếp:
    • Nâng cấp và tích hợp các cổng thanh toán trực tuyến tự động thay vì phương thức xác nhận đơn hàng cơ bản.
    • Mở rộng phân hệ thống kê, báo cáo doanh thu tự động chi tiết theo thời gian thực phục vụ công tác quản trị kinh doanh.
    • Tối ưu hóa hiệu năng truy vấn cơ sở dữ liệu và mở rộng các tính năng gợi ý sản phẩm dựa trên hành vi khách hàng.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích dành cho:

  • Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm, Điện tử viễn thông đang thực hiện đồ án tốt nghiệp hoặc bài tập lớn về phát triển ứng dụng web thương mại điện tử.
  • Các nhà phát triển phần mềm muốn tiếp cận phương pháp phân tích thiết kế hệ thống theo chuẩn UML, kết hợp kiến trúc Full-stack với Vue.js (Frontend) và Spring Boot (Backend).
  • Các phần đáng tham khảo nhất trong đồ án bao gồm:
    • Chương 3 (Phân tích thiết kế hệ thống): Cung cấp hệ thống 14 biểu đồ Use Case, Basic Flow, VOPC và biểu đồ lớp Entity hoàn chỉnh, chuẩn mực về mặt phương pháp luận phần mềm.
    • Chương 2 (Cơ sở lý thuyết): Cung cấp các phân tích so sánh kỹ thuật về cơ chế MVCC trong PostgreSQL, kiến trúc Spring Boot và đặc tính bảo mật nhiều mức của Java.

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

1. Đồ án sử dụng những công nghệ và công cụ nào để xây dựng hệ thống?
Tác giả sử dụng ngôn ngữ lập trình JavaScript với framework Vue.js cho tầng Frontend; ngôn ngữ Java với Spring Boot Framework cho tầng Backend; hệ quản trị cơ sở dữ liệu PostgreSQL cho tầng lưu trữ; cùng các công cụ phát triển phần mềm Visual Studio Code và IntelliJ IDEA.

2. Cơ sở dữ liệu của hệ thống gồm những bảng thực thể nào?
Cơ sở dữ liệu được thiết kế gồm 10 bảng thực thể: Users, Role, User_Role, CustomerInfor, Category, Product, Cart, CartItem, Orders và OrdersDetail.

3. Khách hàng có thể thực hiện những chức năng chính nào trên website?
Khách hàng có thể đăng ký, đăng nhập tài khoản, xem danh sách sản phẩm, xem chi tiết thông tin sản phẩm (giá, kích cỡ, màu sắc, đánh giá), tìm kiếm sản phẩm theo từ khóa, thêm/xóa sản phẩm trong giỏ hàng, đặt hàng trực tuyến, theo dõi lịch sử mua hàng và hủy đơn hàng khi đơn còn ở trạng thái chờ duyệt.

4. Ưu điểm nổi bật của PostgreSQL được tác giả phân tích trong đồ án là gì?
PostgreSQL sử dụng kỹ thuật điều khiển đồng thời nhiều phiên bản (MVCC) với cơ chế cách ly ảnh chụp nhanh (Snapshot Isolation). Cơ chế này giúp các phiên đọc dữ liệu không bao giờ chặn phiên ghi và ngược lại, duy trì tính nhất quán dữ liệu mà không cần khóa đọc-ghi bảng dữ liệu.

5. Luồng xử lý của use case "Huỷ đơn hàng" được thiết kế như thế nào?
Use case bắt đầu khi khách hàng đã đăng nhập vào hệ thống và nhấn vào nút "Hủy đơn" trên các đơn hàng đang ở trạng thái "chờ duyệt" tại màn hình lịch sử đặt hàng. Hệ thống sẽ tiến hành cập nhật trạng thái đơn hàng và thông báo kết quả; nếu xảy ra lỗi kết nối CSDL, hệ thống sẽ đưa ra thông báo lỗi và kết thúc use case.


Kết luận

Đồ án tốt nghiệp "Xây dựng website bán giày trực tuyến bằng VueJS và Spring Boot" của sinh viên Vũ Duy Linh đã giải quyết trọn vẹn bài toán tin học hóa quy trình kinh doanh bán lẻ giày dép từ thực tiễn. Tác giả đã áp dụng phương pháp phân tích thiết kế hướng đối tượng chặt chẽ bằng UML để xây dựng hoàn chỉnh mô hình 14 use case nghiệp vụ và cấu trúc dữ liệu 10 thực thể. Sản phẩm phần mềm được hiện thực hóa thành công trên nền tảng Vue.js, Spring Boot và PostgreSQL, đáp ứng đầy đủ các yêu cầu chức năng cho cả khách hàng và người quản trị. Đồ án là tài liệu tham khảo có giá trị cao về mặt kỹ thuật và phương pháp luận thiết kế phần mềm thương mại điện tử.