Tải bản đầy đủ (.pdf) (80 trang)

Đồ án ứng dụng chatbot hỗ trợ tư vấn lựa chọn bất động sản

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 (2.61 MB, 80 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

Nguyễn Quang Gia Bảo - 19521251
Hồ Trung Nhân - 19520797
ỨNG DỤNG CHATBOT
HỖ TRỢ TƯ VẤN LỰA CHỌN BẤT ĐỘNG SẢN
BUIDING CHATBOT APPLICATION
TO SUPPORT CONSULTING REAL ESTATE SELECTION

GIẢNG VIÊN HƯỚNG DẪN
Thạc sĩ: Trần Anh Dũng

TP. HỒ CHÍ MINH, 2022


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày 15 tháng 6 năm 2022

ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng ứng dụng Chatbot hỗ trợ tư vấn lựa chọn bất động sản
TÊN ĐỀ TÀI (TIẾNG ANH): Building Chatbot application to support consulting


estate selection
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 7/3/2022 đến ngày 18/06/2022.
Sinh viên thực hiện:
Nguyễn Quang Gia Bảo – 19521251
Hồ Trung Nhân– 19520797
Nội dung đề tài
1. Lý do chọn đề tài:
Bất Động Sản chưa bao giờ ngành hết “hot” trên thị trường Thế Giới nói
chung và Việt Nam nói riêng. Bất Động Sản luôn là điểm đến thu hút rất nhiều nhà đầu
tư với mong muốn làm giàu. Ngành đầu tư Bất Động Sản là nơi sản sinh ra nhiều tỷ phú
nhất, đây là ngành giúp bạn nhanh chóng kiếm được số tiền khổng lồ nếu bạn có chiến
lược tốt. Vì thế ngành Bất động Sản luôn là ngành thu hút được nhiều nhân tài tham gia.
Với người bán, Bất động sản hiện đang được nhiều người săn đón, đây là một công cụ
kiếm tiền một hiệu quả, bị động mà bạn khơng cần phải bỏ nhiều cơng sức.
Tình trạng hiện nay:
+ Một số chatbot trả lời bằng cách spam tin nhắn gây lost focus người dùng.
+ Một số chatbot khác lại lựa chọn trả lời toàn bộ nội dung về một chủ đề, trong
khi thực tế người dùng không cần nhiều thơng tin đến thế.
+ Chưa có hoặc rất ít cơng cụ hỗ trợ mơ tả trực quan sinh động
+ Khó khăn hoặc mất thời gian trong việc tìm kiếm thơng cần thiết
+ Mất tập trung vì các lý do khác


Chính vì vậy việc tìm kiếm mua bán, th bất động sản, là một việc hết sức cần
thiết để người bán/cho thuê / mua được thuận lợi. Để đá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 và tích hợp chatbot hỗ trợ tự động tư vấn bất động sản.
2. Mục tiêu: bao gồm 2 mục tiêu chính:
• 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ìm kiếm khơng cần thiết.
+ Cung cấp thông tin bất động sản theo khu vực.
+ Tư vấn phong thủy đơn giản.
+ Tìm hiểu về các tin tức mới liên quan đến bất động sản
+ Áp dụng xử lý ngôn ngữ tự nhiên để giao tiếp
• Xây dựng trang web hỗ trợ chatbot: dành cho những tương tác bị giới hạn bởi API
chatbot. Ví dụ như:
+ Tìm kiếm thơng tin khu đất mong muốn theo các tiêu chí của bản thân.
+ Đăng nhập, tạo tài khoản để lưu bài viết ưu thích
+ Đăng bài viết liên quan đến bất động sản
+ Xem các bài đăng bất động sản
+ Xem các khu bất động sản mới được hệ thống gợi ý
+ Xem phong thuỷ khu đất theo năm sinh,…
+ Có phần admin để hỗ trợ quản lí tài khoản người dung, tạo tin tức, quản lí danh
mục các bài viết, …
3. Phạm vi:
Phạm vi mơi trường: Web.
Phạm vi chức năng:


Đối với chatbot:

+ Có khả năng cung cấp dữ liệu về bất động sản dựa trên một số yêu cầu của người
dùng
+ Cung cấp những tin tức mới nhất cho người dùng
+ Cung có cho người dùng một số tiện ích liên quan đến các vấn đề phong thủy,
tâm linh.



+ Chatbot hiểu được tương đối ngơn ngữ tự nhiên.


Đối với ứng dụng Web:

+ Hiển thị các khu đất theo dạng danh sách, gom nhóm các bất động sản cho người
dùng tiện theo dõi, tìm kiếm.
+ Cung cấp chức năng tìm tiếm, phân loại theo yêu cầu người dùng.
+ Giúp người dùng đăng nhập, quản lí thơng tin cá nhân, các bài viết yêu thích,
cung cấp tính năng đăng bài để người dùng trao đổi thông tin
+ Giúp cho người quản lí quản lí các bài đăng, quản lí số lượng người đăng nhập sử
dụng trang web
+ Phát triển thêm web quản trị viên và một số tính năng liên quan.
+ Gợi ý các bài viết dựa thời gian đăng bài, dựa trên khu vực, gợi ý các tin tức mới
do quản trị viên cung cấp
+ Tư vấn phong thuỷ dựa trên thông tin người dùng cung cấp
4. Đối tượng sử dụng:
+

Mua bán bất động sản không chuyên.

+

Dành cho học sinh, sinh viên, người lào động có dự định thuê nhà.

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 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 cách thức xây dựng Dialogflow Chatbot.
+ Xây dựng RESTful API để thao tác với dữ liệu.
+ Xây dựng giao diện Web để 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
6. Nền tảng công nghệ:
+ Frontend: Reactjs
+ Backend: NodeJS.


+ Database: MongoDB
+ Dialogflow CX
+ Facebook Messenger
+ IDE: Visual Studio Code
7. Kết quả mong đợi:
+ Chatbot có khả năng phản hồi nhanh và chính xác ở mức cao.
+ Trang web có khả năng scale và hoạt động tốt khi số lượng người dùng tăng.
8. Hướng phát triển của đề tài:
- Tối ưu hóa khả năng SEO
- Thêm tính năng năng giám sát nội dung kết hợp giữa người và AI .
- Thêm dashboard thống kê, phân tích nhiều dữ liệu hơn cho người dùng.
9. Kế hoạch làm việc:
Thời gian thực hiện từ ngày 7/3/2022 đến ngày 15/06/2022.
Nhóm chia thành 2 giai đoạn cụ thể:
Giai đoạn 1: Hoàn thiện các chức năng cơ bản. Giai đoạn này gồm 2 sprint:
Thời gian: 7/3/2022 – 15/06/2022
Sprint 1: Tìm hiểu cơng nghệ.
Sprint 2: Phân tích u cầu và chức năng, điều chỉnh hồn thiện CSDL, RESTful API,

wireframe giao diện.
Sprint 3: Xây dựng và phát triển ứng dụng để thực hiện các chức năng
Sprint

Thời gian

Sprint 1

7/3/2022– 18/3 - Lựa chọn đề tài.
/2022

Cơng việc
- Tìm hiểu công nghệ.
- Khảo sát các ứng dụng liên quan & nhu cầu người sử dụng.
- Phân tích yêu cầu và chức năng (conceptual).
- Viết tài liệu đặc tả (conceptual)

Sprint 2

19/3/2022– 9/4 - Xây dựng module, chỉnh sửa CSDL
/2022

- Chỉnh sửa DialogFlow Chatbot
- Xây dựng Backend Server.
- Tìm và fix lỗi.


Sprint 3

9/4/2022 – 30/ - Chỉnh sửa và hoàn thiện thêm các tính năng của chatbot

4/2022

- Wireframe giao diện.
- Xây dựng giao diện Web.
- Triển khai lần 1
- Tìm và fix lỗi.

Giai đoạn 2: Hoàn thiện các chức năng trong giai đoạn 1, đồng thời xây dựng các chức
nâng cao như xây dựng tìm kiếm, phân loại khu đất trên web.
Giai đoạn này gồm 3 sprint:
Sprint 4: Hoàn thiện các chức năng ở giai đoạn 1, kết nối với dialogflow.
Sprint 5: Xây dựng các chức năng mở rộng.
Sprint 6: Triển khai và viết báo cáo.
Sprint

Thời gian

Cơng việc

Sprint 4

1/5/2022–

- Hồn thiện các chức năng đã có ở giai đoạn 1.

15/5/2022

- Tạo webhook và kết nối với dialogflow
- Kết nối chatbot với facebook messenger


Sprint 5

16/5/2022-

- Hoàn thiện phần trang web cho người dung có tài khoản và

29/05/2022

người quản lí.
- Thêm tính năng tin tức.
- Hồn thiện xử lý ngơn ngữ tự nhiên

Sprint 6

30/5/2022

- Kiểm tra lỗi

– 18/6/2022

- Triển khai sản phẩm
- Viết báo cáo

9. Phân cơng cơng việc
Cơng việc
Cơng việc

- Phân tích yêu cầu, chức năng.

chung


- Xây dựng CSDL, RESTful API
- Wireframe giao diện
- Tìm hiểu Xử lí Ngơn Ngữ Tự Nhiên

Cơng việc cá
nhân

Nguyễn Quang Gia Bảo

Hồ Trung Nhân

- Xây dựng Dialogflow Chatbot.

- Backend: CSDL, RESTful API.


- Frontend: giao diện người
dùng.
- Xử lý ngôn ngữ tự nhiên.
Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)

