Tải bản đầy đủ (.docx) (39 trang)

Đồ án xây dựng ứng dụng chatbot hỗ trợ tư vấn khóa học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (376.46 KB, 39 trang )

ĐẠ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 MƠN HỌC
ĐỀ TÀI:
ỨNG DỤNG TƯ VẤN KHĨA HỌC
HỖ TRỢ CHATBOT

Giảng viên: Trần Anh Dũng
Sinh viên thực hiện: Nguyễn Hồ Quỳnh Thư 19520290
Cao Ngọc Anh 19521191

Thành phố Hồ Chí Minh, năm 2021


ĐẠ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 MƠN HỌC
ĐỀ TÀI:
ỨNG DỤNG TƯ VẤN KHĨA HỌC
HỖ TRỢ CHATBOT

Giảng viên: Nguyễn Tấn Toàn
Sinh viên thực hiện: Nguyễn Hồ Quỳnh Thư 19522275
Cao Ngọc Anh 19521191



Thành phố Hồ Chí Minh, năm 2021


Báo cáo đồ án 1

MỤC LỤC
ĐỀ CƯƠNG CHI TIẾT........................................................................................ 2
NỘI DUNG ............................................................................................................ 7
CHƯƠNG 1: GIỚI THIỆU CHUNG ..................................................................... 7
1.1. Lý do chọn đề tài ......................................................................................... 7
1.2. Đối tượng sử dụng ....................................................................................... 7
1.3. Phạm vi nghiên cứu ..................................................................................... 7
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ....................................................................... 9
2.1. Android Studio ............................................................................................ 9
2.2. Java ............................................................................................................ 10
2.3. MySQL ...................................................................................................... 11
2.4. GitHub ....................................................................................................... 12
2.5. Dialogflow ................................................................................................. 13
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG................................................................. 14
3.1. Kiến trúc hệ thống : Mơ hình MVC : ........................................................ 14
3.2. Chi tiết các thành phần trong hệ thống ...................................................... 15
CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU ........................................................ 16
4.1. Sơ đồ logic ................................................................................................. 16
4.2. Danh sách các quan hệ............................................................................... 16
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG ...................................... 22
5.1. Danh sách màn hình .................................................................................. 22
5.2. Mơ tả chi tiết từng màn hình...................................................................... 23
CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ............................................................. 37
6.1. Môi trường cài đặt và kiểm thử: ................................................................ 37

6.2. Kết quả kiểm thử ....................................................................................... 37
CHƯƠNG 7: KẾT LUẬN .................................................................................... 38
7.1. Tổng kết..................................................................................................... 38
7.2. Khó khăn.................................................................................................... 38
7.3. Kết quả đạt được........................................................................................ 39
7.4. Hạn chế của đồ án...................................................................................... 39
7.5. Hướng phát triển........................................................................................ 39

1 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ

Báo cáo đồ án 1
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CƠNG NGHỆ THƠNG TIN

CHATBOT
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc
Lập - Tự Do - Hạnh Phúc
TP. HCM, ngày 23 tháng 12 năm 2021


ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng ứng dụng Chatbot hỗ trợ tư vấn khóa học
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 8/10/2021 đến ngày 17/12/2021
Sinh viên thực hiện:
Nguyễn Hồ Quỳnh Thư – 19520290
Cao Ngọc Anh – 19521191

Nội dung đề tài

1. Lý do chọn đề tài:
Hiện nay, nhu cầu học tiếng Anh của mọi người ngày một tăng nhanh, Tại một trung tâm,
thông thường, sẽ có 4 Loại Khóa học mà học viên có thể chọn lựa, bao gồm: - Luyện thi
IELTS
- Tiếng Anh cho người đi làm
- Tiếng Anh cho bé
- General English
Mỗi Loại Khóa học đều có 3 cấp độ là PRE, INTER, ADV tương ứng với mức độ nhập
môn, trung bình và nâng cao. Để đăng ký các Khóa học này, học viên sẽ phải trải qua một
bài kiểm tra đầu vào để xác định trình độ. Nếu học viên vẫn chưa có kiến thức về tiếng
Anh, hoặc khơng tham gia kiểm tra đầu vào, sẽ được mặc định xếp vào cấp nhập mơn,
PRE, của mỗi khóa học đăng ký.
Trung tâm sẽ phân bố xếp lớp dựa vào kết quả bài kiểm tra đầu vào của học viên, ví dụ để
xếp lớp ở khóa học Luyện thi IELTS, căn cứ vào bảng sau.
Khóa học

PRE

INTER

