1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng ứng dụng web quản lý chi tiêu, khai thác dữ liệu sử dụng mô hình ngôn ngữ lớn

126 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng ứng dụng web quản lý chi tiêu, khai thác dữ liệu sử dụng mô hình ngôn ngữ lớn
Tác giả Phan Thái Bảo, Trương Thuận Hòa
Người hướng dẫn ThS. Nguyễn Đăng Quang
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 126
Dung lượng 11,57 MB

Cấu trúc

  • 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (0)
  • 2. ĐỐI TƯỢNG NGHIÊN CỨU (18)
  • 3. PHẠM VI NGHIÊN CỨU (19)
  • 4. MỤC TIÊU CỦA ĐỀ TÀI (19)
  • 5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN (19)
  • CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU (20)
    • 1.1 XÁC ĐỊNH YÊU CẦU (7)
      • 1.1.1 Yêu cầu chức năng (20)
      • 1.1.2 Yêu cầu phi chức năng (20)
      • 1.2.1 Lược đồ Use Case (21)
      • 1.2.2 Lược đồ Conceptual model (22)
      • 1.2.3 Đặc tả Use Case (23)
      • 1.2.4 Class diagram (50)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG (0)
    • 2.1 REACTJS (7)
      • 2.1.1 Giới thiệu hệ thống (51)
      • 2.1.2 Giới thiệu về Reactjs (51)
      • 2.1.3 Ưu và nhược điểm của Reactjs (52)
      • 2.2.1 Giới thiệu (53)
      • 2.2.2 Lý do sử dụng (53)
    • 2.3 PostgreSQL (7)
      • 2.3.1 Giới thiệu (54)
      • 2.4.2 Ứng dụng (54)
      • 2.3.3 Điểm mạnh (54)
      • 2.3.4 Điểm yếu (55)
    • 2.4 Flutter (7)
      • 2.4.1 Giới thiệu về ứng dụng (56)
      • 2.4.2 Giới thiệu về Flutter (56)
      • 2.4.3 Ưu và nhược điểm của Flutter (56)
    • 2.5 LLMs (7)
      • 2.5.1 Giới thiệu (58)
      • 2.5.2 Kiến trúc của LLM (58)
    • 2.6 Truy vấn dữ liệu sử dụng LLMs (7)
      • 2.6.1 Fine-tuning (60)
      • 2.6.2 RAG (62)
      • 2.6.3 Sử dụng Langchain, OpenAI (63)
      • 2.6.4 Pandas AI (65)
  • CHƯƠNG 3: THIẾT KẾ HỆ THỐNG (0)
    • 3.1. GIAO DIỆN DÀNH CHO ADMIN (68)
    • 3.2. GIAO DIỆN DANH CHO TRANG WEB (68)
    • 3.3 BACKEND (7)
      • 3.3.1 Database (68)
      • 3.3.2 Authentication, Authorization (69)
      • 3.3.3 Firebase (69)
      • 3.3.3 Background Job (69)
      • 3.3.5 Web API (70)
    • 3.4 CHATBOT (7)
      • 3.4.1 Ý tưởng (71)
      • 3.4.2 Dữ liệu (71)
      • 3.4.3 Phạm vi câu hỏi (74)
      • 3.4.4 Các công nghệ sử dụng (75)
      • 3.4.5 Luồng hoạt động của chatbot trong hệ thống (76)
      • 3.4.6 Luồng xử lý câu hỏi (77)
  • CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH VÀ KIỂM THỬ (80)
    • 4.1 Cài đặt ứng dụng, thư viện cần thiết (7)
    • 4.2 Cài đặt phía Backend (7)
    • 4.3 Cài đặt phía FrontEnd (7)
    • 4.4 Cài đặt phía Mobile (85)
    • 4.5 Cài đặt Chatbot (86)
      • 4.6.1 Kế hoạch kiểm thử (87)
      • 4.6.2 Các trường hợp kiểm thử (88)
    • 1. KẾT QUẢ ĐẠT ĐƯỢC (0)
    • 2. ƯU ĐIỂM (3)
    • 3. NHƯỢC ĐIỂM (109)
    • 4. HƯỚNG PHÁT TRIỂN (109)
  • TÀI LIỆU THAM KHẢO (111)
  • PHỤ LỤC (112)

Nội dung

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

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

Ý 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à Mục đích giúp tạo ra một hệ thống có thể giúp cho việc quản lý chi tiêu, hoạt động, học tập, công việc trở nên ngày càng thuận lợi

Ngoài ra, đề tài còn hướng đến việc khai thác dữ liệu bằng ứng dụng mô hình ngôn ngữ lớn (LLMs) Việc tích hợp chatbot sẽ hỗ trợ người dung quản lý chi tiêu hiệu quả hơn và giúp người quản trị khai thác dữ liệu, tra cứu thông tin trong hệ thống một cách nhanh chóng, hiệu quả và tiết kiệm thời gian

MÔ HÌNH HÓA YÊU CẦU

CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG

REACTJS

Truy vấn dữ liệu sử dụng LLMs

3 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 3.1 Giao diện trang admin

4 CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ 4.1 Cài đặt ứng dụng, thư viện cần thiết 4.2 Cài đặt phía backend

4.4 Cài đặt phía ứng dụng mobile

STT Thời gian thực hiện Công việc Ghi chú

Tìm hiểu về Flutter Tìm hiểu về các công cụ tạo chatbot

Tiến hành tổ chức cấu trúc project flutter

Xây dựng giao diện cho ứng dụng

Chỉnh sửa giao diện trên web Thử nghiệm chatbot với OpenAi và model Chatgpt, LLMs, Fine-turning, Lanchain,

Tạo bộ dữ liệu thử nghiệm chatbot

Chuyển đổi từ MongoDB sang PostgreSQL

Tích hợp các api vào ứng dụng

Tạo chức năng chatbot trên web và ứng dụng

Thử nghiệm chatbot với chatgpt 4.0

Tích hợp api chatbot vào hệ thống

Tạo bộ dữ liệu và kiểm thử chatbot

Cải tiến chatbot sử dụng PandasAI

Tạo bảng riêng cho chatbot trong database

Hoàn thiện các chức năng trên ứng dụng

Tạo bộ dữ liệu cho chatbot bằng file excel

Cải thiện chatbot sử dụng dữ liệu từ file excel

Tạo bộ dữ liệu cho chatbot bằng file csv

Import dữ liệu vào postgreSQL Cải thiện chatbot, chuyển từ đọc từ file excel sang đọc trực tiếp từ database

Cải tiến chatbot sinh ảnh biểu đồ

8 27/05/2024 – 31/06/2024 Kiểm thử chương trình và tiến hành sửa lỗi

Kiểm thử và sửa lỗi Hoàn thành báo cáo

Tp Hồ Chí Minh, ngày tháng năm 2024

Giảng viên hướng dẫn Người viết đề cương