TP.HCM,ngày 15 tháng 6 năm 2022


MỤC LỤC
TÓM TẮT ĐỒ ÁN ................................................................................................................ 1
GIỚI THIỆU CHUNG ......................................................................................... 2
Lý do chọn đề tài ........................................................................................................ 2

Tính năng mới/ khác biệt ............................................................................................ 2
Đối tượng nghiên cứu ................................................................................................. 2
Phạm vi nghiên cứu .................................................................................................... 3
Phương pháp thực hiện ............................................................................................... 4
KIẾN THỨC NỀN TẢNG................................................................................... 5
Tổng quan về kiến trúc mơ hình ................................................................................. 5
Khái niệm ............................................................................................................ 5
Cấu trúc mơ hình MVC ....................................................................................... 5
Mơ hình MVC trong ứng dụng Web ................................................................... 6
MERN Stack ............................................................................................................... 7
Giới thiệu............................................................................................................. 7
Tổng quan về Nodejs [1] ............................................................................................ 8
Giới thiệu............................................................................................................. 8
Những ứng dụng nên viết bằng Nodejs ............................................................... 8
Lý do sử dụng...................................................................................................... 9
ExpressJS .................................................................................................................... 9
Giới thiệu........................................................................................................... 10
Lợi ích ............................................................................................................... 10
Hệ quản trị cơ sở dữ liệu MongoDB [2, 3, 4]........................................................... 11
Giới thiệu........................................................................................................... 11


