Bối cảnh và vấn đề nghiên cứu
Thương mại điện tử trong những năm gần đây ghi nhận tốc độ tăng trưởng mạnh mẽ và trở thành xu hướng mua sắm phổ biến đối với nhiều đối tượng người dùng. Mặc dù các nền tảng thương mại điện tử lớn hiện nay (như Shopee, Lazada, Tiki) đều phát triển ứng dụng trên thiết bị di động, nền tảng website vẫn giữ vai trò thiết yếu nhờ tính thuận tiện: người dùng có thể truy cập trực tiếp từ bất kỳ trình duyệt web nào có kết nối Internet mà không cần cài đặt phần mềm bổ sung. Xuất phát từ bối cảnh thực tiễn đó, khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Phần mềm của sinh viên Trần Đoàn Phương và Đỗ Đức Tâm (Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh, thực hiện năm 2023 dưới sự hướng dẫn của ThS. Trần Thị Hồng Yến) đã triển khai đề tài: "Xây dựng website thương mại điện tử với chatbot" (Building an e-commerce website with a chatbot).
Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:
- Xây dựng một website thương mại điện tử hoàn chỉnh, hỗ trợ đồng thời nhu cầu mua sắm của khách hàng và hoạt động kinh doanh trực tuyến của người bán/chủ cửa hàng.
- Tích hợp hệ thống trả lời tự động chatbot ứng dụng trí tuệ nhân tạo nhằm hỗ trợ người dùng tương tác, tra cứu thông tin sản phẩm và thực hiện các quy trình mua hàng/hỗ trợ nhanh chóng.
- Phân tích, thiết kế và cài đặt hệ thống trên nền tảng web hiện đại, đảm bảo khả năng xử lý đơn hàng, quản lý kho, mã giảm giá, đánh giá sản phẩm và giao tiếp thời gian thực (real-time) giữa người mua và người bán.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình vận hành của một hệ thống thương mại điện tử đa người dùng (người mua và người bán lẻ) và mô hình tích hợp chatbot thông minh hỗ trợ dịch vụ khách hàng.
- Phạm vi không gian và triển khai: Môi trường ứng dụng web, có khả năng mở rộng kênh tương tác của chatbot sang nền tảng mạng xã hội Facebook.
- Phạm vi thời gian: Đề tài được hoàn thành và nghiệm thu vào tháng 07 năm 2023.
Cơ sở lý thuyết và công nghệ áp dụng
Đề tài thuộc loại hình xây dựng hệ thống phần mềm ứng dụng, kết hợp giữa phát triển web hướng dữ liệu và tích hợp dịch vụ trí tuệ nhân tạo.
1. Công nghệ nền tảng và khung phát triển
Khóa luận vận dụng ngăn xếp công nghệ MERN (MongoDB – ExpressJS – ReactJS – NodeJS) kết hợp các thư viện chuyên dụng:
| Thành phần |
Công nghệ / Nền tảng |
Vai trò và đặc tính kỹ thuật trong hệ thống |
| Giao diện (Front-End) |
HTML5, CSS3, JavaScript, ReactJS |
Cung cấp giao diện người dùng tương tác dạng SPA (Single Page Application), tận dụng cơ chế Virtual DOM của ReactJS và cú pháp JSX để tái sử dụng component và tối ưu hóa tốc độ kết xuất. |
| Máy chủ (Back-End) |
NodeJS, ExpressJS |
Cung cấp môi trường thực thi JavaScript bất đồng bộ hướng sự kiện phía server; xây dựng hệ thống API định tuyến (Router) đóng vai trò cầu nối xử lý logic giữa client và cơ sở dữ liệu. |
| Cơ sở dữ liệu |
MongoDB, Mongoose |
Hệ quản trị cơ sở dữ liệu NoSQL lưu trữ dưới dạng JSON Document linh hoạt; thư viện Mongoose hỗ trợ định nghĩa schema, thực hiện các truy vấn dữ liệu. |
| Giao tiếp thời gian thực |
Socket.io |
Thiết lập kênh kết nối hai chiều real-time cho chức năng nhắn tin trực tiếp giữa khách hàng và người bán. |
| Nền tảng Chatbot |
FPT.AI (FPT Chatbot) |
Cung cấp nền tảng xử lý ngôn ngữ tự nhiên, huấn luyện máy học và thiết kế các kịch bản đối thoại tự động. |
| Công cụ hỗ trợ |
Figma, GitHub |
Thiết kế giao diện mẫu (UI/UX mockup) trên Figma và quản lý mã nguồn phiên bản bằng GitHub. |
2. Phương pháp phân tích và thiết kế
- Phương pháp phân tích chức năng: Phân rã hệ thống thành 17 ca sử dụng (use case) chính, đặc tả luồng sự kiện chính (main flow), luồng sự kiện ngoại lệ/thay thế (alternative flow) và điều kiện tiên quyết/hậu quả.
- Phương pháp mô hình hóa dữ liệu: Thiết kế lược đồ dữ liệu NoSQL với 10 cấu trúc bảng/collection có liên kết logic chặt chẽ, tối ưu hóa cho các thao tác truy xuất giỏ hàng, đơn hàng, phân loại sản phẩm và mã giảm giá.
- Phương pháp xây dựng kịch bản đối thoại: Ứng dụng kỹ thuật máy học của nền tảng FPT.AI bao gồm: xây dựng câu mẫu (sample phrases), định nghĩa ý định (intents), trích xuất loại thực thể (entities), quản lý từ khóa (keywords) và từ điển (dictionary).
Thiết kế và triển khai hệ thống
1. Kiến trúc phân hệ và danh mục Use-case
Hệ thống được thiết kế phục vụ hai nhóm tác nhân chính: khách hàng trực tuyến và chủ cửa hàng/người bán lẻ. Tổng cộng có 17 use-case chức năng chính được phân tích và đặc tả chi tiết trong hệ thống:
| STT |
Tên Use-case |
Mục đích và luồng xử lý chính |
| 1 |
Đăng nhập |
Xác thực tài khoản qua Tên đăng nhập/Email/SĐT và Mật khẩu; điều hướng người dùng và phân quyền. |
| 2 |
Đăng ký |
Tạo tài khoản mới với các trường bắt buộc (họ tên, email, SĐT, username, mật khẩu, xác nhận mật khẩu). |
| 3 |
Đăng xuất |
Hủy phiên làm việc và điều hướng về màn hình đăng nhập. |
| 4 |
Quản lý thông tin cá nhân |
Xem và truy cập các chức năng chỉnh sửa hồ sơ, đổi mật khẩu và đăng xuất. |
| 5 |
Chỉnh sửa thông tin cá nhân |
Cập nhật họ tên, email, số điện thoại, giới tính. |
| 6 |
Đổi mật khẩu |
Xác thực mật khẩu cũ, kiểm tra tính khớp của mật khẩu mới và cập nhật. |
| 7 |
Tìm kiếm sản phẩm |
Tìm kiếm sản phẩm theo từ khóa tên sản phẩm, lọc theo danh mục và sắp xếp kết quả. |
| 8 |
Mua hàng |
Chọn phân loại (màu sắc/thuộc tính), thêm vào giỏ hàng, xác nhận thông tin đơn hàng, nhập địa chỉ nhận và đặt hàng. |
| 9 |
Tra cứu đơn hàng |
Theo dõi đơn mua: thời gian đặt, danh sách sản phẩm, tổng tiền, mã giảm giá, tình trạng đơn hàng. |
| 10 |
Đánh giá sản phẩm |
Đánh giá đơn hàng đã mua với thang điểm 1–5 sao kèm nhận xét chi tiết. |
| 11 |
Chat với người bán |
Mở cửa sổ nhắn tin trực tiếp thời gian thực (real-time) với chủ cửa hàng có sản phẩm. |
| 12 |
Bán hàng |
Đăng tải sản phẩm mới bao gồm tên, phân loại, mô tả chi tiết và hình ảnh. |
| 13 |
Quản lý kho hàng |
Điều chỉnh tăng/giảm số lượng tồn kho theo từng phân loại sản phẩm của cửa hàng. |
| 14 |
Tra cứu đơn bán |
Quản lý danh sách đơn hàng khách đã đặt; thực hiện quyền xác nhận hoặc từ chối đơn hàng. |
| 15 |
Quản lý thông tin sản phẩm |
Chỉnh sửa nội dung sản phẩm hoặc xóa sản phẩm (tự động từ chối các đơn hàng chưa xác nhận liên quan). |
| 16 |
Thống kê |
Trực quan hóa số lượng đơn hàng đã bán theo các mốc thời gian bằng biểu đồ dạng đường và dạng cột. |
| 17 |
Quản lý mã giảm giá |
Thêm mới, cập nhật hoặc xóa mã khuyến mãi (theo giá trị cố định hoặc tỷ lệ %, kèm giá trị giảm tối đa và hạn sử dụng). |
2. Thiết kế cơ sở dữ liệu
Hệ thống sử dụng MongoDB làm cơ sở dữ liệu chính với 10 cấu trúc dữ liệu (collection/table) được chuẩn hóa thuộc tính:
Chi tiết các trường dữ liệu chính của 10 bảng gồm có:
- Account:
_id (string, PK), username (string), password (string), fullName (string), email (string), phoneNumber (number), imageURL (string).
- Address:
idAccount (string), fullName (string), phoneNumber (number), city (string), district (string), ward (string), detail (string).
- Product:
_id (string, PK), accountId (string), nameProduct (number/string), price (number), saleprice (number), countSold (number), countAvailabirity (number), countStar (number), decribe (string), type (string), imageURLs ([string]), createAt (date).
- Color:
_id (string, PK), productId (string), name (string).
- ProductInCart:
accountId (string), idProduct (string), count (number), color (string), price (number).
- ProductInFavorite:
productId (string), accountId (string).
- ProductInBill:
productId (string), billId (string), count (number).
- Bill:
id (string, PK), accountId (string), createAt (string), code (string), state (number), totalPrice (number), discountCode (string).
- Evaluate:
_id (string, PK), productId (string), detail (number/string), star (number).
- DiscountCode:
_id (number, PK), code (number/string), count (number), timeStart (date), timeEnd (date), value (number), type (string), maxValue (number).
3. Thiết kế giao diện và Triển khai Chatbot
- Giao diện: Xây dựng hệ thống gồm 20 màn hình chức năng chính trên nền web (Đăng nhập, Đăng ký, Trang chủ, Danh sách sản phẩm, Chi tiết sản phẩm, Giỏ hàng, Yêu thích, Yêu cầu đăng nhập, Hồ sơ, Cửa hàng, Đơn mua, Đơn bán, Tài khoản, Thêm sản phẩm, Mã giảm giá, Chi tiết đơn mua, Chi tiết đơn bán, Sửa sản phẩm, Thêm mã giảm giá, Cập nhật mã giảm giá).
- Tích hợp Chatbot FPT: Xây dựng các luồng kịch bản hội thoại hoàn chỉnh gồm:
- Kịch bản chào mừng và nút bấm điều hướng nhanh.
- Kịch bản gợi ý danh mục và tìm kiếm sản phẩm theo nhu cầu.
- Kịch bản tiếp nhận thông tin, yêu cầu địa chỉ giao hàng và xác nhận tạo đơn hàng trực tiếp qua tin nhắn bot.
- Kịch bản hướng dẫn xử lý hoàn trả hàng.
- Tích hợp giao diện quản trị bot: màn hình nhân viên hỗ trợ (human handover), màn hình thống kê tương tác và màn hình lịch sử hội thoại.
- Triển khai đa kênh: nhúng trực tiếp tiện ích chat trên giao diện website và liên kết tương tác qua trang Facebook (Fanpage).
Nội dung chính theo từng chương
Khóa luận được cấu trúc thành 4 chương nội dung cùng phần mở đầu và kết luận:
Chương 1. GIỚI THIỆU ĐỀ TÀI
Chương 1 trình bày lý do lựa chọn đề tài xuất phát từ nhu cầu thực tiễn của thị trường thương mại điện tử và sự tiện dụng của nền tảng web so với ứng dụng di động thuần túy. Tác giả đưa ra mô tả tổng quan về sản phẩm phần mềm, liệt kê 14 nhóm tính năng chủ đạo (từ quản lý tài khoản, sản phẩm, giỏ hàng, đơn hàng, mã giảm giá, kho hàng, thanh toán trực tuyến đến nhắn tin real-time và chatbot thông minh) cùng danh sách công nghệ và công cụ sử dụng trong toàn bộ dự án (Figma, ReactJS, NodeJS, ExpressJS, Socket.io, MongoDB, GitHub).
Chương 2. CƠ SỞ LÝ THUYẾT
Chương 2 tập trung hệ thống hóa các kiến thức nền tảng và công nghệ phát triển web:
- HTML và CSS: Khái quát lịch sử phát triển từ chuẩn HTML ban đầu (1991) đến HTML5 (~140 thẻ), sự ra đời của CSS (1994) đến các phiên bản CSS3/CSS4 định dạng giao diện.
- JavaScript và ReactJS: Nguyên lý hoạt động của JavaScript engine kết hợp DOM tree; các ưu thế cốt lõi của ReactJS như cú pháp JSX, tính tái sử dụng component và cơ chế DOM ảo (Virtual DOM) giúp nâng cao hiệu năng kết xuất đồ họa.
- NodeJS và ExpressJS: Cơ chế bất đồng bộ non-blocking hướng sự kiện của NodeJS, ưu thế quản lý thư viện qua NPM và vai trò định tuyến (Router) của ExpressJS trong thiết kế RESTful API.
- MongoDB: Cấu trúc dữ liệu dạng Document JSON trong CSDL NoSQL, các tính năng mở rộng dữ liệu và thư viện Mongoose hỗ trợ ánh xạ đối tượng và thao tác truy vấn.
Chương 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Chương 3 là phần cốt lõi về kỹ thuật phần mềm, tập trung mô tả mô hình hệ thống MERN stack, xây dựng sơ đồ use-case tổng quát và bảng phân loại 17 use-case phục vụ hai nhóm người dùng (người mua và người bán). Chương này trình bày chi tiết bảng đặc tả cho từng use-case (mô tả rõ dòng sự kiện chính, trường hợp xử lý lỗi khi nhập sai thông tin đăng nhập, đăng ký, đổi mật khẩu hay xóa sản phẩm ràng buộc với đơn hàng) và mô hình hóa chi tiết cấu trúc 10 bảng dữ liệu logic của hệ thống.
Chương 4. XÂY DỰNG WEBSITE
Chương 4 mô tả kết quả hiện thực hóa sản phẩm phần mềm:
- Hiện thực giao diện: Trình bày chi tiết danh mục 20 màn hình chức năng và phân tích các thành phần giao diện, luồng tương tác form nhập liệu và thông báo trạng thái của từng màn hình.
- Triển khai Chatbot FPT: Trình bày quá trình cấu hình bot trên nền tảng FPT.AI, bao gồm việc thiết lập các tính năng máy học (câu mẫu, ý định, loại thực thể, từ khóa, từ điển), xây dựng các kịch bản đối thoại mẫu (hoàn trả hàng, gợi ý sản phẩm, xác nhận đơn hàng, thu thập địa chỉ) và thiết lập các màn hình bổ trợ quản lý (thống kê, lịch sử, chuyển tiếp nhân viên hỗ trợ).
Kết quả và đóng góp
1. Kết quả chính đạ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 hoạt động trên mô hình MERN stack, đáp ứng đầy đủ các quy trình mua - bán hàng trực tuyến với 20 màn hình giao diện chuyên biệt.
- Tích hợp kênh liên lạc đa chiều: Hiện thực hóa tính năng chat thời gian thực giữa người dùng và chủ cửa hàng bằng Socket.io; đồng thời tích hợp chatbot AI FPT có khả năng tự động xử lý các tình huống tư vấn, gợi ý sản phẩm và chốt đơn hàng tự động.
- Cơ sở dữ liệu hoàn chỉnh: Xây dựng lược đồ dữ liệu NoSQL với 10 bảng/collection lưu trữ đầy đủ thông tin tài khoản, địa chỉ, sản phẩm, màu sắc phân loại, giỏ hàng, mục yêu thích, đơn hàng, chi tiết đơn hàng, đánh giá và mã giảm giá.
- Triển khai đa nền tảng cho chatbot: Tích hợp thành công giao diện chatbot trên cả website thương mại điện tử và trang mạng xã hội Facebook.
2. Đóng góp của đề tài
- Cung cấp một mô hình tham khảo hoàn chỉnh về việc tích hợp trợ lý ảo thông minh (chatbot ứng dụng xử lý ngôn ngữ tự nhiên) vào một hệ thống thương mại điện tử chạy trên nền tảng MERN stack.
- Xây dựng quy trình khép kín cho nghiệp vụ bán hàng cá nhân/doanh nghiệp nhỏ: từ khâu tạo gian hàng, quản lý kho, thiết lập mã khuyến mãi, thống kê doanh thu đến tương tác chăm sóc khách hàng tự động.
Hạn chế và hướng phát triển
Dựa trên các nội dung được nhóm tác giả ghi nhận trong báo cáo khóa luận:
1. Hạn chế
- Quản lý kho hàng: Chức năng kho hiện tại mới dừng lại ở việc cho phép người bán điều chỉnh tăng/giảm số lượng tồn kho theo từng phân loại một cách thủ công, chưa có hệ thống tự động ghi nhận luồng xuất - nhập kho chi tiết.
- Quy trình thanh toán: Cần tiếp tục hoàn thiện và liên kết sâu hơn với các cổng thanh toán trực tuyến chuyên dụng.
2. Hướng phát triển tiếp theo
- Bổ sung phân hệ quản lý đơn nhập hàng, đơn xuất hàng và ghi lại lịch sử biến động kho hàng chi tiết cho từng sản phẩm.
- Mở rộng tập dữ liệu huấn luyện cho chatbot (bổ sung ý định, từ điển và câu mẫu mới) nhằm tăng độ linh hoạt khi xử lý các kịch bản ngôn ngữ tự nhiên phức tạp.
- Nâng cấp và mở rộng các biểu đồ phân tích thống kê kinh doanh chuyên sâu cho chủ cửa hàng.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu học thuật và kỹ thuật có giá trị tham khảo thiết thực cho:
- Sinh viên ngành Kỹ thuật Phần mềm và Công nghệ Thông tin: Tham khảo cách trình bày một đồ án tốt nghiệp kỹ sư đúng quy chuẩn; nghiên cứu kiến trúc ứng dụng web Full-Stack sử dụng MERN (ReactJS, ExpressJS, NodeJS, MongoDB).
- Người phát triển ứng dụng thương mại điện tử: Tham khảo tài liệu phân tích nghiệp vụ, bảng đặc tả use-case chi tiết và thiết kế cơ sở dữ liệu cho sàn thương mại điện tử quy mô vừa và nhỏ.
- Người nghiên cứu tích hợp Chatbot AI: Tham khảo quy trình thiết lập kịch bản hội thoại, huấn luyện các thành phần NLP (ý định, thực thể, từ điển) trên nền tảng FPT.AI và cách nhúng chatbot vào ứng dụng web/Facebook Fanpage.
Câu hỏi thường gặp
1. Hệ thống thương mại điện tử trong khóa luận sử dụng kiến trúc và công nghệ nào?
Hệ thống được phát triển theo mô hình Full-Stack MERN:
- Front-End: Sử dụng thư viện ReactJS kết hợp HTML5, CSS3 và JavaScript để xây dựng giao diện Single Page Application (SPA).
- Back-End: Sử dụng nền tảng NodeJS kết hợp framework ExpressJS để xây dựng hệ thống API định tuyến.
- Cơ sở dữ liệu: Sử dụng hệ quản trị CSDL NoSQL MongoDB thông qua thư viện Mongoose.
- Thời gian thực: Sử dụng thư viện Socket.io để xử lý nhắn tin tức thời giữa người mua và người bán.
2. Cơ sở dữ liệu của hệ thống được tổ chức thành những bảng (collection) nào?
Cơ sở dữ liệu của hệ thống bao gồm 10 bảng/collection: Account (tài khoản), Address (địa chỉ giao hàng), Product (sản phẩm), Color (phân loại màu sắc/thuộc tính), ProductInCart (sản phẩm trong giỏ hàng), ProductInFavorite (sản phẩm yêu thích), ProductInBill (sản phẩm trong đơn hàng), Bill (thông tin hóa đơn), Evaluate (đánh giá, bình luận, số sao) và DiscountCode (mã giảm giá).
3. Nền tảng chatbot được sử dụng trong đề tài là gì và có những chức năng nào?
Đề tài sử dụng nền tảng FPT Chatbot (FPT.AI). Chatbot được huấn luyện qua các công cụ máy học (câu mẫu, ý định, loại thực thể, từ khóa, từ điển) để thực hiện các kịch bản: tư vấn gợi ý sản phẩm, hỗ trợ hoàn trả hàng, thu thập thông tin/địa chỉ nhận hàng và tạo đơn hàng trực tiếp qua tin nhắn. Hệ thống bot còn có giao diện thống kê, xem lịch sử chat và chuyển tiếp cuộc gọi sang nhân viên hỗ trợ (human handover).
4. Người bán hàng (chủ cửa hàng) được cung cấp những tính năng quản trị nào?
Người bán hàng có các chức năng chuyên biệt gồm: đăng bán sản phẩm mới (kèm hình ảnh, mô tả, phân loại), chỉnh sửa hoặc xóa thông tin sản phẩm, quản lý số lượng tồn kho theo phân loại tại use-case "Quản lý kho hàng", tra cứu và phê duyệt/từ chối đơn bán hàng tại use-case "Tra cứu đơn bán", tạo và quản lý mã giảm giá (use-case "Quản lý mã giảm giá"), và theo dõi biểu đồ đường/cột thống kê đơn hàng theo mốc thời gian (use-case "Thống kê").
5. Cơ chế xử lý khi người bán xóa một sản phẩm trong hệ thống diễn ra như thế nào?
Theo đặc tả use-case "Quản lý thông tin sản phẩm" trong văn bản, điều kiện ràng buộc khi người dùng thực hiện xóa một sản phẩm khỏi cửa hàng là: hệ thống sẽ tự động chuyển tất cả các đơn hàng chưa được xác nhận mà có chứa sản phẩm bị xóa sang trạng thái bị từ chối, sau đó mới tiến hành gỡ bỏ sản phẩm khỏi hệ thống.
Kết luận
Khóa luận tốt nghiệp "Xây dựng website thương mại điện tử với chatbot" của tác giả Trần Đoàn Phương và Đỗ Đức Tâm đã hoàn thành trọn vẹn mục tiêu xây dựng một nền tảng thương mại điện tử trên nền ngăn xếp công nghệ MERN stack. Đề tài tích hợp thành công giải pháp trợ lý ảo thông minh thông qua nền tảng FPT.AI và tính năng giao tiếp thời gian thực Socket.io, giải quyết hiệu quả nhu cầu tương tác và mua bán trực tuyến. Với hệ thống 17 ca sử dụng được đặc tả chặt chẽ cùng thiết kế CSDL 10 bảng rõ ràng, khóa luận là tài liệu tham khảo kỹ thuật hữu ích cho các dự án phát triển phần mềm ứng dụng web có tích hợp trí tuệ nhân tạo.