ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO ĐỒ ÁN 1
ĐỀ TÀI:
ỨNG DỤNG CHATBOT HỖ TRỢ TƯ VẤN
NGHỀ NGHIỆP
Giảng viên:
Trần Anh Dũng
Sinh viên thực hiện: Nguyễn Duy Phúc
19522038
Cao Nguyễn Minh Quân 19522074
Thành phố Hồ Chí Minh, năm 2022
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO ĐỒ ÁN 1
ĐỀ TÀI:
ỨNG DỤNG CHATBOT HỖ TRỢ TƯ VẤN
NGHỀ NGHIỆP
Giảng viên:
Trần Anh Dũng
Sinh viên thực hiện: Nguyễn Duy Phúc
19522038
Cao Nguyễn Minh Quân 19522074
Thành phố Hồ Chí Minh, năm 2022
Báo cáo đồ án 1
Mục lục
DANH MỤC HÌNH ẢNH ............................................................................................ 1
DANH MỤC BẢNG ..................................................................................................... 3
DANH MỤC TỪ VIẾT TẮT ....................................................................................... 5
LỜI CẢM ƠN ............................................................................................................... 6
ĐỀ CƯƠNG CHI TIẾT ............................................................................................... 7
NỘI DUNG .................................................................................................................... 1
CHƯƠNG 1: GIỚI THIỆU CHUNG ......................................................................... 1
1.1 TỔNG QUAN ĐỀ TÀI ............................................................................................. 1
1.2 LÝ DO CHỌN ĐỀ TÀI............................................................................................. 1
1.3 ĐỐI TƯỢNG SỬ DỤNG .......................................................................................... 2
1.4 PHẠM VI NGHIÊN CỨU: ........................................................................................ 2
1.4.1 Phạm vi môi trường:...................................................................................... 2
1.4.2 Phạm vi chức năng: ....................................................................................... 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ........................................................................... 3
2.1 TÌM HIỂU VỀ DART .............................................................................................. 3
2.1.1 Dart là gì? ..................................................................................................... 3
2.1.2 Tính năng tiêu biểu ........................................................................................ 3
2.1.3 Sự phát triển của Dart ................................................................................... 4
2.1.4 Tại sao Flutter sử dụng Dart ......................................................................... 4
2.2 TÌM HIỂU VỀ FLUTTER ......................................................................................... 5
2.2.1 Khái niệm ....................................................................................................... 5
2.2.2 Lợi ích của Flutter ......................................................................................... 5
2.2.3 Nhược điểm của Flutter ................................................................................. 6
2.3 TÌM HIỂU VỀ FIREBASE........................................................................................ 7
2.3.1 Giới thiệu về Firebase ................................................................................... 8
2.3.2 Lịch sử hình thành ......................................................................................... 8
ỨNG DỤNG TƯ VẤN NGHỀ NGHIỆP
HỖ TRỢ CHATBOT
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
2.3.3 Chức năng của Firebase ............................................................................... 8
2.3.4 Ưu điểm ....................................................................................................... 10
2.3.5 Nhược điểm .................................................................................................. 11
2.4 TÌM HIỂU GITHUB .............................................................................................. 13
2.4.1 Khái niệm ..................................................................................................... 13
2.4.2 Git ................................................................................................................ 13
2.4.3 Chức năng.................................................................................................... 13
2.4.4 Lợi ích .......................................................................................................... 14
CHƯƠNG 3: CHATBOT: DIALOGFLOW ........................................................... 14
3.1 KHÁI NIỆM DIALOGFLOW.................................................................................. 14
3.2 QUY TRÌNH HOẠT ĐỘNG .................................................................................... 15
3.2.1 Agent ............................................................................................................ 15
3.2.2 Intents .......................................................................................................... 16
3.2.3 Entities ......................................................................................................... 18
3.2.4 Vấn đề xử lý Chatbot ................................................................................... 19
3.3 SƠ ĐỒ KỊCH BẢN ĐỐI THOẠI .............................................................................. 20
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG .................................................................... 22
4.1 KIẾN TRÚC HỆ THỐNG: MƠ HÌNH MVC............................................................. 22
4.2 SƠ ĐỒ LỚP ......................................................................................................... 23
CHƯƠNG 5: ĐẶC TẢ USE CASE .......................................................................... 24
5.1 SƠ ĐỒ USE CASE ............................................................................................... 24
5.2 DANH SÁCH TÁC NHÂN ..................................................................................... 25
5.3 DANH SÁCH USE CASE ...................................................................................... 25
5.4 MÔ TẢ CHI TIẾT USE CASE ................................................................................ 26
5.4.1 Đăng nhập ................................................................................................... 26
5.4.1 Đăng ký ........................................................................................................ 27
5.4.2 Quản lý tài khoản ........................................................................................ 28
5.4.3 Yêu thích bài đăng ....................................................................................... 29
5.4.4 Quản lý thơng tin nghề ................................................................................ 30
Báo cáo đồ án 1
5.4.5 Quản lý tin tức ............................................................................................. 33
5.4.6 Bài kiểm tra ................................................................................................. 37
5.4.7 Chatbot ........................................................................................................ 39
5.4.8 Hỏi đáp ........................................................................................................ 39
CHƯƠNG 6: THIẾT KẾ CƠ SỞ DỮ LIỆU ........................................................... 41
6.1 DANH SÁCH CÁC QUAN HỆ ................................................................................ 41
6.1.1 Bảng User .................................................................................................... 41
6.1.2 Bảng Quiz MBTI .......................................................................................... 42
6.1.3 Bảng Quiz Holland ...................................................................................... 42
6.1.4 Bảng Favorite .............................................................................................. 43
6.1.5 Bảng Message .............................................................................................. 43
6.1.6 Bảng Favorite .............................................................................................. 43
6.1.7 Bảng Answers .............................................................................................. 44
6.1.8 Bảng News ................................................................................................... 44
6.1.9 Bảng Jobs .................................................................................................... 45
6.1.10 Bảng Title .................................................................................................. 45
CHƯƠNG 7: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG ........................................ 46
7.1 SCREEN FLOW ................................................................................................... 46
7.1.1 Người dùng Học sinh ................................................................................... 46
7.1.2 Người dùng Quản trị viên ............................................................................ 46
7.2 MÔ TẢ CHI TIẾT TỪNG MÀN HÌNH ...................................................................... 46
7.2.1 Onboarding .................................................................................................. 46
7.2.2 Đăng nhập ................................................................................................... 49
7.2.3 Đăng ký ........................................................................................................ 50
7.2.4 Quên mật khẩu ............................................................................................. 51
7.2.5 Bài kiểm tra ................................................................................................. 52
7.2.6 Chatbot ........................................................................................................ 57
7.2.7 Menu ............................................................................................................ 58
7.2.8 Quản lý tài khoản ........................................................................................ 59
7.2.9 Quản lý bài đăng ......................................................................................... 62
ỨNG DỤNG TƯ VẤN NGHỀ NGHIỆP
HỖ TRỢ CHATBOT
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
7.2.10 Trang yêu thích .......................................................................................... 69
7.2.11 Quản lý tin tức ........................................................................................... 70
7.2.12 Quản lý giải đáp ........................................................................................ 77
CHƯƠNG 8: CÀI ĐẶT VÀ KIỂM THỬ ................................................................ 81
8.1 MÔI TRƯỜNG CÀI ĐẶT VÀ KIỂM THỬ:................................................................ 81
8.2 KẾT QUẢ KIỂM THỬ ........................................................................................... 81
CHƯƠNG 9: KẾT LUẬN ......................................................................................... 82
9.1 TỔNG KẾT .......................................................................................................... 82
9.2 KHÓ KHĂN......................................................................................................... 82
9.3 KẾT QUẢ ĐẠT ĐƯỢC .......................................................................................... 82
9.4 HẠN CHẾ CỦA ĐỒ ÁN ......................................................................................... 83
9.5 HƯỚNG PHÁT TRIỂN .......................................................................................... 83
TÀI LIỆU THAM KHẢO .......................................................................................... 84
Báo cáo đồ án 1
DANH MỤC HÌNH ẢNH
Hình 2.1-1 Dart ............................................................................................................... 3
Hình 2.2-1 Flutter ........................................................................................................... 5
Hình 2.3-1 Firebase ........................................................................................................ 7
Hình 2.3-2 Firebase Authentication ............................................................................... 8
Hình 2.3-3 Cloud Firestore ............................................................................................. 9
Hình 2.3-4 Firebase Storage ......................................................................................... 10
Hình 2.4-1 Github ......................................................................................................... 13
Hình 3.1-1 Dialog Flow ................................................................................................ 14
Hình 3.2-1 Intents ......................................................................................................... 16
Hình 3.2-2 Sơ đồ tìm kiếm intent ................................................................................. 17
Hình 3.2-3 Quy trình xử lý Chatbot ............................................................................. 19
Hình 3.3-1 Sơ đồ Intent trong Dialogflow Chatbot ...................................................... 20
Hình 4.1-1 Sơ đồ mô hình MVC .................................................................................. 22
Hình 4.2-1 Sơ đồ lớp .................................................................................................... 23
Hình 5.1-1 Sơ đồ Use Case Người dùng ...................................................................... 24
Hình 5.1-2 Sơ đồ Use Case Quản trị viên .................................................................... 25
Hình 7.2-1 Onboarding 1 .............................................................................................. 47
Hình 7.2-2 Onboarding 2 .............................................................................................. 47
Hình 7.2-3 Onboarding 3 .............................................................................................. 48
Hình 7.2-4 Onboarding 4 .............................................................................................. 48
Hình 7.2-5 Trang đăng nhập ......................................................................................... 49
Hình 7.2-6 Trang đăng ký............................................................................................. 50
Hình 7.2-7 Quên mật khảu ........................................................................................... 51
Hình 7.2-8 Bài test chưa làm ........................................................................................ 52
Hình 7.2-9 Bài test đã làm ............................................................................................ 52
Hình 7.2-10 Bài test ...................................................................................................... 55
Hình 7.2-11 Kết quả Holland test ................................................................................. 56
Hình 7.2-12 Kết quả MBTI test .................................................................................... 56
Hình 7.2-13 Trò chuyện chat bot .................................................................................. 57
1
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
Hình 7.2-14 Menu Quản trị viên .................................................................................. 58
Hình 7.2-15 Menu học sinh .......................................................................................... 58
Hình 7.2-16 Quản lý tài khoản 1 .................................................................................. 59
Hình 7.2-17 Quản lý tài khoản 2 .................................................................................. 59
Hình 7.2-18 Quản lý tài khoản 3 .................................................................................. 60
Hình 7.2-19 Quản lý tài khoản 4 .................................................................................. 60
Hình 7.2-20 Cập nhật thông tin .................................................................................... 61
Hình 7.2-21 Quản lý bài đăng 1 ..................................................................................... 1
Hình 7.2-22 Quản lý bài đăng 2 ..................................................................................... 1
Hình 7.2-23 Quản lý bài đăng 3 ................................................................................... 64
Hình 7.2-24 Thêm bài đăng 1 ....................................................................................... 65
Hình 7.2-25 Thêm bài đăng 2 ....................................................................................... 65
Hình 7.2-26 Cập nhật bài đăng ..................................................................................... 66
Hình 7.2-27 Danh sách bài đăng 1 ............................................................................... 68
Hình 7.2-28 Danh sách bài đăng 2 ............................................................................... 68
Hình 7.2-29 Quên mật khẩu ......................................................................................... 69
Hình 7.2-30 Quản lý tin tức 1 ....................................................................................... 70
Hình 7.2-31 Quản lý tin tức 2 ....................................................................................... 70
Hình 7.2-32 Quản lý tin tức 3 ....................................................................................... 71
Hình 7.2-33 Thêm tin tức 1 .......................................................................................... 73
Hình 7.2-34 Thêm tin tức 2 .......................................................................................... 73
Hình 7.2-35 Cập nhật tin tức ........................................................................................ 74
Hình 7.2-36 Danh sách tin tức 1 ................................................................................... 76
Hình 7.2-37 Danh sách tin tức 2 ................................................................................... 76
Hình 7.2-38 Quản lý giải đáp 1 .................................................................................... 77
Hình 7.2-39 Quản lý giải đáp 2 .................................................................................... 77
Hình 7.2-40 Quản lý giải đáp 3 .................................................................................... 78
Hình 7.2-41 Đặt câu hỏi giải đáp .................................................................................. 80
Hình 7.2-42 Giải đáp thắc mắc ..................................................................................... 80
2
Báo cáo đồ án 1
DANH MỤC BẢNG
Bảng 3.3-1 Danh sách intents ....................................................................................... 20
Bảng 5.2-1 Danh sách tác nhân .................................................................................... 25
Bảng 5.3-1 Danh sách use case .................................................................................... 25
Bảng 5.4-1 Chi tiết use case Đăng nhập ....................................................................... 26
Bảng 5.4-2 Chi tiết use case Đăng ký........................................................................... 27
Bảng 5.4-3 Chi tiết use case quản lý tài khoản............................................................. 28
Bảng 5.4-4 Chi tiết use case Xem thông tin cá nhân .................................................... 29
Bảng 5.4-5 Chi tiết use case yêu thích bài đăng ........................................................... 29
Bảng 5.4-6 Chi tiết use case Thêm thông tin nghề ....................................................... 30
Bảng 5.4-7 Chi tiết use case Sửa thông tin nghề .......................................................... 31
Bảng 5.4-8 Chi tiết use case Xóa thơng tin nghề ......................................................... 32
Bảng 5.4-9 Chi tiết use case Thêm tin tức .................................................................... 33
Bảng 5.4-10 Chi tiết use case sửa tin tức ..................................................................... 34
Bảng 5.4-11 Chi tiết use case xóa tin tức ..................................................................... 35
Bảng 5.4-12 Chi tiết use case Xem tin tức ................................................................... 36
Bảng 5.4-13 Chi tiết use case thực hiện kiểm tra ......................................................... 37
Bảng 5.4-14 Chi tiết use case xem kết quả ................................................................... 38
Bảng 5.4-15 Ch tiết use case nhắn tin chat bot............................................................. 39
Bảng 5.4-16 Chi tiết use case đặt câu hỏi ..................................................................... 39
Bảng 5.4-17 Chi tiết use case Giải đáp thắc mắc ......................................................... 40
Bảng 6.1-1 Bảng user ................................................................................................... 41
Bảng 6.1-2 Bảng Quiz MBTI ....................................................................................... 42
Bảng 6.1-3 Bảng Quiz Holland .................................................................................... 42
Bảng 6.1-4 Bảng Favorite ............................................................................................. 43
Bảng 6.1-5 Bảng message ............................................................................................ 43
Bảng 6.1-6 Bảng favorite.............................................................................................. 43
Bảng 6.1-7 Bảng answer ............................................................................................... 44
Bảng 6.1-8 Bảng news .................................................................................................. 44
Bảng 6.1-9 Bảng jobs ................................................................................................... 45
Bảng 6.1-10 Bảng title .................................................................................................. 45
3
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
Bảng 7.2-1 Chi tiết giao diện on boarding ................................................................... 48
Bảng 7.2-2 Chi tiết giao diện Đăng nhập ..................................................................... 49
Bảng 7.2-3 Chi tiết giao diện Đăng ký ......................................................................... 50
Bảng 7.2-4 Chi tiết giao diện Quên mật khẩu .............................................................. 52
Bảng 7.2-5 Chi tiết giao diện danh sách bài kiểm tra ................................................... 55
Bảng 7.2-6 Chi tiết giao diện bài kiểm tra.................................................................... 56
Bảng 7.2-7 Chi tiết giao diện kết quả kiểm tra ............................................................. 56
Bảng 7.2-8 Chi tiết giao diện Trò chuyện chatbot........................................................ 57
Bảng 7.2-9 Chi tiết giao diện Menu ............................................................................. 59
Bảng 7.2-10 Chi tiết giao diện Quản lý tài khoản ........................................................ 60
Bảng 7.2-11 Chi tiết giao diện Cập nhật thông tin ....................................................... 62
Bảng 7.2-12 Chi tiết giao diện Quản lý bài đăng ......................................................... 64
Bảng 7.2-13 Chi tiết giao diện Cập nhật bài đăng ........................................................ 66
Bảng 7.2-14 Chi tiết giao diện Xóa bài đăng ............................................................... 68
Bảng 7.2-15 Chi tiết giao diện Trang yêu thích ........................................................... 69
Bảng 7.2-16 Chi tiết giao diện Quản lý tin tức............................................................. 71
Bảng 7.2-17 Chi tiết giao diện Cập nhật tin tức ........................................................... 74
Bảng 7.2-18 Chi tiết giao diện Danh ách tin tức .......................................................... 76
Bảng 7.2-19 Chi tiết giao diện Quản lý giải đáp .......................................................... 78
Bảng 7.2-20 Chi tiết giao diện Câu hỏi thắc mắc ......................................................... 80
Bảng 8.2-1 Bảng kiểm thử ............................................................................................ 81
4
Báo cáo đồ án 1
DANH MỤC TỪ VIẾT TẮT
#
Từ viết tắt
Từ đầy đủ
Ý nghĩa
1
CSDL
Cơ sở dữ liệu
Cơ sở dữ liệu cho ứng dụng
2
ĐHQG
Đại học quốc gia
3
FAQ
Frequently Asked Questions
4
API
5
MVC
Model-View-Controller
Mô hình lập trình
6
AI
Artificial Intelligence
Trí tuệ nhân tạo
7
ATTT
An tồn thơng tin
Ngành an tồn thơng tin
8
KHMT
Khoa học máy tính
Ngành khoa học máy tính
9
TMDT
Thương mại điện tử
Ngành thương mại điện tử
10
HTTT
Hệ thống thông tin
Ngành hệ thống thơng tin
Mạng máy tính và truyền
Ngành mạng máy tính và truyền
thông dữ liệu
thông dữ liệu
11 MMT&TTDL
Application Programming
Interface
Các câu hỏi thường gặp
Giao diện lập trình ứng dụng
12
KTPM
Kỹ thuật phần mềm
Ngành kỹ thuật phần mềm
13
KHDL
Khoa học dữ liệu
Ngành khoa học dữ liệu
14
KTMT
Kỹ thuật máy tính
Ngành kỹ thuật máy tính
5
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học
Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức cơ
bản, các kỹ năng thực tế để có thể lần đầu thực hiện Đồ án 1 của mình.
Để hoàn thành Đồ án này, chúng em xin gửi lời cảm ơn chân thành đến:
Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo
điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài
liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin.
Chúng em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng đã tận tình giúp
đỡ, định hướng cách tư duy và cách làm việc khoa học. Đó là những góp ý hết sức
q báu khơng chỉ trong q trình thực hiện luận văn này mà còn là hành trang tiếp
bước cho chúng em trong quá trình học tập và lập nghiệp sau này.
Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa,
bạn bè, tập thể lớp PMCL2019.3 là những người luôn sẵn sàng sẻ chia và giúp đỡ
trong học tập và cuộc sống. Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau.
Trong quá trình làm Đồ án này chúng em khơng tránh khỏi được những sai sót,
chúng em kính mong nhận được sự chỉ dẫn và góp ý của q thầy cơ để hồn thiện
và phát triển đồ án hơn trong môn học Đồ án 2 cũng như trong Khóa luận tốt nghiệp
trong tương lai.
Chúng em xin chân thành cảm ơn. Xin chúc những điều tốt đẹp nhất sẽ ln đồng
hành cùng mọi người.
Thành phố Hồ Chí Minh, 15 tháng 06 năm 2022
Sinh viên
NGUYỄN DUY PHÚC
CAO NGUYỄN MINH QUÂN
6
Báo cáo đồ án 1
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày 13 tháng 03 năm 2022
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng ứng dụng chatbot hỗ trợ tư vấn nghề nghiệp
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 07/03/2022 đến ngày 06/06/2022
Sinh viên thực hiện:
Nguyễn Duy Phúc – 19522038
Cao Nguyễn Minh Quân – 19522074
Nội dung đề tài
1.
Lý do chọn đề tài:
Trong nhiều năm qua, công tác tư vấn hướng nghiệp cho học sinh đã được tổ
chức với nhiều hình thức khác nhau như cẩm nang “Những điều cần biết” của Bộ
Giáo dục & Đào tạo, các chương trình tư vấn hướng nghiệp trực tiếp tại sân
trường hay các buổi tọa đàm chia sẻ kinh nghiệm. Những hoạt động này đa phần
được tổ chức theo kiểu offline. Trong khi đó với xu hướng số hóa trong thời đại
cơng nghiệp 4.0 và những khó khăn từ việc giãn cách do đại dịch Covid-19 gây
ra, học sinh, phụ huynh, trường học và những người làm công tác giáo dục đều rất
cần một giải pháp hướng nghiệp số hóa, có khả năng giải đáp những thắc mắc của
học sinh một cách tức thời, tường tận và đầy đủ.
Hướng nghiệp là một quá trình lâu dài, trong khi các chương trình tư vấn hiện nay
chỉ đang giải quyết một lát cắt, tại thời điểm cụ thể. Chính vì thế chúng em chọn
đề tài này, để có thể hỗ trợ các bạn học sinh, cung cấp nguồn thông tin và công cụ
tin tưởng để hỗ trợ cho việc tự tìm hiểu bản thân, ngành nghề, đồng thời hỗ trợ tư
vấn các bạn để kịp thời tháo gỡ những băn khoăn của các bạn về tương lai nghề
nghiệp đặc biệt là ngành Công nghệ thông tin.
2.
Mục tiêu: bao gồm 2 mục tiêu chính:
7
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
1.
Xây dựng Chatbot
-
FAQ giải đáp nhanh các thắc mắc về ngành Công nghệ thông tin, giảm tối đa
thời gian tiêu tốn cần thiết cho việc tư vấn của nhân viên
-
Cung cấp thông tin về ngành, các nghề thuộc ngành Công nghệ thơng tin
-
Tư vấn hỗ trợ để có thể lựa chọn nghề phù hợp với bản thân trong lĩnh vực
Công nghệ thơng tin
2.
Xây dựng ứng dụng hỗ trợ Chatbot
-
Cho phép phía trung tâm quản lý các bài viết, hỏi đáp một cách nhanh
chóng, dễ dàng
-
Cung cấp thơng tin về các ngành nghề, cũng như các trường Đại Học có đào
tạo về Công nghệ thông tin
-
Cung cấp các bài kiểm tra để định hướng bản thân, cũng như bài kiểm tra để
xác định ngành, nghề phù hợp
-
Cung cấp danh sách tin tức từ mới đến cũ
-
Cung cấp danh sách các câu hỏi thường gặp và giải đáp từ trung tâm tư vấn
3.
Phạm vi:
Phạm vi môi trường: Ứng dụng di động
Phạm vi chức năng:
-
Đối với ChatBot
+
Có khả năng trả lời các câu hỏi về ngành nghề một cách đầy đủ chi tiết
+
Phân tích được yêu cầu và đưa ra tư vấn hợp lý cho người dùng
+
Cung cấp liên hệ trực tiếp nhân viên trung tâm tư vấn khi vấn đề đặt ra
ngoài phạm vi của bản thân nó và cập nhật được cách xử lý đối với trường hợp này
trong tương lai
+
Cung cấp các thông tin về ngành nghề Công nghệ thông tin
+
ChatBot hiểu được tương đối ngôn ngữ tự nhiên
-
Đối với ứng dụng:
+
Cung cấp thông tin mới nhất về ngành nghề Công nghệ thông tin
+
Cung cấp các bài kiểm tra để định hướng bản thân, cũng như bài kiểm tra để
xác định ngành nghề phù hợp
8
Báo cáo đồ án 1
+
Cung cấp chức năng quản lý tin tức bao gồm đăng tải, sửa và xóa bỏ
4.
Đối tượng sử dụng:
-
Tất cả những người có định hướng theo Công nghệ thông tin, hoặc muốn
hiểu thêm về ngành Công nghệ thơng tin
-
Quản trị viên phía trung tâm tư vấn muốn quản lý tin tức đến mọi người sử
dụng ứng dụng
5.
Phương pháp thực hiện:
+
Phương pháp làm việc:
-
Làm việc nhóm 2 thành viên thông qua cả 2 phương thức online và offline
dưới sự hướng dẫn của giảng viên hướng dẫn.
+
Phương pháp nghiên cứu:
-
Phân tích nhu cầu sử dụng của đối tượng người dùng.
-
Nghiên cứu tài liệu các công nghệ liên quan.
+
Phương pháp công nghệ:
-
Tìm hiểu xây dựng chatbot trên mobile app dựa vào DialogFlow
-
Xây dựng giao diện mobile app để tương tác với người dùng
-
Quản lý source code thông qua Github
-
Sử dụng Notion, Google doc,… để quản lý tiến trình và tài liệu
6.
Nền tảng công nghệ:
+
Ngôn ngữ: Dart
+
Framework: Flutter
+
Chatbot: Diaflow ChatBot
7.
Kết quả mong đợi:
+
Chatbot có khả năng phản hồi nhanh và chính xác ở mức tương đối.
+
Ứng dụng di động hoạt động ổn định, có thể xử lý thơng tin nhanh chóng
8.
Hướng phát triển của đề tài:
+
Tính năng cập nhật thoại chatbot dành cho người dùng
+
Tính năng chuyển đổi gói ngơn ngữ
+
Nâng cấp khả năng xử lý ngôn ngữ tự nhiên của chatbot
9.
Kế hoạch làm việc:
9
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
Thời gian thực hiện từ ngày 07/03/2022 đến ngày kết thúc môn Đồ án 1
Thời gian
1
2
3
Nội dung
07/03 – 14/03 14/03
-
15/03 – 20/03 -
Phân tích và tìm hiểu bài tốn
Hồn thành đề cương chi tiết
Xây dựng mục tiêu
Tìm hiểu các nền tảng công nghệ
4
21/03 – 27/03 -
Tìm kiếm Data
5
28/03 – 01/04 -
Xây dựng cơ sở dữ liệu
6
01/04 – 04/04 -
Xây dựng kiến trúc hệ thống
7
05/04 – 08/04 -
Thiết kế giao diện
8
09/04 – 17/04 -
Xây dựng Messenger Chatbot với các chức năng
9
18/04 – 24/04 -
Chức năng xác thực tài khoản
10
25/04 – 01/05 -
Chức năng hiển thị thông tin các nghề
11
01/05 – 08/05 -
Chức năng hiển thị thông tin các trường
12
09/05 – 15/05 -
Chức năng đọc tin tức
13
16/05 – 22/05 -
Chức năng trắc nghiệm bản thân
14
23/05 – 29/05 -
Chức năng trắc nghiệm nghề nghiệp
15
30/05 – 06/06 -
Kiểm thử phần mềm và chatbot
16
-
Hoàn thiện báo cáo
10
Báo cáo đồ án 1
10.
Phân công công việc:
Công việc
Công việc chung
Mơ tả cơng việc
−
Tìm hiểu cơng nghệ
−
Phân tích u cầu
−
Lập trình giao diện
−
Lập trình chức năng
−
Kiểm thử
−
Chuẩn bị tài liệu, viết báo cáo
Nguyễn Duy Phúc
Công việc cá nhân
Cao Nguyễn Minh Quân
− Xây dựng Chatbot
− Xây dựng giao diện
− Liên kết Chatbot
− Xây dựng CSDL
− Lập kế hoạch
− Liên kết CSDL
Tp.Hồ Chí Minh, ngày 13 tháng 03 năm 2022
11
Báo cáo đồ án 1
NỘI DUNG
Chương 1:
GIỚI THIỆU CHUNG
1.1
Tổng quan đề tài
-
Tên ứng dụng: X-Job
-
Chủ đề chính: Tư vấn, hỗ trợ định hướng nghề nghiệp trong ngành công nghệ
thông tin
-
Nền tảng phát triển: Android
-
Mơ hình phát triển: MVC
-
Tích hợp chatbot: DialogFlow
1.2
Lý do chọn đề tài
Trong nhiều năm qua, công tác tư vấn hướng nghiệp cho học sinh đã được tổ chức
với nhiều hình thức khác nhau như cẩm nang “Những điều cần biết” của Bộ Giáo dục
& Đào tạo, các chương trình tư vấn hướng nghiệp trực tiếp tại sân trường hay các
buổi tọa đàm chia sẻ kinh nghiệm. Những hoạt động này đa phần được tổ chức theo
kiểu offline. Trong khi đó với xu hướng số hóa trong thời đại cơng nghiệp 4.0 và
những khó khăn từ việc giãn cách do đại dịch Covid-19 gây ra, học sinh, phụ huynh,
trường học và những người làm công tác giáo dục đều rất cần một giải pháp hướng
nghiệp số hóa, có khả năng giải đáp những thắc mắc của học sinh một cách tức thời,
tường tận và đầy đủ.
Hướng nghiệp là một quá trình lâu dài, trong khi các chương trình tư vấn hiện nay chỉ
đang giải quyết một lát cắt, tại thời điểm cụ thể. Chính vì thế chúng em chọn đề tài
này, để có thể hỗ trợ các bạn học sinh, cung cấp nguồn thông tin và công cụ tin tưởng
để hỗ trợ cho việc tự tìm hiểu bản thân, ngành nghề, đồng thời hỗ trợ tư vấn các bạn
để kịp thời tháo gỡ những băn khoăn của các bạn về tương lai nghề nghiệp đặc biệt là
ngành Công nghệ thông tin
1
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
1.3
Đối tượng sử dụng
-
Tất cả những người có định hướng theo Công nghệ thông tin, hoặc muốn
hiểu thêm về ngành Công nghệ thơng tin
-
Quản trị viên phía trung tâm tư vấn muốn quản lý tin tức đến mọi người sử
dụng ứng dụng
1.4
Phạm vi nghiên cứu:
1.4.1 Phạm vi môi trường:
-
Ứng dụng di động
1.4.2 Phạm vi chức năng:
-
Đối với ChatBot
+
Có khả năng trả lời các câu hỏi về ngành nghề một cách đầy đủ chi tiết
+
Phân tích được yêu cầu và đưa ra tư vấn hợp lý cho người dùng
+
Cung cấp liên hệ trực tiếp nhân viên trung tâm tư vấn khi vấn đề đặt ra ngồi
phạm vi của bản thân nó và cập nhật được cách xử lý đối với trường hợp này trong
tương lai
+
Cung cấp các thông tin về ngành nghề Công nghệ thông tin
+
ChatBot hiểu được tương đối ngôn ngữ tự nhiên
-
Đối với ứng dụng:
+
Cung cấp thông tin mới nhất về ngành nghề Công nghệ thông tin
+
Cung cấp các bài kiểm tra để định hướng bản thân, cũng như bài kiểm tra để
xác định ngành nghề phù hợp
+
Cung cấp chức năng quản lý tin tức bao gồm đăng tải, sửa và xóa bỏ
2
Báo cáo đồ án 1
Chương 2: CƠ SỞ LÝ THUYẾT
2.1
Tìm hiểu về Dart
Hình 2.1-1 Dart
2.1.1 Dart là gì?
Dart là một ngơn ngữ được phát triển bởi Google, có thể sử dụng để phát triển các ứng
dụng web, máy tính để bàn, phía máy chủ và thiết bị di động. Dart là ngôn ngữ lập
trình được sử dụng để viết mã các ứng dụng Flutter và cung cấp trải nghiệm tốt nhất
cho nhà phát triển để tạo ứng dụng di động chất lượng cao.
2.1.2 Tính năng tiêu biểu
+ Cung cấp cơng cụ hiệu quả: Dart bao gồm các công cụ phân tích mã, các plugin mơi
trường phát triển tích hợp (IDE) và các gói hệ sinh thái lớn.
+ Khả năng thu gom rác: Nó quản lý hoặc xử lý việc cấp phát bộ nhớ (bộ nhớ chủ yếu
bị chiếm bởi các đối tượng lỗi thời).
+ Nhập Ghi chú (tùy chọn): Điều này dành cho những người dùng cần bảo mật và
nhất quán để kiểm soát tất cả dữ liệu trong ứng dụng của họ.
3
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
+ Có hỗ trợ Typed tĩnh: Chữ ký kiểu là tùy chọn, nhưng phi tiêu là kiểu an toàn và sử
dụng suy luận kiểu để phân tích kiểu thời gian chạy. Chức năng này rất quan trọng để
tìm lỗi thời gian biên dịch.
+ Tính di động: Ngồi tính năng dựa trên web (được chuyển sang JavaScript), tính
năng này có thể được biên dịch nguyên bản sang mã ARM và x86.
2.1.3 Sự phát triển của Dart
Dart được công bố vào năm 2011 và đã phát triển kể từ đó. Dart được phát hành đều
đặn vào năm 2013, với những thay đổi lớn được đưa vào bản phát hành Dart 2.0 vào
cuối năm 2018.
Trong khi tập trung vào phát triển web độc lập với mục đích chính là thay thế
JavaScript, Dart hiện đang tập trung vào lĩnh vực phát triển di động cũng như Flutter.
Nó đã cố gắng giải quyết một vấn đề về JavaScript: JavaScript không mang lại sự
mạnh mẽ mà nhiều ngôn ngữ thống nhất cung cấp, vì vậy Dart muốn mang đến một
phiên bản kế thừa tốt hơn cho JavaScript.
2.1.4 Tại sao Flutter sử dụng Dart
Flutter nhằm mục đích trở thành người thay đổi cuộc chơi trong phát triển ứng dụng
dành cho thiết bị di động, cung cấp tất cả các công cụ cần thiết cho nhà phát triển để
tạo ra các ứng dụng tuyệt vời mà khơng có nhược điểm về hiệu suất và khả năng mở
rộng. Trong cấu trúc cốt lõi của nó, Flutter có nhiều khái niệm tập trung vào hiệu suất
ứng dụng và giao diện người dùng. Để cung cấp những gì tốt nhất của thế giới phát
triển với hiệu suất cao so với các SDK gốc chính thức, Flutter sử dụng sự hỗ trợ của
Dart để cung cấp các cơng cụ đóng góp vào năng suất của nhà phát triển trong giai
đoạn phát triển và xây dựng các ứng dụng được tối ưu hóa để xuất bản.
4
Báo cáo đồ án 1
2.2
Tìm hiểu về Flutter
Hình 2.2-1 Flutter
2.2.1 Khái niệm
Flutter là bộ phát triển phần mềm giao diện người dùng (SDK) mã nguồn mở miễn phí
dành cho thiết bị di động, được Google công bố lần đầu vào năm 2015 và chính thức
phát hành vào năm 2017. Flutter được sử dụng để tạo và phát triển các ứng dụng chất
lượng cao và cung cấp trải nghiệm tuyệt vời trên nhiều hệ điều hành như iOS và
Android. Flutter được biên dịch nguyên bản từ một cơ sở dữ liệu duy nhất cho web,
máy tính để bàn và thiết bị di động.
Flutter bao gồm hai thành phần.
SDK (Bộ phát triển phần mềm): Đây là tập hợp các công cụ giúp bạn phát triển ứng
dụng của mình. Bao gồm các công cụ để biên dịch mã thành mã máy gốc (mã cho iOS
và Android).
Framework (thư viện giao diện người dùng dựa trên widget): Đây là tập hợp các thành
phần giao diện người dùng (UI) có thể tái sử dụng (Button, Text Inputs, Slider, v.v.)
2.2.2 Lợi ích của Flutter
Thời gian phát triển nhanh hơn: Flutter giúp bạn phát triển ứng dụng nhanh hơn. Bạn
có thể khởi chạy ứng dụng của mình trên nhiều nền tảng bằng cách sử dụng cơ sở mã
5
Báo cáo đồ án 1
Ứng dụng tư vấn nghề nghiệp
duy nhất của Flutter. Bạn chỉ cần viết mã một lần thay vì phải viết mã riêng cho từng
hệ điều hành. Do đó, nó tiết kiệm chi phí và cực kỳ hiệu quả.
Tự do tùy chỉnh và kết xuất nhanh hơn: Flutter có kiến trúc phân lớp cho phép bạn tự
do tùy chỉnh các phần tử giao diện người dùng. Đặc biệt, giao diện người dùng của
Flutter không yêu cầu các thành phần giao diện người dùng dành riêng cho nền tảng.
Flutter có cách tiếp cận rất đơn giản và hiệu quả, giúp giao diện người dùng nhất quán
trên nhiều nền tảng.
Tính năng Hot Reload: Tính năng Hot Reload được coi là một tính năng nổi bật và
mang tính cách mạng của Flutter. Khi sử dụng Hot Reload, có thể sửa đổi mã và xem
chúng trong thời gian chạy trong bản xem trước ứng dụng. Không cần phải biên dịch
lại mã mỗi lần, thêm các tính năng và sửa lỗi nhanh hơn ... cho phép bạn tự do thử
nghiệm với các giao diện người dùng khác nhau khi bạn xây dựng. Ngồi ra, khơng bị
mất trạng thái, trên trình giả lập, trình mô phỏng và thiết bị dành cho iOS và Android
khi tải lại lần thứ hai.
Tương đương với hiệu suất ứng dụng gốc: Trải nghiệm người dùng tốt sẽ mang lại
thành công cho ứng dụng của bạn, trong khi hiệu suất kém sẽ ảnh hưởng nghiêm trọng
đến trải nghiệm người dùng trong ứng dụng. Các ứng dụng dành cho thiết bị di động
được phát triển bằng Flutter sẽ không thể phân biệt được với các ứng dụng được xây
dựng bằng mã gốc. Trên thực tế, các ứng dụng Flutter có thể hoạt động tốt hơn trong
các tình huống giao diện người dùng phức tạp. Vì Flutter không dựa vào cầu nối
JavaScript hay bất kỳ mã trung gian nào mà được tích hợp trực tiếp vào mã máy. Điều
này giúp loại bỏ các lỗi hiệu suất có thể xảy ra.
Tài liệu tốt và cộng đồng mạnh: Flutter có nhiều ưu điểm hơn nhiều framework khác
nên thu hút nhiều nhà phát triển, tạo ra một cộng đồng tích cực có thể cung cấp hoặc
hỗ trợ lẫn nhau.cung cấp hoặc hỗ trợ lẫn nhau.
2.2.3 Nhược điểm của Flutter
Không ổn định: Flutter là một trong những khung công tác mới nhất và luôn phát
triển. Nhiều thư viện của nó cần được kiểm tra trước khi chúng hoạt động ổn định. Vì
vậy, cần có thời gian để Flutter phát huy hết tiềm năng của một hệ điều hành.
6
Báo cáo đồ án 1
Kích thước tệp lớn: Kích thước tệp lớn là một nhược điểm khi sử dụng Flutter. Các
ứng dụng được tạo bằng Flutter rất nặng, vì vậy chúng mất nhiều thời gian để khởi
động hoặc tải. Điều này có thể dẫn đến hiệu suất kém và trải nghiệm người dùng kém.
Thay đổi và cập nhật trong framework: Vì Flutter là một khuôn khổ tương đối mới,
nên thường có những thay đổi hoặc cập nhật có thể ảnh hưởng đến sự phát triển. Vì
vậy, có thể khó để duy trì mã khi nó thay đổi quá nhanh.
Thiếu hướng dẫn phát triển tiêu chuẩn: Các framework ổn định có các hướng dẫn
bằng văn bản dễ phát triển hơn. Flutter mới, thiếu các nguyên tắc như vậy, sẽ gặp khó
khăn trong việc xây dựng các ứng dụng phức tạp.
Bổ sung thường xuyên ngôn ngữ Dart: Theo một số khảo sát, số lượng lập trình viên
biết đến Dart không lớn, và nhiều người cho rằng khi học xong ngôn ngữ Dart, các lập
trình viên có thể liên kết với Dart trong lĩnh vực phát triển ứng dụng di động. Vì vậy
vấn đề chuyển đổi linh hoạt giữa JS hoặc Python hoặc có thể chuyển đổi linh hoạt
giữa front, back hay AI… sẽ khơng cịn nữa.
2.3
Tìm hiểu về Firebase
Hình 2.3-1 Firebase
7