Ưu điểm của MongoDB .................................................................................... 12
ReactJS ..................................................................................................................... 13
Giới thiệu........................................................................................................... 13
Ưu điểm ............................................................................................................. 13
React Hook ........................................................................................................ 13
TÌM HIỂU VÀ LỰA CHỌN CƠNG NGHỆ ỨNG DỤNG CHATBOT .......... 15
Tìm hiểu về chatbot .................................................................................................. 15
Chatbot là gì? .................................................................................................... 15

Tính ứng dụng ................................................................................................... 15
Tìm hiểu về Facebook Messenger Chatbot .............................................................. 16
Tổng quan.......................................................................................................... 16
Đánh giá ............................................................................................................ 17
Giới thiệu về Chatbot Messenger ...................................................................... 17
Cách hoạt động .................................................................................................. 18
DialogFlow CX ................................................................................................. 18
Một số khái niệm cơ bản ................................................................................... 18
Áp dụng công nghệ vào chatbot ............................................................................... 19
Facebook Api .................................................................................................... 19
Facebook Graph Api ......................................................................................... 19
XÂY DỰNG HỆ THỐNG................................................................................. 21
Xây dựng kiến trúc hệ thống .................................................................................... 21
Kiến trúc hệ thống Website ............................................................................... 21
Kiến trúc hệ thống ChatBot............................................................................... 21
Phân tích thiết kế hệ thống ....................................................................................... 23
Sơ đồ use case ................................................................................................... 23