ADV

Luyện thi

Điểm đầu vào dưới 5.0

Điểm đầu vào

Điểm đầu vào


IELTS

Khơng có kiến thức,

từ 5.0

từ 7.0 trở lên

khơng tham gia thi thử

2 ỨNG DỤNG TƯ VẤN KHÓA HỌC
HỖ TRỠ CHATBOT

Báo cáo đồ án 1
Muốn đạt 5.0

Muốn đạt từ

Muốn đạt từ

trên 5.0 đến

8.0 trở lên

8.0


Nếu muốn học cao hơn, học viên bắt buộc phải đạt chỉ tiêu của các lớp học trước đó,
thơng qua các bài kiểm tra thử của trung tâm. Ví dụ:
- Một người A thi thử đầu vài được xếp vào IELTS INTER. A mong muốn có bằng

IELTS 9.0, như vậy A sẽ học ở lớp Luyện thi IELTS INTER đến khi thi thử đạt 8.0
thì mới được chuyển sang học lớp Luyện thi IELTS ADV.
Thời gian mỗi khóa học phân thành loại Cấp tốc hoặc loại Thường, tương ứng với mốc
thời gian là 3 tháng hoặc 1 năm cho một khóa đào tạo.
Chính vì sự đa dạng và phân cấp của khóa học, nên nhu cầu cần được tư vấn để lựa chọn
khóa học tiếng Anh phù hợp cho bản thân là một vấn đề đang được những người mong
muốn đăng ký học tiếng Anh tại trung tâm quan tâm đến. Đồng thời, bên cạnh đó, cũng có
nhiều người đã tham gia khóa học tại trung tâm và khơng biết lộ trình học tiếp theo. Để
đáp ứng những nhu cầu đó, nhóm em quyết định chọn đề tài này, phát triển một ứng dụng
cung cấp nhanh chóng thơng tin về phía trung tâm tiếng Anh và tích hợp chatbot hỗ trợ tự
động tư vấn, hướng dẫn đăng ký đến với người dùng truy cập vào ứng dụng. 2. Mục tiêu:
bao gồm 2 mục tiêu chính:

1. Xây dựng chatbot:
+ FAQ giải đáp nhanh các thắc mắc chung, 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 trung tâm
+ Cung cấp thông tin về trung tâm, về chương trình đào tạo....
+ Hỗ trợ đăng ký thi thử tại trung tâm
+ Áp dụng xử lý ngôn ngữ tự nhiên để giao tiếp

2. Xây dựng ứng dụng hỗ trợ chatbot:
+

Cho phép cập nhật thông tin mới nhất về trung tâm, về khóa học

+

Giới thiệu thơng tin khóa học, quy chế đào tạo dưới dạng văn bản

+


Cung cấp danh sách thông tin từ mới đến cũ

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ề khóa học một cách chi tiết
+ Phân tích được nhu cầu và đưa ra tư vấn hợp lý đối với người dùng
3 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
Báo cáo đồ án 1

CHATBOT

+ Cung cấp liên hệ trực tiếp đến với nhân viên tư vấn khi vấn đề đặt ra ngồi phạm vi
của bản thân nó và cập nhập được cách xử lý đối với các trường hợp này + Đăng kí
lịch hẹn thi thử tại trung tâm
+ Cung cấp các thơng tin về lộ trình học


+ 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, thông báo mới nhất về trung tâm, về khóa học, về quy chế đào
tạo của trung tâm
+ Cung cấp chức năng đăng kí lịch hẹn thi thử tại trung tâm
+ Cung cấp các chức năng quản lí bài viết bao gồm đăng tải, thay đổi và xóa bỏ…
4. Đối tượng sử dụng:
− Tất cả mọi người muốn đăng ký các khóa học tiếng Anh tại trung tậm. hoặc đã học
nhưng chưa nắm rõ lộ trình giảng dạy của trung tâm
− Quản trị viên phía trung tâm muốn cung cấp thơng tin (về trung tâm, về khóa học, về các

chương trình đào tạo…) đến mọi người truy cập vào ứ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
− Tìm hiểu bài tốn xử lý ngơn ngữ tự nhiên
− Quản lý source code thông qua Github
− Sử dụng Trello, Google doc,… để quản lý tiến trình và tài liệu
6. Nền tảng cơng nghệ:
− Kotlin/Java
− Android Studio
− DialogFlow Chatbot
7. Kết quả mong đợi:
4 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
Báo cáo đồ án 1


