Bối cảnh và vấn đề nghiên cứu
Đồ án tốt nghiệp "Xây dựng website kinh doanh thiết bị và linh kiện công nghệ sử dụng Spring Boot" (Mã số: SKL010565) được thực hiện bởi sinh viên Nguyễn Võ Tuấn Nhân (MSSV: 18110329), chuyên ngành Hệ thống thông tin, Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, dưới sự hướng dẫn của ThS. Lê Thị Minh Châu và phản biện của TS. Nguyễn Thành Sơn vào năm 2022.
Về bối cảnh thực tiễn, thị trường thương mại điện tử tại Việt Nam đang ghi nhận tốc độ tăng trưởng nhanh chóng. Tác giả dẫn chứng báo cáo từ tổ chức Fibre2fashion dự báo Việt Nam có tiềm năng vươn lên vị trí dẫn đầu khu vực Đông Nam Á trong lĩnh vực này. Sự phát triển của các nền tảng lớn như Shopee, Lazada, Tiki cho thấy phương thức mua sắm trực tuyến đang dần thay thế các mô hình bán lẻ truyền thống. Tuy nhiên, việc xây dựng một hệ thống thương mại điện tử hoàn chỉnh vẫn là bài toán phức tạp đối với sinh viên công nghệ thông tin. Thêm vào đó, công nghệ Spring Framework chưa được đưa vào giảng dạy chính khóa trong chương trình đào tạo tại trường, đòi hỏi người thực hiện phải tự nghiên cứu và ứng dụng thực tế.
Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:
- Mục đích:
- Tìm hiểu hệ sinh thái Spring Framework.
- Xây dựng website thương mại điện tử phục vụ kinh doanh thiết bị và linh kiện công nghệ.
- Nhiệm vụ nghiên cứu:
- Tìm hiểu hệ sinh thái Spring Framework.
- Tìm hiểu về cách xây dựng một website thương mại điện tử.
- Tiến hành xây dựng hệ thống phần mềm thực tế.
- Tiếp tục cải thiện, phát triển hệ thống và định hướng xây dựng ứng dụng đa nền tảng.
Đối tượng nghiên cứu của đồ án là quy trình giao dịch thương mại điện tử và kiến trúc phát triển ứng dụng web trên nền tảng Java. Phạm vi nghiên cứu tập trung vào phân hệ website bán lẻ thiết bị và linh kiện công nghệ mang tên "Shopme", bao gồm các tác nhân: Khách (Guest), Người mua (Customer) và Quản trị viên (Admin). Kế hoạch thực hiện đề tài diễn ra trong thời gian từ ngày 14/08/2022 đến ngày 30/12/2022.
Cơ sở lý thuyết và phương pháp
Đồ án dựa trên nền tảng công nghệ Java Enterprise và kiến trúc ứng dụng web đa tầng với các thành phần kỹ thuật cụ thể:
- Ngôn ngữ và nền tảng cốt lõi: Ngôn ngữ lập trình Java (phiên bản Java Standard Edition 8 - Java SE 8, môi trường thực thi JRE và hệ thống API) do Sun Microsystems phát triển ban đầu.
- Khung ứng dụng Backend: Spring Framework (nền tảng mã nguồn mở phát triển ứng dụng Java Enterprise theo mô hình POJO-based) kết hợp Spring Boot nhằm tối ưu hóa việc cấu hình, giúp tập trung vào xử lý nghiệp vụ; kiến trúc dựa trên Spring MVC và Spring Core; xây dựng giao tiếp dữ liệu theo kiến trúc RESTful API; quản lý thư viện và phụ thuộc bằng Apache Maven (
pom.xml).
- Tầng dữ liệu (Data Access Layer): Hệ quản trị cơ sở dữ liệu quan hệ MySQL; thư viện Hibernate ORM (Object Relational Mapping) hỗ trợ ánh xạ giữa đối tượng Java và cơ sở dữ liệu quan hệ; đặc tả JPA (Java Persistence API) để thực hiện các thao tác lưu trữ, truy vấn dữ liệu từ MySQL.
- Tầng giao diện người dùng (Frontend): Công cụ mẫu giao diện Thymeleaf (Java Template Engine phục vụ hiển thị XHTML/HTML5 trên tầng View theo mô hình MVC, hỗ trợ cơ chế mẫu tự nhiên - natural templates); thư viện CSS Bootstrap hỗ trợ thiết kế giao diện web tương thích thiết bị di động; thư viện JavaScript jQuery phục vụ thao tác DOM, xử lý sự kiện và truyền nhận dữ liệu qua AJAX.
Phương pháp nghiên cứu được tác giả áp dụng bao gồm:
- Phương pháp nghiên cứu lý thuyết: Khai thác tài liệu kỹ thuật chính thức của Spring Framework, các khóa học chuyên đề trên Udemy và YouTube.
- Phương pháp khảo sát hiện trạng: Phân tích thực tế giao diện và tính năng của 4 hệ thống thương mại điện tử điển hình (Tiki, Shopee, Lazada, Etsy) để rút ra ưu và nhược điểm.
- Phương pháp phân tích và thiết kế phần mềm: Sử dụng chuẩn mô hình hóa UML để xây dựng sơ đồ Use Case, biểu đồ tuần tự (Sequence Diagram), thiết kế cơ sở dữ liệu quan hệ và thiết kế giao diện người dùng.
- Phương pháp kiểm thử phần mềm: Thiết lập các ca kiểm thử (test cases) chức năng nhằm đánh giá mức độ hoàn thiện của hệ thống.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình kiến trúc Spring Boot kết hợp Spring MVC, phân tách rõ ràng giữa các tầng Controller, Service, Repository và View (Thymeleaf). Cơ sở dữ liệu quan hệ trên MySQL được thiết kế để chuẩn hóa dữ liệu giao dịch thương mại điện tử với các thực thể chính:
| Bảng dữ liệu |
Mục đích lưu trữ trong hệ thống |
users_roles |
Quản lý thông tin phân quyền người dùng (Khách, Khách hàng, Quản trị viên) |
Brands_Categories |
Mối quan hệ liên kết giữa nhãn hàng sản xuất và danh mục phân loại |
Product_details |
Thông số kỹ thuật và thuộc tính chi tiết của linh kiện, thiết bị |
Product_images |
Danh sách tập tin hình ảnh mô tả cho từng sản phẩm |
Cart-items |
Quản lý danh sách các mặt hàng được thêm vào giỏ của từng người dùng |
Order_details |
Chi tiết số lượng, đơn giá của từng sản phẩm trong đơn đặt hàng |
Order_track |
Lịch sử theo dõi tiến trình và trạng thái xử lý của đơn hàng |
Shipping_rates |
Bảng định mức chi phí vận chuyển theo từng khu vực địa lý |
Reviews_votes |
Dữ liệu đánh giá số sao, nội dung phản hồi và tương tác hữu ích từ khách mua |
Hệ thống triển khai 19 ca sử dụng (Use case) phân bổ cho 3 nhóm tác nhân:
- Phân hệ Khách (Guest): Hỗ trợ đăng ký tài khoản (UC_001), tìm kiếm và xem chi tiết sản phẩm theo từ khóa hoặc danh mục (UC_005).
- Phân hệ Người mua (Customer): Đăng nhập (UC_002), đăng xuất (UC_003), khôi phục mật khẩu qua email xác thực (UC_004), quản lý tài khoản và đổi mật khẩu (UC_008), quản lý hồ sơ cá nhân (UC_009), quản lý sổ địa chỉ giao hàng (UC_010), quản lý lịch sử đơn hàng (UC_011), quản lý giỏ hàng phân nhóm theo cửa hàng (UC_012), đặt hàng (UC_013) tích hợp hai phương thức thanh toán là COD (thanh toán khi nhận hàng) và cổng trực tuyến PayPal, đánh giá số sao và phản hồi sản phẩm đã mua (UC_014).
- Phân hệ Quản trị viên (Admin): Thống kê doanh thu theo sản phẩm, danh mục và khoảng thời gian ngày/tháng/năm (UC_024); quản lý tài khoản người dùng (UC_027); kiểm duyệt và cấp phép danh mục sản phẩm (UC_028); xử lý và cập nhật trạng thái đơn hàng (UC_029); quản lý danh mục sản phẩm theo dạng phân cấp cây (UC_030); quản lý thuộc tính sản phẩm (Style - UC_031); thiết lập bảng tỷ lệ vận chuyển và định cấu hình các địa chỉ hỗ trợ COD.
Toàn bộ hệ thống giao diện được thiết kế gồm 71 màn hình mẫu (từ trang 35 đến trang 88 của đồ án) và được kiểm thử thông qua các kịch bản kiểm thử chức năng (test cases) cụ thể trước khi hoàn thiện.
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết
Chương này hệ thống hóa các kiến thức nền tảng phục vụ xây dựng đồ án. Tác giả trình bày về lịch sử và đặc tính của ngôn ngữ Java SE 8, cấu trúc Spring Platform, cơ chế Spring Boot giảm thiểu cấu hình thủ công thông qua tập tin Maven pom.xml, các nguyên lý hoạt động của Hibernate và JPA trong việc ánh xạ đối tượng POJO xuống hệ quản trị cơ sở dữ liệu quan hệ MySQL. Về kiến trúc, chương làm rõ luồng xử lý của Spring MVC và cơ chế hoạt động của template engine Thymeleaf khi nhận dữ liệu từ Controller để hiển thị trên trình duyệt kết hợp cùng Bootstrap và jQuery.
Chương 2: Khảo sát hiện trạng
Tác giả tiến hành khảo sát và so sánh trực tiếp 4 nền tảng thương mại điện tử phổ biến trên thị trường: Tiki, Shopee, Lazada và Etsy. Kết quả đánh giá ưu điểm và hạn chế được tổng hợp nhằm rút ra định hướng thiết kế cho website Shopme:
| Sàn TMĐT |
Ưu điểm ghi nhận |
Hạn chế ghi nhận |
| Tiki |
Thiết kế giao diện đẹp, màu sắc đồng nhất; tốc độ tải trang nhanh; bộ lọc tìm kiếm đa dạng; thông tin sản phẩm đầy đủ hình ảnh/video; lịch sử đơn hàng tốt; có chức năng trò chuyện (Chat); nhiều hình thức thanh toán. |
Bố cục chưa rõ ràng, giao diện có phần rối mắt; quá nhiều thành phần trên một trang; quá nhiều danh mục và quảng cáo; không có Menu chính; thiếu giao diện thích ứng (Responsive) hoàn chỉnh cho Web. |
| Shopee |
Giao diện dễ nhìn; nhiều hình thức thanh toán; hệ thống phân loại, đánh giá nhận xét và chấm sao rõ ràng; hỗ trợ lọc theo giá, số sao, phân loại; hệ thống Category và Style đa dạng. |
Xuất hiện quá nhiều quảng cáo; phiên bản web chưa hỗ trợ Chat; tốc độ tải trang, hình ảnh và video thiếu ổn định; nhiều chức năng bị giới hạn, ưu tiên áp dụng trên ứng dụng di động (Mobile App). |
| Lazada |
Giao diện trực quan; đa dạng cổng thanh toán; mô tả sản phẩm chi tiết; phân loại đánh giá theo số sao tốt; hỗ trợ chức năng Chat; tìm kiếm theo nhiều chỉ tiêu. |
Banner và mật độ quảng cáo chiếm diện tích quá lớn so với sản phẩm; ứng dụng di động dành cho người mua và người bán bị tách rời thành 2 ứng dụng riêng biệt. |
| Etsy |
Thiết kế mới lạ, trẻ trung; hỗ trợ Responsive cho Web; tốc độ tải trang nhanh; danh mục phân cấp chi tiết; bộ lọc đa dạng; thông tin sản phẩm trực quan; hỗ trợ Chat. |
Bố cục nhiều thành phần gây rối mắt; chỉ hỗ trợ thanh toán trực tuyến; không hỗ trợ lưu lịch sử tìm kiếm; ứng dụng di động cho người mua và người bán tách biệt. |
Chương 3: Phân tích và thiết kế hệ thống
Chương 3 là phần trọng tâm của tài liệu (từ trang 16 đến 87), thiết lập toàn bộ quy trình nghiệp vụ và kiến trúc kỹ thuật của hệ thống Shopme:
- Xây dựng bảng phân tích chức năng tổng thể cho 3 nhóm tác nhân: Khách (2 chức năng), Người mua (11 chức năng), Quản trị viên (9 chức năng).
- Mô hình hóa biểu đồ Use Case tổng quát và đặc tả chi tiết 19 use case với đầy đủ các mục: Tên use case, Tác nhân (Actor), Tiền điều kiện (Pre-conditions), Hậu điều kiện (Post-conditions), Luồng sự kiện chính (Main Flow), Luồng sự kiện thay thế (Alternative Flow) và Ngoại lệ (Exception).
- Xây dựng biểu đồ tuần tự (Sequence Diagram) mô tả luồng tương tác giữa Người dùng - Giao diện (Boundary) - Bộ điều khiển (Controller/Service) - Cơ sở dữ liệu cho các tác vụ như Đăng ký, Đăng nhập, Giỏ hàng, Đặt hàng, Thống kê.
- Thiết kế cấu trúc cơ sở dữ liệu quan hệ gồm 9 bảng dữ liệu liên kết chuẩn hóa.
- Thiết kế chi tiết giao diện người dùng cho toàn bộ hệ thống từ trang chủ, trang quản lý tài khoản, đơn hàng đến bảng điều khiển thống kê (Sales Report) của Admin.
Chương 4: Cài đặt và kiểm thử
Chương này tập trung vào giai đoạn hiện thực hóa đồ án thành phần mềm chạy thực tế trên môi trường máy chủ cục bộ và cơ sở dữ liệu MySQL. Tác giả tiến hành thiết lập các ca kiểm thử chức năng (Bảng một số test case trang 92) đối với các module trọng yếu như đăng nhập, giỏ hàng, đặt hàng thanh toán và ghi nhận kết quả xử lý ngoại lệ thực tế để hoàn thiện mã nguồn.
Kết quả và đóng góp
Về mặt kết quả, tác giả đã hoàn thành các mục tiêu đề ra ban đầu:
- Về mặt kiến thức: Tiếp cận, nghiên cứu và làm chủ được các thành phần, cấu trúc và cơ chế hoạt động của Spring Framework cùng hệ sinh thái Spring Boot.
- Về mặt sản phẩm thực hành: Xây dựng hoàn chỉnh website thương mại điện tử "Shopme" với các tính năng cốt lõi:
- Hệ thống xác thực tài khoản, đăng nhập, phân quyền và chức năng khôi phục mật khẩu tự động qua email.
- Chức năng tìm kiếm, xem danh mục phân cấp và lọc thuộc tính sản phẩm.
- Giỏ hàng, quy trình thanh toán (Checkout) hỗ trợ phương thức trả tiền mặt khi nhận hàng (COD) và tích hợp cổng thanh toán trực tuyến PayPal.
- Hệ thống theo dõi lộ trình đơn hàng (
Order_track) và tính năng viết nhận xét, chấm điểm sao sản phẩm (Reviews_votes).
- Phân hệ quản trị cho phép thống kê doanh số bán hàng linh hoạt theo giờ, ngày, tháng, năm; quản lý danh mục, nhãn hàng, sản phẩm và tỷ lệ phí vận chuyển.
Về mặt đóng góp, đồ án đã tự nghiên cứu thành công một công nghệ mới (Spring Framework) nằm ngoài chương trình đào tạo chuẩn của nhà trường tại thời điểm thực hiện, cung cấp một tài liệu thiết kế và cài đặt hệ thống thương mại điện tử chuyên ngành linh kiện máy tính có cấu trúc hoàn chỉnh từ khâu phân tích hiện trạng đến hiện thực hóa phần mềm.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế: Theo tự nhận xét của nhóm thực hiện trong văn bản, do những giới hạn nhất định về mặt kiến thức, kinh nghiệm thực tế và kỹ thuật chuyên môn của sinh viên trong quá trình làm khóa luận tốt nghiệp, hệ thống phần mềm khó tránh khỏi một số sai sót trong cài đặt và xử lý nghiệp vụ; hệ sinh thái mới dừng lại ở nền tảng web, chưa có phiên bản ứng dụng di động đồng bộ.
- Hướng nghiên cứu tiếp: Theo đề cương và phần kết luận, nhóm tác giả định hướng tiếp tục hoàn thiện, sửa lỗi hệ thống và nghiên cứu phát triển website thành ứng dụng đa nền tảng (hỗ trợ nền tảng di động).
Giá trị tham khảo
Đồ án là tài liệu học thuật hữu ích cho:
- Sinh viên ngành Công nghệ thông tin, Hệ thống thông tin hoặc Kỹ thuật phần mềm đang làm đồ án chuyên ngành hoặc khóa luận tốt nghiệp liên quan đến đề tài thương mại điện tử.
- Những người học có nhu cầu tiếp cận kiến trúc ứng dụng web Full-stack sử dụng Spring Boot, Thymeleaf và hệ quản trị cơ sở dữ liệu MySQL.
- Các phần có giá trị tham khảo cao nhất trong tài liệu bao gồm: Hệ thống biểu đồ Use Case và bảng đặc tả chi tiết 19 luồng nghiệp vụ (Chương 3); bảng tổng hợp khảo sát ưu nhược điểm của 4 nền tảng Tiki, Shopee, Lazada, Etsy (Chương 2); và lược đồ thiết kế bảng cơ sở dữ liệu quan hệ cho nghiệp vụ bán hàng trực tuyến.
Câu hỏi thường gặp
1. Hệ thống "Shopme" hỗ trợ những hình thức thanh toán nào cho khách mua hàng?
Theo đặc tả ca sử dụng Đặt hàng (UC_013), hệ thống cung cấp hai phương thức thanh toán: thanh toán khi nhận hàng (COD) và thanh toán trực tuyến qua cổng PayPal.
2. Phân hệ Quản trị viên (Admin) cho phép thống kê doanh thu theo những tiêu chí nào?
Căn cứ bảng chức năng (Bảng 3-3) và đặc tả ca sử dụng Thống kê doanh thu (UC_024), Admin có thể xem báo cáo bán hàng (Sales Report) dựa trên tổng số sản phẩm, tổng đơn hàng thành công, thống kê theo danh mục sản phẩm và lọc dữ liệu theo các mốc thời gian: giờ, ngày, tháng hoặc năm.
3. Cơ chế khôi phục mật khẩu (Password Recovery - UC_004) của hệ thống được vận hành như thế nào?
Khi người dùng chọn chức năng quên mật khẩu và nhập email, hệ thống sẽ xác thực địa chỉ email và tự động gửi một email chứa đường dẫn đổi mật khẩu (Change password). Người dùng truy cập liên kết này để điều hướng tới trang tạo mật khẩu mới và tiến hành cập nhật.
4. Trong khảo sát hiện trạng ở Chương 2, tác giả đã chỉ ra những điểm hạn chế chung nào giữa Shopee và Etsy?
Theo bảng khảo sát của tác giả, cả Shopee và Etsy đều có hạn chế về việc phân tách nền tảng hoặc ưu tiên chức năng cho phiên bản di động; trong đó Etsy tách biệt ứng dụng cho người mua và người bán thành 2 app độc lập, còn Shopee chỉ áp dụng nhiều chức năng ưu đãi độc quyền trên ứng dụng di động thay vì nền tảng web.
5. Cơ sở dữ liệu của đồ án quản lý chi phí vận chuyển như thế nào?
Hệ thống sử dụng bảng dữ liệu Shipping_rates và cung cấp chức năng quản trị tỉ lệ vận chuyển tại phân hệ Admin (Bảng 3-3), cho phép xem, thêm, xóa và chỉnh sửa mức phí vận chuyển theo từng địa bàn trước khi áp dụng vào đơn hàng của khách.
Kết luận
Đồ án tốt nghiệp của sinh viên Nguyễn Võ Tuấn Nhân đã hoàn thành trọn vẹn mục tiêu nghiên cứu hệ sinh thái Spring Framework và hiện thực hóa thành công website thương mại điện tử Shopme phục vụ kinh doanh thiết bị, linh kiện công nghệ. Công trình ghi nhận khối lượng công việc lớn thông qua việc khảo sát 4 sàn thương mại điện tử thực tế, xây dựng chi tiết 19 ca sử dụng cùng 71 giao diện chức năng và cài đặt kiểm thử phần mềm trên nền tảng Java, Spring Boot, Thymeleaf và MySQL. Đây là tài liệu tham khảo có giá trị học thuật và ứng dụng kỹ thuật cao đối với sinh viên chuyên ngành Hệ thống thông tin trong việc nghiên cứu phát triển các hệ thống web thương mại điện tử.