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

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

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 (359.79 KB, 69 trang )

ĐẠ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



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.


×