Bối cảnh và vấn đề nghiên cứu
Thương mại điện tử và mua sắm trực tuyến đã trở thành xu hướng phát triển tất yếu trong thời đại số hóa, cho phép người tiêu dùng tiếp cận và giao dịch hàng hóa trực tiếp thông qua môi trường mạng Internet. Trong lĩnh vực phát hành và kinh doanh xuất bản phẩm, nhu cầu tiếp cận nguồn tri thức, tìm kiếm các đầu sách chất lượng với giá thành hợp lý và quy trình mua sắm tiện lợi ngày càng gia tăng. Phương thức mua sắm sách truyền thống bộc lộ những hạn chế về thời gian di chuyển, chi phí vận hành điểm bán, quản lý mặt bằng và nhân sự. Nhằm giải quyết các bài toán thực tiễn này, đề tài "Xây dựng Website bán sách online" được thực hiện bởi nhóm sinh viên ngành Công nghệ Thông tin (chuyên ngành Kỹ thuật phần mềm), 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. Nguyễn Minh Đạo.
Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể trong văn bản:
- Xây dựng một trang web thương mại điện tử chuyên doanh sách trực tuyến hoàn chỉnh, cung cấp giao diện thân thiện, đa nền tảng và tối ưu hóa trải nghiệm người dùng.
- Thiết kế và hiện thực hóa các phân hệ chức năng phục vụ ba nhóm đối tượng người dùng: Giám đốc (Director), Quản trị viên (Admin) và Khách hàng (User).
- Tích hợp các giải pháp công nghệ nâng cao bao gồm cổng thanh toán trực tuyến và trợ lý ảo (Chatbot) hỗ trợ tự động hóa quá trình tư vấn, tra cứu sản phẩm và giải đáp thắc mắc của độc giả.
- Tối ưu hóa tính tương thích giao diện (Responsive Web Design) trên các thiết bị di động thông minh, máy tính bảng (Tablet/iPad) và máy tính cá nhân.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình nghiệp vụ bán lẻ sách trực tuyến, cấu trúc dữ liệu thương mại điện tử, các mô hình phân tích thiết kế phần mềm, kiến trúc ứng dụng web Java Spring Boot và công nghệ xử lý ngôn ngữ tự nhiên Dialogflow.
- Phạm vi không gian: Hệ thống thương mại điện tử triển khai trên nền tảng web, khảo sát mô hình vận hành của các hệ thống thực tế tại thị trường Việt Nam như Fahasa, Tiki và Shopee.
- Phạm vi thời gian: Đề tài được tiếp nhận và thực hiện từ tháng 08/2023 đến tháng 12/2023.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và công nghệ ứng dụng
Đề tài dựa trên nền tảng kiến trúc ứng dụng web hướng dịch vụ (RESTful Web Services) kết hợp mô hình phân tầng hướng đối tượng trong hệ sinh thái Java. Các công nghệ và công cụ được tác giả lựa chọn và trình bày chi tiết bao gồm:
| Thành phần hệ thống |
Công nghệ / Thư viện / Công cụ |
Vai trò và đặc tính kỹ thuật |
| Ngôn ngữ lập trình |
Java, JavaScript, HTML, CSS |
Xây dựng logic phía máy chủ và cấu trúc giao diện người dùng |
| Frontend Framework & Libs |
Thymeleaf, Bootstrap, JQuery, AngularJS |
Xây dựng giao diện phản hồi nhanh, xử lý DOM và cơ chế render dữ liệu tự nhiên |
| Backend Framework |
Spring Boot, Spring Data JPA, Hibernate |
Quản lý vòng đời ứng dụng, cấu hình tự động (Auto-configuration), ánh xạ quan hệ thực thể |
| Bảo mật hệ thống |
Spring Security |
Quản lý xác thực người dùng (Authentication), phân quyền truy cập (Authorization) |
| Dịch vụ tiện ích |
Spring Mail, Apache Maven |
Gửi email xác thực mã đăng ký/đổi mật khẩu; Quản lý gói phụ thuộc và tự động hóa build mã nguồn |
| Web Server / Container |
Apache Tomcat |
Máy chủ ứng dụng nhúng (Embedded Server) xử lý các Servlet/JSP và HTTP requests |
| Hệ quản trị cơ sở dữ liệu |
MySQL |
Lưu trữ dữ liệu quan hệ, đảm bảo tính toàn vẹn và hỗ trợ đa người dùng |
| Trí tuệ nhân tạo / NLP |
Google Dialogflow |
Xử lý ngôn ngữ tự nhiên, xây dựng kịch bản hội thoại tự động cho Chatbot |
| Môi trường phát triển |
IntelliJ IDEA, Visual Studio Code |
Công cụ viết mã, gỡ lỗi và quản lý dự án |
Phương pháp nghiên cứu
Tác giả kết hợp hai phương pháp nghiên cứu chính để hoàn thiện đồ án:
- Phương pháp thu thập dữ liệu: Khảo sát các tài liệu kỹ thuật chính thức của ngôn ngữ Java, Spring Boot, MySQL; tham khảo video hướng dẫn lập trình trên nền tảng YouTube; phân tích hiện trạng giao diện, chức năng và luồng tương tác của các sàn thương mại điện tử thực tế gồm Fahasa (fahasa.com) và Tiki (tiki.vn).
- Phương pháp phân tích - tổng hợp: Vận dụng kiến thức chuyên ngành Kỹ thuật phần mềm để mô hình hóa yêu cầu, xây dựng sơ đồ luồng dữ liệu (Data Flow Diagram - DFD), sơ đồ ca sử dụng (Use Case Diagram), sơ đồ tuần tự (Sequence Diagram), sơ đồ quan hệ thực thể (ERD) và tiến hành hiện thực hóa mã nguồn, kiểm thử hệ thống.
Thiết kế và triển khai hệ thống
Kiến trúc phân quyền và ca sử dụng (Actors & Use Cases)
Hệ thống được thiết kế phân cấp rõ ràng cho ba nhóm đối tượng (Actors) với các chức năng nghiệp vụ riêng biệt:
- Giám đốc (Director):
- Quản lý danh sách tài khoản nhân viên (thêm, sửa, xóa, khóa tài khoản mà không xem mật khẩu gốc của nhân viên để bảo mật dữ liệu).
- Quản lý thông tin đối tác, hãng sản xuất và cấu hình thông tin cửa hàng (
InfomationShop).
- Theo dõi báo cáo, thống kê doanh thu và sản lượng bán theo nhiều dạng biểu đồ: biểu đồ cột (Bar chart), biểu đồ đường (Line chart), biểu đồ tròn (Pie chart) và biểu đồ vùng cực (Polar Area chart) theo tuần, tháng, năm.
- Quản trị viên (Admin / Nhân viên):
- Quản trị danh mục sản phẩm (thiết kế theo cấu trúc cây phân cấp - danh mục cha và nhiều danh mục con), quản lý danh sách hãng sản xuất/nhà xuất bản.
- Quản trị thông tin sản phẩm, cập nhật bảng giá và số lượng tồn kho.
- Tiếp nhận và xử lý vòng đời đơn hàng: Đang chờ duyệt $\rightarrow$ Đang chờ vận chuyển $\rightarrow$ Đã hoàn thành $\rightarrow$ Đã hủy.
- Kiểm duyệt, phản hồi hoặc gỡ bỏ các bình luận, đánh giá vi phạm chính sách; quản lý danh mục bài viết (Blog) và giải đáp câu hỏi người dùng.
- Người dùng (User / Khách hàng):
- Đăng ký tài khoản (xác thực qua mã code gửi bằng Spring Mail), đăng nhập hệ thống, khôi phục mật khẩu.
- Quản lý thông tin cá nhân, cập nhật sổ địa chỉ giao hàng (
Address).
- Tìm kiếm sách theo từ khóa gần đúng, lọc sách theo danh mục đa cấp, xem chi tiết sách.
- Quản lý giỏ hàng, áp dụng mã giảm giá (
Discount), chọn phương thức vận chuyển và thanh toán trực tuyến.
- Theo dõi lịch sử trạng thái đơn hàng, thêm sách vào danh mục yêu thích (
Favorites), viết đánh giá và xếp hạng sản phẩm đã mua, tương tác với Chatbot hỗ trợ tự động.
Thiết kế cơ sở dữ liệu quan hệ (ERD Entities)
Cơ sở dữ liệu của hệ thống được xây dựng trên MySQL, chuẩn hóa qua các bảng thực thể chính được xác định trong đồ án:
| Tên bảng thực thể |
Vai trò và mô tả dữ liệu |
User |
Lưu trữ thông tin tài khoản người dùng, email, mật khẩu mã hóa, trạng thái |
Roles |
Định nghĩa các vai trò trong hệ thống (Director, Admin, User) |
User_Role |
Bảng liên kết trung gian thể hiện quan hệ nhiều-nhiều giữa người dùng và vai trò |
Employees |
Quản lý thông tin chi tiết của nhân viên và cấp quản lý |
Categories |
Lưu trữ danh mục sản phẩm theo cấu trúc cây đa cấp |
Products |
Lưu trữ thông tin chi tiết của sách (tên sách, giá bán, số lượng, mô tả, hình ảnh) |
Manufactures |
Danh sách các nhà xuất bản, nhà sản xuất, đối tác cung cấp |
Orders |
Lưu trữ dữ liệu đơn hàng, ngày đặt, trạng thái đơn, tổng tiền thanh toán |
Address |
Sổ địa chỉ nhận hàng của khách hàng |
Comments |
Nội dung bình luận và phản hồi trên từng sản phẩm |
Discount |
Thông tin các chương trình khuyến mãi, mã giảm giá |
Favorites |
Danh sách sản phẩm được người dùng đánh dấu yêu thích |
InfomationShop |
Cấu hình thông tin giới thiệu, liên hệ của website bán hàng |
MenuOne, MenuTwo |
Quản lý cấu trúc điều hướng menu phân cấp trên giao diện người dùng |
Nội dung chính theo từng chương
Chương 1: Giới thiệu
Chương 1 thiết lập khung tổng thể cho đề tài, bắt đầu bằng việc phân tích sự chuyển dịch từ mua sắm truyền thống sang thương mại điện tử từ sau năm 2016 trên các thiết bị di động. Tác giả chỉ rõ lý do chọn đề tài xuất phát từ nhu cầu thực tiễn của độc giả trong việc tìm kiếm, so sánh giá và sở hữu sách một cách nhanh chóng, tiết kiệm chi phí vận hành trung gian. Chương này công bố mục tiêu đề tài, giới hạn phạm vi cạnh tranh, xác định các phương pháp nghiên cứu (thu thập dữ liệu internet, tài liệu lập trình, video hướng dẫn và phân tích tổng hợp) cùng danh mục nền tảng công nghệ sử dụng.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày chi tiết nền tảng lý thuyết và khảo sát hiện trạng:
- Tổng quan về giải pháp website bán sách tích hợp Chatbot và cổng thanh toán.
- Giới thiệu đặc tính đa nền tảng của Java, kiến trúc máy ảo JVM, quản lý bộ nhớ tự động và hệ quản trị cơ sở dữ liệu quan hệ MySQL.
- Khái quát các công nghệ hỗ trợ: Apache Tomcat, Spring Boot (tự động hóa cấu hình, máy chủ nhúng), Spring Security (bảo vệ tài nguyên, kiểm soát phiên), Apache Maven, RESTful Web Service kết hợp jQuery để gửi nhận HTTP requests, template engine Thymeleaf và dịch vụ xử lý ngôn ngữ tự nhiên Google Dialogflow.
- Khảo sát thực tế hai hệ thống bán lẻ trực tuyến lớn tại Việt Nam là Fahasa và Tiki về giao diện, tính năng và tốc độ xử lý.
- Phân tích cơ cấu tổ chức và quy định cụ thể các luồng nghiệp vụ: mua và thanh toán đơn hàng, quản lý đơn hàng/sản phẩm, quản lý danh mục cây của hãng sản xuất, quản lý tài khoản người dùng/nhân viên, xử lý đánh giá bình luận và lập báo cáo thống kê doanh số theo mốc thời gian (tuần/tháng/nam).
Chương 3: Phân tích thiết kế hệ thống
Chương 3 tập trung vào công tác kỹ thuật phân tích và mô hình hóa hệ thống:
- Xây dựng bản vẽ phác thảo giao diện Mockup cho cả hai phân hệ Quản lý (Admin) và Người dùng (User), bao gồm trang chủ, chi tiết sản phẩm, giỏ hàng và các bảng điều khiển báo cáo.
- Xây dựng sơ đồ luồng dữ liệu (DFD) qua các mức (DFD mức 1, DFD mức 2, DFD mức 3) mô tả dòng luân chuyển thông tin giữa các thực thể và kho dữ liệu.
- Thiết lập mô hình Use Case tổng quát cho từng Actor (Director, Admin, User).
- Xây dựng sơ đồ tuần tự (Sequence Diagram) và bảng đặc tả chi tiết cho các ca sử dụng tiêu biểu: Đăng ký (gửi mã xác nhận qua email), Đăng nhập (tạo session hoặc phân nhánh quên mật khẩu), Tìm kiếm sản phẩm (truy vấn chuỗi gần đúng trên cơ sở dữ liệu), Đánh giá sản phẩm, Xử lý đặt hàng, Chỉnh sửa thông tin cá nhân và các luồng Xem/Thêm/Cập nhật/Xóa dữ liệu của Quản trị viên.
- Thiết kế sơ đồ quan hệ thực thể (ERD) và chi tiết 15 bảng cơ sở dữ liệu.
Chương 4: Demo – Kiểm thử giao diện
Chương 4 ghi lại kết quả hiện thực hóa giao diện và quy trình thử nghiệm chức năng:
- Trình bày hình ảnh giao diện thực tế của hệ thống: Trang chủ, Trang đăng nhập, Trang đăng ký tài khoản, Trang xem chi tiết sản phẩm, Trang giỏ hàng và thanh toán, Trang chỉnh sửa thông tin cá nhân, Trang quản lý địa chỉ giao hàng, Trang đổi mật khẩu, Trang danh mục yêu thích, Trang tìm kiếm theo danh mục.
- Trình bày hệ thống Dashboard quản trị: Danh sách nhân viên, danh mục, thương hiệu/nhà sản xuất, người dùng, sản phẩm, bình luận/đánh giá.
- Trình bày trực quan 4 dạng biểu đồ thống kê: biểu đồ cột, biểu đồ đường (theo dõi xu hướng bán hàng), biểu đồ tròn (cơ cấu trạng thái đơn) và biểu đồ vùng cực.
- Kiểm thử chức năng phần mềm qua các kịch bản kiểm thử: Kiểm thử đăng nhập/đăng xuất; Kiểm thử quy trình quên mật khẩu và quản lý nhà xuất bản; Kiểm thử phân hệ người dùng và sản phẩm; Kiểm thử quy trình duyệt và cập nhật trạng thái đơn hàng.
Chương 5: Kết quả và hướng phát triển
Chương 5 tổng kết toàn bộ quá trình thực hiện đồ án, đối chiếu sản phẩm hoàn thiện với các mục tiêu đã đề ra ban đầu, đánh giá khả năng vận hành thực tế của trang web và nêu các kiến nghị phát triển mở rộng hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả kỹ thuật đạt được
- Hoàn thiện hệ thống website thương mại điện tử: Xây dựng thành công ứng dụng web bán sách hoàn chỉnh với giao diện responsive, tương thích đồng bộ trên máy tính để bàn, máy tính bảng và điện thoại thông minh.
- Tích hợp tiện ích thông minh: Triển khai thành công tính năng Chatbot hỗ trợ người dùng ứng dụng nền tảng Dialogflow và cổng thanh toán trực tuyến an toàn.
- Phân quyền và bảo mật chặt chẽ: Hiện thực hóa cơ chế phân quyền đa cấp (Director - Admin - User) với Spring Security; quy trình xác thực tài khoản qua email thực tế bằng Spring Mail; bảo mật thông tin mật khẩu nhân viên trước cấp quản lý trực tiếp.
- Trực quan hóa dữ liệu quản trị: Tích hợp bộ công cụ thống kê doanh thu và đơn hàng đa dạng với 4 loại biểu đồ trực quan, phục vụ quá trình ra quyết định của cấp quản lý.
- Đảm bảo tính toàn vẹn chức năng: Toàn bộ các module cốt lõi (xác thực, quản lý kho/danh mục đa cấp, đặt hàng, xử lý giỏ hàng, đánh giá/bình luận) đã vượt qua các kịch bản kiểm thử giao diện và luồng nghiệp vụ.
Đóng góp của đề tài
- Cung cấp một giải pháp phần mềm cụ thể ứng dụng mô hình công nghệ Java Spring Boot kết hợp MySQL cho bài toán thương mại điện tử ngành sách.
- Chuẩn hóa quy trình nghiệp vụ bán sách trực tuyến từ khâu quản lý danh mục dạng cây, kiểm duyệt tương tác người dùng đến thống kê doanh thu tự động.
- Minh chứng tính khả thi của việc tích hợp xử lý ngôn ngữ tự nhiên (NLP qua Dialogflow) vào các hệ thống web bán lẻ quy mô vừa và nhỏ nhằm nâng cao trải nghiệm khách hàng.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của hệ thống
- Hệ thống tập trung giải quyết bài toán nghiệp vụ bán sách online cốt lõi, phạm vi khảo sát thực nghiệm đối sánh chủ yếu dừng lại ở các sàn thương mại điện tử lớn (Fahasa, Tiki, Shopee).
- Các kịch bản của Chatbot Dialogflow vẫn phụ thuộc vào cấu hình luồng hội thoại định sẵn, cần mở rộng dữ liệu huấn luyện để xử lý các ngữ cảnh phức tạp hơn của người mua sách.
Hướng phát triển
Căn cứ vào nội dung chương 5, các hướng hoàn thiện và mở rộng tiếp theo cho hệ thống bao gồm:
- Tiếp tục tối ưu hóa hiệu năng xử lý cơ sở dữ liệu khi lượng người dùng đồng thời và quy mô dữ liệu sản phẩm tăng cao.
- Mở rộng kịch bản và huấn luyện nâng cao cho Chatbot Dialogflow để gợi ý sách thông minh theo sở thích và thói quen đọc của từng cá nhân.
- Tích hợp thêm các phương thức thanh toán điện tử mới và liên kết trực tiếp với các đơn vị vận chuyển trung gian qua API để tự động hóa hoàn toàn khâu tính phí và theo dõi định vị bưu phẩm.
Giá trị tham khảo
Đồ án là tài liệu tham khảo có giá trị học thuật và kỹ thuật thực hành cho các đối tượng:
- Sinh viên ngành Công nghệ Thông tin / Kỹ thuật phần mềm: Là tài liệu mẫu về quy trình phát triển một dự án phần mềm hoàn chỉnh từ khâu khảo sát, phân tích yêu cầu, thiết kế hệ thống (DFD, Use Case, Sequence, ERD), xây dựng kiến trúc Spring Boot - MySQL đến kiểm thử phần mềm.
- Lập trình viên và người nghiên cứu web thương mại điện tử: Có thể tham khảo phương pháp thiết kế cơ sở dữ liệu quan hệ gồm 15 bảng thực thể, kỹ thuật phân cấp danh mục sản phẩm dạng cây và phương thức tích hợp Dialogflow vào ứng dụng web Java.
Câu hỏi thường gặp
1. Hệ thống sử dụng những công nghệ và framework nào cho phía Frontend và Backend?
Hệ thống sử dụng Java (Spring Boot, Spring Data JPA, Spring Security, Hibernate, Spring Mail, Apache Maven) cho phía Backend; kết hợp HTML, CSS, JavaScript, JQuery, Bootstrap, Thymeleaf và AngularJS cho phía Frontend, chạy trên máy chủ nhúng Apache Tomcat và cơ sở dữ liệu MySQL.
2. Chatbot tích hợp trong website sử dụng công nghệ gì và đảm nhận vai trò gì?
Chatbot được xây dựng dựa trên dịch vụ xử lý ngôn ngữ tự nhiên Google Dialogflow. Tính năng này hỗ trợ tự động giải đáp các thắc mắc về sản phẩm, hỗ trợ tìm kiếm thông tin, hỗ trợ quy trình đặt hàng và gợi ý sách theo sở thích của người dùng.
3. Cơ cấu phân quyền trong hệ thống gồm những vai trò nào và quyền hạn của Giám đốc (Director) khác gì Quản trị viên (Admin)?
Hệ thống phân chia 3 vai trò: Director, Admin và User. Director có quyền quản lý tài khoản nhân viên (không xem được mật khẩu của nhân viên), quản lý đối tác sản xuất, cấu hình thông tin cửa hàng và xem thống kê doanh thu đa dạng. Admin chịu trách nhiệm quản lý tài khoản người dùng, sản phẩm, danh mục đa cấp, bài viết, đơn hàng và kiểm duyệt bình luận/đánh giá.
4. Cơ sở dữ liệu của hệ thống quản lý những bảng thực thể chính nào?
Cơ sở dữ liệu MySQL của hệ thống bao gồm 15 bảng thực thể: User, Roles, User_Role, Employees, Categories, Products, Address, Comments, Discount, Favorites, InfomationShop, Manufactures, MenuOne, MenuTwo và Orders.
5. Báo cáo thống kê quản trị hỗ trợ những dạng biểu đồ trực quan nào?
Phân hệ quản trị cung cấp 4 dạng biểu đồ trực quan hóa dữ liệu gồm: biểu đồ cột (Bar chart), biểu đồ đường (Line chart), biểu đồ tròn (Pie chart) và biểu đồ vùng cực (Polar Area chart) để theo dõi doanh thu và sản lượng bán theo tuần, tháng, năm.
Kết luận
Đồ án tốt nghiệp "Xây dựng Website bán sách online" của sinh viên Nguyễn Phú Quốc và Hoàng Minh Châu đã hiện thực hóa thành công một hệ thống thương mại điện tử hoàn chỉnh trên nền tảng Java Spring Boot và MySQL. Đề tài giải quyết tốt các yêu cầu nghiệp vụ thực tế từ khâu quản lý danh mục đa cấp, xử lý đơn hàng, phân quyền bảo mật đến việc tích hợp thanh toán trực tuyến và trợ lý ảo Dialogflow. Các kết quả phân tích thiết kế, mô hình cơ sở dữ liệu và kịch bản kiểm thử được trình bày mạch lạc, mang lại giá trị tham khảo thực tiễn cao cho sinh viên chuyên ngành Kỹ thuật phần mềm.