CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU .1 XÁC ĐỊNH YÊU CẦU .1 Yêu cầu chức năng .2 Yêu cầu phi chức năng .1 Lược đồ Use Case .2 Lược đồ Conceptual model .3 Đặc tả Use Case .33 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG .1 Giới thiệu hệ thống .2 Giới thiệu về Reactjs .3 Ưu và nhược điểm của Reactjs .2 Lý do sử dụng .1 Giới thiệu về ứng dụng .2 Giới thiệu về Flutter .3 Ưu và nhược điểm của Flutter .2 Kiến trúc của LLM .6 Truy vấn dữ liệu sử dụng LLMs .3 Sử dụng Langchain, OpenAI .48 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG. GIAO DIỆN DÀNH CHO ADMIN. GIAO DIỆN DANH CHO TRANG WEB.3 Phạm vi câu hỏi.4 Các công nghệ sử dụng .5 Luồng hoạt động của chatbot trong hệ thống .6 Luồng xử lý câu hỏi .60 CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH VÀ KIỂM THỬ .1 Cài đặt ứng dụng, thư viện cần thiết .2 Cài đặt phía Backend.3 Cài đặt phía FrontEnd .4 Cài đặt phía Mobile .5 Cài đặt Chatbot .1 Kế hoạch kiểm thử .2 Các trường hợp kiểm thử .71 PHẦN KẾT LUẬN. KẾT QUẢ ĐẠT ĐƯỢC.
NHƯỢC ĐIỂM. HƯỚNG PHÁT TRIỂN .92 TÀI LIỆU THAM KHẢO .95 DANH MỤC HÌNH ẢNH Hình 1.2: Lược đồ Conceptual model .3: Sequence Diagram đăng nhập .4: Collaboration diagram đăng nhập .5: Sequence diagram đăng ký tài khoản .7: Lược đồ sequence kích hoạt tài khoản .8: Lược dồ collaboration kích hoạt tài khoản .9: Sequence diagram cập nhật tài khoản .10: Collaboration diagram cập nhật tài khoản .11: Sequence diagram tạo kế hoạch .12: Collaboration diagram tạo kế hoạch .13: Sequence diagram chỉnh sửa kế hoạch .14: Sequence diagram xóa kế hoạch .15: Collaboration diagram cập nhật kế hoạch .16: Sequence diagram tạo ghi chú .17: Collaboration diagram tạo ghi chú .18: Sequence diagram cập nhật ghi chú .19: Sequence diagram xóa ghi chú .20 Sequence diagram cập nhật ghi chú .21: Sequence diagram tạo tài khoản .22: Collaboration diagram tạo tài khoản .23: Sequence diagram chỉnh sửa tài khoản .24: Sequence diagram tìm kiếm tài khoản .25: Collaboration diagram quản lý tài khoản .26 Lược đồ sequence chatbot ai .28: Lược đồ sequence gửi thông báo .30: Lược đồ class diagram .1: Kiến trúc của LLMs .3: Hoạt động của Langchain .4: Hoạt động của PandasAI .1 Tạo script insert dữ liệu .2: ChatGPT sinh dữ liệu theo câu prompt .3: ChatGPT sinh dữ liệu với các trường được thay đổi .4: Luồng hoạt động của chatbot .5: Truy vấn dữ liệu .6: Tạo câu prompt từ PandasAI .7: Tạo câu prompt từ PandasAI .8: Sinh code trả về kết quả .9: Kiểm tra code và kết quả .1: Cấu trúc folder của backend .3: Gõ lệnh dotnet run để chạy chương trình .4: Truy cập vào trang Swagger để kiểm tra .5: Cấu trúc folder của FrontEnd .6: Lỗi phiên bản .7: Các package cần thiết .8: Cấu trúc folder của mobile .9: Cấu trúc folder chatbot .10: Các package cần thiết .11: Các package cần thiết .1: Giao diện đăng nhập của admin.2: Giao diện trang quản lý tài khoản .3: Giao diện trang tạo tài khoản .4: Giao diện trang cập nhật tài khoản cho admin .1: Giao diện trang đăng nhập .2: Giao diện trang đăng nhập trên mobile .3: Giao diện trang đăng ký .4: Giao diện đăng ký trên mobile.5: Giao diện trang chủ .6: Giao diện trang chủ trên mobile .7: Giao diện trang todo .8: Giao diện trang todo trên ứng dụng .9: Giao diện trang quên mật khẩu .10: Giao diện trang quên mật khẩu trên mobile .11: Giao diện trang đổi mật khẩu.12: Giao diện trang đổi mật khẩu trên mobile .13: Giao diện trang quản lý chi tiêu .14: Giao diện trang quản lý chi tiêu trên mobile .15: Giao diện trang cập nhật tài khoản .16: Giao diện trang cập nhật tài khoản trên mobile .17: Giao diện trang tạo kế hoạch theo tuần .18: Giao diện trang tạo kế hoạch theo tuần trên ứng dụng .19: Giao diện trang tạo kế hoạch theo ngày .20: Giao diện trang tạo kế hoạch theo ngày trên mobile .21: Giao diện chatbot .22: Giao diện chatbot trên mobile.23: Giao diện tràn pomodoro .24: Giao diện pomodoro trên mobile .108 DANH MỤC BẢNG BIỂU Bảng 1.1: Use case đăng nhập .2: Đặc tả Use Case đăng ký .3 Đặc tả use case kích hoạt tài khoản.4: Đặc tả Use Case cập nhật tài khoản .5: Đặc tả Use Case tạo kế hoạch .6: Đặc tả Use Case cập nhật kế hoạch .7: Đặc tả Use Case tạo ghi chú .8: Đặc tả Use Case cập nhật ghi chú .9: Đặc tả Use case tạo tài khoản mới .10: Đặc tả Use case quản lý tài khoản .11 Đặc tả usecase chatbot ai .12: Đặc tả use case thông báo .1: Các công cụ, phần mềm cần cài đặt .2: Kiểm thử chức năng đăng nhập với trường hợp không nhập email .3: Kiểm thử với trường hợp email không có trong hệ thống .4: Kiểm thử với trường hợp đăng nhập với password không đúng .5: Kiểm thử chức năng đăng nhập với trường hợp dữ liệu đứng .6: Kiểm thử chức năng đăng ký với trường hợp email đã tồn tại .7: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng .8: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng .9: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng .10: Kiểm thử chức năng tạo kế hoạch với dữ liệu đúng .11: Kiểm thử chức năng cập nhật kế hoạch với trường hợp số tiền thực tế lớn hơn số tiền dự kiến .12: Kiểm thử chức năng tạo ghi chú với trường hợp không chọn màu .13: Kiểm thử chức năng tạo ghi chú với trường hợp thời gian bắt đầu lớn hơn thời gian kết thúc .14: Kiểm thử chức năng tạo ghi chú với trường hợp dữ liệu đúng .15: Kiểm thử chức năng cập nhật ghi chú.16: Kiểm thử chức năng tạo cột trong todolist với trường hợp không nhật title cột .17: Kiểm thử chức năng thêm cột todolist với trường hợp ngày bắt đầu lớn hơn ngày kết thúc .18: Kiểm thử chức năng tạo cột todolist với trường hợp dữ liệu đúng .19: Kiểm thử chức năng cập nhật cột trong todolist .20: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title .21: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title. 22: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title .23: Kiểm thử chức năng chatbot trường hợp câu hỏi tạo biểu đồ .24: Kiểm thử chức năng chatbot với câu hỏi liên quan đến quản lý chi tiêu 90 PHẦN MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Trong thời đại ngày nay, việc tích hợp công nghệ thông tin vào đời sống hàng ngày trở thành một mục tiêu cấp thiết, đồng thời mang lại nhiều lợi ích cho xã hội.
Không chỉ giúp thúc đẩy sự phát triển, mà còn giải quyết những khó khăn về mặt khoảng cách, nhân lực và hiệu suất làm việc. Tuy nhiên, vẫn còn nhiều khó khăn, bất cập trong việc đưa công nghệ thông tin vào từng mảng của đời sống cũng như trong kết nối giữa người cung và người cầu. Nắm bắt được điều đó, nhóm chọn nghiên cứu đề tài “Xây dựng ứng dụng website quản lý chi tiêu cho sinh viên, khai thác dữ liệu sử dụng mô hình ngôn ngữ lớn”. Với đề tài, nhóm hy vọng vừa góp phần thúc đẩy việc phát triển công nghệ thông tin vừa tạo ra một trang web giúp các bạn sinh viên, công nhân viên và người lao động có thể quản lý được các mức phí chi tiêu của mình trong cuộc sống, đặc biệt là đối với các bạn năm nhất.
Đây sẽ là nơi, mà các bạn sinh viên có thể quản lý được khoản tiền của mình theo kế hoạch ngày, tháng, năm, giúp các bạn sinh viên có thể nắm rõ được mức chi tiêu hàng ngày, hàng tháng, hàng năm và rút ra được kinh nghiệm chi tiêu sao cho hợp lý và tiết kiệm nhất. ĐỐI TƯỢNG NGHIÊN CỨU Đối với đề tài này, đối tượng nghiên cứu dựa trên nhu cầu quản lý chi tiêu hàng ngày, hàng tháng, hàng năm trong suốt quá trình học tập, làm việc các bạn sinh viên, công nhân viên mà không bị giới hạn về thời gian cũng như địa điểm, chỉ cần thiết bị thông minh có thể truy cập được Internet là có thể sử dụng được. Đồng thời, đề tài cũng nghiên cứu các công nghệ để hoàn thiện sản phẩm một cách hoàn chỉnh nhất, bao gồm: .Net để xây dụng phần server cho website. Thư viện ReactJS để thiết kế và xây dựng giao diện cho người dùng.
Cơ sở dữ liệu PostgreSQL để lưu trữ dữ liệu cho hệ thống. JSON Web Token (JWT) để làm lớp bảo mật cho hệ thống. Để gọi đến các API có yêu cầu xác thực, ứng dụng phải cung cấp JWT trong header của request. JWT được áp dụng vào hệ thống để xác thực người dùng và phân quyền chức năng người dùng.
1 LLM, xử lý ngôn ngữ tự nhiên khai thác dữ liệu. Được áp dụng để khai thác dữ liệu, tạo chatbot hỗ trợ người dùng quản lý chi tiêu hiệu quả và giúp người quản trị dễ dàng tìm kiếm thông tin trong hệ thống một cách thuận tiện và nhanh chóng hơn. PHẠM VI NGHIÊN CỨU Trong đề tài khóa luận tốt nghiệp này, chủ yếu tập trung vào xử lý nghiệp vụ của một trang web chuyên quản lý chi tiêu như: lập kế hoạch chi tiêu theo ngày, tháng, năm, cập nhật kế hoạch, cập nhật tiền thực tế sử dụng so với tiền ước tính khi lập kế hoạch và tổng tiền của từng kế hoạch, xóa kế hoạch cũng như các tính năng bổ trợ cho việc học như tạo ghi chú, tạo và chỉnh sửa các hoạt động cần thực hiện trong todolist của người dùng. Tạo chatbot hỗ trợ người dùng quản lý chi tiêu hiệu quả.
Phần quản trị sẽ tập trung vào các nghiệp vụ như quản lý người dùng. Ngoài ra, sử dụng LLM (Large Language Model), xử lý ngôn ngữ tự nhiên để khai thác dữ liệu và tra cứu thông tin trong hệ thống một cách nhanh chóng và tiện lợi hơn. MỤC TIÊU CỦA ĐỀ TÀI Trong quá trình hoàn thiện đề tài, nhóm thực hiện đã đặt ra những mục tiêu sau: - Xây dựng một trang lên kế hoạch và quản lý chi tiêu với các chức năng cơ bản cho người dùng. - Xây dựng được giao diện thân thiện với người sử dụng, dễ sử dụng và thao tác - Quản lý được các ghi chú cũng như là các hoạt động trong todolist do người dùng tạo ra - Tích hợp chatbot ai để hỗ trợ người dùng trong quá trình lên kế hoạch chi tiêu.
- Truy vấn dữ liệu bằng ngôn ngữ tự nhiên 5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN Đề tài hướng đến khả năng chi tiêu, quản lý chi tiêu, hoạt động, công việc, học tập của các bạn sinh viên, đặc biệt là các bạn sinh viên năm nhật với vào trường và bắt đầu cuộc số xa nhà.