CHATBOT

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:
Thời gian thực hiện từ ngày 8/10/2021 đến ngày kết thúc mơn Đồ án
1 Nhóm chia thành 2 giai đoạn cụ thể:
Giai đoạn 1: Hoàn thiện giao diện người dùng và các tính năng cơ bản. Gồm 3 sprint với
thời gian mỗi sprint kéo dài 2 tuần:
Thời gian: 8/10/2021 - 19/11/2021
Sprint 1: Tìm hiểu cơng nghệ
Sprint 2: Phân tích yêu cầu và chức năng, chuẩn bị tài liệu, chuẩn bị bản vẽ, xây dựng
CSDL
Sprint 3: Xây dựng và phát triển ứng dụng với các chức năng cơ bản
Sprint

Thời gian

Cơng việc dự kiến

Sprint 1

8/10/2021 - 15/10/2021

− Tìm hiểu cơng nghệ
− Tìm hiểu các u cầu nghiệp
vụ của đề tài

Sprint 2


15/10/2021 - 22/10/2021

− Phân tích yêu cầu và chức
năng của ứng dụng
− Viết tài liệu mô tả
− Xây dựng bản vẽ
− Xây dựng CSDL

Sprint 3

22/10/2021 - 19/11/2021

− Xây dựng giao diện ứng dụng
− Xây dựng Chatbot với các
thoại cơ bản
− Xây dựng các tính năng cơ
bản của ứng dụng
− Liên kết Chatbot vào ứng dụng

Giai đoạn 2: Hoàn thiện các tính năng năng cơ bản và nâng cao của ứng dụng, triển khai

5 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
Báo cáo đồ án 1

CHATBOT


và kiểm thử ứng dụng, viết báo cáo.... Gồm 3 sprint với thời gian mỗi sprint kéo dài 2
tuần: Thời gian: 19/11/2021 - 17/12/2021 - báo cáo cuối kỳ
Sprint 4: Hồn thiện tính năng của ứng dụng

Sprint 5: Hồn thiện tính năng của ứng dụng
Sprint 6: Triển khai và viết báo cáo
Sprint Thời gian Công việc dự kiến
Sprint 4 19/11/2021 - 3/12/2021 − Tiếp tục hồn thiện các tính năng của ứng dụng
− Kiểm thử ứng dụng
Sprint 5 3/12/2021 - 17/12/2021 − Tiếp tục hồn thiện các tính năng của ứng dụng
− Kiểm thử ứng dụng
Sprint 6 17/12/2021 - báo cáo cuối kỳ − Kiểm thử ứng dụng − Viết
báo cáo
10. Phân công công việc:
Công việc Mô tả công việc
Công việc chung − Tìm hiểu cơng nghệ
− Phân tích u cầu
− Lập trình Backend
− Kiểm thử
− Chuẩn bị tài liệu, viết báo cáo
Nguyễn Hồ Quỳnh Thư Cao Ngọc Anh
Công việc cá nhân − Xây dựng Chatbot
− Xây dựng bản vẽ
− Liên kết Chatbot
− Xây dựng CSDL
− Lập trình Frontend
− Liên kết CSDL
Tp.Hồ Chí Minh, ngày 23 tháng 12 năm 2021

6 ỨNG DỤNG TƯ VẤN KHÓA HỌC
HỖ TRỠ CHATBOT

Báo cáo đồ án 1


NỘI DUNG
CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1. Lý do chọn đề tài


Hiện nay, nhu cầu học tiếng Anh của mọi người ngày một tăng nhanh. Trong các
trung tâm Anh ngữ, khóa học thơng thường có rất nhiều dạng hình thức khác nhau. Vì vậy
mà, nhu cầu cần được tư vấn để lựa chọn khóa học tiếng Anh phù hợp cho bản thân là một
vấn đề đang được những người mong muốn đăng ký học tiếng Anh tại trung tâm quan tâm
đến. Đồng thời, bên cạnh đó, cũng có nhiều người đã tham gia khóa học tại trung tâm và
khơng biết lộ trình học tiếp theo. Để đáp ứng những nhu cầu đó, nhóm em quyết định
chọn đề tài này, phát triển một ứng dụng cung cấp nhanh chóng thơng tin về phía trung
tâm tiếng Anh và tích hợp chatbot hỗ trợ tự động tư vấn, hướng dẫn đăng ký đến với
người dùng truy cập vào ứng dụng.
1.2. Đối tượng sử dụng
Tất cả mọi người muốn đăng ký các khóa học tiếng Anh tại trung tậm. hoặc đã học
nhưng chưa nắm rõ lộ trình giảng dạy của trung tâm
Quản trị viên phía trung tâm muốn cung cấp thông tin (về trung tâm, về khóa học,
về các chương trình đào tạo…) đến mọi người truy cập vào ứng dụng
1.3. Phạm vi nghiên cứu
1.3.1. Phạm vi môi trường: Ứng dụng di động
1.3.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ề khóa học một cách chi tiết
+ Phân tích được nhu cầu và đưa ra tư vấn hợp lý đối với người dùng
+ Cung cấp liên hệ trực tiếp đến với nhân viên tư vấn khi vấn đề đặt ra ngồi phạm
vi của bản thân nó và cập nhập được cách xử lý đối với các trường hợp này
+ Đăng kí lịch hẹn thi thử tại trung tâm
+ Cung cấp các thơng tin về lộ trình học
7 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ

Báo cáo đồ án 1

CHATBOT

+ 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, thông báo mới nhất về trung tâm, về khóa học, về quy chế
đào tạo của trung tâm
+ Cung cấp chức năng đăng kí lịch hẹn thi thử tại trung tâm
+ Cung cấp các chức năng quản lí bài viết bao gồm đăng tải, thay đổi và xóa bỏ…


8 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
CHATBOT

Báo cáo đồ án 1

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Android Studio

Hình 2.1: Android Studio
Để phát triển các ứng dụng mobile chạy trên hệ điều hành Android thì bạn cần một
máy tính trên đó có cài đặt Android Studio. Trong bài viết này chúng ta sẽ cùng nhau tìm
hiểu về Android Studio, cách cài đặt và sử dụng Android Studio để tạo một ứng dụng đơn
giản có tên là Hello World. Bài viết này áp dụng trên hệ điều hành Windows do đó bạn
cần một máy tính chạy hệ điều hành Windows.
Android Studio là một phầm mềm bao gồm các bộ công cụ khác nhau dùng để phát
triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như các loại điện thoại
smartphone, các tablet... Android Studio được đóng gói với một bộ code editor, debugger,
các công cụ performance tool và một hệ thống build/deploy (trong đó có trình giả lập

simulator để giả lập môi trường của thiết bị điện thoại hoặc tablet trên máy tính) cho phép
các lập trình viên có thể nhanh chóng phát triển các ứng dụng từ đơn giản tới phức tạp.
Việc xây dựng một ứng dụng mobile (hoặc tablet) bao gồm rất nhiều các công
đoạn khác nhau. Đầu tiên chúng ta sẽ viết code ứng dụng sử dụng máy tính cá nhân hoặc
laptop. Sau đó chúng ta cần build ứng dụng để tạo file cài đặt. Sau khi build xong thì
chúng ta cần copy file cài đặt này vào thiét bị mobile (hoặc table) để tiến hành cài đặt ứng
dụng và chạy kiểm thử (testing). Bạn thử tưởng tượng nếu với mỗi lần viết một dòng code
bạn lại phải build ứng dụng, cài đặt trên điện thoại hoặc tablet và sau đó chạy thử thì sẽ
vô cùng tốn thời gian và công sức. Android Studio được phát triển để giải quyết các vấn
đề này. Với Android Studio tất cả các công đoạn trên được thực hiện trên cùng một máy
tính và các quy trình được tinh gọn tới mức tối giản nhất.

9 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
Báo cáo đồ án 1

2.2. Java

CHATBOT


Hình 2.2: Ngơn ngữ lập trình Java
Java là một trong những ngơn ngữ lập trình hướng đối tượng. Nó được sử dụng
trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động.
Đặc điểm của ngơn ngữ lập trình Java
- Hướng đối tượng hồn tồn
Trong q trình tạo ra một ngơn ngữ mới phục vụ cho mục đích chạy được trên
nhiều nền tảng, các kỹ sư của Sun MicroSystem muốn tạo ra một ngôn ngữ dễ học và
quen thuộc với đa số người lập trình. Vì vậy họ đã sử dụng lại các cú pháp của C và C++.
Tuy nhiên, trong Java thao tác với con trỏ bị lược bỏ nhằm đảo bảo tính an toàn và
dễ sử dụng hơn. Các thao tác overload, goto hay các cấu trúc như struct và union cũng

được loại bỏ khỏi Java.
- Độc lập phần cứng và hệ điều hành
Một chương trình viết bằng ngơn ngữ Java có thể chạy tốt ở nhiều môi trường
khác nhau. Gọi là khả năng “cross-platform”. Khả năng độc lập phần cứng và hệ điều
hành được thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị phân.
- Ngôn ngữ thơng dịch

