Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh chuyển đổi số và sự phát triển của thương mại điện tử, nhu cầu tiếp cận tri thức thông qua sách vẫn giữ vai trò quan trọng trong việc nâng cao dân trí và phát triển tư duy xã hội. Tuy nhiên, theo số liệu khảo sát năm 2021 được báo Dân trí công bố, thực trạng văn hóa đọc tại Việt Nam cho thấy có đến 98% giới trẻ không đọc một cuốn sách nào trong vòng một tuần, 80% bạn trẻ không tiếp xúc với sách trong suốt một năm và chỉ có 12% ghi nhận thói quen đọc sách thường xuyên. Bên cạnh áp lực công việc khiến người lao động hạn chế về mặt thời gian đến các hiệu sách truyền thống, các đợt bùng phát của đại dịch Covid-19 cũng thúc đẩy xu hướng mua sắm sách trực tuyến từ xa.
Song song đó, sự gia tăng nhanh chóng của lưu lượng người dùng trên Internet dẫn đến tình trạng quá tải tại các bộ phận chăm sóc khách hàng trực tuyến truyền thống. Việc phản hồi thủ công qua đường dây nóng hoặc tin nhắn thường mất nhiều thời gian chờ đợi, không đáp ứng kịp nhu cầu tra cứu và tư vấn thông tin tức thời của người mua. Khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Phần mềm với đề tài "Xây dựng ứng dụng kinh doanh sách trực tuyến với chatbot" của nhóm tác giả Phan Quốc An và Võ Thanh Bình (Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM) được xây dựng nhằm giải quyết bài toán tự động hóa hỗ trợ khách hàng và tối ưu hóa quy trình phân phối sách trên nền tảng số.
Nhiệm vụ và mục tiêu nghiên cứu của đề tài được xác định cụ thể như sau:
- Xây dựng hệ thống kinh doanh sách trực tuyến hoàn chỉnh: Cho phép người dùng tìm kiếm, tra cứu và mua sách; cung cấp giao diện quản trị cho phép thực hiện các thao tác quản lý kho, kiểm duyệt nội dung, xử lý đơn hàng và theo dõi báo cáo doanh số.
- Xây dựng và tích hợp chatbot vào hệ thống: Hỗ trợ tự động giải đáp các thắc mắc chung, giảm thiểu thời gian tìm kiếm thông tin, hướng dẫn người dùng thực hiện các thao tác mua hàng và tra cứu danh mục sản phẩm.
Về phạm vi và đối tượng nghiên cứu:
- Đối tượng nghiên cứu: Người có nhu cầu tra cứu, mua sách trực tuyến; người có nhu cầu tương tác với chatbot để tìm kiếm thông tin; và các nhà quản lý cơ sở kinh doanh sách.
- Phạm vi môi trường: Ứng dụng di động (Mobile App) chạy trên hệ điều hành Android dành cho khách hàng và ứng dụng web (Web App) dành cho người quản trị hệ thống (Admin).
- Phạm vi thời gian thực hiện: Từ ngày 21/02/2022 đến ngày 11/06/2022.
Cơ sở lý thuyết và phương pháp
Khóa luận thiết lập nền tảng lý thuyết dựa trên các khái niệm kỹ thuật phần mềm, xử lý ngôn ngữ tự nhiên và kiến trúc mạng phân tán:
- Khung lý thuyết Chatbot và NLP: Chatbot được định nghĩa là phần mềm máy tính có khả năng giao tiếp với con người qua văn bản hoặc giọng nói bằng kỹ thuật Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) và Hiểu ngôn ngữ tự nhiên (Natural Language Understanding - NLU). Lịch sử chatbot được tổng hợp từ phép thử Turing (1950), chương trình ELIZA (1966), PARRY (1972), Jabberwacky (1997), SmarterChild (2001) đến các nền tảng hiện đại như Siri, Alexa, Google Assistant. Phân loại chatbot gồm 3 nhóm chính: Chatbot đơn giản (dựa trên kịch bản/quy tắc), Chatbot thông minh (sử dụng học máy/Machine Learning), và Chatbot hỗn hợp (kết hợp kịch bản với trí tuệ nhân tạo).
- Mô hình mạng Client - Server: Phân tích cấu trúc phân tán giữa máy khách và máy chủ qua cơ chế Request - Response, đánh giá các đặc tính về tính tập trung, độ bảo mật, khả năng mở rộng cũng như các rủi ro nghẽn lưu lượng hay sự cố tập trung.
- Nền tảng Dialogflow của Google: Khung phát triển NLU xử lý các thành phần cốt lõi bao gồm Agent (ES Agent và CX Agent), Intents (ý định người dùng gồm Training phrases, Actions, Parameters, Responses), Entities (System Entities, Custom Entities) và Context (ngữ cảnh hội thoại).
- Framework Flutter: Bộ công cụ mã nguồn mở phát triển giao diện đa nền tảng dựa trên ngôn ngữ Dart, công cụ kết xuất 2D Skia và hệ thống Widget.
Phương pháp nghiên cứu thực tế được triển khai qua các bước:
- Phương pháp khảo sát và đối sánh: Tiến hành đánh giá thực trạng các nền tảng thương mại điện tử và kinh doanh sách trực tuyến tại Việt Nam (Tiki, Fahasa, Vinabook) để rút ra ưu nhược điểm làm cơ sở thiết kế.
- Quy trình phát triển phần mềm theo mô hình Thác nước (Waterfall): Thực hiện tuần tự qua các giai đoạn từ khảo sát yêu cầu, phân tích nghiệp vụ, thiết kế kiến trúc, cài đặt mã nguồn đến kiểm thử và triển khai.
- Nguồn dữ liệu: Dữ liệu thông tin sách, dữ liệu tài khoản người dùng, cơ sở dữ liệu mẫu câu huấn luyện (training phrases) trên Dialogflow và số liệu khảo sát thói quen đọc sách năm 2021.
Thiết kế và triển khai
Hệ thống được thiết kế theo kiến trúc Client - Server nhiều tầng, phân tách rõ ràng giữa giao diện người dùng, tầng xử lý trung gian và tầng lưu trữ dữ liệu:
- Tầng giao diện (Client Layer): Ứng dụng di động dành cho khách hàng phát triển bằng Flutter; Ứng dụng web quản trị dành cho Admin phát triển bằng ReactJS.
- Tầng xử lý trung gian (Backend Layer): Xây dựng trên nền tảng NodeJS, đảm nhiệm việc cung cấp các API Integration để xử lý logic nghiệp vụ, giao tiếp với dịch vụ Google Dialogflow nhằm giải quyết các luồng hội thoại phức tạp mà Dialogflow đơn thuần không thể tự truy xuất từ database.
- Tầng dữ liệu (Database Layer): Sử dụng cơ sở dữ liệu MongoDB để lưu trữ toàn bộ thực thể hệ thống. Cơ chế bảo mật mật khẩu người dùng được xử lý thông qua giải thuật băm bcrypt và cơ chế phân quyền dựa trên payload token.
Về thiết kế dữ liệu hướng đối tượng, hệ thống xây dựng 14 lớp đối tượng thực thể với cấu trúc thuộc tính và phương thức rõ ràng:
| Tên lớp đối tượng |
Mô tả chức năng |
Thuộc tính chính |
User |
Quản lý thông tin tài khoản người dùng |
Mã người dùng, họ tên, email, mật khẩu (hash), số điện thoại, vai trò |
UserClaim |
Quản lý quyền hạn và phân quyền tài khoản |
Mã định danh quyền, tên quyền, phạm vi truy cập |
Book |
Lưu trữ thông tin chi tiết của sách |
Mã sách, tên sách, tác giả, giá bán, số lượng tồn kho, mô tả, danh mục |
Category |
Phân loại danh mục sách |
Mã danh mục, tên danh mục, trạng thái hiển thị |
Comment |
Quản lý đánh giá và nhận xét về sách |
Mã bình luận, mã người dùng, mã sách, nội dung, số sao đánh giá |
Cart / CartDetail |
Quản lý giỏ hàng và danh sách sách chọn mua |
Mã giỏ hàng, mã khách hàng, mã sách, số lượng sản phẩm, đơn giá |
Order / OrderDetail |
Quản lý đơn hàng và chi tiết giao dịch |
Mã đơn hàng, ngày đặt, tổng tiền, trạng thái đơn hàng, địa chỉ nhận |
BookReceipt / ReceiptDetail |
Quản lý nghiệp vụ nhập sách vào kho |
Mã phiếu nhập, ngày nhập, tổng chi phí nhập, số lượng từng đầu sách |
Feedback |
Lưu trữ phản hồi của khách hàng gửi Admin |
Mã phản hồi, tiêu đề, nội dung, người gửi, ngày tạo, trạng thái phản hồi |
Discount |
Quản lý các mã khuyến mãi, voucher giảm giá |
Mã khuyến mãi, phần trăm/số tiền giảm, ngày bắt đầu, ngày hết hạn |
ActivateOTP |
Xác thực đăng ký và đổi mật khẩu qua mã OTP |
Mã OTP, mã tài khoản liên kết, thời hạn hiệu lực của mã |
Quy trình kiểm thử được triển khai theo hai mức độ: Kiểm thử đơn vị (Unit Test) được thực hiện ở cuối mỗi giai đoạn hoàn thiện cụm chức năng; Kiểm thử tích hợp (Integration Test) được thực hiện ở giai đoạn cuối cùng nhằm đảm bảo sự tương thích và đồng bộ giữa Flutter Client, ReactJS Web, NodeJS Server và Google Dialogflow.
Nội dung chính theo từng chương
Báo cáo khóa luận có dung lượng 148 trang, bao gồm 7 chương, 82 bảng biểu, 64 hình vẽ và 9 tài liệu tham khảo với nội dung chi tiết theo từng chương:
Chương 1. Mở đầu
Chương này giới thiệu tổng quan về giá trị của tri thức sách báo trong đời sống xã hội và sự cần thiết của việc hình thành thói quen đọc sách. Tác giả dẫn chứng số liệu khảo sát thực tế tại Việt Nam năm 2021 để làm rõ hiện trạng thờ ơ với việc đọc sách của giới trẻ, đồng thời chỉ ra rào cản về mặt thời gian và tác động của dịch bệnh đối với việc mua sách trực tiếp. Từ đó, chương nêu bật lý do chọn đề tài xây dựng ứng dụng kinh doanh sách kết hợp chatbot nhằm tự động hóa hỗ trợ khách hàng và thúc đẩy việc mua sách dễ dàng hơn.
Chương 2. Tổng quan đề tài
Chương 2 trình bày chi tiết mục tiêu, phạm vi nghiên cứu, phương pháp thực hiện theo mô hình Thác nước, ý nghĩa thực tiễn và kết quả dự kiến của đề tài. Điểm nhấn của chương là phần khảo sát, phân tích hiện trạng và so sánh 3 nền tảng thương mại điện tử kinh doanh sách phổ biến tại Việt Nam:
| Ứng dụng |
Ưu điểm ghi nhận |
Hạn chế ghi nhận |
| Tiki |
Có mặt trên cả Web và Mobile; số lượng đầu sách phong phú, chất lượng; nhiều chương trình khuyến mãi, voucher giảm giá |
Thiếu các chức năng chuyên sâu cho kinh doanh sách; hệ thống chatbot chưa trực quan, chỉ dừng ở mức tra cứu cơ bản |
| Fahasa |
Hệ thống danh mục phân loại sách chi tiết; hỗ trợ cả nền tảng Web và Mobile; số lượng đầu sách lớn |
Giao diện còn phức tạp và rối mắt; chưa tích hợp hệ thống chatbot để hỗ trợ người dùng |
| Vinabook |
Nền tảng bán sách online đầu tiên tại Việt Nam với hơn 60.000 tựa sách cập nhật liên tục; có mặt trên Web và Mobile |
Giao diện đơn giản, chưa hiện đại; chưa có chatbot tương tác trực quan, chỉ hỗ trợ qua nhân viên |
Chương 3. Kiến thức nền tảng
Chương 3 cung cấp cơ sở lý thuyết chuyên sâu về công nghệ Chatbot, mô hình Client - Server và các công nghệ sử dụng. Phần lịch sử điểm qua các mốc phát triển chính từ Turing test (1950), ELIZA (1966), PARRY (1972), Jabberwacky (1997), SmarterChild (2001) đến nền tảng Dialogflow của Google. Tác giả phân tích chi tiết cơ chế hoạt động của Dialogflow thông qua các khái niệm Agent, Intent, Entity, Context; đồng thời giới thiệu kiến trúc framework Flutter và các ưu điểm trong việc phát triển ứng dụng di động.
Chương 4. Phân tích yêu cầu phần mềm
Chương 4 xác định các tác nhân (Actors) chính gồm Khách hàng và Người quản trị (Admin), đặc tả chi tiết 55 Use Case nghiệp vụ kèm theo các bảng mô tả điều kiện tiên quyết, luồng sự kiện chính và luồng ngoại lệ:
- Nhóm Use Case Khách hàng: Đăng ký tài khoản, đăng nhập, sửa thông tin cá nhân, tra cứu sách, xem chi tiết sách, đánh giá và bình luận, thêm vào giỏ hàng, quản lý số lượng giỏ hàng, thanh toán đơn hàng, thêm/xóa sách yêu thích, nhắn tin với chatbot, gửi phản hồi, quản lý sổ địa chỉ.
- Nhóm Use Case Quản trị viên (Admin): Đăng bán sách mới, sửa thông tin sách, ẩn sách khỏi hệ thống, kiểm duyệt bình luận, xóa bình luận sai phạm, quản lý và khóa tài khoản người dùng, nhập sách vào kho, xem lịch sử nhập xuất, quản lý trạng thái đơn hàng, xem báo cáo doanh thu/báo cáo nhập bán, quản lý danh mục sách (thêm/sửa/xóa), quản lý mã khuyến mãi.
Chương 5. Mô tả thiết kế phần mềm
Chương 5 mô tả chi tiết kiến trúc hệ thống và biểu diễn mối quan hệ dữ liệu qua sơ đồ lớp (Class Diagram) với 14 lớp đối tượng. Chương tài liệu hóa 18 sơ đồ hoạt động (Activity Diagrams) cho các luồng nghiệp vụ chính như đăng ký bán sách, nhập kho, thanh toán, tương tác chatbot. Ngoài ra, chương trình bày chi tiết thiết kế giao diện đồ họa thông qua danh mục 31 màn hình giao diện thực tế (từ Hình 5.21 đến Hình 5.51) cho cả phía ứng dụng quản trị Admin và ứng dụng khách hàng.
Chương 6. Yêu cầu hệ thống và triển khai
Chương 6 liệt kê các thông số cấu hình phần cứng, môi trường phần mềm và công cụ hỗ trợ cần thiết để vận hành hệ thống. Các công nghệ và công cụ được tổng hợp bao gồm: Flutter SDK, Android SDK, NodeJS runtime, MongoDB database engine, nền tảng Google Dialogflow Console, môi trường phát triển Visual Studio Code và công cụ thiết kế đồ họa Adobe XD.
Chương 7. Kết luận và hướng phát triển
Chương 7 tổng kết toàn bộ các kết quả đạt được đối với cá nhân sinh viên và đối với sản phẩm phần mềm. Chương thẳng thắn nêu rõ các mặt thuận lợi, khó khăn gặp phải trong quá trình nghiên cứu và đề xuất các định hướng nâng cấp, mở rộng hệ thống trong tương lai.
Kết quả và đóng góp
Khóa luận đã hoàn thành các mục tiêu đề ra và được hội đồng đánh giá cao với kết quả cụ thể:
- Về sản phẩm phần mềm: Xây dựng thành công một hệ thống kinh doanh sách trực tuyến hoàn chỉnh gồm ứng dụng di động Android (Flutter) cho khách hàng và ứng dụng web (ReactJS) cho Admin, kết nối qua hệ thống API backend NodeJS và cơ sở dữ liệu MongoDB.
- Về tích hợp Chatbot: Ứng dụng thành công Google Dialogflow vào hệ thống thương mại điện tử, cho phép chatbot phản hồi thông tin đa ngôn ngữ, hỗ trợ tìm kiếm sách theo tên, tác giả, thể loại, lọc danh mục sách bán chạy (bestseller) và hỗ trợ người dùng thực hiện quy trình đặt hàng trực tiếp qua hội thoại.
- Đóng góp kỹ thuật: Đề tài đã giải quyết được hạn chế thiếu vắng hoặc chưa hoàn thiện của chatbot trên các nền tảng bán sách hiện có tại Việt Nam (như Tiki, Fahasa, Vinabook), kết hợp thành công cơ chế API Integration để xử lý các truy vấn dữ liệu động vượt ngoài phạm vi xử lý thuần túy của Dialogflow.
- Đánh giá học thuật: Khóa luận được Cán bộ hướng dẫn (ThS. Lê Thanh Trọng) chấm điểm 9.5/10 và Cán bộ phản biện (ThS. Mai Trọng Khang) chấm điểm 9.0/10, đạt xếp loại Giỏi.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các nhận xét của Cán bộ hướng dẫn, Cán bộ phản biện và tự đánh giá của nhóm tác giả, hệ thống vẫn tồn tại một số hạn chế kỹ thuật:
- Chatbot mới chỉ xử lý tốt các tình huống theo kịch bản và ý định đã được định nghĩa trước; chưa có khả năng xử lý các câu thoại phức tạp hoặc ngữ cảnh giao tiếp phi cấu trúc.
- Khối lượng dữ liệu mẫu về đầu sách và người dùng trong cơ sở dữ liệu thử nghiệm chưa thực sự phong phú.
- Ứng dụng di động mới chỉ đóng gói và vận hành trên nền tảng Android, chưa triển khai đóng gói trên hệ điều hành iOS để khai thác triệt để tiềm năng đa nền tảng của Flutter.
- Chức năng tìm kiếm theo thể loại trên ứng dụng di động còn đơn giản, yêu cầu người dùng phải chủ động nhấn chọn "Category" mới kích hoạt luồng tìm kiếm.
Các hướng phát triển tiếp theo được đề xuất:
- Tiếp tục huấn luyện và bổ sung tập dữ liệu (Training phrases, Entities) cho Chatbot nhằm mở rộng khả năng nhận diện các câu hỏi phức tạp của khách hàng.
- Đóng gói và phát hành ứng dụng trên nền tảng iOS.
- Bổ sung các giải pháp gợi ý sách thông minh, chia sẻ thông tin sách hay cho cộng đồng người đọc.
- Tối ưu hóa hiệu năng chịu tải của hệ thống máy chủ và tốc độ phản hồi của API khi lưu lượng người dùng tăng cao.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo có giá trị chuyên môn cao cho sinh viên ngành Kỹ thuật Phần mềm, Công nghệ Thông tin và Hệ thống Thông tin đang thực hiện đồ án tốt nghiệp hoặc nghiên cứu ứng dụng thương mại điện tử. Các nội dung đặc biệt hữu ích bao gồm:
- Quy trình phân tích và đặc tả Use Case chi tiết (55 use case) cho một hệ thống thương mại điện tử hoàn chỉnh tại Chương 4.
- Phương pháp thiết kế kiến trúc phân tầng kết hợp giữa Mobile App (Flutter), Backend (NodeJS) và dịch vụ NLP bên ngoài (Google Dialogflow) thông qua cơ chế API Integration tại Chương 5.
- Cấu trúc sơ đồ lớp (Class Diagram) và mô hình dữ liệu thực thể quản lý bán hàng, nhập kho, đơn hàng và phân quyền bảo mật mật khẩu bằng bcrypt.
Câu hỏi thường gặp
1. Khóa luận sử dụng các công nghệ chính nào để xây dựng hệ thống?
Hệ thống sử dụng Flutter để phát triển ứng dụng di động cho khách hàng (Android), ReactJS để xây dựng ứng dụng web quản lý cho Admin, NodeJS để phát triển hệ thống API backend, MongoDB làm cơ sở dữ liệu lưu trữ, và Google Dialogflow làm nền tảng xử lý ngôn ngữ tự nhiên cho chatbot. Cơ chế bảo mật mật khẩu sử dụng thuật toán bcrypt.
2. Chatbot trong hệ thống được tích hợp những chức năng cụ thể nào?
Chatbot có khả năng phản hồi tự động đa ngôn ngữ, hỗ trợ khách hàng tra cứu sách theo nhiều tiêu chí (tên, tác giả, thể loại), lọc sách bán chạy (bestseller), tra cứu danh mục và hỗ trợ thực hiện quy trình đặt hàng thông qua giao diện hội thoại.
3. Khóa luận đã tiến hành khảo sát và đánh giá những ứng dụng thương mại điện tử nào?
Nhóm tác giả đã tiến hành khảo sát và phân tích ưu - nhược điểm của 3 ứng dụng/nền tảng bán sách trực tuyến phổ biến tại Việt Nam gồm Tiki, Fahasa và Vinabook để rút ra cơ sở cải tiến cho hệ thống của mình.
4. Quy trình phát triển phần mềm và phương pháp kiểm thử nào được áp dụng trong đồ án?
Đề tài áp dụng mô hình phát triển phần mềm Thác nước (Waterfall model). Quy trình kiểm thử bao gồm kiểm thử đơn vị (Unit Test) được thực hiện sau khi hoàn thành từng cụm chức năng và kiểm thử tích hợp (Integration Test) được thực hiện ở giai đoạn cuối để kiểm tra toàn bộ luồng giao tiếp giữa Client, Server và Dialogflow.
5. Nhóm sinh viên đã thực hiện những cải tiến bổ sung nào theo yêu cầu của cán bộ phản biện?
Theo nhận xét của cán bộ phản biện ThS. Mai Trọng Khang, sau lần gặp phản biện đầu tiên, nhóm đã bổ sung thêm dữ liệu người dùng và sách để tăng tính chân thật, bổ sung hiển thị sách bán chạy (bestseller), cải tiến chức năng tìm kiếm theo thể loại, định hướng giải pháp chia sẻ sách hay và nâng cấp chatbot với khả năng hỗ trợ đặt hàng trực tiếp.
Kết luận
Khóa luận tốt nghiệp "Xây dựng ứng dụng kinh doanh sách trực tuyến với chatbot" của sinh viên Phan Quốc An và Võ Thanh Bình đã hoàn thành việc xây dựng một hệ sinh thái thương mại điện tử hoàn chỉnh gồm ứng dụng di động Flutter và website quản trị ReactJS. Đề tài đã ứng dụng thành công nền tảng xử lý ngôn ngữ tự nhiên Google Dialogflow kết hợp API backend NodeJS để giải quyết bài toán tư vấn, tìm kiếm và đặt mua sách tự động cho người dùng. Mặc dù vẫn còn một số hạn chế về độ phong phú dữ liệu và khả năng xử lý ngôn ngữ phức tạp, kết quả đạt được của khóa luận thể hiện tính hoàn thiện cao về mặt kỹ thuật, đáp ứng đầy đủ yêu cầu của một đồ án kỹ sư phần mềm và có khả năng ứng dụng vào thực tiễn.