I. Giới thiệu về Dự án Website Bán Balo với Spring Boot và ReactJS
Dự án website bán balo sử dụng Spring Boot và ReactJS là một tiểu luận chuyên ngành của sinh viên Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. HCM. Đây là một ứng dụng thương mại điện tử hoàn chỉnh kết hợp công nghệ backend mạnh mẽ với frontend hiện đại. Mục tiêu chính của dự án là xây dựng một nền tảng bán balo chuyên nghiệp, cung cấp trải nghiệm mua sắm tối ưu cho người dùng. Dự án áp dụng các công nghệ tiên tiến bao gồm Spring Boot cho phía server, ReactJS cho giao diện người dùng, MySQL cho cơ sở dữ liệu, và Json Web Token để xác thực an toàn. Thời gian thực hiện dự án kéo dài từ tháng 8 đến tháng 12 năm 2022, với sự hướng dẫn của TS. Lê Văn Vinh. Dự án này không chỉ là một bài tập học tập mà còn là một sản phẩm thực tiễn có thể triển khai trong kinh doanh thực tế.
1.1. Tính Cấp Thiết của Dự án
Nhu cầu về mua sắm trực tuyến ngày càng tăng, đặc biệt là các sản phẩm balo chất lượng cao. Việc xây dựng một website thương mại điện tử chuyên biệt giúp doanh nghiệp tiếp cận khách hàng rộng hơn. Dự án sử dụng Spring Boot và ReactJS là lựa chọn phù hợp vì hiệu năng cao, khả năng mở rộng tốt, và có cộng đồng hỗ trợ lớn.
1.2. Ứng dụng Thực tiễn
Website bán balo này có thể được triển khai thực tế cho các cửa hàng bán balo. Nó hỗ trợ quản lý sản phẩm, đơn hàng, khách hàng một cách hiệu quả. Khách hàng có thể dễ dàng tìm kiếm, so sánh, mua sắm các loại balo với giao diện thân thiện.
II. Kiến Trúc Công Nghệ và Stack Công Nghệ Sử dụng
Dự án website bán balo sử dụng kiến trúc Client-Server hiện đại với sự phân tách rõ ràng giữa frontend và backend. Frontend được xây dựng bằng ReactJS, một thư viện JavaScript mạnh mẽ giúp tạo giao diện người dùng động và responsive. Backend sử dụng Spring Boot, một framework Java cho phép phát triển ứng dụng web nhanh chóng với các tính năng tích hợp sẵn. Cơ sở dữ liệu MySQL lưu trữ toàn bộ thông tin sản phẩm, khách hàng, và đơn hàng. Json Web Token (JWT) được áp dụng để bảo mật và xác thực người dùng. Kiến trúc này đảm bảo hiệu năng cao, bảo mật tốt, và dễ bảo trì. Sự kết hợp này tạo ra một ứng dụng web scalable và đáng tin cậy.
2.1. Spring Boot Backend Framework
Spring Boot là một framework Java giúp phát triển ứng dụng web một cách nhanh chóng. Nó cung cấp các tính năng tích hợp như quản lý dependency, cấu hình tự động, và REST API support. Spring Boot cho phép developers tập trung vào logic kinh doanh thay vì cấu hình phức tạp. Nó hỗ trợ tuyệt vời cho xây dựng API RESTful mà ReactJS có thể gọi để lấy dữ liệu.
2.2. ReactJS Frontend Library
ReactJS là thư viện JavaScript phổ biến nhất hiện nay để xây dựng giao diện người dùng. Nó cho phép tạo component tái sử dụng, quản lý state hiệu quả, và cập nhật giao diện một cách mượt mà mà không cần tải lại trang. ReactJS giúp tạo ra trải nghiệm người dùng nhanh chóng và mềm mại trên website bán balo.
2.3. MySQL và Json Web Token
MySQL là hệ quản trị cơ sở dữ liệu mạnh mẽ và đáng tin cậy cho lưu trữ dữ liệu. JWT (Json Web Token) cung cấp cơ chế xác thực an toàn, hiệu quả cho phép người dùng đăng nhập và truy cập các tính năng cá nhân hóa mà không cần lưu session phức tạp.
III. Phân Tích Yêu Cầu và Mô Hình Hóa Hệ Thống
Quá trình phân tích yêu cầu là bước quan trọng trong phát triển website bán balo. Nhóm đã khảo sát các website cạnh tranh như 'Saigon Swagger' để hiểu rõ các tính năng cần thiết và cải thiện trải nghiệm người dùng. Yêu cầu chức năng bao gồm: quản lý sản phẩm balo, giỏ hàng, đơn hàng, tài khoản người dùng, và bảng điều khiển quản trị viên. Dự án sử dụng mô hình Use Case để minh họa các kịch bản tương tác giữa người dùng và hệ thống. Sơ đồ lớp được thiết kế để biểu diễn cấu trúc dữ liệu và mối quan hệ giữa các thực thể. Lược đồ tuần tự mô tả quy trình đăng nhập, đăng ký, và cập nhật thông tin. Việc mô hình hóa kỹ lưỡng đảm bảo hiểu rõ vấn đề trước khi bước vào cài đặt.
3.1. Khảo Sát Hiện Trạng và Xác định Chức năng
Nhóm đã khảo sát các website bán balo hiện tại để xác định tính năng thiếu và cơ hội cải thiện. Các chức năng chính được xác định bao gồm: hiển thị sản phẩm, tìm kiếm, lọc theo danh mục, quản lý giỏ hàng, thanh toán, và theo dõi đơn hàng. Yêu cầu phi chức năng như hiệu năng, bảo mật, và khả năng mở rộng cũng được xem xét kỹ lưỡng.
3.2. Mô Hình Use Case và Sơ Đồ Lớp
Sơ đồ Use Case minh họa hai loại người dùng: khách hàng và quản trị viên. Khách hàng có thể duyệt, tìm kiếm, mua hàng, và theo dõi đơn hàng. Quản trị viên có quyền quản lý sản phẩm, đơn hàng, và người dùng. Sơ đồ lớp thể hiện các đối tượng như Product, Cart, Order, User và mối quan hệ giữa chúng.
3.3. Lược Đồ Tuần Tự cho Các Quy Trình Chính
Lược đồ tuần tự mô tả chi tiết quy trình đăng nhập: người dùng gửi thông tin đăng nhập, Spring Boot xác thực, phát hành JWT token, trả về frontend. Quy trình đăng ký tương tự nhưng thêm lưu user vào database. Cập nhật thông tin đòi hỏi xác thực JWT trước.
IV. Cài Đặt Kiểm Thử và Kết Quả Dự Án
Giai đoạn cài đặt bắt đầu sau khi hoàn thành thiết kế website bán balo. Backend Spring Boot được phát triển với các REST API endpoints để xử lý yêu cầu từ ReactJS frontend. Database MySQL được tạo với các bảng quan hệ lưu trữ thông tin sản phẩm, người dùng, và đơn hàng. Frontend ReactJS xây dựng các component như ProductList, ProductDetail, Cart, Checkout, và AdminDashboard. Json Web Token được tích hợp để bảo vệ các API endpoint nhạy cảm. Quá trình kiểm thử (testing) bao gồm unit testing, integration testing, và user acceptance testing. Kết quả đạt được là một ứng dụng hoàn chỉnh, có thể triển khai thực tế. Dự án đã thành công trong việc kết hợp Spring Boot và ReactJS tạo ra một website bán balo chuyên nghiệp với trải nghiệm người dùng tốt và quản trị viên hiệu quả.
4.1. Yêu Cầu Hệ Thống và Môi Trường Phát Triển
Dự án yêu cầu Java JDK 8+ để chạy Spring Boot. Node.js và npm cần thiết cho phát triển ReactJS. MySQL Server phải được cài đặt để quản lý cơ sở dữ liệu. IDE như IntelliJ hoặc Eclipse cho backend, Visual Studio Code cho frontend. Git được sử dụng để quản lý phiên bản code. Các bước cài đặt đơn giản, dễ theo dõi.
4.2. Các Bước Cài Đặt và Triển Khai
Bước 1: Clone repository và cài đặt dependencies. Bước 2: Cấu hình database MySQL. Bước 3: Chạy Spring Boot server trên port 8080. Bước 4: Chạy ReactJS development server trên port 3000. Bước 5: Kiểm tra kết nối API và giao diện người dùng. Bước 6: Thực hiện kiểm thử các chức năng chính. Các bước được tài liệu hóa rõ ràng.
4.3. Kết Quả Đạt Được và Nhược Điểm
Dự án thành công hoàn thành tất cả các chức năng dự kiến. Giao diện ReactJS đẹp, responsive trên mobile và desktop. Backend Spring Boot xử lý request nhanh chóng. Bảo mật JWT hoạt động tốt. Nhược điểm: có thể cải thiện tìm kiếm và lọc sản phẩm nâng cao hơn, thêm tính năng review sản phẩm, wishlist. Dự án là nền tảng vững chắc cho phát triển tiếp theo.