10 ỨNG DỤNG TƯ VẤN KHĨA HỌC HỖ TRỠ
Báo cáo đồ án 1

CHATBOT

Java là loại ngôn ngữ vừa biên dịch vừa thông dịch. Khi viết mã, hệ thống tạo ra
một tệp .java. Khi biên dịch mã nguồn của chương trình sẽ được biên dịch ra mã byte
code. Máy ảo Java (Java Virtual Machine) sẽ thông dịch mã byte code này thành machine
code (hay native code) khi nhận được yêu cầu chạy chương trình.
- Cơ chế thu gom rác tự động
Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ nhớ
cho các đối tượng ở trên heap. Bạn không phải tự gọi hủy các vùng nhớ. Bộ thu dọn rác


của Java sẽ theo vết các tài nguyên đã được cấp. Khi khơng có tham chiếu nào đến vùng
nhớ, bộ thu dọn rác sẽ tiến hành thu hồi vùng nhớ đã được cấp phát.
- Đa luồng
Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các cơng việc đồng thời.
Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụng
priority…).
2.3. MySQL

Hình 2.3: Hệ quản trị cơ sở dữ liệu MySQL

MySQL là cơ sở dữ liệu tốc độ cao, ổn định hoạt động trên nhiều hệ điều hành, cung cấp
một hệ thống lớn các hàm tiện ích rất mạnh. Hệ quản trị cơ sở dữ liệu MySQL được hiểu
như là chương trình dùng để quản lý hệ thống cơ sở dữ liệu, trong đó, cơ sở dữ liệu là một
hệ thống lưu trữ thông tin được sắp xếp rõ ràng, phân lớp ngăn nắp. Nó giúp bạn có thể
truy cập dữ liệu một cách thuận lợi và nhanh chóng nhất. Vì hỗ trợ đa số các ngơn ngữ lập
trình nên MySQL chính là hệ quản trị cơ sở dữ liệu tự do nguồn

11 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
Báo cáo đồ án 1

CHATBOT

mở phổ biến nhất trên thế giới. Hiện MySQL đang được các nhà phát triển rất ưa chuộng
trong quá trình phát triển ứng dụng.
MySQL có cơ chế quản lý sử dụng riêng giúp cho mỗi người sử dụng đều có thể
quản lý cùng lúc một hay nhiều CSDL khác nhau. Và mỗi người dùng đều có 1 username
và password để truy nhập và truy xuất đến CSDL. Khi truy vấn đến CSDL của MySQL,
bạn phải cung cấp tài khoản và mật khẩu có quyền sử dụng cơ sở dữ liệu đó.
2.4. GitHub


Hình 2.4: Hệ thống quản lý mã nguồn GitHub
GitHub là một hệ thống quản lý dự án và phiên bản code, hoạt động giống như
một mạng xã hội cho lập trình viên. Các lập trình viên có thể clone lại mã nguồn từ một
repository và Github chính là một dịch vụ máy chủ repository cơng cộng, mỗi người có
thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để có thể làm việc.
GitHub là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git cho các dự án
phần mềm. Github có đầy đủ những tính năng của Git, ngồi ra nó cịn bổ sung những
tính năng về social để các developer tương tác với nhau.
Vài thông tin về GIT:

- Là công cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân tán. Giúp đồng bộ source code của team lên 1 server.
- Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc (diff, check
modifications, show history, merge source, …)
GitHub có 2 phiên bản: miễn phí và trả phí. Với phiên bản có phí thường được các
doanh nghiệp sử dụng để tăng khả năng quản lý team cũng như phân quyền bảo mật
12 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
Báo cáo đồ án 1

CHATBOT

dự án. Cịn lại thì phần lớn chúng ta đều sử dụng Github với tài khoản miễn phí để lưu trữ
source code.
Github cung cấp các tính năng social networking như feeds, followers, và network graph
để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit. Nếu một
comment để mô tả và giải thích một đoạn code. Thì với Github, commit message chính là
phần mơ tả hành động mà bạn thực hiện trên source code.
Github trở thành một yếu tố có sức ảnh hưởng lớn trong cộng động nguồn mở.
Cùng với Linkedin, Github được coi là một sự thay thế cho CV của bạn. Các nhà tuyển
dụng cũng rất hay tham khảo Github profile để hiểu về năng lực coding của ứng viên.
2.5. Dialogflow


