Bối cảnh và vấn đề nghiên cứu
Trong thế kỷ 21, sự phát triển của công nghệ thông tin đã thúc đẩy mạnh mẽ các hoạt động kinh doanh trực tuyến, trong đó công nghệ web và thương mại điện tử trở thành công cụ quan trọng hỗ trợ doanh nghiệp tiếp cận thị trường. Đối với lĩnh vực kinh doanh máy tính xách tay và linh kiện điện tử, việc sở hữu một kênh bán lẻ trực tuyến giúp các nhà phân phối và cửa hàng mở rộng kênh tiếp cận khách hàng 24/24, quảng bá các thương hiệu quốc tế (như MSI, Acer, Dell, Lenovo), cắt giảm chi phí quảng cáo truyền thống và hỗ trợ khách hàng tra cứu chi tiết thông số kỹ thuật, cấu hình, giá thành phù hợp với nhu cầu sử dụng. Xuất phát từ bối cảnh thực tiễn này, đề tài "Tìm hiểu Spring Boot và React JS. Ứng dụng xây dựng website bán laptop" được thực hiện nhằm đề xuất giải pháp kỹ thuật và xây dựng hệ thống phần mềm thương mại điện tử hoàn chỉnh.
Khóa luận xác định rõ ràng hệ thống mục đích và nhiệm vụ nghiên cứu:
-
Mục đích của nhóm nghiên cứu:
- Rèn luyện kỹ năng tổng hợp kiến thức chuyên môn phục vụ viết luận văn học thuật.
- Nâng cao tính tự chủ và kỹ năng làm việc nhóm trong phát triển phần mềm.
- Xây dựng thành công sản phẩm đầu ra là hệ thống website thương mại điện tử phục vụ bán laptop với đầy đủ các chức năng thiết yếu.
- Nắm vững kiến thức nền tảng và kỹ năng vận dụng các công nghệ: Spring Boot, ReactJS và hệ quản trị cơ sở dữ liệu MySQL.
-
Mục đích của đề tài:
- Hỗ trợ cửa hàng tiếp cận nguồn khách hàng mới và tăng tỷ lệ chuyển đổi khách hàng tiềm năng trên môi trường mạng.
- Cung cấp giải pháp mua hàng và thanh toán trực tuyến thuận tiện cho khách hàng mà không cần đến trực tiếp cửa hàng.
- Thiết lập kênh cung cấp thông tin, thông báo về hoạt động, chương trình khuyến mãi và danh mục sản phẩm đến khách hàng, đối tác và nhân viên.
-
Nhiệm vụ của đề tài:
- Nghiên cứu cơ sở lý thuyết về các công nghệ chủ chốt: framework Spring Boot, thư viện ReactJS, kiến trúc RESTful API, Redux và cơ chế JSON Web Token (JWT).
- Khảo sát thực tế tổng quan, phân tích ưu điểm và nhược điểm của các hệ thống website bán laptop hiện hành.
- Phân tích và thiết kế hệ thống phần mềm bao gồm mô hình hóa yêu cầu (Use Case, Sequence Diagram), thiết kế cơ sở dữ liệu quan hệ và thiết kế giao diện khung (Wireframe).
- Cài đặt và triển khai website bán laptop với các tính năng: xác thực tài khoản qua email bằng giao thức SMTP, quản lý giỏ hàng, tìm kiếm sản phẩm, hiển thị sản phẩm mới/nổi bật/bán chạy, xem thông tin chi tiết và sản phẩm liên quan.
Về đối tượng nghiên cứu, đề tài tập trung vào nhu cầu quản trị bán hàng và vận hành thương mại điện tử của các cửa hàng phân phối máy tính xách tay, linh kiện máy tính có quy mô vừa và nhỏ. Phạm vi nghiên cứu về mặt kỹ thuật bao gồm việc xây dựng hệ thống dịch vụ backend bằng Spring Boot trên nền tảng Java để cung cấp các dịch vụ RESTful API; lưu trữ và xử lý dữ liệu tập trung qua MySQL; phát triển ứng dụng giao diện đơn trang (Single Page Application - SPA) cho người dùng cuối và quản trị viên bằng ReactJS kết hợp Redux. Đề tài được hoàn thành bởi sinh viên ngành Công nghệ Thông tin (chuyên ngành Hệ thống Thông tin), Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, thực hiện trong thời gian từ ngày 30/01/2023 đến ngày 28/05/2023.
Cơ sở lý thuyết và phương pháp
Khóa luận thiết lập nền tảng kỹ thuật thông qua việc nghiên cứu và tổng hợp các công nghệ phần mềm hiện đại, đóng vai trò nền móng cho việc xây dựng kiến trúc hệ thống:
- Spring Boot Framework: Là phần mở rộng của Spring Framework trên ngôn ngữ Java, hỗ trợ loại bỏ các bước cấu hình XML phức tạp, tích hợp sẵn các web server nhúng như Tomcat hoặc Jetty. Framework vận hành dựa trên cơ chế tiêm phụ thuộc (Dependency Injection), quản lý giao dịch cơ sở dữ liệu và hỗ trợ kiến trúc phân lớp hướng dịch vụ. Nhóm tác giả sử dụng phiên bản Java 8 và khởi tạo dự án cấu hình Maven qua công cụ Spring Initializr.
- JSON Web Token (JWT): Giao thức truyền thông tin an toàn giữa client và server dưới dạng đối tượng JSON. Cấu trúc JWT bao gồm ba phần ngăn cách bằng dấu chấm: Header (chứa thuật toán mã hóa
HS256 và định dạng typ: JWT), Payload (chứa dữ liệu danh tính như user_name, user_id, authorities, jti) và Signature (chữ ký số được mã hóa bằng khóa bí mật bí mật nhằm kiểm tra tính toàn vẹn dữ liệu).
- Giao thức gửi email SMTP qua Spring Boot: Hệ thống sử dụng thư viện Spring Mail kết hợp đối tượng
JavaMailSender để kết nối máy chủ Simple Mail Transfer Protocol của Google, phục vụ gửi mã xác thực đăng ký tài khoản người dùng với cấu hình xác minh hai bước và mật khẩu ứng dụng (App Password).
- ReactJS và Redux: Thư viện JavaScript mã nguồn mở phục vụ xây dựng giao diện người dùng dựa trên các thành phần (Components) tái sử dụng và cơ chế Virtual DOM giúp tối ưu tốc độ render bằng cách chỉ cập nhật các phần tử có sự thay đổi. Trạng thái toàn cục của ứng dụng được quản lý đồng bộ thông qua thư viện Redux, hoạt động dựa trên ba thành phần cốt lõi: Actions (đối tượng mô tả sự kiện gồm
type và payload), Reducers (hàm nhận state hiện tại cùng action để trả về state mới) và Store (nơi lưu trữ state tập trung duy nhất).
- Kiến trúc RESTful API: Mô hình giao tiếp client-server phi trạng thái sử dụng các phương thức HTTP tiêu chuẩn bao gồm GET (truy vấn dữ liệu), POST (khởi tạo dữ liệu), PUT (cập nhật dữ liệu) và DELETE (xóa dữ liệu) để thực hiện các thao tác CRUD trên tài nguyên.
- Hệ quản trị cơ sở dữ liệu quan hệ MySQL: Đảm nhận vai trò lưu trữ bền vững toàn bộ dữ liệu người dùng, sản phẩm, đơn hàng với ưu điểm tốc độ truy vấn cao, hỗ trợ chỉ mục và bảo mật phân quyền.
- Các dịch vụ và công nghệ phụ trợ tích hợp:
- OpenAI API (ChatGPT): Sử dụng mô hình ngôn ngữ lớn dựa trên kiến trúc GPT-3 để tự động giải đáp truy vấn của khách hàng trong hộp thoại chat.
- Firebase Realtime Database và Firebase Storage: Hỗ trợ đồng bộ hóa tin nhắn tức thời giữa khách hàng và quản trị viên không cần tải lại trang thông qua hàm
writeUserChatData và cơ chế lắng nghe sự kiện onValue, đồng thời lưu trữ hình ảnh sản phẩm 360 độ.
- PayPal REST SDK: Tích hợp cổng thanh toán trực tuyến quốc tế thông qua tài khoản PayPal Business, sử dụng Client ID và Secret Key được cấp từ môi trường PayPal Developer.
- Web Speech API: Hỗ trợ nhận diện giọng nói tiếng Việt phục vụ chức năng tìm kiếm sản phẩm.
- Telegram Bot: Tích hợp thông báo quản trị thông qua BotFather.
Phương pháp nghiên cứu được triển khai xuyên suốt bao gồm: phương pháp tổng hợp tài liệu chuyên khảo từ các nguồn kỹ thuật; phương pháp khảo sát và đánh giá thực tế hệ thống giao diện và tính năng của 4 website bán laptop tại Việt Nam (ViettelStore, Nguyễn Kim, Phúc Anh, Thế Giới Di Động); phương pháp phân tích thiết kế hướng đối tượng với ngôn ngữ mô hình hóa UML; và phương pháp kiểm thử hộp đen (Black-box testing) trên giao diện kết hợp công cụ Postman để kiểm tra tính đúng đắn của các điểm cuối API.
Thiết kế và triển khai hệ thống
Hệ thống website bán laptop ("LaptopPT") được thiết kế theo mô hình kiến trúc phân lớp nhằm đảm bảo tính phân tách giữa giao diện, logic xử lý và lưu trữ dữ liệu:
[Client Applications]
[Spring Boot Backend]
[Data Storage & External Services]
Kiến trúc phân tầng backend và cấu trúc frontend
Backend được tổ chức theo 4 tầng chức năng:
- Lớp Presentation (Trình bày): Tiếp nhận các yêu cầu HTTP từ client, phân giải tham số JSON thành đối tượng Java, thực hiện tiền kiểm tra dữ liệu và phân phối đến các tầng xử lý tương ứng.
- Lớp Business (Nghiệp vụ): Chịu trách nhiệm thực thi các luồng xử lý nghiệp vụ, kiểm tra tính hợp lệ của đơn hàng, tính toán giá trị, kiểm tra quyền hạn của tài khoản thông qua JWT.
- Lớp Persistence (Truy xuất dữ liệu): Đảm nhiệm việc ánh xạ đối tượng với cơ sở dữ liệu quan hệ, thực hiện các thao tác thêm, đọc, sửa, xóa dữ liệu thông qua các truy vấn SQL.
- Lớp Database (Cơ sở dữ liệu): Lưu trữ toàn bộ dữ liệu vật lý trên hệ quản trị MySQL.
Mã nguồn frontend được tách biệt thành hai dự án ReactJS riêng biệt: dự án dành cho giao diện khách hàng (Customer Front-end) và dự án dành cho phân hệ quản trị (Admin Front-end), mỗi dự án đều có cấu trúc thư mục tiêu chuẩn gồm thư mục public (chứa các tài nguyên tĩnh) và thư mục src (chứa các components, cấu hình Redux store, cấu hình firebaseConfig.js và các hàm gọi API).
Thiết kế cơ sở dữ liệu quan hệ
Cơ sở dữ liệu của hệ thống được chuẩn hóa bao gồm 9 bảng dữ liệu phản ánh đầy đủ nghiệp vụ thương mại điện tử:
| Tên bảng |
Khóa chính |
Ý nghĩa và chức năng lưu trữ trong hệ thống |
ACCOUNT |
Mã định danh tài khoản |
Lưu trữ thông tin người dùng, mật khẩu đã mã hóa, email, vai trò (Role: User/Admin) |
PRODUCT |
Mã sản phẩm |
Lưu trữ thông tin chi tiết về laptop (tên, giá, thông số kỹ thuật, hình ảnh, mã nhà cung cấp) |
SUPPLIER |
Mã nhà cung cấp |
Lưu trữ danh sách đối tác cung cấp máy tính (MSI, Acer, Dell, Lenovo...) |
CART |
Mã giỏ hàng |
Lưu trữ các sản phẩm khách hàng đang chọn mua tạm thời |
ORDERS |
Mã đơn hàng |
Lưu trữ thông tin đơn hàng, ngày đặt, tổng tiền, trạng thái đơn, phương thức thanh toán |
ORDER_DETAIL |
Mã chi tiết đơn hàng |
Lưu trữ thông tin từng sản phẩm trong đơn hàng (mã sản phẩm, số lượng, đơn giá) |
WISHLIST |
Mã mục yêu thích |
Lưu trữ danh sách sản phẩm yêu thích của từng khách hàng |
REVIEWS |
Mã đánh giá |
Lưu trữ nội dung nhận xét, số điểm đánh giá của khách hàng cho từng sản phẩm |
NEW |
Mã tin tức |
Lưu trữ các bài viết tin tức công nghệ, bài viết khuyến mãi trên website |
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết
Chương này cung cấp hệ thống kiến thức lý thuyết về các công nghệ được áp dụng. Nội dung phân tích chi tiết lịch sử hình thành của Spring Boot từ phiên bản 1.0 (tháng 10/2012) đến phiên bản 2.6 (năm 2022); làm rõ ưu điểm tự động cấu hình và nhược điểm tốn dung lượng bộ nhớ do chứa các phụ thuộc không dùng đến. Tác giả trình bày chi tiết cơ chế bảo mật JWT với thuật toán HS256 và luồng chứng thực giữa Client, Authentication Server và Application Server. Chương này cũng hướng dẫn quy trình tạo dự án trên Spring Initializr, cấu hình dependency trong tệp pom.xml, các bước thiết lập tài khoản Gmail để gửi email qua giao thức SMTP (bật xác thực 2 bước, tạo mật khẩu ứng dụng nhằm xử lý giới hạn 500 mail/ngày của Google). Bên cạnh đó, các khái niệm Virtual DOM, JSX của ReactJS, cấu trúc luồng dữ liệu một chiều của Redux, mô hình client-server của MySQL, các phương thức HTTP trong RESTful API cũng được hệ thống hóa. Về dịch vụ ngoài, chương mô tả quy trình tích hợp khóa bí mật của OpenAI API vào biến môi trường của React, cấu hình kết nối Firebase Realtime Database qua tệp firebaseConfig.js, tạo tài khoản PayPal Business và lấy Client ID, Secret Key từ môi trường developer, cùng việc tạo bot Telegram qua BotFather.
Chương 2: Khảo sát các website tương tự và mô hình hóa yêu cầu
Chương 2 trình bày kết quả khảo sát thực tế giao diện trang chủ và trang chi tiết sản phẩm của 4 hệ thống bán lẻ: ViettelStore, Nguyễn Kim, Phúc Anh và Thế Giới Di Động nhằm đúc kết các yêu cầu chức năng và trải nghiệm người dùng cần thiết. Dựa trên kết quả khảo sát, tác giả tiến hành mô tả bài toán và xây dựng lược đồ Use Case tổng quát cùng 3 sơ đồ Use Case chi tiết dành cho ba tác nhân: Khách vãng lai (Guest), Khách hàng đã đăng nhập (Customer) và Quản trị viên (Admin). Toàn bộ 20 trường hợp sử dụng chính được mô tả chi tiết bằng văn bản từ Bảng 2-1 đến Bảng 2-20 (bao gồm: đăng ký, xem chi tiết, tìm kiếm, đăng nhập, theo dõi đơn hàng, đánh giá, đặt mua, cập nhật giỏ hàng, xóa giỏ hàng, khách hủy đơn, thêm sản phẩm, thêm nhà cung cấp, thêm tin tức, admin hủy đơn, duyệt đơn, xác nhận đã giao, thống kê, thanh toán PayPal, quản lý người dùng, trả lời chat). Luồng nghiệp vụ tương tác giữa các đối tượng được biểu diễn thông qua 21 lược đồ tuần tự (Sequence Diagram), chuẩn hóa toàn bộ các kịch bản tương tác từ đăng nhập, xử lý giỏ hàng đến thanh toán và duyệt đơn hàng.
Chương 3: Phân tích thiết kế hệ thống website bán laptop
Chương 3 tập trung vào thiết kế kỹ thuật chi tiết của hệ thống. Tác giả xây dựng lược đồ thực thể quan hệ (ERD) mức quan niệm và mô hình cơ sở dữ liệu mức vật lý, định nghĩa chi tiết kiểu dữ liệu, ràng buộc toàn vẹn và mối quan hệ giữa 9 bảng dữ liệu (Bảng 3-1 đến Bảng 3-9). Phần tiếp theo của chương là tập hợp các bản thiết kế khung giao diện (Wireframe) mô phỏng bố cục trực quan cho hai phân hệ:
- Phân hệ khách hàng (8 bản vẽ Wireframe): Trang chủ, trang danh sách sản phẩm, trang chi tiết sản phẩm, trang giỏ hàng, trang thông tin đặt hàng, trang liên hệ, trang tin tức và trang chi tiết tin tức.
- Phân hệ quản trị (12 bản vẽ Wireframe): Trang chủ quản trị (Dashboard), các trang quản lý đơn hàng phân chia theo 5 trạng thái (đơn hàng mới, đơn hàng đã duyệt, đơn hàng đang giao, đơn hàng đã giao, đơn hàng đã hủy), trang quản lý người dùng, trang chỉnh sửa người dùng, trang quản lý sản phẩm, trang quản lý nhà cung cấp, trang quản lý tin tức và giao diện hộp thoại chat thời gian thực.
Chương 4: Tổ chức và cài đặt chương trình
Chương này mô tả cấu hình môi trường phát triển phần mềm và kiến trúc mã nguồn thực tế của dự án. Tác giả trình bày cấu trúc thư mục mã nguồn phía backend Spring Boot cũng như hai phân hệ giao diện frontend (Admin và Customer), bao gồm cách bố trí các thư mục public và src. Nội dung chương minh họa kết quả triển khai hệ thống thông qua các ảnh chụp màn hình giao diện thực tế đã được lập trình hoàn chỉnh: giao diện trang chủ người dùng, màn hình đăng nhập, danh mục sản phẩm, giỏ hàng, trang đặt hàng trực tuyến; cùng với giao diện bảng điều khiển quản trị (Dashboard), màn hình quản lý trạng thái đơn hàng, giao diện quản lý danh mục laptop, thông tin nhà cung cấp và hệ thống tin tức.
Chương 5: Kiểm thử phần mềm
Chương 5 xác định kế hoạch và mục tiêu kiểm thử phần mềm nhằm bảo đảm tính đúng đắn và độ ổn định của các chức năng đã xây dựng. Nhóm tác giả áp dụng phương pháp kiểm thử chức năng (Functional Testing) theo kỹ thuật hộp đen, kết hợp việc sử dụng công cụ Postman để kiểm thử các điểm cuối RESTful API và kiểm thử trực tiếp trên trình duyệt đối với giao diện người dùng. Toàn bộ các ca kiểm thử (Test Cases) được lập bảng theo dõi chi tiết (Bảng 5-1: Bảng thực hiện kiểm thử), bao gồm các trường hợp kiểm tra tính năng xác thực tài khoản qua email, đăng nhập bằng tài khoản Google, thêm bớt sản phẩm trong giỏ hàng, quy trình thanh toán qua cổng PayPal và khả năng đồng bộ dữ liệu của chức năng chat realtime.
Kết quả và đóng góp
Khóa luận đã hoàn thành các mục tiêu kỹ thuật và nghiệp vụ đề ra với các kết quả cụ thể được ghi nhận trong văn bản:
- Kết quả cài đặt hệ thống phần mềm: Xây dựng thành công website thương mại điện tử chuyên biệt cho sản phẩm laptop mang tên "LaptopPT" với hai phân hệ độc lập dành cho khách hàng và nhà quản trị. Hệ thống giao tiếp thông qua kiến trúc RESTful API, vận hành trên nền tảng backend Spring Boot và cơ sở dữ liệu MySQL.
- Các tính năng đã triển khai hoàn chỉnh:
- Xác thực và người dùng: Đăng ký, đăng nhập tài khoản với cơ chế bảo mật JWT, xác thực đăng ký tài khoản thông qua gửi mã về hộp thư điện tử Gmail (giao thức SMTP), đăng nhập bằng tài khoản Google OAuth, quản lý hồ sơ cá nhân và đổi mật khẩu.
- Chức năng thương mại điện tử: Xem danh sách laptop theo hãng sản xuất; lọc và sắp xếp sản phẩm; xem chi tiết cấu hình và hỗ trợ xem hình ảnh 360 độ; chức năng giỏ hàng (thêm, cập nhật, xóa sản phẩm); quản lý danh mục sản phẩm yêu thích (Wishlist); đánh giá và nhận xét sản phẩm.
- Thanh toán và xử lý đơn hàng: Quy trình đặt hàng trực tuyến tích hợp cổng thanh toán quốc tế PayPal; hệ thống theo dõi trạng thái đơn hàng dành cho khách hàng và quy trình kiểm duyệt 5 bước dành cho quản trị viên (đơn hàng mới, duyệt đơn, đang giao, đã giao, hủy đơn).
- Tiện ích nâng cao: Tích hợp trợ lý ảo tự động trả lời bằng mô hình ChatGPT qua API của OpenAI; tích hợp hộp thoại trò chuyện trực tiếp (chat realtime) giữa khách hàng và quản trị viên sử dụng Firebase Realtime Database; tìm kiếm sản phẩm bằng giọng nói qua Web Speech API.
- Phân hệ quản trị: Cung cấp trang Dashboard thống kê, các module quản lý người dùng, quản lý sản phẩm, quản lý thông tin đối tác/nhà cung cấp và quản lý bài viết tin tức công nghệ.
- Đóng góp của đồ án: Ứng dụng thành công mô hình kết hợp giữa framework Spring Boot (hướng dịch vụ doanh nghiệp) và thư viện ReactJS (tối ưu hóa giao diện người dùng) vào bài toán thương mại điện tử chuyên ngành máy tính xách tay; hiện thực hóa việc đưa các dịch vụ thông minh (ChatGPT, nhận diện giọng nói, trò chuyện thời gian thực) vào hệ thống mua sắm trực tuyến.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các nội dung tự đánh giá và phạm vi triển khai của đồ án, các hạn chế kỹ thuật và định hướng mở rộng được xác định như sau:
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo hữu ích cho các nhóm đối tượng sau:
- Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin: Tài liệu cung cấp ví dụ thực tế về quy trình phát triển một ứng dụng web full-stack hoàn chỉnh từ khâu khảo sát nghiệp vụ, phân tích thiết kế hệ thống, mô hình hóa dữ liệu đến cài đặt và kiểm thử.
- Người nghiên cứu kiến trúc kết hợp Spring Boot và ReactJS: Báo cáo trình bày rõ ràng phương thức phân tầng mã nguồn, cách thức đóng gói và phân phối dịch vụ qua RESTful API, cũng như giải pháp quản lý trạng thái tập trung với Redux.
- Các phần nội dung có giá trị tham khảo chuyên môn cao:
- Hệ thống 21 lược đồ tuần tự (Sequence Diagram) và bảng mô tả chi tiết 20 trường hợp sử dụng trong Chương 2, cung cấp chuẩn mực thiết kế logic nghiệp vụ cho các đồ án thương mại điện tử.
- Thiết kế cấu trúc 9 bảng dữ liệu quan hệ trong Chương 3, có thể tái sử dụng trực tiếp cho các bài toán quản lý bán hàng công nghệ.
- Hướng dẫn kỹ thuật chi tiết về việc kết nối và xử lý dữ liệu với các dịch vụ bên thứ ba: tích hợp API của OpenAI (ChatGPT), cơ chế đồng bộ thời gian thực của Firebase Realtime Database và cấu hình thanh toán qua PayPal Developer.
Câu hỏi thường gặp
1. Hệ thống sử dụng cơ chế nào để bảo mật và phân quyền truy cập giữa người dùng thông thường và quản trị viên?
Hệ thống sử dụng cơ chế xác thực không lưu trạng thái bằng JSON Web Token (JWT) kết hợp Spring Security. Chuỗi JWT bao gồm ba phần: Header, Payload (chứa thông tin định danh và quyền hạn authorities) và Signature (ký bằng thuật toán HS256 cùng khóa bí mật). Khi người dùng đăng nhập thành công, máy chủ xác thực sẽ cấp một token; ở các yêu cầu tiếp theo, client gửi kèm token này trong tiêu đề HTTP để máy chủ ứng dụng xác minh danh tính và kiểm tra quyền hạn (Role: User hoặc Admin). Ngoài ra, hệ thống hỗ trợ xác thực tài khoản qua Google OAuth.
2. Tính năng trò chuyện trực tuyến trên website LaptopPT được xây dựng bằng những giải pháp kỹ thuật nào?
Hệ thống thiết lập hai cơ chế trò chuyện độc lập:
- Hộp thoại tự động: Tích hợp API của OpenAI (mô hình ChatGPT dựa trên GPT-3), gọi trực tiếp từ component
Chat.js của ứng dụng React thông qua việc truyền API Key vào tiêu đề ủy quyền (Authorization Header).
- Hộp thoại tương tác thực tế giữa khách hàng và admin: Xây dựng trên nền tảng Firebase Realtime Database. Dữ liệu tin nhắn được ghi qua hàm
writeUserChatData và cập nhật tức thời trên giao diện mà không cần tải lại trang nhờ sử dụng API onValue để lắng nghe sự thay đổi trên node tài khoản người dùng.
3. Khóa luận ghi nhận vấn đề kỹ thuật nào khi triển khai chức năng gửi email xác thực qua SMTP của Spring Boot?
Khi sử dụng thư viện Spring Mail kết hợp JavaMailSender để gửi email qua máy chủ SMTP của Google, hệ thống phải tuân thủ giới hạn lưu lượng của Google (thường tối đa khoảng 500 email mỗi ngày đối với tài khoản cá nhân để chống thư rác). Nếu vượt quá số lượng này, hệ thống sẽ phát sinh lỗi giới hạn mail. Để gửi được email từ ứng dụng backend, người phát triển bắt buộc phải bật tính năng xác minh hai bước trên tài khoản Gmail và khởi tạo một mật khẩu ứng dụng riêng biệt để cấu hình vào mã nguồn.
4. Cơ sở dữ liệu của hệ thống gồm những bảng dữ liệu chính nào và đảm nhiệm chức năng gì?
Cơ sở dữ liệu MySQL của hệ thống gồm 9 bảng chính: ACCOUNT (lưu trữ tài khoản, mật khẩu, phân quyền), PRODUCT (lưu trữ cấu hình, giá, hình ảnh laptop), SUPPLIER (lưu danh sách nhà cung cấp sản phẩm), CART (lưu giỏ hàng tạm thời), ORDERS (lưu đơn hàng và tổng tiền), ORDER_DETAIL (lưu chi tiết từng sản phẩm trong đơn), WISHLIST (lưu danh sách sản phẩm yêu thích), REVIEWS (lưu nhận xét và đánh giá sao) và NEW (lưu tin tức công nghệ và thông báo khuyến mãi).
Kết luận
Đồ án tốt nghiệp "Tìm hiểu Spring Boot và React JS. Ứng dụng xây dựng website bán laptop" của sinh viên Bùi Lê Tấn Phi và Vũ Trung Tín (Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) đã hoàn thành trọn vẹn việc phân tích, thiết kế và cài đặt một hệ thống thương mại điện tử chuyên ngành thiết bị tin học. Công trình kết hợp thành công nền tảng dịch vụ backend mạnh mẽ của Spring Boot, cơ sở dữ liệu quan hệ MySQL và giao diện người dùng linh hoạt của ReactJS, đồng thời mở rộng ứng dụng với các tiện ích hiện đại như thanh toán PayPal, trợ lý ChatGPT và chat thời gian thực qua Firebase. Mặc dù vẫn còn một số điểm cần tối ưu về hạ tầng gửi mail và mở rộng quy mô dữ liệu phân tán, đồ án là một tài liệu kỹ thuật có giá trị tham khảo học thuật và ứng dụng cao cho sinh viên chuyên ngành Công nghệ Thông tin.