Sơ đồ dữ liệu ..................................................................................................... 42
Thiết kế giao diện trang web .................................................................................... 43
Sơ đồ thiết kế giao diện trang web .................................................................... 43
Mô tả chi tiết giao diện trang web ..................................................................... 44
Thiết kế giao diện chat bot ................................................................................ 57
Sơ đồ kịch bản Chatbot ..................................................................................... 58
Kết quả đạt được ............................................................................................... 60
KẾT LUẬN, HƯỚNG PHÁT TRIỂN ............................................................... 61
Ưu điểm .................................................................................................................... 61
Nhược điểm .............................................................................................................. 61
Kết quả đạt được ....................................................................................................... 61

Về mặt nghiên cứu: ........................................................................................... 61
Về mặt sản phẩm: .............................................................................................. 61
Hướng phát triển ....................................................................................................... 62
TÀI LIỆU THAM KHẢO ................................................................................................... 63


DANH MỤC HÌNH ẢNH

Hình 2.1.1-1 Mơ hình MVC .................................................................................................. 5
Hình 2.1.3-1 Mơ hình MVC trong lập trình Web .................................................................. 6
Hình 2.2.1-1 Thành phần của MERN Stack .......................................................................... 7
Hình 2.3.1-1 Kiến trúc của NodeJS ....................................................................................... 8
Hình 2.3.3-1 ExpressJS .......................................................................................................... 9
Hình 2.5.1-1 So sánh mức độ phổ biến của MongoDB ....................................................... 11
Hình 2.7.1-1 ReactJS ........................................................................................................... 13
Hình 2.7.3-1 React Hook Flow Diagram ............................................................................. 14
Hình 3.1.1-1. Cách thức hoạt động của chatbot ................................................................... 15
Hình 3.2.1-1. Lượng người sử dụng Facebook Messenger theo thời gian .......................... 16
Hình 3.2.3-1. Chatbot Facebook Messenger........................................................................ 17
Hình 3.2.4-1. Cách hoạt động của Chatbot liên kết với Messenger .................................... 18
Hình 3.3.2.1-1 - Graph API ................................................................................................. 19
Hình 3.3.2.2-2 – Facebopk API ........................................................................................... 20
Hình 4.1.1-1. Kiến trúc hệ thống của website ..................................................................... 21
Hình 4.2.1-1. Sơ Đồ Use Case ............................................................................................. 23
Hình 4.2.1-2. Sơ đồ module ................................................................................................. 41
Hình 4.2.3-1. Sơ đồ dữ liệu .................................................................................................. 42
Hình 4.3.1-1 Sơ đồ màn hình giao diện ............................................................................... 43
Hình 4.3.2-1 Trang chủ web. ............................................................................................... 44
Hình 4.3.2-2 Popup Đăng nhập ........................................................................................... 44
Hình 4.3.2-3 Popup Đăng ký ............................................................................................... 45