Hình x.x: ChatBot DialogFlow
Dialogflow (tiền thân là API.AI) là một dịch vụ do Google cung cấp nhằm giúp
các lập trình viên dễ dàng hơn khi lập trình các sản phẩm có giao tiếp giữa người dùng
với sản phẩm thơng qua các đoạn hội thoại bằng văn bản (text) hoặc giọng nói (voice).
Dialogflow sử dụng trí tuệ nhân tạo (AI) giúp phân tích ngơn ngữ tự nhiên để hiểu được
những gì người dùng đưa vào.
Dialogflow hiện có sẵn các kịch bản và Dialogflow cũng được dạy khá tốt với
lượng dữ liệu khá đồ sộ. Chỉ tiết là đa phần Dialogflow làm việc tốt hơn với Tiếng Anh và

một số tiếng của các nước đơng dân khác. Ngồi ra Dialogflow cịn cho phép bạn liên kết
Chatbot của bạn với Messanger hay Skype hay Slack… một cách rất đơn giản.

13 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
CHATBOT

Báo cáo đồ án 1

CHƯƠNG 3: THIẾT KẾ HỆ THỐNG
3.1. Kiến trúc hệ thống : Mô hình MVC :
Model: Lưu trữ tất cả dữ liệu của ứng dụng. Bộ phận này là cầu nối giữa cơ sở dữ
liệu quản lý cả nhân và trình bày giao diện người dùng. Cho phép người dùng có thể nhập
và xuất đến các cơ sở dữ liệu lần lượt theo quyền của họ khi cần thiết và dữ liệu sẽ được
lưu dữ trên firebase
View: giao diện người dùng, nơi người dùng có thể lấy được thơng tin dữ liệu của
MVC thông qua các công thức truy vấn và ghi lại hoạt động của người dùng để tương tác
với Controller
Controller: xử lý yêu cầu từ người dùng thông qua View. Từ đó, Controller gửi dữ
liệu hợp lý đến người dùng bằng các kết nối đến Model và trưng bày nó trên View cho
người dùng


Hình 3.1: Sơ đồ mơ hình MVC

14 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
CHATBOT

Báo cáo đồ án 1

3.2. Chi tiết các thành phần trong hệ thống

STT

Thành phần

Chi tiết

1

Giao diện người dùng

Cung cấp một giao diện cho người dùng
thực hiện các thao tác nhập/xuất dữ liệu.
Đồng thời, trong lúc sử dụng, thơng báo
cho người dùng nếu có lỗi xảy ra

2

Mơ hình MVC

Tiếp nhận yêu cầu từ giao diện người
dùng, kiểm tra tính đúng đắn theo ràng
buộc và thực thi yêu cầu nếu điều kiện
được đáp ứng

3

Cơ sở dữ liệu quản
trị nhân sự

Lưu trữ toàn bộ dữ liệu liên quan đến quản

lý nhân sự trong ứng dụng

15 ỨNG DỤNG TƯ VẤN KHÓA HỌC
HỖ TRỠ CHATBOT

Báo cáo đồ án 1 4.1. Sơ đồ logic

CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU


Hình x.x: Sơ đồ logic của cơ sở dữ liệu
4.2. Danh sách các quan hệ
4.2.1. Bảng account : Thông tin tài khoản
STT

Thực thể

Kiểu dữ liệu

1

account_id

int(7)

Ghi chú

unsigned zerofill
2


username

char(10)

Độc nhất. Không thay đổi. Theo
phông: [3 chữ cái đầu của position]
[số thứ tự] Ví dụ : man0000001 /
emp1234567

3

password

varchar(20)

4

position

varchar(8)

Quyết định loại tài khoản của
người dùng là Quản lý hay Nhân
viên

16 ỨNG DỤNG TƯ VẤN KHÓA HỌC
HỖ TRỠ CHATBOT

Báo cáo đồ án 1



Chỉ nhận 1 trong 2 giá trị Manager
hoặc Employee
5

email

varchar(50)

Là Email xác thực khi tài khoản
được tạo. Sẽ được sử dụng để đổi
mật khẩu

6

status

varchar(8)

Quyệt định tài khoản có khả dụng
hay khơng.
Chỉ nhận 1 trong 2 giá trị Enabled
hoặc Disabled

7

created_date

timestamp


Ngày tài khoản được tạo

4.2.2. Bảng personal_info : Thông tin cá nhân
STT

Thực thể

Kiểu dữ liệu

1

account_id

int(7)

Ghi chú

unsigned zerofill
2

name

varchar(20)

3

birthday

date


4

location

varchar(20)

Tên hiển thị. Có thể thay đổi

Thành phố sống và làm việc

4.2.3. Bảng post: Thông tin bài đăng
STT

Thực thể

Kiểu dữ liệu

1

post_id

int

Ghi chú

unsigned
2

author_id


int(7)
unsigned zerofill

3

post_update

timestamp

4

post_title

varchar(200)

5

post_content

text

6

post_img

varchar(200)

7

display_place


varchar(6)

id của tài khoản nhân viên đã thực
hiện đăng lần đầu
Thời gian đăng hoặc cập nhập gần nhất

Hình ảnh. Dạng link
Nơi thể hiện bài đăng. Nhận 1 trong
2 giá trị slider hoặc list

17 ỨNG DỤNG TƯ VẤN KHÓA HỌC
HỖ TRỠ CHATBOT

Báo cáo đồ án 1

4.2.4. Bảng teacher: Thông tin giáo viên


STT

Thực thể

Kiểu dữ liệu

1

teacher_id

int


Ghi chú

unsigned
2

teacher_name

varchar(20)

3

teacher_img

varchar(50)

Hình ảnh giáo viên dạng link

4

teacher_achieve

varchar(50)

Thành tích ấn tượng

5

in_charge_of


varchar(50)

Chun mơn giảng dạy tại trung tâm

6

teacher_description

varchar(100)

Những điều muốn nói khác

4.2.5. Bảng exstudent: Cảm nhận của cựu học viên
STT

Thực thể

Kiểu dữ liệu

1

exst_id

int

Ghi chú

unsigned
2


exst_name

varchar(50)

Tên cựu học viên

3

exst_img

varchar(80)

Hình ảnh cựu học viên. Dạng link

4

exst_achieve

varchar(50)

Thành tích đạt được sau khi học
tại trung tâm

5

exst_quote

varchar(100)

Cảm nhận của học viên


Ghi chú

4.2.6. Bảng q_and_a: Q&A
STT

Thực thể

Kiểu dữ liệu

1

qa_id

Int
unsigned

2

qa_update

timestamp

Thời gian đăng/cập nhập gần nhất

3

main_subject

varchar(7)


Dùng để filter. Chỉ nhận các giá
trị : center, courses

4

sub_subject_a

varchar(12)

Dùng để filter. Chỉ nhận các giá trị:
none, IELTS, KidEnglish,
AdultEnglish

5

sub_subject_b

varchar(7)

Dùng để filter. Chỉ nhận các giá
trị: none, tuition, others

18 ỨNG DỤNG TƯ VẤN KHÓA HỌC
HỖ TRỠ CHATBOT

Báo cáo đồ án 1


6


question

text

Nội dung câu hỏi

7

answer

text

Nội dung giải đáp

4.2.7. Bảng course: Thông tin khóa học
STT

Thực thể

Kiểu dữ liệu

1

course_id

int

Ghi chú


unsigned
2

course_name

varchar(50)

3

course_description

text

Giới thiệu chung về khóa học

4

levels_desciption

text

Mơ tả về cách phân lớp, phân cấp
trong khóa học

4.2.8. Bảng course_lever: Cấp của khóa học
STT

Thực thể

Kiểu dữ liệu


1

level_id

int

Ghi chú

unsigned
2

course_id

int
unsigned

3

level_name

varchar(5)

Tên của cấp học từ nhập mơn,
trung bình và nâng cao
Nhận 1 trong 3 giá trị PRE,
INTER, ADV

4


pre_condition

varchar(50)

Yêu cầu tiên quyết để được tham
gia cấp học

5

result_guaranteer

varchar(50)

Cam kết đầu ra của cấp học

6

base_tuition

int

Học phí cơ bản

4.2.9. Bảng course_duration: Thời gian khóa học sẽ kéo dài
STT

Thực thể

Kiểu dữ liệu


1

duration_id

int

Ghi chú

unsigned
2

course_id

int

19 ỨNG DỤNG TƯ VẤN KHÓA HỌC
HỖ TRỠ CHATBOT

Báo cáo đồ án 1


unsigned
3

duration_name

varchar(6)

Tương ứng với học theo thời
lượng bình thường hay cấp tốc

Nhận 1 trong 2 giá trị normal
hoặc speed

4

duration

int

Thời gian khóa học diễn ra. Tính
theo tháng
Nhận 1 trong 2 giá trị ‘6’ hoặc ‘12’

5

classes_per_month

int

Lượng lớp học được tham gia trong
1 tháng.
Nhận 1 trong 2 giá trị 8 hoặc 16

6

duration_coefficient

float

Hệ số học phí. Để nhân với học phí

cơ bản trong cấp học, tính ra học
phí tổng

4.2.10. Bảng course_teaching: Loại hình giảng dạy
STT

Thực thể

Kiểu dữ liệu

1

teaching_id

int

Ghi chú

unsigned
2

course_id

int
unsigned

3

teaching_name


varchar(10)

Loại hình dạy học ứng với lớp
học thường và lớp kèm cặp
Nhận 1 trong 2 giá trị normal hoặc 1v1

4

teaching_description

varchar(100)

5

teaching_coefficient

float

Thơng tin về loại hình giảng dạy
Hệ số học phí. Để nhân với học phí
cơ bản trong cấp học, tính ra học
phí tổng

4.2.11. Bảng course_time: Thời gian tổ chức lớp
STT

Thực thể

Kiểu dữ liệu


1

time_id

int

Ghi chú

unsigned
2

course_id

int
unsigned

3

start

time

Giờ bắt đầu

20 ỨNG DỤNG TƯ VẤN KHÓA HỌC
HỖ TRỠ CHATBOT

Báo cáo đồ án 1



4

end

time

5

weekday

tinyint

Giờ kết thúc
Buổi học trong tuần
(1/2/3/4/5/6/7)=(Thứ 2/3/4/5/6/7/CN)

4.2.12. Bảng appointment: Thông tin lịch hẹn
STT

Thực thể

Kiểu dữ liệu

1

appoint_id

int

Ghi chú


unsigned
2

appoint_purpose

varchar(9)

Mục địch hẹn. Cố vấn hoặc thi thử
Nhận 1 trong 2 giá trị mock_test
hoặc advise

3

concern

varchar(50)

Khóa học muốn quan tâm.

4

appoint_time

timestamp

Thời gian hẹn

5


sender_name

varchar(20)

Tên người gửi

6

sender_email

varchar(50)

Email người gửi

21 ỨNG DỤNG TƯ VẤN KHÓA HỌC
HỖ TRỠ CHATBOT

Báo cáo đồ án 1

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG
5.1. Danh sách màn hình


STT

Tên màn hình

Loại

1


Đăng nhập

Đăng nhập

2

Quên mật khẩu

Đăng nhập

3

Trang chủ

Hiển thị

4

Tin tức

Hiển thị

5

Danh sách tin tức

Hiển thị

6


Đăng và Cập nhật tin tức

Hiển thị và Nhập liệu

7

Giới thiệu trung tâm

Hiển thị

8

Giới thiệu khóa học

Hiển thị

9

Hỏi đáp

Hiển thị

10

Đăng và cập nhật hỏi đáp

Nhập liệu

11


Quản lý tài khoản

Hiển thị và Nhập liệu

12

Thanh công cụ

Điều hướng

13

Hồ sơ người dùng

Hiển thị và Nhập liệu

13

Chatbot tư vấn

Hiển thị và Nhập liệu

14

Tạo cuộc hẹn

Nhập liệu

22 ỨNG DỤNG TƯ VẤN KHĨA HỌC

HỖ TRỠ CHATBOT

Báo cáo đồ án 1

5.2. Mơ tả chi tiết từng màn hình
5.2.1. Trang Đăng nhập


Chức năng chính mà trang cung cấp là xác thực tài khoản và mật khẩu mà người
dùng nhập vào có tương ứng hay khơng, sau đó, phân quyền cho người dùng đăng nhập.
Chỉ người dùng có tài khoản đăng kí trước mới có thể sử dụng tính năng này.
Ngồi ra trang còn còn nút chuyển trang đến trang Quên mật khẩu.

23 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
Báo cáo đồ án 1

5.2.2. Trang Quên mật khẩu

CHATBOT


Trang cho xử lý gửi liên kết khôi phục tài khoản đến email mà người dùng nhập
vào sau khi họ nhấn nút Send.

24 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
Báo cáo đồ án 1

5.2.3. Trang chủ

CHATBOT



Đây là trang mở đầu khi người dùng khác truy cập vào ứng dụng. Nó có chức năng
quảng bá và tạo ấn tượng ban đầu trong mắt người dùng về trung tâm. Ngoài ra, trang
cung cấp nút dẫn đến trang Tạo cuộc hẹn, cũng như nút gọi Chatbot Tư vấn và liên kết
đến trang đăng nhập cho người dùng có tài khoản.

25 ỨNG DỤNG TƯ VẤN KHÓA HỌC HỖ TRỠ
Báo cáo đồ án 1

5.2.4. Trang Danh sách tin tức

CHATBOT


×