ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM
DƯƠNG THẠNH TÍN
TẠ QUỐC KHÁNH
KHÓA LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG ĐÁNH GIÁ VÀ TƯ VẤN HỖ
TRỢ LỰA CHỌN CỬA HÀNG ĂN UỐNG BẰNG
CHATBOT
Build application for evaluation and consultation to support
selection of food and drink stores by chatbot
KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM
TP. HỒ CHÍ MINH, 2021
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
DƯƠNG THẠNH TÍN – 16521241
TẠ QUỐC KHÁNH – 16521594
KHĨA LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG ĐÁNH GIÁ VÀ TƯ VẤN HỖ
TRỢ LỰA CHỌN CỬA HÀNG ĂN UỐNG BẰNG
CHATBOT
Build application for evaluation and consultation to support
selection of food and drink stores by chatbot
KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
THS. TRẦN ANH DŨNG
TS. NGUYỄN ĐÌNH HIỂN
TP. HỒ CHÍ MINH, 2021
DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……………… ngày
……………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1. …………………………………………. – Chủ tịch.
2. …………………………………………. – Thư ký.
3. …………………………………………. – Ủy viên.
4. …………………………………………. – Ủy viên.
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
Độc Lập - Tự Do - Hạnh Phúc
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HCM, ngày tháng năm 2020
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
Xây dựng ứng dụng đánh giá và tư vấn hỗ trợ lựa chọn cửa hàng ăn uống bằng
chatbot
Nhóm sinh viên thực hiện: Cán bộ hướng dẫn: DƯƠNG THẠNH TÍN
16521241 ThS. TRẦN ANH DŨNG TẠ QUỐC KHÁNH 16521594
Đánh giá Khóa luận:
1. Về cuốn báo cáo:
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
●
2. Về nội dung nghiên cứu:
●
●
3. Về chương trình ứng dụng:
●
4. Về thái độ làm việc của sinh viên:
Chương 0.
Đánh giá chung:
Điểm từng sinh viên:
DƯƠNG THẠNH TÍN: ………../10
TẠ QUỐC KHÁNH: ………../10
Người nhận xét
(Ký và ghi rõ họ tên)
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
Trần Anh Dũng
Độc Lập – Tự Do – Hạnh Phúc
TRƯỜNG ĐẠI HỌC
CƠNG NGHỆ THƠNG TIN
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HCM, ngày tháng năm 2020
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
Xây dựng ứng dụng đánh giá và tư vấn hỗ trợ lựa chọn cửa hàng ăn uống bằng
chatbot
Nhóm sinh viên thực hiện: Cán bộ phản biện: DƯƠNG THẠNH
TÍN 16521241
TẠ QUÔC KHÁNH 16521594
Đánh giá Khóa luận:
1. Về cuốn báo cáo:
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
2. Về nội dung nghiên cứu:
3. Về chương trình ứng dụng:
4. Về thái độ làm việc của sinh viên:
Đánh giá chung:
Điểm từng sinh viên:
DƯƠNG THẠNH TÍN: ………../10
TẠ QUỐC KHÁNH: ………../10
Người nhận xét
(Ký và ghi rõ họ tên)
LỜI CẢM ƠN
Sau q 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ể hồn thành Khóa luận tốt nghiệp của mình.
Để hồn thành khóa luậ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 PMCL2016.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 q trình làm khóa luậ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 quý thầy cơ để khóa luận được
hồn thiện hơn.
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, 24 tháng 12 năm 2020
Sinh viên
DƯƠNG THẠNH TÍN
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TẠ QUỐC KHÁNH
Độc Lập - Tự Do - Hạnh Phúc
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HCM, ngày….. tháng ….. năm ………
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐÁNH GIÁ VÀ TƯ VẤN HỖ
TRỢ LỰA CHỌN CỬA HÀNG ĂN UỐNG BẰNG CHATBOT
TÊN ĐỀ TÀI (TIẾNG ANH): BUILD APPLICATION FOR EVALUATION
AND CONSULTATION TO SUPPORT SELECTION OF FOOD AND
DRINK STORES BY CHATBOT
Cán bộ hướng dẫn: TS. Nguyễn Đình Hiển và ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 01/09/2020 đến ngày 31/12/2020
Sinh viên thực hiện:
Dương Thạnh Tín - 16521241
Tạ Quốc Khánh - 16521594
Nội dung đề tài: (Lý do chọn đề tài,các vấn đề của một số ứng dụng hiện nay, mô
tả chi tiết mục tiêu, phạm vi, đối tượng sử dụng, điểm nổi bật của ứng dụng,
phương pháp thực hiện, nền tảng cơng nghệ, các tiêu chí khác)
Lý do chọn đề tài:
Có thể nói, Thành phố Hồ Chí Minh là thành phố có sự phát triển mạnh
nhất ở Việt Nam. Vì lý do đó nên các học sinh hay những người lao động
thường đến để làm việc và sinh sống ở đây. Với sự tăng trưởng ấy, các cửa
hàng địa điểm ăn uống ngày càng nhiều và tăng một cách chóng mặt.
Nhưng để chọn một cửa hàng địa điểm ăn uống phù hợp với từng khẩu vị,
giá cả hợp lý là vơ cùng khó khăn. Vì thế chúng em đã chọn đề tài này
giúp cho người dùng có thể chọn ra những cửa hàng địa điểm ăn uống và
có thể tư vấn hỗ trợ cho người dùng chọn ra những cửa hàng địa điểm ăn
uống phù hợp nhất.
- Khách hàng chỉ cần với những thao tác đơn giản là có thể tìm được qn ăn
phù hợp với nhu cầu của mình.
Các vấn đề của một số ứng dụng hiện nay:
- Các ứng dụng hiện nay đa số đều có ý tưởng và phương thức hoạt động tương
đồng ở hầu hết các chức năng như: Tìm kiếm, đánh giá, bình luận, … và
khơng có gì khác biệt cho khách hàng trải nghiệm ở ứng dụng ngoài trừ kết
hợp với những ứng dụng khác.
⇨ Sau quá trình khảo sát thực tế và lắng nghe ý kiến của người dùng,
giải pháp nhóm đề ra là thiết kế ứng dụng khác biệt so với các ứng
dụng hiện nay nhưng phải dễ nhìn, dễ sử dụng và thể hiện được
những thông tin cần thiết cho người dùng.
- Nhóm đã tìm hiểu và dùng thử một số ứng dụng hàng đầu hiện nay ở Việt
Nam như: Foody, Pasgo, Diadiemanuong và nhận thấy một số khuyết điểm
của những ứng dụng ấy:
Về phần giao diện và chức năng:
• Foody: Giao diện khó phân biệt từng phần với nhau, khơng có lọc cửa
hàng về giá cả, khơng phân trang cụ thể.
• Pasgo: Chọn loại hình ăn uống cịn bị lỗi, khơng có lọc cửa hàng về
giá cả, chức năng bình luận khơng đánh giá được thơng số của cửa
hàng.
• Diadiemanuong: Giao diện khó nhìn, khó sử dụng, ít thông tin.
⇨ Nhóm đã quyết định sẽ thay đổi sự khác biệt về giao diện làm cho
giao diện dễ nhìn và trực quan hơn và làm thêm chức năng lọc cửa
hàng theo giá cả và theo điểm được đánh giá, top những cửa hàng
được đánh giá nhiều nhất và top những cửa hàng có điểm đánh giá
cao nhất, bình luận được số điểm của cửa hàng.
Về phần chatbot:
• Foody: Khơng có chatbot
• Pasgo: Có chat nhưng người trực tiếp của hệ thống tư vấn chứ khơng
phải chatbot
• Diadiemanuong: Khơng có chatbot
⇨ Vì muốn tạo ra sự khác biệt so với những ứng dụng hiện nay nên
nhóm đã quyết định thêm chatbot mong muốn người dùng có thể
được chatbot hỗ trợ tư vấn những cửa hàng ăn uống phù hợp với nhu
cầu của người dùng.
Mục tiêu:
- Xây dựng ứng dụng một cộng đồng cửa hàng, địa điểm ăn uống cho người
dùng. Người dùng có thể xem, tìm kiếm, đánh giá tiêu chuẩn và bình luận
các cửa hàng, địa điểm ăn uống.
- Xây dựng một ứng dụng hỗ trợ, tư vấn cho người dùng nhằm tìm được những
cửa hàng, địa điểm một cách nhanh chóng và phù hợp nhất từ thơng tin của
của khách hàng đưa.
- Ứng dụng sử dụng những công nghệ mới, phù hợp đáp ứng khả năng mở rộng
và tương tác cao.
- Ứng dụng có giao diện trực quan, khác biệt so với các ứng dụng hiện nay, phù
hợp với nhu cầu của đối tượng người dùng.
- Ứng dụng gợi ý cửa hàng cho người dùng.
- Phát triển ứng dụng có tính thực tiển cao, có khả năng triển khai ứng dụng vào
thực tế.
Nhóm em hi vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền dạy và
hỗ trợ, kết hợp với n hững cơng nghệ nhóm em đã tìm hiểu, mong rằng luận
văn tốt nghiệp của nhóm em sẽ đạt được mục đích như mong đợi.
Phạm vi:
Phạm vi địa lý: Ứng dụng sử dụng tại thành phố Hồ Chí Minh.
Phạm vi chức năng:
- Tìm kiếm thơng tin liên quan đến cửa hàng, địa điểm ăn uống: tên địa chỉ, tên
đường, tên cửa hàng, tên món ăn, tên khu vực.
- Trang thơng tin về các cửa hàng, địa điểm ăn uống tại Tp Hồ Chí Minh. - Tích
hợp đăng nhập đăng, đăng kí, u thích và chia sẻ thơng tin về cửa hàng, địa
điểm ăn uống
- Hỗ trợ và tư vấn cho người dùng về tìm kiếm món ăn hay cửa hàng, địa điểm ăn
uống tại vị trí hiện tại của người dùng hoặc tìm kiếm tại đường hay khu vực
nào đó.
- Tích hợp bản đồ để hỗ trợ xem địa chỉ cùng thơng tin.
Đối tượng sử dụng:
Khách hàng có nhu cầu tìm kiếm món ăn và cửa hàng, địa điểm ăn uống.
Đối tượng này thường tập trung từ độ tuổi 15 - 40.
Điểm nổi bật của ứng dụng:
- Ứng dụng được xây dựng với giao diện khác biệt hoàn toàn với những ứng dụng
hiện nay: Danh sách cửa hàng sẽ được hiển thị cùng với Google Map.
- Ứng dụng sẽ có thêm chatbot tự động trả lời cho người dùng còn những ứng
dụng nổi bật hiện nay hầu như khơng có chatbot hoặc có chat mà người trực
tiếp nói chuyện với người dùng.
- Ứng dụng sẽ có danh sách các cửa hàng yêu thích cho người dùng.
Phương pháp thực hiện:
- Làm việc nhóm với 2 thành viên, lên kế hoạch và thực hiện bằng cách trao đổi
trực tiếp và gián tiếp cũng như nhờ sự tư vấn của giáo viên hướng dẫn.
- Nhóm đã sử dụng các phương pháp nghiên cứu:
• Phương pháp đọc tài liệu
• Phương pháp thực nghiệm
• Phương pháp phân tích các ứng dụng liên quan nổi bật hiện nay
- Tham khảo các sản phẩm và công nghệ liên quan tới cửa hàng, địa điểm ăn
uống.
- Về mặt công nghệ thì nhóm xây dựng Restful API bằng Nodejs để làm việc
với dữ liệu. Cịn về phần giao diện thì nhóm sử dụng Nextjs giúp người dùng
có thể xem và tương tác trực tiếp trên đó.
- Xây dựng chatbot tư vấn, hỗ trợ người sử dụng tìm kiếm cửa hàng ăn uống
phù hợp nhất.
- Tìm hiểu bài tốn xử lí ngôn ngữ tự nhiên (Natural Language Processing)
Nền tảng công nghệ:
- Front-end: Reactjs, Nextjs
- Back-end: Nodejs
- Database: MongoDB
- Cào dữ liệu: Puppeteer
- Cơng cụ tìm kiếm: Elasticsearch
- Google Map API
- Chatbot Facebook Messenger
- IDE: Visual Studio Code
Các tiêu chí khác:
Tính thẩm mỹ
- Ứng dụng có giao diện đẹp, dễ sử dụng tâm lý thoải mái cuốn hút khách hàng
khi sử dụng.
Tính logic
- Đối với nhà quản trị có thể cập nhật, thêm xóa sửa đổi thơng tin liên quan đến
mặt hàng và các vấn đề khác. Nhận và trả lời ý kiến về phía khách hàng.
- Ứng được sự liên kết logic giữa các màn hình để khách hàng có thể chuyển
màn hình một cách nhanh nhất và thuận tiện nhất, ....
Kế hoạch thực hiện:
Với thời gian thực hiện từ 01/09/2020 tới 31/12/2020, nhóm chia thành 6 sprint
với 2 giai đoạn cụ thể:
- Giai đoạn 1: Hoàn thiện ứng dụng với các chức năng dành cho người dùng
(đăng ký, đăng nhập, tìm kiếm cửa hàng, xem thơng tin cửa hàng, bình luận,
đánh giá cửa hàng, xem cửa hàng yêu thích, …) và các chức năng dành cho
người quản trị (quản lý cửa hàng, người dùng, bình luận, cửa hàng u thích).
Gồm 3 Sprint:
• Srpint 1: Khảo sát và nghiên cứu.
• Sprint 2: Phân tích thiết kế hệ thống, thiết kế chức năng và cơ sở dữ liệu
ứng dụng
• Sprint 3: Xây dựng các API, xây dựng giao diện và phát triển ứng dụng
để thực hiện các chức năng ở Sprint 2.
Sprint
Thời gian
Công việc
Sprint 1: Khảo
1/9/2020 – 15/9/2020
- Lựa chọn đề tài
sát, nghiên cứu
- Phát biểu bài toán.
- Khảo sát các ứng dụng
tương tự.
- Tìm hiểu về các
cơng nghệ sử dụng
trong khóa luận.
Sprint 2: Phân
16/9/2020 – 16/10/2020
- Phân tích, xác định chức
năng.
tích hệ thống
- Đặc tả chức năng.
- Vẽ lưu đồ.
- Xây dựng cơ sở dữ
liệu. - Thiết kế wire –
frames
Sprint 3: Phát
17/10/2020 – 10/11/2020
- Xây dựng giao diện
ứng dụng
triển ứng dụng
- Xây dựng API
- Hiện thực ứng dụng dựa
theo các tính năng đã phân
tích.
- Giai đoạn 2: Hoàn thiện ứng dụng, kiểm thử và hoàn thành báo cáo. Người dùng
có thể sử dụng dễ dàng và hiệu quả. Gồm 3 Sprint:
• Sprint 4: Tìm hiểu hệ thống gợi ý cửa hàng, chatbot và ứng dụng. •
Sprint 5: Kiểm thử chức năng.
• Sprint 6: Hồn thành báo cáo.
Sprint
Thời gian
Cơng việc
Sprint 4: Tìm
11/11/2020 – 10/12/2020
- Nghiên cứu bài tốn xử
hiểu và ứng
dụng
lí ngơn ngữ tự nhiên.
- Nghiên cứu xây dựng
chatbot.
Sprint 5: Kiểm
11/12/2020 – 18/12/2020
của ứng dụng
thử chức năng
Sprint 6: Hoàn
- Kiểm thử các chức năng
19/12/2020 – 31/12/2020
- Hồn thành báo cáo
khóa luận
thành báo cáo
Họ và tên
Cơng việc chung
Cơng việc cá nhân
Dương Thạnh Tín
- Tìm hiểu đề tài
- Back-end
- Khảo sát thực tế
- Xây dựng các API
- Tìm hiểu cơng nghệ
- Tìm hiểu và xây
- Đặc tả chức năng
dựng chatbot
- Phân tích thiết kế
- Đánh giá và đóng góp
- Vẽ lưu đồ
ý kiến cho Front-end
- Đóng góp ý kiến
Tạ Quốc Khánh
- Tìm hiểu ý tưởng cho
ứng dụng
- Front-end
- Xây dựng giao diện
ứng dụng
- Tìm hiểu và xây
dựng với Google Map
- Đánh giá và đóng góp
ý kiến cho Back-end
Xác nhận của CBHD
TP. HCM, ngày 1 tháng 9 năm 2020
(Ký tên và ghi rõ họ tên)
MỤC LỤC
TÓM TẮT KHÓA LUẬN ..........................................................................................1
Chương 1. GIỚI THIỆU CHUNG ........................................................................2
Lý do chọn đề tài ...........................................................................................2
năng mới/ khác biệt...............................................................................3
nghiên cứu ....................................................................................4
cứu .......................................................................................5
Tính
Đối tượng
Phạm vi nghiên
Phương pháp nghiên
cứu ...............................................................................5 Chương 2. KIẾN THỨC NỀN
TẢNG..................................................................6
Tổng quan về mơ hình
MVC.........................................................................6 2.1.1. Khái
niệm ............................................................................................6 2.1.2. Cấu trúc mơ
hình MVC.......................................................................6 2.1.3. Tại sao dùng mơ hình
MVC................................................................7
Tổng quan về
Nodejs.....................................................................................9 2.2.1. Giới
thiệu.............................................................................................9 2.2.2. Tạo sao chọn
Nodejs để phát triển server .........................................10 2.2.3. Các đặc tính của
Nodejs....................................................................10 2.2.4. Áp dụng vào đề
tài.............................................................................11
Hệ quản trị cơ sở dữ liệu
MongoDB ...........................................................11 2.3.1. Giới
thiệu...........................................................................................11 2.3.2. Ưu điểm của
MongoDB ....................................................................12 2.3.3. Nhược điểm của
MongoDB ..............................................................12
Elasticsearch ................................................................................................13 2.4.1.
Khái niệm Elasticsearch ....................................................................13
2.4.2. Cách hoạt động của Elasticsearch .....................................................13 2.4.3.
Ưu điểm và nhược điểm của Elasticsearch .......................................14
Một
số khái niệm cơ bản trong Elasticsearch....................................15
Puppeteer
.....................................................................................................16
2.5.1. Giới thiệu...........................................................................................16 2.5.2.
Những chức năng của Puppeteer.......................................................17 2.5.3. Một
số khái niệm cơ bản ...................................................................17
ReactJs.........................................................................................................19
2.6.1. Giới thiệu...........................................................................................19 2.6.2.
Những khái niệm cơ bản ...................................................................20 2.6.3. Ưu
nhược điểm của Reactjs ..............................................................23
NextJs
..........................................................................................................24
2.7.1. Giới thiệu...........................................................................................24 2.7.2.
Tại sao cần Server Side Rendering (SSR).........................................25
Google
Map
API..........................................................................................25
2.8.1. Giới thiệu...........................................................................................25 2.8.2.
Một số ứng dụng................................................................................26
Flask.............................................................................................................26
Giới thiệu...........................................................................................27
Ưu điểm của Flask.............................................................................27
Chương 3. TÌM HIỂU VÀ LỰA CHỌN CƠNG NGHỆ ỨNG DỤNG
CHATBOT ...........................................................................................................28
Tìm hiểu về chatbot .....................................................................................28
3.1.1. Chatbot là gì?.....................................................................................28
3.1.2. Tính ứng dụng ...................................................................................29 3.1.3.
Xu hướng phát triển...........................................................................30
Tìm hiểu
về Facebook Messenger...............................................................31
Tổng
quan..........................................................................................31 3.2.2. Đánh
giá.............................................................................................32
Chatbot
Facebook ........................................................................................33 3.3.1. Giới thiệu
về Chatbot Facebook........................................................33 3.3.2. Cách hoạt
động..................................................................................34 3.3.3. Một số khái niệm
cơ bản ...................................................................34
Áp dụng công nghệ vào
chatbot ..................................................................35 3.4.1. Facebook
Api ....................................................................................35 3.4.2. Facebook Graph
Api .........................................................................36 3.4.3. Nhận dạng thực
thể............................................................................37
Wit.ai ...........................................................................................................39
Giới thiệu...........................................................................................39
Understanding ...................................................................................40
Intent..................................................................................................40
Entities...............................................................................................41
Utterances..........................................................................................43
Hướng dẫn cài đặt Build Facebook Messenger Bot với Nodejs và deploy lên
Heroku.............................................................................................................44
Giới thiệu...........................................................................................44
Thực hiện...........................................................................................44
Chương 4. TÌM HIỂU VÀ ÁP DỤNG THUẬT TOÁN PHÂN LOẠI ĐÁNH
GIÁ ...........................................................................................................52
Giới thiệu .....................................................................................................52
Một số khái niệm cơ bản .............................................................................52
Mơ
hình túi từ (bag-of-words)...........................................................52
TF-
IDF...............................................................................................54 4.2.3. Naive
Bayes.......................................................................................55
Xây dựng phân loại
đánh giá.......................................................................56 Chương 5. XÂY DỰNG HỆ
THỐNG ................................................................60
Xây dựng kiến trúc hệ
thống .......................................................................60 5.1.1. Kiến trúc hệ thống Website
...............................................................60 5.1.2. Kiến trúc hệ thống
ChatBot...............................................................61
Phân tích thiết kế hệ
thống ..........................................................................63
Sơ đồ use
case ...................................................................................63
lớp ...........................................................................................84
kế CSDL ...............................................................86
web .......................................................................95
web ....................................................95
web..........................................................96
Sơ đồ
Phân tích và thiết
Thiết kế giao diện trang
Sơ đồ thiết kế giao diện trang
Danh sách giao diện trang
Mô tả chi tiết giao diện trang
web...................................................100 5.4. Thiết kế giao diện chat
bot ........................................................................143 5.4.1. Danh sách giao diện chat
bot...........................................................143 5.4.2. Mô tả chi tiết giao diện chat
bot......................................................146 5.5. Sơ đồ kịch bản
chatbot ..............................................................................166
Chương 6. KẾT LUẬN, HƯỚNG PHÁT TRIỂN ............................................167
Kết quả đạt được........................................................................................167
điểm .....................................................................................................167
điểm ...............................................................................................167
Ưu
Nhược
Hướng phát
triển........................................................................................168
DANH MỤC HÌNH VẼ
Hình 2.1 - Mơ hình MVC............................................................................................6
Hình 2.2 - Cách NodeJs hoạt động so với những server khác ....................................9
Hình 2.3 - Sự phát triển và độ phổ biến của MongoDB ...........................................11
Hình 2.4 - Elasticsearch ............................................................................................13
Hình 2.5 - Cơ chế hoạt động của Elasticsearch ........................................................14
Hình 2.6 - Sơ đồ đơn giản của cluster trong Elasticsearch .......................................15
Hình 2.7 - Puppeteer .................................................................................................16
Hình 2.8 - Cơ chế của DOM trong Puppeteer...........................................................18
Hình 2.9 - Reactjs......................................................................................................19
Hình 2.10 - Vịng đời component reactjs..................................................................22
Hình 2.11 - Nextjs.....................................................................................................24
Hình 2.12 - Flask.......................................................................................................26
Hình 3.1 - Cách thức chatbot hoạt động ...................................................................28
Hình 3.2 - Lượng người sử dụng Facebook Messenger theo thời gian ....................32
Hình 3.3 - Chatbot Facebook Messenger..................................................................33
Hình 3.4 - Cách hoạt động của Chatbot Facebook Messenger.................................34
Hình 3.5 - Graph API................................................................................................36
Hình 3.6 - Facebook API ..........................................................................................37
Hình 3.7 - Giao diện Wit.ai.......................................................................................38
Hình 3.8 - Cơng nghệ của Wit.ai...............................................................................40
Hình 3.9 - Understanding wit.ai................................................................................40
Hình 3.10 - Intent ......................................................................................................41
Hình 3.11 - Entities...................................................................................................41
Hình 3.12 - Chi tiết trong một Entities......................................................................42
Hình 3.13 - Utterances ..............................................................................................43
Hình 3.14 - Tạo trang Fanpage Facebook.................................................................44
Hình 3.15 - Thêm nút gửi tin nhắn cho Fanpage ......................................................45
Hình 3.16 - Tạo ứng dụng trên Facebook developer ................................................45
Hình 3.17 - Cập nhật code vào index.js....................................................................46
Hình 3.18 - Mã truy cập trang...................................................................................46
Hình 3.19 - Cấu trúc file Procfile để chạy trên Heroku ............................................47
Hình 3.20 - Khởi tạo app trên Heroku ......................................................................47
Hình 3.21 - Cách push code lên Heroku ...................................................................48
Hình 3.22 - Ứng dụng được khởi tạo trên Facebook developer ...............................49
Hình 3.23 - Thêm trang Fanpage vào ứng dụng .......................................................49
Hình 3.24 - Đăng kí những chức năng Webhook vào Fanpage ................................50
Hình 3.25 - Kết nối thành cơng với Fanpage ............................................................50
Hình 3.26 - Ứng dụng trên Wit.ai .............................................................................51
Hình 3.27 - Danh sách chức năng của Wit.ai............................................................51
Hình 4.1 - Dữ liệu đầu vào để traian model..............................................................57
Hình 4.2 - Xây dựng mơ hình và kết quả..................................................................59
Hình 4.3 - Tìm những nhãn được gán sai .................................................................59
Hình 5.1 - Kiến trúc hệ thống website ......................................................................60
Hình 5.2 - Kiến trúc hệ thống chatbot.......................................................................61
Hình 5.3 - Biểu đồ use case người sử dụng mức tổng quát ......................................63
Hình 5.4 - Biểu đồ use case quản trị viên mức tổng quát .........................................64
Hình 5.5 - Biểu đồ use case đối tác mức tổng quát...................................................64
Hình 5.6 - Biểu đồ lớp...............................................................................................84
Hình 5.7 - Sơ đồ thiết kế giao diện web....................................................................95
Hình 5.8 - Giao diện đăng ký..................................................................................100
Hình 5.9 - Giao diện đăng nhập ..............................................................................101
Hình 5.10 - Giao diện trang chủ..............................................................................102
Hình 5.11 - Giao diện tìm kiếm nhanh....................................................................105
Hình 5.12 - Giao diện bộ lọc tìm kiếm ...................................................................107
Hình 5.13 - Giao diện quán ăn gần bạn...................................................................109
Hình 5.14 - Giao diện chi tiết quăn ăn ....................................................................111
Hình 5.15 - Giao diện giới thiệu .............................................................................114
Hình 5.16 - Giao diện FAQ.....................................................................................115
Hình 5.17 - Giao diện liên hệ ..................................................................................116
Hình 5.18 - Giao diện trang cá nhân .......................................................................117
Hình 5.19 - Giao diện danh sách bình luận.............................................................119
Hình 5.20 - Giao diện danh sách qn ăn u thích ...............................................120
Hình 5.21 - Giao diện thay đổi thơng tin cá nhân ...................................................121
Hình 5.22 - Giao diện đổi mật khẩu........................................................................122
Hình 5.23 - Giao diện kích hoạt tài khoản ..............................................................123
Hình 5.24 - Giao diện quên mật khẩu .....................................................................124
Hình 5.25 - Giao diện đổi mật khẩu mới ................................................................125
Hình 5.26 - Giao diện đăng nhập của quản trị viên ................................................126
Hình 5.27 - Giao diện thống kê...............................................................................127
Hình 5.28 - Giao diện quản lý danh mục ................................................................128
Hình 5.29 - Giao diện quản lý quán ăn ...................................................................129
Hình 5.30 - Giao diện chi tiết quán ăn ....................................................................130
Hình 5.31 - Giao diện chỉnh sửa quán ăn................................................................131
Hình 5.32 - Giao diện thêm mới quán ăn................................................................132
Hình 5.33 - Giao diện quản lý khu vực...................................................................133
Hình 5.34 - Giao diện quản lý khách hàng .............................................................134
Hình 5.35 - Giao diện chi tiết khách hàng ..............................................................135
Hình 5.36 - Giao diện quản lý đối tác .....................................................................136
Hình 5.37 - Giao diện chi tiết đối tác ......................................................................137
Hình 5.38 - Giao diện quản lý đặt bàn của quán ăn đối tác ....................................138
Hình 5.39 - Giao diện đăng nhập đối tác ................................................................139
Hình 5.40 - Giao diện quản lý cửa hàng dành cho đối tác ......................................140
Hình 5.41 - Giao diện danh sách đặt bàn dành cho đối tác.....................................141
Hình 5.42 - Giao diện thông tin chi tiết cửa hàng của đối tác ................................141
Hình 5.43 - Giao diện chỉnh sửa cửa hàng của đối tác ...........................................142
Hình 5.44 - Giao diện bắt đầu .................................................................................146
Hình 5.45 - Giao diện menu chính ..........................................................................147
Hình 5.46 - Giao diện menu hướng dẫn..................................................................148
Hình 5.47 - Giao diện menu chức năng ..................................................................149
Hình 5.48 - Giao diện gợi ý hơm nay cho bạn ........................................................151
Hình 5.49 - Giao diện điạ chỉ liên hệ ......................................................................152
Hình 5.50 - Giao diện danh sách quận ....................................................................153
Hình 5.51 - Giao diện danh sách quận trung tâm....................................................154
Hình 5.52 - Giao diện danh sách quận xunh quanh ................................................155
Hình 5.53 - Giao diện cửa hàng bạn u thích........................................................156
Hình 5.54 - Giao diện cửa hàng nổi bật ..................................................................157
Hình 5.55 - Giao diện danh sách danh mục ............................................................158
Hình 5.56 - Giao diện danh sách quán ăn theo quốc gia.........................................159
Hình 5.57 - Giao diện danh sách top quán ăn .........................................................160
Hình 5.58 - Giao diện danh sách quán ăn đánh giá nhiều nhất...............................161
Hình 5.59 - Giao diện danh sách quăn ăn có điểm đánh giá cao nhất ....................162
Hình 5.60 - Giao diện đặt bàn .................................................................................163
Hình 5.61 - Giao diện danh sách cửa hàng .............................................................165
Hình 5.62 - Sơ đồ kịch bản chatbot.........................................................................166
DANH MỤC BẢNG
Bảng 5.1 - Danh sách actors......................................................................................65
Bảng 5.2 - Danh sách use cases ................................................................................67
Bảng 5.3 - Bảng đặc tả use-case “Đăng kí” ..............................................................68
Bảng 5.4 - Bảng đặc tả use-case “Đăng nhập” .........................................................69
Bảng 5.5 - Bảng đặc tả use-case “Quản lý người dùng”...........................................70
Bảng 5.6 - Bảng đặc tả use-case “Quản lý cửa hàng”...............................................71
Bảng 5.7 - Bảng đặc tả use-case “Quản lý danh mục cửa hàng”..............................73
Bảng 5.8 - Bảng đặc tả use-case “Quản lý địa chỉ” ..................................................74
Bảng 5.9 - Bảng đặc tả use-case “Quản lý bình luận cửa hàng”...............................75
Bảng 5.10 - Bảng đặc tả use-case “Quản lý cửa hàng yêu thích”.............................76
Bảng 5.11 - Bảng đặc tả use-case “Quản lý quận” ...................................................77
Bảng 5.12 - Bảng đặc tả use-case “Quản lý đặt bàn” ...............................................78
Bảng 5.13 - Bảng đặc tả use-case “Xem thông tin cá nhân” ....................................78
Bảng 5.14 - Bảng đặc tả use-case “Chỉnh sửa thông tin cá nhân”............................79
Bảng 5.15 - Bảng đặc tả use-case “Tìm kiếm cửa hàng”..........................................80
Bảng 5.16 - Bảng đặc tả use-case “Tìm kiếm cửa hàng với bộ lọc”.........................80
Bảng 5.17 - Bảng đặc tả use-case “Xem thông tin cửa hàng” ..................................81
Bảng 5.18 - Bảng đặc tả use-case “Bình luận cửa hàng”..........................................82
Bảng 5.19 - Bảng đặc tả use-case “Yêu thích cửa hàng”..........................................82
Bảng 5.20 - Bảng đặc tả use-case “Nhắn tin với hệ thống thông qua Chatbot” .......83
Bảng 5.21 - Các lớp của sơ đồ lớp ............................................................................85
Bảng 5.22 - Các đối tượng và thuộc tính của đối tượng ...........................................87
Bảng 5.23 - Bảng ‘User’ ...........................................................................................88
Bảng 5.24 - Bảng ‘Store’ ..........................................................................................91
Bảng 5.25 - Bảng ‘Category’ ....................................................................................91
Bảng 5.26 - Bảng ‘Address’......................................................................................92
Bảng 5.27 - Bảng ‘Comment’...................................................................................93
Bảng 5.28 - Bảng Hóa đơn tổng................................................................................93
Bảng 5.29 - Bảng ‘District’.......................................................................................94
Bảng 5.30- Bảng ‘Reserve’.......................................................................................94
Bảng 5.31 - Bảng danh sách giao diện......................................................................99
Bảng 5.32 - Bảng mô tả thành phần của giao diện đăng ký....................................101
Bảng 5.33 - Bảng mô tả thành phần của giao diện đăng nhập................................101
Bảng 5.34 - Bảng mô tả thành phần của giao diện trang chủ .................................105
Bảng 5.35 - Bảng mô tả thành phần của giao diện tìm kiếm nhanh .......................106
Bảng 5.36 - Bảng mơ tả thành phần của giao diện bộ lọc tìm kiếm .......................108
Bảng 5.37 - Bảng mô tả thành phần của giao diện quán ăn gần bạn ......................110
Bảng 5.38 - Bảng mô tả thành phần của giao diện chi tiết quăn ăn........................113
Bảng 5.39 - Bảng mô tả thành phần của giao diện giới thiệu .................................115
Bảng 5.40 - Bảng mô tả thành phần của giao diện FAQ ........................................116
Bảng 5.41 - Bảng mô tả thành phần của giao diện liên hệ......................................116
Bảng 5.42 - Bảng mô tả thành phần của giao diện trang cá nhân...........................118
Bảng 5.43 - Bảng mô tả thành phần của giao diện danh sách bình luận ................119
Bảng 5.44 - Bảng mô tả thành phần của giao diện danh sách quán ăn yêu thích ...120
Bảng 5.45 - Bảng mô tả thành phần của giao diện thay đổi thông tin cá nhân......121
Bảng 5.46 - Bảng mô tả thành phần của giao diện đổi mật khẩu ...........................122
Bảng 5.47 - Bảng mơ tả thành phần của giao diện kích hoạt tài khoản..................123
Bảng 5.48 - Bảng mô tả thành phần của giao diện quên mật khẩu.........................124
Bảng 5.49 - Bảng mô tả thành phần của giao diện đổi mật khẩu mới ....................125
Bảng 5.50 - Bảng mô tả thành phần của giao diện đăng nhập của quản trị viên ....126
Bảng 5.51 - Bảng mô tả thành phần của giao diện thống kê ..................................128
Bảng 5.52 - Bảng mô tả thành phần của giao diện quản lý danh mục....................129
Bảng 5.53 - Bảng mô tả thành phần của giao diện quản lý quán ăn.......................129
Bảng 5.54 - Bảng mô tả thành phần của giao diện chi tiết quán ăn........................130
Bảng 5.55 - Bảng mô tả thành phần của giao diện chỉnh sửa quán ăn ...................131
Bảng 5.56 - Bảng mô tả thành phần của giao diện thêm mới quán ăn ...................132
Bảng 5.57 - Bảng mô tả thành phần của giao diện quản lý khu vực.......................133
Bảng 5.58 - Bảng mô tả thành phần của giao diện quản lý khách hàng .................134
Bảng 5.59 - Bảng mô tả thành phần của giao diện chi tiết khách hàng..................136
Bảng 5.60 - Bảng mô tả thành phần của giao diện quản lý đối tác.........................136
Bảng 5.61 - Bảng mô tả thành phần của giao diện chi tiết đối tác..........................138
Bảng 5.62 - Bảng mô tả thành phần của giao diện quản lý đặt bàn của quán ăn đối
tác
............................................................................................................................138
Bảng 5.63 - Bảng mô tả thành phần của giao diện đăng nhập đối tác ....................139
Bảng 5.64 - Bảng mô tả thành phần của giao diện quản lý cửa hàng dành cho đối
tác .................................................................................................................................140
Bảng 5.65 - Bảng mô tả thành phần của giao diện thông tin chi tiết cửa hàng của đối
tác
............................................................................................................................141
Bảng 5.66 - Bảng mô tả thành phần của giao diện chỉnh sửa cửa hàng của đối tác
.................................................................................................................................142
Bảng 5.67 - Bảng danh sách giao diện chatbot.......................................................145
Bảng 5.68 - Bảng mô tả thành phần của giao diện bắt đầu.....................................146
Bảng 5.69 - Bảng mô tả thành phần của giao diện menu chính..............................147
Bảng 5.70 - Bảng mơ tả thành phần của giao diện menu chức năng ......................150
Bảng 5.71 - Bảng mô tả thành phần của giao diện gợi ý hôm nay cho bạn............151
Bảng 5.72 - Bảng mô tả thành phần của giao diện điạ chỉ liên hệ..........................152
Bảng 5.73 - Bảng mô tả thành phần của giao diện danh sách quận........................153
Bảng 5.74 - Bảng mô tả thành phần của giao diện danh sách quận trung tâm .......154
Bảng 5.75 - Bảng mô tả thành phần của giao diện danh sách quận xunh quanh....155
Bảng 5.76 - Bảng mô tả thành phần của giao diện cửa hàng bạn yêu thích ...........156
Bảng 5.77 - Bảng mơ tả thành phần của giao diện cửa hàng nổi bật......................157
Bảng 5.78 - Bảng mô tả thành phần của giao diện danh mục.................................158
Bảng 5.79 - Bảng mô tả thành phần của giao diện quán ăn theo quốc gia .............159
Bảng 5.80 - Bảng mô tả thành phần của giao diện danh sách top quán ăn.............160
Bảng 5.81 - Bảng mô tả thành phần của giao diện danh sách quán ăn đánh giá nhiều
nhất..........................................................................................................................161
Bảng 5.82 - Bảng mô tả thành phần của giao diện danh sách quăn ăn có điểm đánh giá
cao nhất..............................................................................................................162 Bảng
5.83 - Bảng mơ tả thành phần của giao diện đặt bàn.....................................164 Bảng
5.84 - Bảng mô tả thành phần của giao diện danh sách cửa hàng .................165
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
Từ đầy đủ
Giải thích
API
Application Programming Interface
Giao diện lập trình ứng dụng
CSDL
Cơ sở dữ liệu
Cơ sở dữ liệu cho ứng dụng
HTTP
HyperText Transfer Protocol
Giao thức truyền siêu văn bản
JSON
JavaScript Object Notation
Định dạng trao đổi dữ liệu
AI
Artifical Intelligence
Trí tuệ nhân tạo
MVC
Model-View-Controller
Mơ hình lập trình
NoSQL
Non-Relational Database
Cơ sở dư liệu phi quan hệ
CRUD
Create, Read, Update And Delete
4 tính năng quan trọng nhất
để làm việc với Database
SEO
Search Engine Optimization
Tối ưu hóa cơng cụ tìm kiếm
SSR
Server-side Rendering
Hoạt động bằng cách chuyển
đổi dữ liệu, thông tin trên máy
chủ thành các tệp HTML cho
trình
duyệt có thể hiểu và sử
dụng được.
SPA
Single Page Application
Ứng dụng web hoặc trang web
tương tác với người dùng bằng
cách tự động viết lại trang web
hiện tại với dữ liệu mới từ
máy chủ web
UI
User Interface
Giao diện người dùng
TĨM TẮT KHĨA LUẬN
Khóa luận “XÂY DỰNG ỨNG DỤNG ĐÁNH GIÁ VÀ TƯ VẤN HỖ TRỢ LỰA
CHỌN CỬA HÀNG ĂN UỐNG BẰNG CHATBOT” gồm 06 chương:
Chương 1: Giới thiệu về đề tài, đưa ra các điểm nổi bật so với các ứng dụng trước.
Tiếp đến là đề xuất các giải pháp để giải quyết các vấn đề đã đặt ra. Ngoài ra, chương 1
cũng đề cập đến đối tượng nghiên cứu, phạm vi đề tài, phương pháp nghiên cứu.
Chương 2: Trình bày các kiến thức nền tảng liên quan đến ứng dụng.
Chương 3: Trình bày chi tiết kiến thức, áp dụng thuật tốn và cơng nghệ liên quan đến
Chatbot Facebook.
Chương 4: Trình bày thuật tốn phân loại đánh giá về quán ăn của người sử dụng. Các
kiến thức cần nắm, áp dụng và đánh giá.
Chương 5: Trình bày chi tiết quy trình xây dựng hệ thống, từ xác định và phân tích u
cầu bài tốn cho đến xây dựng CSDL, cuối cùng là xây dựng giao diện cho úng dụng.
Chương 6: Kết luận, rút ra được các ưu nhược điểm của ứng dụng và hướng phát triển
trong tương lai.