Hình 4.3.2-4 Giao diện Quên mật khẩu ............................................................................... 45
Hình 4.3.2-5 Giao diện bóng bóng chat (Trang chủ sau khi bật bong bóng chat) ............... 46
Hình 4.3.2-6 Trang hiển thị danh sách các post ................................................................... 47
Hình 4.3.2-7 Trang hiển thị danh sách các post. .................................................................. 48
Hình 4.3.2-8 Trang tìm kiếm phong thủy hướng nhà .......................................................... 49
Hình 4.3.2-9 Trang tìm kiếm phong thủy cải tạo nhà .......................................................... 49
Hình 4.3.2-10 Trang danh sách tin tức ................................................................................ 50
Hình 4.3.2-11 Trang chi tiết tin tức ..................................................................................... 50
Hình 4.3.2-12 Trang thơng tin giới thiệu ............................................................................. 51
Hình 4.3.2-13 Trang quản lí bài đăng yêu thích trên header ............................................... 52
Hình 4.3.2-14 Trang quản lí bài đăng u thích .................................................................. 52
Hình 4.3.2-15 Trang cập nhật thơng tin ............................................................................... 53
Hình 4.3.2-16 Trang đổi mật khẩu ....................................................................................... 53
Hình 4.3.2-17 Trang quản lí bài đăng của admin ................................................................ 54
Hình 4.3.2-18 Trang quản lí tài khoản ................................................................................. 54
Hình 4.3.2-19 Trang quản lí tin tức ..................................................................................... 55
Hình 4.3.2-20 Trang thêm tin tức ........................................................................................ 55
Hình 4.3.2-21 Trang quản lí thơng tin giới thiệu ................................................................. 56
Hình 4.3.3-1 Giao diện chatbot ............................................................................................ 57
Hình 4.3.4-1 Kịch bản cơ bản của Chatbot .......................................................................... 58
Hình 4.3.4-2 Tìm kiếm bất động sản ................................................................................... 58
Hình 4.3.4-3 Tư vấn phong thuỷ .......................................................................................... 59
Hình 4.3.4-4 Gợi ý tin tức mới nhất..................................................................................... 59


DANH MỤC BẢNG
Bảng 4.2.1-1. Danh sách actors ........................................................................................... 24
Bảng 4.2.1-2. Use case Đăng nhập ...................................................................................... 25

Bảng 4.2.1-3. Use case Đăng ký .......................................................................................... 27
Bảng 4.2.1-4. Use case Quên mật khẩu ............................................................................... 28
Bảng 4.2.1-5. Use case Xem bài viết bất động sản .............................................................. 28
Bảng 4.2.1-6. Use case Tìm kiếm bài đăng bất động sản .................................................... 29
Bảng 4.2.1-7. Use case Gợi ý bất động sản theo yêu cầu .................................................... 30
Bảng 4.2.1-8. Use case Tìm kiếm phong thủy, hướng nhà .................................................. 30
Bảng 4.2.1-9. Use case Gợi ý tin tức mới nhất .................................................................... 31
Bảng 4.2.1-10. Use case Xem tin tức................................................................................... 31
Bảng 4.2.1-11. Use case Đăng bài bất động sản .................................................................. 32
Bảng 4.2.1-12. Use case Thêm vào yêu thích ...................................................................... 33
Bảng 4.2.1-13. Use case Quản lí tin đăng yêu thích ............................................................ 34
Bảng 4.2.1-14. Use case Quản lí danh sách bài đăng .......................................................... 34
Bảng 4.2.1-15. Use case Xóa bài đăng ................................................................................ 35
Bảng 4.2.1-16. Use case Cập nhật thông tin cá nhân ........................................................... 36
Bảng 4.2.1-17. Use case Đổi mật khẩu ................................................................................ 36
Bảng 4.2.1-18. Use case Xem danh sách tài khoản ............................................................. 37
Bảng 4.2.1-19. Use case Xóa tài khoản ............................................................................... 37
Bảng 4.2.1-20. Use case Thay đổi phân quyền .................................................................... 38
Bảng 4.2.1-21. Use case Xem thông tin giới thiệu .............................................................. 39
Bảng 4.2.1-22. Use case Đăng tin tức .................................................................................. 39
Bảng 4.2.1-23. Use case Xóa tin tức .................................................................................... 40


Bảng 4.2.1-24. Use case Xem thông tin giới thiệu .............................................................. 40
Bảng 4.2.1-25. Use case Cập nhật thông tin giới thiệu........................................................ 41


DANH MỤC TỪ VIẾT TẮT
Từ viết tắt


Từ đầy đủ

Giải thích

API

Application Programming

Giao diện lập trình ứng dụng

Interface
CSDL

Cơ sở dữ liệu

Cơ sở dữ liệu cho ứng dụng
Các đoạn code đã được viết sẵn, cấu thành

Framework

nên một bộ khung và các thư viện lập trình
được đóng gói. Cung cấp các tính năng có
sẵn như mơ hình, API và các yếu tố khác để
tối giản cho việc phát triển các ứng dụng
web
HTTP

HyperText Transfer

Giao thức truyền siêu văn bản


Protocol
JSON

JavaScript Object Notation

Định dạng trao đổi dữ liệu
Tất cả các hoạt động khiến một hệ thống

Deploy

phần mềm sẵn sàng cho sử dụng
AI

Artifical Intelligence

Trí tuệ nhân tạo

MVC

Model-View-Controller

Mơ hình lập trình

NoSQL

Non Relational

Cơ sở dư liệu phi quan hệ


NLP

Natural Language

Xử lý ngơn ngữ tự nhiên

Processing
SEO

Search engine optimization

một quy trình nâng cao thứ hạng của website
trên các cơng cụ tìm kiếm giúp người dùng
có thể tìm thấy trang web dễ dàng hơn trên
bảng kết quả tìm kiếm.

UI

User interface

Nghĩa là giao diện người dùng. Hiểu một
cách đơn giản nhất thì UI bao gồm tất cả
những gì người dùng có thể nhìn thấy như:
màu sắc web, bố cục sắp xếp như thế nào,
web/app sử dụng fonts chữ gì, hình ảnh trên
web có hấp dẫn hay không,..


Bot


Internet bot

Chương trình máy tính được tạo ra cho mục
đích kĩ thuật như mô phỏng hoạt động người
dùng. Bots thường được sử dụng để chạy tự
động các task nhất định, nghĩa là khơng cần
chỉ thị của người dùng mà hồn toàn tự động.



TÓM TẮT ĐỒ ÁN
Đồ án “Xây dựng ứng dụng Chatbot hỗ trợ tư vấn bất động sản” 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 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 5: 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.

1


GIỚI THIỆU CHUNG
Lý do chọn đề tài
Bất Động Sản chưa bao giờ ngành hết “hot” trên thị trường Thế Giới nói chung và
Việt Nam nói riêng. Bất Động Sản ln là điểm đến thu hút rất nhiều nhà đầu tư với mong

muốn làm giàu. Ngành đầu tư Bất Động Sản là nơi sản sinh ra nhiều tỷ phú nhất, đây là
ngành giúp bạn nhanh chóng kiếm được số tiền khổng lồ nếu bạn có chiến lược tốt. Vì thế
ngành Bất động Sản luôn là ngành thu hút được nhiều nhân tài tham gia. Với người bán,
Bất động sản hiện đang được nhiều người săn đón, đây là một cơng cụ kiếm tiền một hiệu
quả, bị động mà bạn không cần phải bỏ nhiều cơng sức.
Tính năng mới/ khác biệt
Sau khi tham khảo một số chatbot hỗ trợ bất động sản hiện nay nhóm nhận thấy
các vấn đề sau:


Một số chatbot trả lời bằng cách spam tin nhắn gây lost focus người dùng.



Một số chatbot khác lại lựa chọn trả lời toàn bộ nội dung về một chủ đề, trong khi
thực tế người dùng không cần nhiều thông tin đến thế.



Chưa có hoặc rất ít cơng cụ hỗ trợ mơ tả trực quan sinh động



Khó khăn hoặc mất thời gian trong việc tìm kiếm thơng cần thiết



Mất tập trung vì các lý do khác
Chính vì vậy việc tìm kiếm mua bán, thuê bất động sản, là một việc hết sức cần


thiết để người bán/cho thuê / mua được thuận lợi. Để đá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 và tích hợp chatbot hỗ trợ tự động tư vấn bất động sản.
Về phần giao diện: Nhóm quyết định sử dụng tương tác chat từ người dùng là chủ
yếu, lấy hiểu ý nghĩa câu nói làm gốc thay vi làm hệ thống button menu chọn phức tạp.
Về phần chức năng:


Xây dựng tính năng chatbot



Thêm tính nag8 gới ý tin tức mới



Thêm chức năng gợi ý phong thuỷ
Đối tượng nghiên cứu
Khoá luận này hướng đến nghiên cứu các đối tượng sau:

2




Các công nghệ:
+ Front-end: ReactJS
+ Back-end: NodeJS.
+ Database: MongoDB
+ Dialogflow CX

+ Facebook Messenger
+ IDE: Visual Studio Code



Đối tượng trong phạm vị đề tài hướng đến:
+

Mua bán bất động sản không chuyên.

+

Dành cho học sinh, sinh viên, người lào động có dự định thuê nhà.

Phạm vi nghiên cứu
Phạm vi môi trường: Web.
Phạm vi chức năng:
• Đối với chatbot:
+ Có khả năng cung cấp dữ liệu về bất động sản dựa trên một số yêu cầu của
người dùng
+ Cung cấp những tin tức mới nhất cho người dùng
+ Cung có cho người dùng một số tiện ích liên quan đến các vấn đề phong
thủy, tâm linh.
+ Chatbot hiểu được tương đối ngôn ngữ tự nhiên.
• Đối với ứng dụng Web:
+ Hiển thị các khu đất theo dạng danh sách, gom nhóm các bất động sản cho
người dùng tiện theo dõi, tìm kiếm.
+ Cung cấp chức năng tìm tiếm, phân loại theo yêu cầu người dùng.
+ Giúp người dùng đăng nhập, quản lí thơng tin cá nhân, các bài viết u
thích, cung cấp tính năng đăng bài để người dùng trao đổi thơng tin

+ Giúp cho người quản lí quản lí các bài đăng, quản lí số lượng người đăng
nhập sử dụng trang web
+ Phát triển thêm web quản trị viên và một số tính năng liên quan.
+ Gợi ý các bài viết dựa thời gian đăng bài, dựa trên khu vực, gợi ý các tin tức
mới do quản trị viên cung cấp

3


+ Tư vấn phong thuỷ dựa trên thông tin người dùng cung cấp
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 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 cách thức xây dựng Messenger Chatbot.




Xây dựng RESTful API để thao tác với dữ liệu.



Xây dựng giao diện Web để 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

4


KIẾN THỨC NỀN TẢNG
Tổng quan về kiến trúc mơ hình
Khái niệm
Mơ hình MVC (Model – View – Controller) là một trong những mơ hình kiến trúc
ứng dụng phổ biến nhất. Ban đầu mơ hình này được áp dụng chủ yếu ở các ứng dụng
desktop, nhưng sau này ý tưởng về mơ hình MVC được ứng dụng cho các nền tảng khác
như Web.

Hình 2.1.1-1 Mơ hình MVC

Cấu trúc mơ hình MVC
Tầng xử lý – Controller
Xử lí logic của ứng dụng, là cầu nối giữa tầng View và Model. Hay nói một cách cụ
thể, Controller sẽ nhận yêu cầu được gửi từ View và thực hiện xử lí yêu cầu, truy vấn hoặc

thao tác dữ liệu lên tầng Model. Sau khi xử lý xong, kết quả sẽ được trả về lại cho tầng
View.

5


Tầng logic dữ liệu – Model
Tầng Model là trung gian giữa ứng dụng và hệ quản trị cơ sở dữ liệu để cung cấp
và quản lí mơ hình và các thao tác lên dữ liệu. Thông thường, tầng Model sẽ kết nối với
một hoặc nhiều cơ sở dữ liệu để thực hiện các thao tác lên dữ liệu.
Tầng giao diện – View
Thể hiện giao diện người dùng, là thành phần giao tiếp giữa người dùng (user) và
ứng dụng (application).
Mơ hình MVC trong ứng dụng Web
Với sự phát triển của các công nghệ xây dựng web ở cả Frontend và Backend, các
nhà phát triển có thể xây dựng và phát triển ứng dụng web một cách độc lập nhưng vẫn
đảm bảo được tính kiến trúc của ứng dụng.

Hình 2.1.3-1 Mơ hình MVC trong lập trình Web

− Tầng giao diện người dùng (View) sẽ được phát triển độc lập ở phía client sử dụng
các cơng nghệ Frontend như VueJS, ReactJS, … Nói cách khác, client sẽ được chạy
trên 1 server độc lập và có thể tương tác với phía server của backend.

6


− Tầng xử lí (Controller) và logic dữ liệu (Model) sẽ được phát triển độc lập ở phía
server sử dụng các công nghệ Backend như ExpressJS, DotNetCore, Flank, …
− Sau khi hoàn thành việc phát triển, client sẽ cung cấp 1 bản build hồn chỉnh để thêm

vào phía Server. Người dùng sẽ yêu cầu thành phần giao diện thông qua request gửi
đến Server.
MERN Stack
Giới thiệu

Hình 2.2.1-1 Thành phần của MERN Stack
MERN Stack bao gồm MongoDB, Express, React và Node.js. Kết hợp các cơng nghệ
này, người ta có thể xây dựng một ứng dụng web đầy đủ với các hoạt động CRUD. Mọi
người chắc hẳn đã nghe nói về MERN Stack, về cơ bản là một JavaScript Stack để triển
khai phát triển web full-stack và chứa 4 cơng nghệ, đó là: MongoDB, Express, React và
Node.js.

7


Tổng quan về Nodejs [1]
Giới thiệu

Hình 2.3.1-1 Kiến trúc của NodeJS
NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine.
Nó được xây dựng để chạy trên server.
Javascript là một ngôn ngữ hướng sự kiện, do đó bất cứ điều gì xảy ra trên server
đều tạo ra một sự kiện non-blocking, do vậy nên 1 website sử dụng NodeJS có thể đáp ứng
được việc truy cập cùng lúc một lượng user cực kì lớn.
Vậy NodeJS thích hợp để làm gì. Với các đặc trưng của mình thì NodeJS thích hợp
để xây dựng các ứng dụng thời gian thực, ví dụ như hệ thống chat online hoặc hệ thơng
thơng báo…
Và cũng như nhiều ngơn ngữ chạy phía server khác, NodeJS cũng bắt đầu có một
cộng đồng phát triển rất lớn, nhiều framework sử dụng core NodeJS ra đời, một trong số
các framework phổ biến nhất hiện nay là Express. Chúng ta sẽ cùng tìm hiểu về framework

này phía dưới đây.
Những ứng dụng nên viết bằng Nodejs
Rõ ràng, khơng phải cứ hot và mới là Nodejs làm gì cũng tốt, ví dụ như một ứng
dụng cần tính ổn định cao, logic phức tạp thì các ngơn ngữ PHP hay Ruby… vẫn là sự lựa
chọn tốt hơn. Còn dưới đây là những ứng dụng có thể và nên viết bằng Nodejs:

8


×