(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 2

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 3

LỜI CẢM ƠN 4 ĐỀ CƯƠNG KHOÁ LUẬN TỐT NGHIỆP 5

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

4 MỤC TIÊU CỦA ĐỀ TÀI 2

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2

CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU 3

1.1.2 Yêu cầu phi chức năng 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG 34

2.1.3 Ưu và nhược điểm của Reactjs 35

2.4.1 Giới thiệu về ứng dụng 39

2.4.3 Ưu và nhược điểm của Flutter 39

2.6 Truy vấn dữ liệu sử dụng LLMs 43

CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 51

3.1 GIAO DIỆN DÀNH CHO ADMIN 51

3.2 GIAO DIỆN DANH CHO TRANG WEB 51

3.4.4 Các công nghệ sử dụng 58

3.4.5 Luồng hoạt động của chatbot trong hệ thống 59

3.4.6 Luồng xử lý câu hỏi 60

CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH VÀ KIỂM THỬ 63

4.1 Cài đặt ứng dụng, thư viện cần thiết 63

4.6.2 Các trường hợp kiểm thử 71

Hình 1.2: Lược đồ Conceptual model 5

Hình 1.3: Sequence Diagram đăng nhập 7

Hình 1.4: Collaboration diagram đăng nhập 7

Hình 1.5: Sequence diagram đăng ký tài khoản 9

Hình 1.7: Lược đồ sequence kích hoạt tài khoản 11

Hình 1.8: Lược dồ collaboration kích hoạt tài khoản 11

Hình 1.9: Sequence diagram cập nhật tài khoản 13

Hình 1.10: Collaboration diagram cập nhật tài khoản 13

Hình 1.11: Sequence diagram tạo kế hoạch 15

Hình 1.12: Collaboration diagram tạo kế hoạch 16

Hình 1.13: Sequence diagram chỉnh sửa kế hoạch 17

Hình 1.14: Sequence diagram xóa kế hoạch 18

Hình 1.15: Collaboration diagram cập nhật kế hoạch 18

Hình 1.16: Sequence diagram tạo ghi chú 20

Hình 1.17: Collaboration diagram tạo ghi chú 20

Hình 1.18: Sequence diagram cập nhật ghi chú 22

Hình 1.19: Sequence diagram xóa ghi chú 23

Hình 1.20 Sequence diagram cập nhật ghi chú 23

Hình 1.21: Sequence diagram tạo tài khoản 25

Hình 1.22: Collaboration diagram tạo tài khoản 25

Hình 1.23: Sequence diagram chỉnh sửa tài khoản 27

Hình 1.24: Sequence diagram tìm kiếm tài khoản 28

Hình 1.25: Collaboration diagram quản lý tài khoản 28

Hình 1.26 Lược đồ sequence chatbot ai 30

Hình 1.28: Lược đồ sequence gửi thông báo 32

Hình 1.30: Lược đồ class diagram 33

Hình 2.1: Kiến trúc của LLMs 43

Hình 2.3: Hoạt động của Langchain 47

Hình 2.4: Hoạt động của PandasAI 49

Hình 3.1 Tạo script insert dữ liệu 55

Hình 3.2: ChatGPT sinh dữ liệu theo câu prompt 56

Hình 3.3: ChatGPT sinh dữ liệu với các trường được thay đổi 57

Hình 3.4: Luồng hoạt động của chatbot 59

Hình 3.5: Truy vấn dữ liệu 60

Hình 3.6: Tạo câu prompt từ PandasAI 61

Hình 3.7: Tạo câu prompt từ PandasAI 61

Hình 3.8: Sinh code trả về kết quả 62

Hình 3.9: Kiểm tra code và kết quả 62

Hình 4.1: Cấu trúc folder của backend 64

Hình 4.2: Kiểm tra NET trong máy 64

Hình 4.3: Gõ lệnh dotnet run để chạy chương trình 65

Hình 4.4: Truy cập vào trang Swagger để kiểm tra 65

Hình 4.5: Cấu trúc folder của FrontEnd 66

Hình 4.7: Các package cần thiết 67

Hình 4.8: Cấu trúc folder của mobile 68

Hình 4.9: Cấu trúc folder chatbot 69

Hình 4.10: Các package cần thiết 69

Hình 4.11: Các package cần thiết 70

Hình PL1.1: Giao diện đăng nhập của admin 95

Hình PL1.2: Giao diện trang quản lý tài khoản 95

Hình PL1.3: Giao diện trang tạo tài khoản 96

Hình PL1.4: Giao diện trang cập nhật tài khoản cho admin 96

Hình PL2.1: Giao diện trang đăng nhập 97

Hình PL2.2: Giao diện trang đăng nhập trên mobile 97

Hình PL2.3: Giao diện trang đăng ký 98

Hình PL2.4: Giao diện đăng ký trên mobile 98

Hình PL2.5: Giao diện trang chủ 99

Hình PL2.6: Giao diện trang chủ trên mobile 99

Hình PL2.7: Giao diện trang todo 100

Hình PL2.8: Giao diện trang todo trên ứng dụng 100

Hình PL2.9: Giao diện trang quên mật khẩu 101

Hình PL2.10: Giao diện trang quên mật khẩu trên mobile 101

Hình PL2.11: Giao diện trang đổi mật khẩu 102

Hình PL2.12: Giao diện trang đổi mật khẩu trên mobile 102

Hình PL2.13: Giao diện trang quản lý chi tiêu 103

Hình PL2.14: Giao diện trang quản lý chi tiêu trên mobile 103

Hình PL2.15: Giao diện trang cập nhật tài khoản 104

Hình PL2.16: Giao diện trang cập nhật tài khoản trên mobile 104

Hình PL2.17: Giao diện trang tạo kế hoạch theo tuần 105

Hình PL2.18: Giao diện trang tạo kế hoạch theo tuần trên ứng dụng 105

Hình PL2.19: Giao diện trang tạo kế hoạch theo ngày 106

Hình PL2.20: Giao diện trang tạo kế hoạch theo ngày trên mobile 106

Hình PL2.21: Giao diện chatbot 107

Hình PL2.22: Giao diện chatbot trên mobile 107

Hình PL2.23: Giao diện tràn pomodoro 108

Hình PL2.24: Giao diện pomodoro trên mobile 108

Bảng 1.1: Use case đăng nhập 6

Bảng 1.2: Đặc tả Use Case đăng ký 8

Bảng 1.3 Đặc tả use case kích hoạt tài khoản 10

Bảng 1.4: Đặc tả Use Case cập nhật tài khoản 12

Bảng 1.5: Đặc tả Use Case tạo kế hoạch 15

Bảng 1.6: Đặc tả Use Case cập nhật kế hoạch 17

Bảng 1.7: Đặc tả Use Case tạo ghi chú 19

Bảng 1.8: Đặc tả Use Case cập nhật ghi chú 21

Bảng 1.9: Đặc tả Use case tạo tài khoản mới 24

Bảng 1.10: Đặc tả Use case quản lý tài khoản 27

Bảng 1.11 Đặc tả usecase chatbot ai 29

Bảng 1.12: Đặc tả use case thông báo 31

Bảng 4.1: Các công cụ, phần mềm cần cài đặt 63

Bảng 4.2: Kiểm thử chức năng đăng nhập với trường hợp không nhập email 71

Bảng 4.3: Kiểm thử với trường hợp email không có trong hệ thống 72

Bảng 4.4: Kiểm thử với trường hợp đăng nhập với password không đúng 73

Bảng 4.5: Kiểm thử chức năng đăng nhập với trường hợp dữ liệu đứng 73

Bảng 4.6: Kiểm thử chức năng đăng ký với trường hợp email đã tồn tại 74

Bảng 4.7: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 75

Bảng 4.8: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 76

Bảng 4.9: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 77

Bảng 4.10: Kiểm thử chức năng tạo kế hoạch với dữ liệu đúng 78

Bảng 4.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 79

Bảng 4.12: Kiểm thử chức năng tạo ghi chú với trường hợp không chọn màu 80

Bảng 4.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 81

Bảng 4.14: Kiểm thử chức năng tạo ghi chú với trường hợp dữ liệu đúng 82

Bảng 4.15: Kiểm thử chức năng cập nhật ghi chú 83

Bảng 4.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 84

Bảng 4.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 85

Bảng 4.18: Kiểm thử chức năng tạo cột todolist với trường hợp dữ liệu đúng 86

Bảng 4.19: Kiểm thử chức năng cập nhật cột trong todolist 87

Bảng 4.20: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 88

Bảng 4.21: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 88

Bảng 4 22: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 89

Bảng 4.23: Kiểm thử chức năng chatbot trường hợp câu hỏi tạo biểu đồ 90 Bảng 4.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

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

2 ĐỐ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

 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

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

4 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à Mục đích giúp tạo ra một hệ thống có thể giúp cho việc quản lý chi tiêu, hoạt động, học tập, công việc trở nên ngày càng thuận lợi

Ngoài ra, đề tài còn hướng đến việc khai thác dữ liệu bằng ứng dụng mô hình ngôn ngữ lớn (LLMs) Việc tích hợp chatbot sẽ hỗ trợ người dung quản lý chi tiêu hiệu quả hơn và giúp người quản trị khai thác dữ liệu, tra cứu thông tin trong hệ thống một cách nhanh chóng, hiệu quả và tiết kiệm thời gian

CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU

- Quản lý tài khoản User trên hệ thống: thêm, sửa, xóa

- Tài khoản: đăng ký, đăng nhập, chỉnh sửa thông tin, thay đổi mật khẩu, đăng xuất

- Kế hoạch: thêm, sửa, xóa, thống kê kế hoạch

- Ghi chú: thêm, sửa, xóa ghi chú

- Danh mục: thêm, chỉnh sửa danh mục

- Todolist: Thêm, sửa, xóa cột và thẻ trong todolist

- Đếm thời gian pomodoro, quản lý các nhiệm vụ trong khoảng thời gian được cài đặt

1.1.2 Yêu cầu phi chức năng

Các yêu cầu phi chức năng trên hệ thống bao gồm:

- Giao diện thân thiện, dễ sử dụng

- Tốc độ xử lý các thao tác nhanh chóng, chính xác

- Hệ thống có độ bảo mật cao

- Dễ dàng bảo trì, nâng cấp phát triển

1.2 MÔ HÌNH HÓA YÊU CẦU

Hình 1.2: Lược đồ Conceptual model

Description Cho phép Actor đăng nhập để thực hiện các chức năng nhất định

Actor Khách hàng, Người quản trị

Pre-Conditions Actor có tài khoản trên hệ thống

Post-Conditions Actor đăng nhập thành công vào hệ thống với các chức năng tuỳ theo vai trò

Main Flow 1 Actor bấm vào nút “Login”

2 Hệ thống hiển thị Form đăng nhập gồm email và mật khẩu

5 Trang kiểm tra thông tin nhập vào

6 Hệ thống xác thực thông tin so với dữ liệu của cơ sở dữ liệu

7 Hệ thống lưu lại accesstoken, thông báo đăng nhập thành công và chuyển sang trang chủ

Alternate Flow(s) 2.1 Actor truy cập vào đường link trang quản trị, hệ thống chuyển sang trang quản trị và hiển thị Form đăng nhập gồm email và mật khẩu, Actor thực hiện tiếp bước 3

Exception Flow 5.1 Actor bỏ trống ô nhập tên tài khoản hoặc mật khẩu, hệ thống thông báo yêu cầu actor phải nhập đầy đủ các thông tin, Actor quay lại bước 3 hoặc huỷ bỏ thao tác

6.1 Actor nhập sai thông tin tài khoản, hệ thống thông báo tài khoản/mật khẩu không chính xác, Actor quay lại bước 3 hoặc huỷ bỏ thao tác

Bảng 1.1: Use case đăng nhập

Hình 1.4: Collaboration diagram đăng nhập Hình 1.3: Sequence Diagram đăng nhập

Description Cho phép actor tạo tài khoản để sử dụng trên hệ thống

Post-Conditions Actor tạo thành công tài khoản mới trên hệ thống

1 Actor bấm vào nút “Register”

2 Hệ thống hiển thị Form để nhập thông tin gồm tên tài khoản, mật khẩu, tên người dùng, ngày sinh, địa chỉ, số điện thoại, email, mã số sinh viên

3 Actor nhập các thông tin

5 Hệ thống kiểm tra thông tin nhập vào

6 Hệ thống thêm tài khoản vào cơ sở dữ liệu và gửi mail OTP

7 Hệ thống chuyển đến trang OTP và thông báo đăng ký thành công

5.1 Thông tin về tên tài khoản, mật khẩu, tên người dùng, ngày sinh, địa chỉ, số điện thoại, email, mã số sinh viên không hợp lệ hoặc bị bỏ trống, hệ thống thông báo lỗi, Actor quay lại bước 3 hoặc huỷ bỏ thao tác

7.1 Đăng ký không thành công, hệ thống thông báo lỗi

Bảng 1.2: Đặc tả Use Case đăng ký

Hình 1.6: Collaboration đăng ký Hình 1.5: Sequence diagram đăng ký tài khoản

Use Case Kích hoạt tài khoản

Chức năng này cho phép Actor kích hoạt tài khoản vừa đăng ký thành công

Pre-Conditions Actor đăng ký thành công và nhận được mail chứa OTP

Post-Conditions Hệ thống thực hiện kích hoạt tài khoản của Actor để có thể tiến hành đăng nhập vào hệ thống

Main Flow 1 Sau khi đăng ký thành công hệ thống chuyển sang trang

OTP hoặc Actor truy cập vào trang OTP

2 Hệ thống hiển thị form nhập OTP gồm 6 số

3 Actor nhập mã OTP nhận được vào form

4 Actor nhấn nút “Verify Account”

5 Hệ thống kiểm tra thông tin Actor nhập

6 Hệ thống cập nhật trạng thái tài khoản vào Cơ sở dữ liệu

7 Hệ thống hiển chuyển sang trang Đăng nhập và hiển thị thông báo kích hoạt thành công

Exception Flow 5.1 Nếu OTP không hợp lệ hoặc bị bỏ trống thì sẽ thông báo lỗi

Actor quay lại bước 3 hoặc huỷ bỏ thao tác 7.1 Kích hoạt thất bạn, thông báo lỗi

Bảng 1.3 Đặc tả use case kích hoạt tài khoản

Hình 1.7: Lược đồ sequence kích hoạt tài khoản

Hình 1.8: Lược dồ collaboration kích hoạt tài khoản

Use Case Cập nhật tài khoản

Chức năng này cho phép Actor cập nhật thông tin cho tài khoản

Pre-Conditions Actor có tài khoản và đã đăng nhập

Post-Conditions Hệ thống thực hiện cập nhật thông tin cho tài khoản của Actor vào

Main Flow 1 Actor truy cập trang “Account”

2 Hệ thống lấy thông tin tài khoản của Actor từ Cơ sở dữ liệu

3 Hệ thống hiển thị Form cập nhật thông tin với các thông tin đã lưu gồm tên tài khoản, họ tên, ngày sinh, email, số điện thoại, địa chỉ, mã số sinh viên

4 Actor nhập thông tin cần cập nhật

6 Hệ thống kiểm tra thông tin Actor nhập

7 Hệ thống cập nhật thông tin tài khoản vào Cơ sở dữ liệu

8 Hệ thống hiển thị lại giao diện trang thông tin tài khoản

Exception Flow 6.1 Actor nhập thông tin họ tên, ngày sinh, tên tài khoản, email, số điện thoại, địa chỉ, mã số sinh viên không hợp lệ hoặc để trống, hệ thống thông báo lỗi, Actor thực hiện lại bước 5 hoặc huỷ bỏ thao tác

Bảng 1.4: Đặc tả Use Case cập nhật tài khoản

Hình 1.10: Collaboration diagram cập nhật tài khoản Hình 1.9: Sequence diagram cập nhật tài khoản

Use Case Tạo kế hoạch

Short Description Chức năng này cho phép Actor tạo kế hoạch chi tiêu theo ngày, tháng, năm

Pre-Conditions Actor có tài khoản và đã đăng nhập

Post-Conditions Hệ thống sẽ tạo kế hoạch dựa trên những thông tin người dùng cung cấp và hiển thị lên trên calendar

Main Flow 1 Actor chọn nút “Create”

2 Hệ thống hiển thị form để nhập thông tin như tổng số tiền, đơn vị tiền, chọn lập kế hoạch theo ngày hoặc tháng hoặc năm, nhập thời gian, chi tiết kế hoạch, mức độ ưu tiên, chọn danh mục

3 Actor nhập các thông tin

5 Hệ thống kiểm tra thông tin

6 Hệ thống thêm kế hoạch vào cơ sở dữ liệu

7 Hệ thống hiển thị kế hoạch theo ngày, tháng, năm

THIẾT KẾ HỆ THỐNG

GIAO DIỆN DÀNH CHO ADMIN

Xem phụ lục 3.1: Giao diện dành cho admin

CHATBOT

4 CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ 4.1 Cài đặt ứng dụng, thư viện cần thiết 4.2 Cài đặt phía backend

4.4 Cài đặt phía ứng dụng mobile

STT Thời gian thực hiện Công việc Ghi chú

Tìm hiểu về Flutter Tìm hiểu về các công cụ tạo chatbot

Tiến hành tổ chức cấu trúc project flutter

Xây dựng giao diện cho ứng dụng

Chỉnh sửa giao diện trên web Thử nghiệm chatbot với OpenAi và model Chatgpt, LLMs, Fine-turning, Lanchain,

Tạo bộ dữ liệu thử nghiệm chatbot

Chuyển đổi từ MongoDB sang PostgreSQL

Tích hợp các api vào ứng dụng

Tạo chức năng chatbot trên web và ứng dụng

Thử nghiệm chatbot với chatgpt 4.0

Tích hợp api chatbot vào hệ thống

Tạo bộ dữ liệu và kiểm thử chatbot

Cải tiến chatbot sử dụng PandasAI

Tạo bảng riêng cho chatbot trong database

Hoàn thiện các chức năng trên ứng dụng

Tạo bộ dữ liệu cho chatbot bằng file excel

Cải thiện chatbot sử dụng dữ liệu từ file excel

Tạo bộ dữ liệu cho chatbot bằng file csv

Import dữ liệu vào postgreSQL Cải thiện chatbot, chuyển từ đọc từ file excel sang đọc trực tiếp từ database

Cải tiến chatbot sinh ảnh biểu đồ

8 27/05/2024 – 31/06/2024 Kiểm thử chương trình và tiến hành sửa lỗi

Kiểm thử và sửa lỗi Hoàn thành báo cáo

Tp Hồ Chí Minh, ngày tháng năm 2024

Giảng viên hướng dẫn Người viết đề cương

(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 2

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 3

LỜI CẢM ƠN 4 ĐỀ CƯƠNG KHOÁ LUẬN TỐT NGHIỆP 5

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

4 MỤC TIÊU CỦA ĐỀ TÀI 2

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2

CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU 3

1.1.2 Yêu cầu phi chức năng 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG 34

2.1.3 Ưu và nhược điểm của Reactjs 35

2.4.1 Giới thiệu về ứng dụng 39

2.4.3 Ưu và nhược điểm của Flutter 39

2.6 Truy vấn dữ liệu sử dụng LLMs 43

CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 51

3.1 GIAO DIỆN DÀNH CHO ADMIN 51

3.2 GIAO DIỆN DANH CHO TRANG WEB 51

3.4.4 Các công nghệ sử dụng 58

3.4.5 Luồng hoạt động của chatbot trong hệ thống 59

3.4.6 Luồng xử lý câu hỏi 60

CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH VÀ KIỂM THỬ 63

4.1 Cài đặt ứng dụng, thư viện cần thiết 63

4.6.2 Các trường hợp kiểm thử 71

Hình 1.2: Lược đồ Conceptual model 5

Hình 1.3: Sequence Diagram đăng nhập 7

Hình 1.4: Collaboration diagram đăng nhập 7

Hình 1.5: Sequence diagram đăng ký tài khoản 9

Hình 1.7: Lược đồ sequence kích hoạt tài khoản 11

Hình 1.8: Lược dồ collaboration kích hoạt tài khoản 11

Hình 1.9: Sequence diagram cập nhật tài khoản 13

Hình 1.10: Collaboration diagram cập nhật tài khoản 13

Hình 1.11: Sequence diagram tạo kế hoạch 15

Hình 1.12: Collaboration diagram tạo kế hoạch 16

Hình 1.13: Sequence diagram chỉnh sửa kế hoạch 17

Hình 1.14: Sequence diagram xóa kế hoạch 18

Hình 1.15: Collaboration diagram cập nhật kế hoạch 18

Hình 1.16: Sequence diagram tạo ghi chú 20

Hình 1.17: Collaboration diagram tạo ghi chú 20

Hình 1.18: Sequence diagram cập nhật ghi chú 22

Hình 1.19: Sequence diagram xóa ghi chú 23

Hình 1.20 Sequence diagram cập nhật ghi chú 23

Hình 1.21: Sequence diagram tạo tài khoản 25

Hình 1.22: Collaboration diagram tạo tài khoản 25

Hình 1.23: Sequence diagram chỉnh sửa tài khoản 27

Hình 1.24: Sequence diagram tìm kiếm tài khoản 28

Hình 1.25: Collaboration diagram quản lý tài khoản 28

Hình 1.26 Lược đồ sequence chatbot ai 30

Hình 1.28: Lược đồ sequence gửi thông báo 32

Hình 1.30: Lược đồ class diagram 33

Hình 2.1: Kiến trúc của LLMs 43

Hình 2.3: Hoạt động của Langchain 47

Hình 2.4: Hoạt động của PandasAI 49

Hình 3.1 Tạo script insert dữ liệu 55

Hình 3.2: ChatGPT sinh dữ liệu theo câu prompt 56

Hình 3.3: ChatGPT sinh dữ liệu với các trường được thay đổi 57

Hình 3.4: Luồng hoạt động của chatbot 59

Hình 3.5: Truy vấn dữ liệu 60

Hình 3.6: Tạo câu prompt từ PandasAI 61

Hình 3.7: Tạo câu prompt từ PandasAI 61

Hình 3.8: Sinh code trả về kết quả 62

Hình 3.9: Kiểm tra code và kết quả 62

Hình 4.1: Cấu trúc folder của backend 64

Hình 4.2: Kiểm tra NET trong máy 64

Hình 4.3: Gõ lệnh dotnet run để chạy chương trình 65

Hình 4.4: Truy cập vào trang Swagger để kiểm tra 65

Hình 4.5: Cấu trúc folder của FrontEnd 66

Hình 4.7: Các package cần thiết 67

Hình 4.8: Cấu trúc folder của mobile 68

Hình 4.9: Cấu trúc folder chatbot 69

Hình 4.10: Các package cần thiết 69

Hình 4.11: Các package cần thiết 70

Hình PL1.1: Giao diện đăng nhập của admin 95

Hình PL1.2: Giao diện trang quản lý tài khoản 95

Hình PL1.3: Giao diện trang tạo tài khoản 96

Hình PL1.4: Giao diện trang cập nhật tài khoản cho admin 96

Hình PL2.1: Giao diện trang đăng nhập 97

Hình PL2.2: Giao diện trang đăng nhập trên mobile 97

Hình PL2.3: Giao diện trang đăng ký 98

Hình PL2.4: Giao diện đăng ký trên mobile 98

Hình PL2.5: Giao diện trang chủ 99

Hình PL2.6: Giao diện trang chủ trên mobile 99

Hình PL2.7: Giao diện trang todo 100

Hình PL2.8: Giao diện trang todo trên ứng dụng 100

Hình PL2.9: Giao diện trang quên mật khẩu 101

Hình PL2.10: Giao diện trang quên mật khẩu trên mobile 101

Hình PL2.11: Giao diện trang đổi mật khẩu 102

Hình PL2.12: Giao diện trang đổi mật khẩu trên mobile 102

Hình PL2.13: Giao diện trang quản lý chi tiêu 103

Hình PL2.14: Giao diện trang quản lý chi tiêu trên mobile 103

Hình PL2.15: Giao diện trang cập nhật tài khoản 104

Hình PL2.16: Giao diện trang cập nhật tài khoản trên mobile 104

Hình PL2.17: Giao diện trang tạo kế hoạch theo tuần 105

Hình PL2.18: Giao diện trang tạo kế hoạch theo tuần trên ứng dụng 105

Hình PL2.19: Giao diện trang tạo kế hoạch theo ngày 106

Hình PL2.20: Giao diện trang tạo kế hoạch theo ngày trên mobile 106

Hình PL2.21: Giao diện chatbot 107

Hình PL2.22: Giao diện chatbot trên mobile 107

Hình PL2.23: Giao diện tràn pomodoro 108

Hình PL2.24: Giao diện pomodoro trên mobile 108

Bảng 1.1: Use case đăng nhập 6

Bảng 1.2: Đặc tả Use Case đăng ký 8

Bảng 1.3 Đặc tả use case kích hoạt tài khoản 10

Bảng 1.4: Đặc tả Use Case cập nhật tài khoản 12

Bảng 1.5: Đặc tả Use Case tạo kế hoạch 15

Bảng 1.6: Đặc tả Use Case cập nhật kế hoạch 17

Bảng 1.7: Đặc tả Use Case tạo ghi chú 19

Bảng 1.8: Đặc tả Use Case cập nhật ghi chú 21

Bảng 1.9: Đặc tả Use case tạo tài khoản mới 24

Bảng 1.10: Đặc tả Use case quản lý tài khoản 27

Bảng 1.11 Đặc tả usecase chatbot ai 29

Bảng 1.12: Đặc tả use case thông báo 31

Bảng 4.1: Các công cụ, phần mềm cần cài đặt 63

Bảng 4.2: Kiểm thử chức năng đăng nhập với trường hợp không nhập email 71

Bảng 4.3: Kiểm thử với trường hợp email không có trong hệ thống 72

Bảng 4.4: Kiểm thử với trường hợp đăng nhập với password không đúng 73

Bảng 4.5: Kiểm thử chức năng đăng nhập với trường hợp dữ liệu đứng 73

Bảng 4.6: Kiểm thử chức năng đăng ký với trường hợp email đã tồn tại 74

Bảng 4.7: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 75

Bảng 4.8: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 76

Bảng 4.9: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 77

Bảng 4.10: Kiểm thử chức năng tạo kế hoạch với dữ liệu đúng 78

Bảng 4.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 79

Bảng 4.12: Kiểm thử chức năng tạo ghi chú với trường hợp không chọn màu 80

Bảng 4.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 81

Bảng 4.14: Kiểm thử chức năng tạo ghi chú với trường hợp dữ liệu đúng 82

Bảng 4.15: Kiểm thử chức năng cập nhật ghi chú 83

Bảng 4.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 84

Bảng 4.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 85

Bảng 4.18: Kiểm thử chức năng tạo cột todolist với trường hợp dữ liệu đúng 86

Bảng 4.19: Kiểm thử chức năng cập nhật cột trong todolist 87

Bảng 4.20: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 88

Bảng 4.21: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 88

Bảng 4 22: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 89

Bảng 4.23: Kiểm thử chức năng chatbot trường hợp câu hỏi tạo biểu đồ 90 Bảng 4.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

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

2 ĐỐ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

 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

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

4 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à Mục đích giúp tạo ra một hệ thống có thể giúp cho việc quản lý chi tiêu, hoạt động, học tập, công việc trở nên ngày càng thuận lợi

Ngoài ra, đề tài còn hướng đến việc khai thác dữ liệu bằng ứng dụng mô hình ngôn ngữ lớn (LLMs) Việc tích hợp chatbot sẽ hỗ trợ người dung quản lý chi tiêu hiệu quả hơn và giúp người quản trị khai thác dữ liệu, tra cứu thông tin trong hệ thống một cách nhanh chóng, hiệu quả và tiết kiệm thời gian

CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU

- Quản lý tài khoản User trên hệ thống: thêm, sửa, xóa

- Tài khoản: đăng ký, đăng nhập, chỉnh sửa thông tin, thay đổi mật khẩu, đăng xuất

- Kế hoạch: thêm, sửa, xóa, thống kê kế hoạch

- Ghi chú: thêm, sửa, xóa ghi chú

- Danh mục: thêm, chỉnh sửa danh mục

- Todolist: Thêm, sửa, xóa cột và thẻ trong todolist

- Đếm thời gian pomodoro, quản lý các nhiệm vụ trong khoảng thời gian được cài đặt

1.1.2 Yêu cầu phi chức năng

Các yêu cầu phi chức năng trên hệ thống bao gồm:

- Giao diện thân thiện, dễ sử dụng

- Tốc độ xử lý các thao tác nhanh chóng, chính xác

- Hệ thống có độ bảo mật cao

- Dễ dàng bảo trì, nâng cấp phát triển

1.2 MÔ HÌNH HÓA YÊU CẦU

Hình 1.2: Lược đồ Conceptual model

Description Cho phép Actor đăng nhập để thực hiện các chức năng nhất định

Actor Khách hàng, Người quản trị

Pre-Conditions Actor có tài khoản trên hệ thống

Post-Conditions Actor đăng nhập thành công vào hệ thống với các chức năng tuỳ theo vai trò

Main Flow 1 Actor bấm vào nút “Login”

2 Hệ thống hiển thị Form đăng nhập gồm email và mật khẩu

5 Trang kiểm tra thông tin nhập vào

6 Hệ thống xác thực thông tin so với dữ liệu của cơ sở dữ liệu

7 Hệ thống lưu lại accesstoken, thông báo đăng nhập thành công và chuyển sang trang chủ

Alternate Flow(s) 2.1 Actor truy cập vào đường link trang quản trị, hệ thống chuyển sang trang quản trị và hiển thị Form đăng nhập gồm email và mật khẩu, Actor thực hiện tiếp bước 3

Exception Flow 5.1 Actor bỏ trống ô nhập tên tài khoản hoặc mật khẩu, hệ thống thông báo yêu cầu actor phải nhập đầy đủ các thông tin, Actor quay lại bước 3 hoặc huỷ bỏ thao tác

6.1 Actor nhập sai thông tin tài khoản, hệ thống thông báo tài khoản/mật khẩu không chính xác, Actor quay lại bước 3 hoặc huỷ bỏ thao tác

Bảng 1.1: Use case đăng nhập

Hình 1.4: Collaboration diagram đăng nhập Hình 1.3: Sequence Diagram đăng nhập

Description Cho phép actor tạo tài khoản để sử dụng trên hệ thống

Post-Conditions Actor tạo thành công tài khoản mới trên hệ thống

1 Actor bấm vào nút “Register”

2 Hệ thống hiển thị Form để nhập thông tin gồm tên tài khoản, mật khẩu, tên người dùng, ngày sinh, địa chỉ, số điện thoại, email, mã số sinh viên

3 Actor nhập các thông tin

5 Hệ thống kiểm tra thông tin nhập vào

6 Hệ thống thêm tài khoản vào cơ sở dữ liệu và gửi mail OTP

7 Hệ thống chuyển đến trang OTP và thông báo đăng ký thành công

5.1 Thông tin về tên tài khoản, mật khẩu, tên người dùng, ngày sinh, địa chỉ, số điện thoại, email, mã số sinh viên không hợp lệ hoặc bị bỏ trống, hệ thống thông báo lỗi, Actor quay lại bước 3 hoặc huỷ bỏ thao tác

7.1 Đăng ký không thành công, hệ thống thông báo lỗi

Bảng 1.2: Đặc tả Use Case đăng ký

Hình 1.6: Collaboration đăng ký Hình 1.5: Sequence diagram đăng ký tài khoản

Use Case Kích hoạt tài khoản

Chức năng này cho phép Actor kích hoạt tài khoản vừa đăng ký thành công

Pre-Conditions Actor đăng ký thành công và nhận được mail chứa OTP

Post-Conditions Hệ thống thực hiện kích hoạt tài khoản của Actor để có thể tiến hành đăng nhập vào hệ thống

Main Flow 1 Sau khi đăng ký thành công hệ thống chuyển sang trang

OTP hoặc Actor truy cập vào trang OTP

2 Hệ thống hiển thị form nhập OTP gồm 6 số

3 Actor nhập mã OTP nhận được vào form

4 Actor nhấn nút “Verify Account”

5 Hệ thống kiểm tra thông tin Actor nhập

6 Hệ thống cập nhật trạng thái tài khoản vào Cơ sở dữ liệu

7 Hệ thống hiển chuyển sang trang Đăng nhập và hiển thị thông báo kích hoạt thành công

Exception Flow 5.1 Nếu OTP không hợp lệ hoặc bị bỏ trống thì sẽ thông báo lỗi

Actor quay lại bước 3 hoặc huỷ bỏ thao tác 7.1 Kích hoạt thất bạn, thông báo lỗi

Bảng 1.3 Đặc tả use case kích hoạt tài khoản

Hình 1.7: Lược đồ sequence kích hoạt tài khoản

Hình 1.8: Lược dồ collaboration kích hoạt tài khoản

Use Case Cập nhật tài khoản

Chức năng này cho phép Actor cập nhật thông tin cho tài khoản

Pre-Conditions Actor có tài khoản và đã đăng nhập

Post-Conditions Hệ thống thực hiện cập nhật thông tin cho tài khoản của Actor vào

Main Flow 1 Actor truy cập trang “Account”

2 Hệ thống lấy thông tin tài khoản của Actor từ Cơ sở dữ liệu

3 Hệ thống hiển thị Form cập nhật thông tin với các thông tin đã lưu gồm tên tài khoản, họ tên, ngày sinh, email, số điện thoại, địa chỉ, mã số sinh viên

4 Actor nhập thông tin cần cập nhật

6 Hệ thống kiểm tra thông tin Actor nhập

7 Hệ thống cập nhật thông tin tài khoản vào Cơ sở dữ liệu

8 Hệ thống hiển thị lại giao diện trang thông tin tài khoản

Exception Flow 6.1 Actor nhập thông tin họ tên, ngày sinh, tên tài khoản, email, số điện thoại, địa chỉ, mã số sinh viên không hợp lệ hoặc để trống, hệ thống thông báo lỗi, Actor thực hiện lại bước 5 hoặc huỷ bỏ thao tác

Bảng 1.4: Đặc tả Use Case cập nhật tài khoản

Hình 1.10: Collaboration diagram cập nhật tài khoản Hình 1.9: Sequence diagram cập nhật tài khoản

Use Case Tạo kế hoạch

Short Description Chức năng này cho phép Actor tạo kế hoạch chi tiêu theo ngày, tháng, năm

Pre-Conditions Actor có tài khoản và đã đăng nhập

Post-Conditions Hệ thống sẽ tạo kế hoạch dựa trên những thông tin người dùng cung cấp và hiển thị lên trên calendar

Main Flow 1 Actor chọn nút “Create”

2 Hệ thống hiển thị form để nhập thông tin như tổng số tiền, đơn vị tiền, chọn lập kế hoạch theo ngày hoặc tháng hoặc năm, nhập thời gian, chi tiết kế hoạch, mức độ ưu tiên, chọn danh mục

3 Actor nhập các thông tin

5 Hệ thống kiểm tra thông tin

6 Hệ thống thêm kế hoạch vào cơ sở dữ liệu

7 Hệ thống hiển thị kế hoạch theo ngày, tháng, năm

CÀI ĐẶT CHƯƠNG TRÌNH VÀ KIỂM THỬ

Cài đặt ứng dụng, thư viện cần thiết

4.4 Cài đặt phía ứng dụng mobile

Cài đặt phía FrontEnd

4.4 Cài đặt phía ứng dụng mobile

STT Thời gian thực hiện Công việc Ghi chú

Tìm hiểu về Flutter Tìm hiểu về các công cụ tạo chatbot

Tiến hành tổ chức cấu trúc project flutter

Xây dựng giao diện cho ứng dụng

Chỉnh sửa giao diện trên web Thử nghiệm chatbot với OpenAi và model Chatgpt, LLMs, Fine-turning, Lanchain,

Tạo bộ dữ liệu thử nghiệm chatbot

Chuyển đổi từ MongoDB sang PostgreSQL

Tích hợp các api vào ứng dụng

Tạo chức năng chatbot trên web và ứng dụng

Thử nghiệm chatbot với chatgpt 4.0

Tích hợp api chatbot vào hệ thống

Tạo bộ dữ liệu và kiểm thử chatbot

Cải tiến chatbot sử dụng PandasAI

Tạo bảng riêng cho chatbot trong database

Hoàn thiện các chức năng trên ứng dụng

Tạo bộ dữ liệu cho chatbot bằng file excel

Cải thiện chatbot sử dụng dữ liệu từ file excel

Tạo bộ dữ liệu cho chatbot bằng file csv

Import dữ liệu vào postgreSQL Cải thiện chatbot, chuyển từ đọc từ file excel sang đọc trực tiếp từ database

Cải tiến chatbot sinh ảnh biểu đồ

8 27/05/2024 – 31/06/2024 Kiểm thử chương trình và tiến hành sửa lỗi

Kiểm thử và sửa lỗi Hoàn thành báo cáo

Tp Hồ Chí Minh, ngày tháng năm 2024

Giảng viên hướng dẫn Người viết đề cương

(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 2

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 3

LỜI CẢM ƠN 4 ĐỀ CƯƠNG KHOÁ LUẬN TỐT NGHIỆP 5

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

4 MỤC TIÊU CỦA ĐỀ TÀI 2

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2

CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU 3

1.1.2 Yêu cầu phi chức năng 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG 34

2.1.3 Ưu và nhược điểm của Reactjs 35

2.4.1 Giới thiệu về ứng dụng 39

2.4.3 Ưu và nhược điểm của Flutter 39

2.6 Truy vấn dữ liệu sử dụng LLMs 43

CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 51

3.1 GIAO DIỆN DÀNH CHO ADMIN 51

3.2 GIAO DIỆN DANH CHO TRANG WEB 51

3.4.4 Các công nghệ sử dụng 58

3.4.5 Luồng hoạt động của chatbot trong hệ thống 59

3.4.6 Luồng xử lý câu hỏi 60

CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH VÀ KIỂM THỬ 63

4.1 Cài đặt ứng dụng, thư viện cần thiết 63

4.6.2 Các trường hợp kiểm thử 71

Hình 1.2: Lược đồ Conceptual model 5

Hình 1.3: Sequence Diagram đăng nhập 7

Hình 1.4: Collaboration diagram đăng nhập 7

Hình 1.5: Sequence diagram đăng ký tài khoản 9

Hình 1.7: Lược đồ sequence kích hoạt tài khoản 11

Hình 1.8: Lược dồ collaboration kích hoạt tài khoản 11

Hình 1.9: Sequence diagram cập nhật tài khoản 13

Hình 1.10: Collaboration diagram cập nhật tài khoản 13

Hình 1.11: Sequence diagram tạo kế hoạch 15

Hình 1.12: Collaboration diagram tạo kế hoạch 16

Hình 1.13: Sequence diagram chỉnh sửa kế hoạch 17

Hình 1.14: Sequence diagram xóa kế hoạch 18

Hình 1.15: Collaboration diagram cập nhật kế hoạch 18

Hình 1.16: Sequence diagram tạo ghi chú 20

Hình 1.17: Collaboration diagram tạo ghi chú 20

Hình 1.18: Sequence diagram cập nhật ghi chú 22

Hình 1.19: Sequence diagram xóa ghi chú 23

Hình 1.20 Sequence diagram cập nhật ghi chú 23

Hình 1.21: Sequence diagram tạo tài khoản 25

Hình 1.22: Collaboration diagram tạo tài khoản 25

Hình 1.23: Sequence diagram chỉnh sửa tài khoản 27

Hình 1.24: Sequence diagram tìm kiếm tài khoản 28

Hình 1.25: Collaboration diagram quản lý tài khoản 28

Hình 1.26 Lược đồ sequence chatbot ai 30

Hình 1.28: Lược đồ sequence gửi thông báo 32

Hình 1.30: Lược đồ class diagram 33

Hình 2.1: Kiến trúc của LLMs 43

Hình 2.3: Hoạt động của Langchain 47

Hình 2.4: Hoạt động của PandasAI 49

Hình 3.1 Tạo script insert dữ liệu 55

Hình 3.2: ChatGPT sinh dữ liệu theo câu prompt 56

Hình 3.3: ChatGPT sinh dữ liệu với các trường được thay đổi 57

Hình 3.4: Luồng hoạt động của chatbot 59

Hình 3.5: Truy vấn dữ liệu 60

Hình 3.6: Tạo câu prompt từ PandasAI 61

Hình 3.7: Tạo câu prompt từ PandasAI 61

Hình 3.8: Sinh code trả về kết quả 62

Hình 3.9: Kiểm tra code và kết quả 62

Hình 4.1: Cấu trúc folder của backend 64

Hình 4.2: Kiểm tra NET trong máy 64

Hình 4.3: Gõ lệnh dotnet run để chạy chương trình 65

Hình 4.4: Truy cập vào trang Swagger để kiểm tra 65

Hình 4.5: Cấu trúc folder của FrontEnd 66

Hình 4.7: Các package cần thiết 67

Hình 4.8: Cấu trúc folder của mobile 68

Hình 4.9: Cấu trúc folder chatbot 69

Hình 4.10: Các package cần thiết 69

Hình 4.11: Các package cần thiết 70

Hình PL1.1: Giao diện đăng nhập của admin 95

Hình PL1.2: Giao diện trang quản lý tài khoản 95

Hình PL1.3: Giao diện trang tạo tài khoản 96

Hình PL1.4: Giao diện trang cập nhật tài khoản cho admin 96

Hình PL2.1: Giao diện trang đăng nhập 97

Hình PL2.2: Giao diện trang đăng nhập trên mobile 97

Hình PL2.3: Giao diện trang đăng ký 98

Hình PL2.4: Giao diện đăng ký trên mobile 98

Hình PL2.5: Giao diện trang chủ 99

Hình PL2.6: Giao diện trang chủ trên mobile 99

Hình PL2.7: Giao diện trang todo 100

Hình PL2.8: Giao diện trang todo trên ứng dụng 100

Hình PL2.9: Giao diện trang quên mật khẩu 101

Hình PL2.10: Giao diện trang quên mật khẩu trên mobile 101

Hình PL2.11: Giao diện trang đổi mật khẩu 102

Hình PL2.12: Giao diện trang đổi mật khẩu trên mobile 102

Hình PL2.13: Giao diện trang quản lý chi tiêu 103

Hình PL2.14: Giao diện trang quản lý chi tiêu trên mobile 103

Hình PL2.15: Giao diện trang cập nhật tài khoản 104

Hình PL2.16: Giao diện trang cập nhật tài khoản trên mobile 104

Hình PL2.17: Giao diện trang tạo kế hoạch theo tuần 105

Hình PL2.18: Giao diện trang tạo kế hoạch theo tuần trên ứng dụng 105

Hình PL2.19: Giao diện trang tạo kế hoạch theo ngày 106

Hình PL2.20: Giao diện trang tạo kế hoạch theo ngày trên mobile 106

Hình PL2.21: Giao diện chatbot 107

Hình PL2.22: Giao diện chatbot trên mobile 107

Hình PL2.23: Giao diện tràn pomodoro 108

Hình PL2.24: Giao diện pomodoro trên mobile 108

Bảng 1.1: Use case đăng nhập 6

Bảng 1.2: Đặc tả Use Case đăng ký 8

Bảng 1.3 Đặc tả use case kích hoạt tài khoản 10

Bảng 1.4: Đặc tả Use Case cập nhật tài khoản 12

Bảng 1.5: Đặc tả Use Case tạo kế hoạch 15

Bảng 1.6: Đặc tả Use Case cập nhật kế hoạch 17

Bảng 1.7: Đặc tả Use Case tạo ghi chú 19

Bảng 1.8: Đặc tả Use Case cập nhật ghi chú 21

Bảng 1.9: Đặc tả Use case tạo tài khoản mới 24

Bảng 1.10: Đặc tả Use case quản lý tài khoản 27

Bảng 1.11 Đặc tả usecase chatbot ai 29

Bảng 1.12: Đặc tả use case thông báo 31

Bảng 4.1: Các công cụ, phần mềm cần cài đặt 63

Bảng 4.2: Kiểm thử chức năng đăng nhập với trường hợp không nhập email 71

Bảng 4.3: Kiểm thử với trường hợp email không có trong hệ thống 72

Bảng 4.4: Kiểm thử với trường hợp đăng nhập với password không đúng 73

Bảng 4.5: Kiểm thử chức năng đăng nhập với trường hợp dữ liệu đứng 73

Bảng 4.6: Kiểm thử chức năng đăng ký với trường hợp email đã tồn tại 74

Bảng 4.7: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 75

Bảng 4.8: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 76

Bảng 4.9: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 77

Bảng 4.10: Kiểm thử chức năng tạo kế hoạch với dữ liệu đúng 78

Bảng 4.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 79

Bảng 4.12: Kiểm thử chức năng tạo ghi chú với trường hợp không chọn màu 80

Bảng 4.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 81

Bảng 4.14: Kiểm thử chức năng tạo ghi chú với trường hợp dữ liệu đúng 82

Bảng 4.15: Kiểm thử chức năng cập nhật ghi chú 83

Bảng 4.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 84

Bảng 4.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 85

Bảng 4.18: Kiểm thử chức năng tạo cột todolist với trường hợp dữ liệu đúng 86

Bảng 4.19: Kiểm thử chức năng cập nhật cột trong todolist 87

Bảng 4.20: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 88

Bảng 4.21: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 88

Bảng 4 22: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 89

Bảng 4.23: Kiểm thử chức năng chatbot trường hợp câu hỏi tạo biểu đồ 90 Bảng 4.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

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

2 ĐỐ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

 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

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

4 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à Mục đích giúp tạo ra một hệ thống có thể giúp cho việc quản lý chi tiêu, hoạt động, học tập, công việc trở nên ngày càng thuận lợi

Ngoài ra, đề tài còn hướng đến việc khai thác dữ liệu bằng ứng dụng mô hình ngôn ngữ lớn (LLMs) Việc tích hợp chatbot sẽ hỗ trợ người dung quản lý chi tiêu hiệu quả hơn và giúp người quản trị khai thác dữ liệu, tra cứu thông tin trong hệ thống một cách nhanh chóng, hiệu quả và tiết kiệm thời gian

CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU

- Quản lý tài khoản User trên hệ thống: thêm, sửa, xóa

- Tài khoản: đăng ký, đăng nhập, chỉnh sửa thông tin, thay đổi mật khẩu, đăng xuất

- Kế hoạch: thêm, sửa, xóa, thống kê kế hoạch

- Ghi chú: thêm, sửa, xóa ghi chú

- Danh mục: thêm, chỉnh sửa danh mục

- Todolist: Thêm, sửa, xóa cột và thẻ trong todolist

- Đếm thời gian pomodoro, quản lý các nhiệm vụ trong khoảng thời gian được cài đặt

1.1.2 Yêu cầu phi chức năng

Các yêu cầu phi chức năng trên hệ thống bao gồm:

- Giao diện thân thiện, dễ sử dụng

- Tốc độ xử lý các thao tác nhanh chóng, chính xác

- Hệ thống có độ bảo mật cao

- Dễ dàng bảo trì, nâng cấp phát triển

1.2 MÔ HÌNH HÓA YÊU CẦU

Hình 1.2: Lược đồ Conceptual model

Description Cho phép Actor đăng nhập để thực hiện các chức năng nhất định

Actor Khách hàng, Người quản trị

Pre-Conditions Actor có tài khoản trên hệ thống

Post-Conditions Actor đăng nhập thành công vào hệ thống với các chức năng tuỳ theo vai trò

Main Flow 1 Actor bấm vào nút “Login”

2 Hệ thống hiển thị Form đăng nhập gồm email và mật khẩu

5 Trang kiểm tra thông tin nhập vào

6 Hệ thống xác thực thông tin so với dữ liệu của cơ sở dữ liệu

7 Hệ thống lưu lại accesstoken, thông báo đăng nhập thành công và chuyển sang trang chủ

Alternate Flow(s) 2.1 Actor truy cập vào đường link trang quản trị, hệ thống chuyển sang trang quản trị và hiển thị Form đăng nhập gồm email và mật khẩu, Actor thực hiện tiếp bước 3

Exception Flow 5.1 Actor bỏ trống ô nhập tên tài khoản hoặc mật khẩu, hệ thống thông báo yêu cầu actor phải nhập đầy đủ các thông tin, Actor quay lại bước 3 hoặc huỷ bỏ thao tác

6.1 Actor nhập sai thông tin tài khoản, hệ thống thông báo tài khoản/mật khẩu không chính xác, Actor quay lại bước 3 hoặc huỷ bỏ thao tác

Bảng 1.1: Use case đăng nhập

Hình 1.4: Collaboration diagram đăng nhập Hình 1.3: Sequence Diagram đăng nhập

Description Cho phép actor tạo tài khoản để sử dụng trên hệ thống

Post-Conditions Actor tạo thành công tài khoản mới trên hệ thống

1 Actor bấm vào nút “Register”

2 Hệ thống hiển thị Form để nhập thông tin gồm tên tài khoản, mật khẩu, tên người dùng, ngày sinh, địa chỉ, số điện thoại, email, mã số sinh viên

3 Actor nhập các thông tin

5 Hệ thống kiểm tra thông tin nhập vào

6 Hệ thống thêm tài khoản vào cơ sở dữ liệu và gửi mail OTP

7 Hệ thống chuyển đến trang OTP và thông báo đăng ký thành công

5.1 Thông tin về tên tài khoản, mật khẩu, tên người dùng, ngày sinh, địa chỉ, số điện thoại, email, mã số sinh viên không hợp lệ hoặc bị bỏ trống, hệ thống thông báo lỗi, Actor quay lại bước 3 hoặc huỷ bỏ thao tác

7.1 Đăng ký không thành công, hệ thống thông báo lỗi

Bảng 1.2: Đặc tả Use Case đăng ký

Hình 1.6: Collaboration đăng ký Hình 1.5: Sequence diagram đăng ký tài khoản

Use Case Kích hoạt tài khoản

Chức năng này cho phép Actor kích hoạt tài khoản vừa đăng ký thành công

Pre-Conditions Actor đăng ký thành công và nhận được mail chứa OTP

Post-Conditions Hệ thống thực hiện kích hoạt tài khoản của Actor để có thể tiến hành đăng nhập vào hệ thống

Main Flow 1 Sau khi đăng ký thành công hệ thống chuyển sang trang

OTP hoặc Actor truy cập vào trang OTP

2 Hệ thống hiển thị form nhập OTP gồm 6 số

3 Actor nhập mã OTP nhận được vào form

4 Actor nhấn nút “Verify Account”

5 Hệ thống kiểm tra thông tin Actor nhập

6 Hệ thống cập nhật trạng thái tài khoản vào Cơ sở dữ liệu

7 Hệ thống hiển chuyển sang trang Đăng nhập và hiển thị thông báo kích hoạt thành công

Exception Flow 5.1 Nếu OTP không hợp lệ hoặc bị bỏ trống thì sẽ thông báo lỗi

Actor quay lại bước 3 hoặc huỷ bỏ thao tác 7.1 Kích hoạt thất bạn, thông báo lỗi

Bảng 1.3 Đặc tả use case kích hoạt tài khoản

Hình 1.7: Lược đồ sequence kích hoạt tài khoản

Hình 1.8: Lược dồ collaboration kích hoạt tài khoản

Use Case Cập nhật tài khoản

Chức năng này cho phép Actor cập nhật thông tin cho tài khoản

Pre-Conditions Actor có tài khoản và đã đăng nhập

Post-Conditions Hệ thống thực hiện cập nhật thông tin cho tài khoản của Actor vào

Main Flow 1 Actor truy cập trang “Account”

2 Hệ thống lấy thông tin tài khoản của Actor từ Cơ sở dữ liệu

3 Hệ thống hiển thị Form cập nhật thông tin với các thông tin đã lưu gồm tên tài khoản, họ tên, ngày sinh, email, số điện thoại, địa chỉ, mã số sinh viên

4 Actor nhập thông tin cần cập nhật

6 Hệ thống kiểm tra thông tin Actor nhập

7 Hệ thống cập nhật thông tin tài khoản vào Cơ sở dữ liệu

8 Hệ thống hiển thị lại giao diện trang thông tin tài khoản

Exception Flow 6.1 Actor nhập thông tin họ tên, ngày sinh, tên tài khoản, email, số điện thoại, địa chỉ, mã số sinh viên không hợp lệ hoặc để trống, hệ thống thông báo lỗi, Actor thực hiện lại bước 5 hoặc huỷ bỏ thao tác

Bảng 1.4: Đặc tả Use Case cập nhật tài khoản

Hình 1.10: Collaboration diagram cập nhật tài khoản Hình 1.9: Sequence diagram cập nhật tài khoản

Use Case Tạo kế hoạch

Short Description Chức năng này cho phép Actor tạo kế hoạch chi tiêu theo ngày, tháng, năm

Pre-Conditions Actor có tài khoản và đã đăng nhập

Post-Conditions Hệ thống sẽ tạo kế hoạch dựa trên những thông tin người dùng cung cấp và hiển thị lên trên calendar

Main Flow 1 Actor chọn nút “Create”

2 Hệ thống hiển thị form để nhập thông tin như tổng số tiền, đơn vị tiền, chọn lập kế hoạch theo ngày hoặc tháng hoặc năm, nhập thời gian, chi tiết kế hoạch, mức độ ưu tiên, chọn danh mục

3 Actor nhập các thông tin

5 Hệ thống kiểm tra thông tin

6 Hệ thống thêm kế hoạch vào cơ sở dữ liệu

7 Hệ thống hiển thị kế hoạch theo ngày, tháng, năm

Cài đặt phía Mobile

- Bước 1: Clone source code tại github: SSPS.APP

- Bước 2: Mở source code app trong Visual Studio Code IDE

- Bước 3: Gõ lệnh flutter pub get để cài đặt các package cần thiết

- Bước 4: Sau khi chạy xong lệnh flutter pub get, tiến hành mở file pubspec.yaml và kiểm tra trong phần “dependencies” xem đã đủ các package với các phiên bản cần thiết hay chưa

- Bước 5: Gõ lệnh flutter pub add cần cài nếu thiếu một trong số các package trên

- Bước 6: Nhấn tổ hợp phím Ctr + Shitf + P và chọn Flutter: Select Device và chọn máy ảo cần chạy

- Bước 7: Gõ lệnh flutter run để khởi chạy chương trình

H ì n h 4 7 : C ấ u t r ú c f o l d e r m o b i lHình 4.8: Cấu trúc folder của mobile

Cài đặt Chatbot

Hình 33: Các package cần thiết

Hình 32: Cấu trúc folder chatbot Hình 4.10: Các package cần thiết

Hình 4.9: Cấu trúc folder chatbot

- Bước 1: Tải source code tại github: SSPS.Chatbot

- Bước 2: Mở source code app trong Visual Studio Code IDE

- Bước 3: Gõ lệnh py –m pip install để cài đặt các package cần thiết

- Bước 4: Sau khi cài đặt các package cần thiết thì gõ lệnh py app.py để chạy chương trình

- Bước 5: Nếu trong quá trình chạy mà chưa cài đủ các package thì hệ thống sẽ thống báo và bắt đầu thực hiện từ bước 3

4.6.1.1 Các loại kiểm thử áp dụng

- Integration Test: Kết hợp các module của ứng đựng và kiểm thử như một ứng dụng hoàn chỉnh

- Unit Test: Kiểm thử riêng lẻ từng module để xác định tính đúng đắn của module đó

Hình 4.11: Các package cần thiết

71 Đảm bảo các chức năng của ứng dụng hoạt động một cách đúng đắn, chính xác trong điều kiện thực tế

Các tiêu chí kiểm thử bao gồm:

- Tiêu chí đình chỉ: nếu có ít nhất 40% số test case bị lỗi, tạm dừng việc kiểm thử đến khi tất cả các lỗi hiện tại được khắc phục

- Tiêu chí kết thúc: chỉ định các tiêu chí biểu thị việc hoàn thành thành công giai đoạn kiểm thử

● Tỷ lệ chạy test case bắt buộc phải là 100% trừ khi có lý do rõ ràng

● Tỷ lệ vượt qua các test case là 80%, việc đạt tỉ lệ này là bắt buộc

4.6.2 Các trường hợp kiểm thử

Mô tả Kiểm thử chức năng đăng nhập với trường hợp không điền email

Các bước thực hiện 1 Nhập password

Dữ liệu kiểm thử Email = “”

Kết quả mong đợi Hiển thị thống báo : “Need to fill in all information!”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.2: Kiểm thử chức năng đăng nhập với trường hợp không nhập email

Mô tả Kiểm thử chức năng đăng nhập với trường hợp email không có trong hệ thống

Dữ liệu kiểm thử Email = “test123@gmail.com”

Kết quả mong đợi Hiển thị thông báo : “Account does not exist ”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.3: Kiểm thử với trường hợp email không có trong hệ thống

Mô tả Kiểm thử chức năng đăng nhập với trường hợp password không đúng

Dữ liệu kiểm thử Email = “bthai555@gmail.com”

Kết quả mong đợi Hiển thị thống báo : “Incorrect password ”

Kết quả thực tế Như kết quả mong đợi

Bảng 4.4: Kiểm thử với trường hợp đăng nhập với password không đúng

Mô tả Kiểm thử chức năng đăng nhập với trường hợp dữ liệu đúng

Dữ liệu kiểm thử Email = “bthai555@gmail.com”

Kết quả mong đợi Hiển thị thông báo: “Login success” và chuyển sang trang chủ

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.5: Kiểm thử chức năng đăng nhập với trường hợp dữ liệu đứng

Mô tả Kiểm thử chức năng đăng ký với trường hợp email đã có trong hệ thống

Các bước thực hiện 1 Nhập đầy đủ thông tin

Email = bthai555@gmail.com School = “SPKT”

Province = “Tp Hồ Chí Minh”

Kết quả mong đợi Hiển thị thống báo : “Email already exists ”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.6: Kiểm thử chức năng đăng ký với trường hợp email đã tồn tại

Mô tả Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng

Các bước thực hiện 1 Nhập đầy đủ thông tin

Email = bthai888@gmail.com School = “SPKT”

Province = “Tp Hồ Chí Minh”

Kết quả mong đợi Hiển thị thông báo : “Register success ” và chuyển sang trang OTP

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.7: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng

Mô tả Kiểm thử chức năng tạo kế hoạch với trường hợp không điền plan detail

2 Nhập đầy đủ thông tin ( không nhập phần plan detail)

Kết quả mong đợi Hiển thị thông báo : “Need to fill in all information!”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.8: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng

Mô tả Kiểm thử chức năng tạo kế hoạch với trường hợp số tiền dự kiến trong plan detail lớn hơn số tổng tiền

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo : “The total amount has exceeded the limit, do you want to update the total amount?”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.9: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng

Mô tả Kiểm thử chức năng tạo kế hoạch với trường hợp dữ liệu đúng

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo : “ Create success”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.10: Kiểm thử chức năng tạo kế hoạch với dữ liệu đúng

Mô tả Kiểm thử chức năng cập 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

1 Nhấn chọn kế hoạch trong ngày cần update

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo : “Warning: Actual money is higher than expected money” và cảnh báo đỏ

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.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

Mô tả Kiểm thử chức năng tạo ghi chú với trường hợp không chọn màu

1 Nhấn chọn ngày cần ghi chú

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo: “Need to fill in title and color!”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.12: Kiểm thử chức năng tạo ghi chú với trường hợp không chọn màu

Mô tả 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

1 Nhấn chọn ngày cần ghi chú

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo : “Start time is less than end time”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.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

Mô tả Kiểm thử chức năng tạo ghi chú với trường hợp dữ liệu đúng

1 Nhấn chọn ngày cần ghi chú

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo: “Create success!!”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.14: Kiểm thử chức năng tạo ghi chú với trường hợp dữ liệu đúng

Mô tả Kiểm thử chức năng cập nhật ghi chú

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo: “Update success!!”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.15: Kiểm thử chức năng cập nhật ghi chú

Mô tả 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

2 Nhập đầy đủ thông tin (không nhập title)

Kết quả mong đợi Hiển thị thông báo : “Need to enter title and color”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.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

Mô tả Kiểm thử chức năng tạo cột trong todolist với trường hợp ngày bắt đầu lớn hơn ngày kết thúc

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo: “The start date must be before the end date ”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.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

Mô tả Kiểm thử chức năng tạo cột trong todolist với trường hợp dữ liệu đúng

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo : “Create success”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.18: Kiểm thử chức năng tạo cột todolist với trường hợp dữ liệu đúng

Mô tả Kiểm thử chức năng cập nhật cột trong todolist

1 Nhấn chọn nút edit column

2 Nhập đầy đủ thông tin

Kết quả mong đợi Hiển thị thông báo: “Update success!!”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.19: Kiểm thử chức năng cập nhật cột trong todolist

Mô tả Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title

1 Nhấn chọn nút “+” trên column muốn tạo thẻ

Dữ liệu kiểm thử Title = “”

Kết quả mong đợi Hiển thị thông báo : “Need to enter title”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.20: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title

Mô tả Kiểm thử chức năng tạo thẻ trong todolist với trường hợp dữ liệu đúng

1 Nhấn chọn nút “+” trên column muốn tạo thẻ

Dữ liệu kiểm thử Title = “Test”

Kết quả mong đợi Hiển thị thông báo: “Create success!!”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.21: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title

Mô tả Kiểm thử chức năng cập nhật thẻ

1 Nhấn chọn nút edit trên thẻ muốn cập nhật

2 Nhập đầy đủ thông tin

Dữ liệu kiểm thử Title = “Test”

Kết quả mong đợi Hiển thị thông báo : “Update success”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Mô tả Kiểm thử chức năng chatbot với câu hỏi không liên quan đến quản lý chi tiêu

1 Nhấn chọn avatar chat bot

Dữ liệu kiểm thử Message = “How are you?”

Kết quả mong đợi Hiển thị câu trả lời : “Sorry, I cannot answer your question yet”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4 22: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title

Mô tả Kiểm thử chức năng chatbot với câu hỏi tạo biểu đồ

1 Nhấn chọn avatar chat bot

Dữ liệu kiểm thử Message = “Give me a chart about avg money plan by user”

Kết quả mong đợi Hiển thị câu trả lời : “Ảnh biểu đồ”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Bảng 4.23: Kiểm thử chức năng chatbot trường hợp câu hỏi tạo biểu đồ

Bảng 4.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

Mô tả Kiểm thử chức năng chatbot với câu hỏi liên quan đến quản lý chi tiêu

1 Nhấn chọn avatar chat bot

Dữ liệu kiểm thử Message = “What is my average expenditure?”

Kết quả mong đợi Hiển thị câu trả lời : “Câu trả lời về chi tiêu trung bình”

Kết quả thực tế Như kết quả mong đợi

Kết luận Pass Ảnh minh chứng

Sau thời gian nghiên cứu xây dựng và phát triển đề tài, nhóm thực hiện đã đạt được những thành quả sau:

Về lý thuyết và kỹ năng:

- Hiểu rõ và ứng dụng được các kiến thức đã được học, đồng thời tìm hiểu thêm cũng như áp dụng các công nghệ hiện đại phổ biến được sử dụng rộng rãi hiện nay như là ReactJS, Net cũng như là các framework hỗ trợ xây dựng UI nổi bật hiện nay như React Bootstrap, MUI

- Tìm hiểu được cách thức và quy trình tạo một chatbot thông qua

PandasAi, LLMs, RAG, Langchain, OpenAI

- Xây dựng được kỹ năng làm việc nhóm và làm việc cá nhân, quản lý thời gian, phân chia công việc phù hợp trong suốt thời gian thực hiện dự án

- Xây dựng được khả năng tự học, tự tìm kiếm thông tin trên mạng và giải quyết vấn đề

- Xây dựng thành công, đáp ứng tốt các yêu cầu đặt ra về một hệ thống quản lí chi tiêu, công việc cho nhân viên như:

● Các chức năng liên quan đến tài khoản người dùng: đăng ký, đăng nhập, khôi phục mật khẩu, thay đổi thông tin tài khoản, thay đổi mật khẩu

● Các chức năng quản lý chi tiêu: Thêm, sửa, xóa kế hoạch theo ngày, tháng, năm với số tiền ước tính, tiền thực tế và nội dung chi tiết, mức độ ưu tiên, …

● Các chức năng quản lý ghi chú: Thêm, sửa, xóa ghi chú

● Các chức năng quản lý todolist: thêm, sửa, xóa cột todolist, thêm, sửa, xóa thẻ trong cột

● Các chức năng liên quan đến admin: quản lí tài khoản người dùng, thêm tài khoản mới, chỉnh sửa thông tin tài khoản

● Có thêm trang chứa các câu hỏi phổ biến về quản lý chi tiêu

● Có các cảnh báo khi thực hiện sai các tác vụ, cảnh báo khi số tiền vượt mức ban đầu, …

● Chatbot ai hỗ trợ người dùng trong việc quản lý chi tiêu

● Truy vấn, khai thác dữ liệu sử dụng ngôn ngữ tự nhiên

● Bộ đếm thời gian pomodoro

- Xây dựng được ứng dụng với UI thân thiện và dễ sử dụng đáp ứng được trải nghiệm của người dùng

- Giao diện thân thiện, dễ sử dụng

- Hỗ trợ cho các bạn sinh có thể quản lý chi tiêu theo ngày, tháng, năm

- Hỗ trợ việc cập nhật tiền thực tế đã sử dụng để có thể quản lý được chi tiêu theo kế hoạch đã đặt ra

- Hỗ trợ ghi chú các công việc cần phải thực hiện trong ngày

- Hỗ trợ quản lý todolist giúp có thể quản lí, ghi nhớ công việc, nhiệm vụ và thực hiện theo trình tự mà không quên hay bỏ sót

- Chatbot ai hỗ trợ người dùng trong việc quản lý chi tiêu và hỗ trợ admin trong quá trình truy vấn dữ liệu trong hệ thống

- Có sử dụng JWT là một công nghệ phổ biến hiện nay dùng để xác thực và phân quyền chức năng cho người dùng Bên cạnh đó hệ thống sử dụng cơ chế access token và refresh token để đảm bảo tính an toàn dữ liệu cho người dùng, mang lại trải nghiệm tốt cho người dùng

- Chưa tích hợp đăng nhập bằng Google, github, facebook,

- Giao diện một số trang còn chưa đẹp mắt

Từ những nhược điểm đã nêu trên và tiếp tục kế thừa, phát huy những ưu điểm đạt đực, một số hướng phát triển tiếp theo của ứng dụng như sau:

- Trong tương lai sẽ tích hợp đăng nhập bằng Google, facebook, github, …

- Xây dựng trang giúp các bạn sinh viên có thể chia sẻ được quá trình, cách thức quản lý chi tiêu của mình cho các bạn khác đặc biệt là các bạn sinh viên năm nhất

- Xây dựng, tích hợp nhiều công cụ hỗ trợ sinh viên trong quá trình học tập

- Xây dựng chức năng hỗ trợ làm việc nhóm cho các bạn sinh viên

- Cải tiến, nâng cấp chatbot để có thể hỗ trợ nhiều hơn trong quá trình quản lý chi tiêu, công việc, khai thác dữ liệu.

ƯU ĐIỂM

4 Đề nghị cho bảo vệ hay không?

Tp Hồ Chí Minh, ngày tháng 05 năm 2024

(Ký & ghi rõ họ tên) ĐH SƯ PHẠM KỸ THUẬT

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Độc lập – Tự do – Hạnh Phúc

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên Sinh viên 1: Phan Thái Bảo MSSV 1: 20110071

Họ và tên Sinh viên 2: Trương Thuận Hòa MSSV 2: 20110485

Ngành: Công nghệ Thông tin

Tên đề tài: Xây dựng ứng dụng web quản lí chi tiêu, khai thác dữ liệu sử dụng mô hình ngôn ngữ lớn

Họ và tên Giáo viên phản biện: ThS Huỳnh Xuân Phụng

1 Về nội dung đề tài & khối lượng thực hiện:

4 Đề nghị cho bảo vệ hay không ?

Tp Hồ Chí Minh, ngày tháng 05 năm 2024

(Ký & ghi rõ họ tên)

Lời đầu tiên nhóm xin phép được gửi lời cảm ơn chân thành và sâu sắc nhất đến với Khoa Công Nghệ Thông Tin – Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí

Minh đã tạo điều kiện cho nhóm được học tập, phát triển nền tảng kiến thức sâu sắc và thực hiện đề tài này

Bên cạnh đó nhóm thực hiện xin gửi đến thầy Nguyễn Đăng Quang lời cảm ơn sâu sắc nhất Trải qua một quá trình dài học tập và thực hiện đề tài trong thời gian qua Thầy đã tận tâm chỉ bảo nhiệt tình nhóm thực hiện trong suốt quá trình từ lúc bắt đầu cũng như kết thúc đề tài này

Nhờ có những nền tảng kiến thức chuyên ngành vững chắc cộng thêm với những kinh nghiệm và yêu cầu thực tế ngoài xã hội thông qua việc học ở trường và thực tập ở các công ty Tập thể các thầy cô Khoa Công Nghệ Thông Tin và đặc biệt thầy Nguyễn Đăng

Quang đã tặng cho nhóm một khối lượng kiến thức và kinh nghiệm khổng lồ về chuyên ngành và công việc trong tương lai Đặc biệt điều này đã giúp và thôi thúc nhóm hoàn thành được đề tài Đây sẽ là hành trang vô cùng lớn của cho nhóm trước khi bước ra một cuộc sống mới

Tuy nhiên lượng kiến thức là vô tận và với khả năng hạn hẹp nhóm thực hiện đã rất cố gắng để hoàn thành một cách tốt nhất Chính vì vậy việc xảy ra những thiếu sót là điều khó có thể tránh khỏi Nhóm thực hiện hi vọng nhận được sự góp ý tận tình của quý thầy (cô) qua đó nhóm có thể rút ra được bài học kinh nghiệm và hoàn thiện và cải thiện nâng cấp lại sản phẩm của mình một cách tốt nhất có thể

Nhóm thực hiện xin chân thành cảm ơn!

Phan Thái Bảo – 20110071 Trương Thuận Hòa - 20110485 ĐỀ CƯƠNG KHOÁ LUẬN TỐT NGHIỆP

Họ và tên Sinh viên 1: Phan Thái Bảo MSSV: 20110071

Họ và tên Sinh viên 2: Trương Thuận Hoà MSSV: 20110485

Thời gian làm luận văn: 04/03/2024 – 15/06/2024

Chuyên ngành: Công nghệ phần mềm

Tên đề tài: Xây dựng ứng dụng web quản lý chi tiêu, khai thác dữ liệu sữ dụng mô hình ngôn ngữ lớn

Giảng viên hướng dẫn: ThS Nguyễn Đăng Quang

Nhiệm vụ của khoá luận:

Tìm hiểu công nghệ: Reactjs, Flutter, Net, Redux ToolKit, Json Web Token (JWT), Restful API, PostgreSQL, Firebase, Design Pattern, Large language model (LLMs), PandasAI, OpenAI và Model ChatGPT, Langchain, Rag

- Sử dụng RestFull API, Net để viết APIs cho các module trong hệ thống

- Sử dụng PostfreSQL để lưu trữ dữ liệu trong hệ thống

- Sử dụng FireBase để lưu trữ hình ảnh, gửi thông báo trong hệ thống

- Sử dụng Json Web Token để xác thực và uỷ quyền cho hệ thống APIs hoạt động tốt và hiệu quả

- Sử dụng Reactjs, Flutter để thiết kế và xử lý giao diện cho người dùng thao tác trên hệ thống cho web và ứng dụng di động

- Thực nghiệm, kiểm thử hiệu suất và độ chính xác của Large language model (LLMs), PandasAI, OpenAI và Model ChatGPT, Lanchain, Rag

- Sử dụng LLMs, PandasAI, OpenAI và Model ChatGPT để tạo chatbot giúp người dùng quản lý chi tiêu hiệu quả Đề cương viết khoá luận

1.1 Tính cấp thiết của đề tài

1.4 Mục tiêu của đề tài

1.5 Ý nghĩa khoa học và thực tiễn

1 CHƯƠNG 1: MÔ HÌNH HOÁ YÊU CẦU 1.1 Xác định yêu cầu

1.2 Mô hình hoá yêu cầu

2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.6 Truy vấn dữ liệu sử dụng LLMs

3 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 3.1 Giao diện trang admin

4 CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ 4.1 Cài đặt ứng dụng, thư viện cần thiết 4.2 Cài đặt phía backend

4.4 Cài đặt phía ứng dụng mobile

STT Thời gian thực hiện Công việc Ghi chú

Tìm hiểu về Flutter Tìm hiểu về các công cụ tạo chatbot

Tiến hành tổ chức cấu trúc project flutter

Xây dựng giao diện cho ứng dụng

Chỉnh sửa giao diện trên web Thử nghiệm chatbot với OpenAi và model Chatgpt, LLMs, Fine-turning, Lanchain,

Tạo bộ dữ liệu thử nghiệm chatbot

Chuyển đổi từ MongoDB sang PostgreSQL

Tích hợp các api vào ứng dụng

Tạo chức năng chatbot trên web và ứng dụng

Thử nghiệm chatbot với chatgpt 4.0

Tích hợp api chatbot vào hệ thống

Tạo bộ dữ liệu và kiểm thử chatbot

Cải tiến chatbot sử dụng PandasAI

Tạo bảng riêng cho chatbot trong database

Hoàn thiện các chức năng trên ứng dụng

Tạo bộ dữ liệu cho chatbot bằng file excel

Cải thiện chatbot sử dụng dữ liệu từ file excel

Tạo bộ dữ liệu cho chatbot bằng file csv

Import dữ liệu vào postgreSQL Cải thiện chatbot, chuyển từ đọc từ file excel sang đọc trực tiếp từ database

Cải tiến chatbot sinh ảnh biểu đồ

8 27/05/2024 – 31/06/2024 Kiểm thử chương trình và tiến hành sửa lỗi

Kiểm thử và sửa lỗi Hoàn thành báo cáo

Tp Hồ Chí Minh, ngày tháng năm 2024

Giảng viên hướng dẫn Người viết đề cương

(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 2

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 3

LỜI CẢM ƠN 4 ĐỀ CƯƠNG KHOÁ LUẬN TỐT NGHIỆP 5

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

4 MỤC TIÊU CỦA ĐỀ TÀI 2

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2

CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU 3

1.1.2 Yêu cầu phi chức năng 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG 34

2.1.3 Ưu và nhược điểm của Reactjs 35

2.4.1 Giới thiệu về ứng dụng 39

2.4.3 Ưu và nhược điểm của Flutter 39

2.6 Truy vấn dữ liệu sử dụng LLMs 43

CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 51

3.1 GIAO DIỆN DÀNH CHO ADMIN 51

3.2 GIAO DIỆN DANH CHO TRANG WEB 51

3.4.4 Các công nghệ sử dụng 58

3.4.5 Luồng hoạt động của chatbot trong hệ thống 59

3.4.6 Luồng xử lý câu hỏi 60

CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH VÀ KIỂM THỬ 63

4.1 Cài đặt ứng dụng, thư viện cần thiết 63

4.6.2 Các trường hợp kiểm thử 71

Hình 1.2: Lược đồ Conceptual model 5

Hình 1.3: Sequence Diagram đăng nhập 7

Hình 1.4: Collaboration diagram đăng nhập 7

Hình 1.5: Sequence diagram đăng ký tài khoản 9

Hình 1.7: Lược đồ sequence kích hoạt tài khoản 11

Hình 1.8: Lược dồ collaboration kích hoạt tài khoản 11

Hình 1.9: Sequence diagram cập nhật tài khoản 13

Hình 1.10: Collaboration diagram cập nhật tài khoản 13

Hình 1.11: Sequence diagram tạo kế hoạch 15

Hình 1.12: Collaboration diagram tạo kế hoạch 16

Hình 1.13: Sequence diagram chỉnh sửa kế hoạch 17

Hình 1.14: Sequence diagram xóa kế hoạch 18

Hình 1.15: Collaboration diagram cập nhật kế hoạch 18

Hình 1.16: Sequence diagram tạo ghi chú 20

Hình 1.17: Collaboration diagram tạo ghi chú 20

Hình 1.18: Sequence diagram cập nhật ghi chú 22

Hình 1.19: Sequence diagram xóa ghi chú 23

Hình 1.20 Sequence diagram cập nhật ghi chú 23

Hình 1.21: Sequence diagram tạo tài khoản 25

Hình 1.22: Collaboration diagram tạo tài khoản 25

Hình 1.23: Sequence diagram chỉnh sửa tài khoản 27

Hình 1.24: Sequence diagram tìm kiếm tài khoản 28

Hình 1.25: Collaboration diagram quản lý tài khoản 28

Hình 1.26 Lược đồ sequence chatbot ai 30

Hình 1.28: Lược đồ sequence gửi thông báo 32

Hình 1.30: Lược đồ class diagram 33

Hình 2.1: Kiến trúc của LLMs 43

Hình 2.3: Hoạt động của Langchain 47

Hình 2.4: Hoạt động của PandasAI 49

Hình 3.1 Tạo script insert dữ liệu 55

Hình 3.2: ChatGPT sinh dữ liệu theo câu prompt 56

Hình 3.3: ChatGPT sinh dữ liệu với các trường được thay đổi 57

Hình 3.4: Luồng hoạt động của chatbot 59

Hình 3.5: Truy vấn dữ liệu 60

Hình 3.6: Tạo câu prompt từ PandasAI 61

Hình 3.7: Tạo câu prompt từ PandasAI 61

Hình 3.8: Sinh code trả về kết quả 62

Hình 3.9: Kiểm tra code và kết quả 62

Hình 4.1: Cấu trúc folder của backend 64

Hình 4.2: Kiểm tra NET trong máy 64

Hình 4.3: Gõ lệnh dotnet run để chạy chương trình 65

Hình 4.4: Truy cập vào trang Swagger để kiểm tra 65

Hình 4.5: Cấu trúc folder của FrontEnd 66

Hình 4.7: Các package cần thiết 67

Hình 4.8: Cấu trúc folder của mobile 68

Hình 4.9: Cấu trúc folder chatbot 69

Hình 4.10: Các package cần thiết 69

Hình 4.11: Các package cần thiết 70

Hình PL1.1: Giao diện đăng nhập của admin 95

Hình PL1.2: Giao diện trang quản lý tài khoản 95

Hình PL1.3: Giao diện trang tạo tài khoản 96

Hình PL1.4: Giao diện trang cập nhật tài khoản cho admin 96

Hình PL2.1: Giao diện trang đăng nhập 97

Hình PL2.2: Giao diện trang đăng nhập trên mobile 97

Hình PL2.3: Giao diện trang đăng ký 98

Hình PL2.4: Giao diện đăng ký trên mobile 98

Hình PL2.5: Giao diện trang chủ 99

Hình PL2.6: Giao diện trang chủ trên mobile 99

Hình PL2.7: Giao diện trang todo 100

Hình PL2.8: Giao diện trang todo trên ứng dụng 100

Hình PL2.9: Giao diện trang quên mật khẩu 101

Hình PL2.10: Giao diện trang quên mật khẩu trên mobile 101

Hình PL2.11: Giao diện trang đổi mật khẩu 102

Hình PL2.12: Giao diện trang đổi mật khẩu trên mobile 102

Hình PL2.13: Giao diện trang quản lý chi tiêu 103

Hình PL2.14: Giao diện trang quản lý chi tiêu trên mobile 103

Hình PL2.15: Giao diện trang cập nhật tài khoản 104

Hình PL2.16: Giao diện trang cập nhật tài khoản trên mobile 104

Hình PL2.17: Giao diện trang tạo kế hoạch theo tuần 105

Hình PL2.18: Giao diện trang tạo kế hoạch theo tuần trên ứng dụng 105

Hình PL2.19: Giao diện trang tạo kế hoạch theo ngày 106

Hình PL2.20: Giao diện trang tạo kế hoạch theo ngày trên mobile 106

Hình PL2.21: Giao diện chatbot 107

Hình PL2.22: Giao diện chatbot trên mobile 107

Hình PL2.23: Giao diện tràn pomodoro 108

Hình PL2.24: Giao diện pomodoro trên mobile 108

Bảng 1.1: Use case đăng nhập 6

Bảng 1.2: Đặc tả Use Case đăng ký 8

Bảng 1.3 Đặc tả use case kích hoạt tài khoản 10

Bảng 1.4: Đặc tả Use Case cập nhật tài khoản 12

Bảng 1.5: Đặc tả Use Case tạo kế hoạch 15

Bảng 1.6: Đặc tả Use Case cập nhật kế hoạch 17

Bảng 1.7: Đặc tả Use Case tạo ghi chú 19

Bảng 1.8: Đặc tả Use Case cập nhật ghi chú 21

Bảng 1.9: Đặc tả Use case tạo tài khoản mới 24

Bảng 1.10: Đặc tả Use case quản lý tài khoản 27

Bảng 1.11 Đặc tả usecase chatbot ai 29

Bảng 1.12: Đặc tả use case thông báo 31

Bảng 4.1: Các công cụ, phần mềm cần cài đặt 63

Bảng 4.2: Kiểm thử chức năng đăng nhập với trường hợp không nhập email 71

Bảng 4.3: Kiểm thử với trường hợp email không có trong hệ thống 72

Bảng 4.4: Kiểm thử với trường hợp đăng nhập với password không đúng 73

Bảng 4.5: Kiểm thử chức năng đăng nhập với trường hợp dữ liệu đứng 73

Bảng 4.6: Kiểm thử chức năng đăng ký với trường hợp email đã tồn tại 74

Bảng 4.7: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 75

Bảng 4.8: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 76

Bảng 4.9: Kiểm thử chức năng đăng ký với trường hợp dữ liệu đúng 77

Bảng 4.10: Kiểm thử chức năng tạo kế hoạch với dữ liệu đúng 78

Bảng 4.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 79

Bảng 4.12: Kiểm thử chức năng tạo ghi chú với trường hợp không chọn màu 80

Bảng 4.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 81

Bảng 4.14: Kiểm thử chức năng tạo ghi chú với trường hợp dữ liệu đúng 82

Bảng 4.15: Kiểm thử chức năng cập nhật ghi chú 83

Bảng 4.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 84

Bảng 4.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 85

Bảng 4.18: Kiểm thử chức năng tạo cột todolist với trường hợp dữ liệu đúng 86

Bảng 4.19: Kiểm thử chức năng cập nhật cột trong todolist 87

Bảng 4.20: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 88

Bảng 4.21: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 88

Bảng 4 22: Kiểm thử chức năng tạo thẻ trong todolist với trường hợp không nhập title 89

Bảng 4.23: Kiểm thử chức năng chatbot trường hợp câu hỏi tạo biểu đồ 90 Bảng 4.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

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

2 ĐỐ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

 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

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

4 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à Mục đích giúp tạo ra một hệ thống có thể giúp cho việc quản lý chi tiêu, hoạt động, học tập, công việc trở nên ngày càng thuận lợi

Ngoài ra, đề tài còn hướng đến việc khai thác dữ liệu bằng ứng dụng mô hình ngôn ngữ lớn (LLMs) Việc tích hợp chatbot sẽ hỗ trợ người dung quản lý chi tiêu hiệu quả hơn và giúp người quản trị khai thác dữ liệu, tra cứu thông tin trong hệ thống một cách nhanh chóng, hiệu quả và tiết kiệm thời gian

CHƯƠNG 1: MÔ HÌNH HÓA YÊU CẦU

- Quản lý tài khoản User trên hệ thống: thêm, sửa, xóa

- Tài khoản: đăng ký, đăng nhập, chỉnh sửa thông tin, thay đổi mật khẩu, đăng xuất

- Kế hoạch: thêm, sửa, xóa, thống kê kế hoạch

- Ghi chú: thêm, sửa, xóa ghi chú

- Danh mục: thêm, chỉnh sửa danh mục

- Todolist: Thêm, sửa, xóa cột và thẻ trong todolist

- Đếm thời gian pomodoro, quản lý các nhiệm vụ trong khoảng thời gian được cài đặt

1.1.2 Yêu cầu phi chức năng

Các yêu cầu phi chức năng trên hệ thống bao gồm:

- Giao diện thân thiện, dễ sử dụng

- Tốc độ xử lý các thao tác nhanh chóng, chính xác

- Hệ thống có độ bảo mật cao

- Dễ dàng bảo trì, nâng cấp phát triển

1.2 MÔ HÌNH HÓA YÊU CẦU

Hình 1.2: Lược đồ Conceptual model

Description Cho phép Actor đăng nhập để thực hiện các chức năng nhất định

Actor Khách hàng, Người quản trị

Pre-Conditions Actor có tài khoản trên hệ thống

Post-Conditions Actor đăng nhập thành công vào hệ thống với các chức năng tuỳ theo vai trò

Main Flow 1 Actor bấm vào nút “Login”

2 Hệ thống hiển thị Form đăng nhập gồm email và mật khẩu

5 Trang kiểm tra thông tin nhập vào

6 Hệ thống xác thực thông tin so với dữ liệu của cơ sở dữ liệu

7 Hệ thống lưu lại accesstoken, thông báo đăng nhập thành công và chuyển sang trang chủ

Alternate Flow(s) 2.1 Actor truy cập vào đường link trang quản trị, hệ thống chuyển sang trang quản trị và hiển thị Form đăng nhập gồm email và mật khẩu, Actor thực hiện tiếp bước 3

NHƯỢC ĐIỂM

- Chưa tích hợp đăng nhập bằng Google, github, facebook,

- Giao diện một số trang còn chưa đẹp mắt

HƯỚNG PHÁT TRIỂN

Từ những nhược điểm đã nêu trên và tiếp tục kế thừa, phát huy những ưu điểm đạt đực, một số hướng phát triển tiếp theo của ứng dụng như sau:

- Trong tương lai sẽ tích hợp đăng nhập bằng Google, facebook, github, …

- Xây dựng trang giúp các bạn sinh viên có thể chia sẻ được quá trình, cách thức quản lý chi tiêu của mình cho các bạn khác đặc biệt là các bạn sinh viên năm nhất

- Xây dựng, tích hợp nhiều công cụ hỗ trợ sinh viên trong quá trình học tập

- Xây dựng chức năng hỗ trợ làm việc nhóm cho các bạn sinh viên

- Cải tiến, nâng cấp chatbot để có thể hỗ trợ nhiều hơn trong quá trình quản lý chi tiêu, công việc, khai thác dữ liệu

Ngày đăng: 18/11/2024, 16:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN