Chương 1. Giới thiệu chung. Lý do chọn đề tài. Tính năng mới khác biệt.
Đối tượng nghiên cứu. Phạm vi nghiên cứu. Xây dựng hệ thống. Xây dựng kiến trúc hệ thống.
Kiến trúc hệ thống website. Kiến trúc hệ thống chatbot. Phân tích thiết kế hệ thống. Danh sách use case.
Đặc tả use case. Thiết kế giao diện. Danh sách giao diện trang web. Giao diện trang chủ.
Giao diện bài đăng Bđs. Giao diện chi tiết bài đăng Bđs. Giao diện danh sách tin tức. Giao diện chi tiết tin tức.
Giao diện quản lý tin tức. Giao diện bài đăng bđs. Giao diện quản lý bài đăng. Giao diện quản lý thông tin cá nhân.
Giao diện thông tin giới thiệu. Giao diện quản lý yêu thích. Công nghệ chatbot. Sơ đồ kịch bản chatbot.
Giao diện chatbot. Kết quả đạt được. Kết luận, hướng phát triển. Nhược điểm.
Kết quả đạt được. Hướng phát triển. 81 Tài liệu tham khảo. GIỚI THIỆU CHUNG 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 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 chatnot − Thêm chức năng gợi ý phong thuỷ 1 1. Đố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: − Các công nghệ: + Front-end: Nest/ReactJS + Back-end: H3 / NodeJS.
+ Database: Postgres - SQL + 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ó 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 cho người dùng tiện theo dõi. + Tư vấn phong thuỷ dựa trên thông tin người dùng cung cấp Cho phép người dùng đăng tin bđs 2 CHƯƠNG 2. XÂY DỰNG HỆ THỐNG 2.
Xây dựng kiến trúc hệ thống 2. Kiến trúc hệ thống Website Hệ thống bao gồm các thành phần sau Web (client): thể hiện giao diện nơi người dùng tương tác với hệ thống. Client giao tiếp với Server thông qua Request/Response để yêu cầu xử lý thông tin và nhận kết quả hiển thị lên cho người dùng. Web (client) được hiện thực hóa sử dụng ReactJS.
Server (Nodejs): Nhận và xử lý request từ Client. Có thể tương tác với Database để tương tác dữ liệu và trả kết quả về cho Client thông qua Response Database (MongoDB): lưu trữ toàn bộ dữ liệu của hệ thống. Kiến trúc hệ thống Chatbot Hệ thống bao gồm các thành phần và tương tác như sau: - Hệ thống xử lý kịch bản: Xử lý hành vi chat/tương tác của người dùng để chọn và xử lý kịch bản phù hợp. - Hệ thống xử lý: Xử lý hành vi chat/tương tác của người dùng để đưa ra các mẫu câu/hành động phù hợp.
- Dialogflow ES: Xử lý ngôn ngữ tự nhiên của người dùng để đưa ra các thông tin phù hợp đến hệ thống xử lý kịch bản. - Đối với các hành động đã được phân tích cần lấy dữ liệu từ database thì hệ thống xử lý sẽ phân tích dữ liệu từ database và sẽ thông báo có những dữ liệu phù hợp cho người dùng. - Đối với các hành động đã được phân tích cần xử lý phân tích ngôn ngữ tự nhiên thì hệ thống xử lý thông qua Dialogflow ES. Sau đó, dựa vào kết quả Dialogflow ES trả về sẽ chọn kịch bản phù hợp để đưa đến hệ thống xử lý kịch bản và trả về những thông tin cần thiết cho người dùng.
Phân tích thiết kế hệ thống 2. Danh sách use-case Hình 2. Sơ đồ use-case cho user 4 Hình 2. Sơ đồ use-case cho Admin 2.
Đặc tả use-case a. Đặc tả use case Đăng nhập Tên use Đăng nhập case Mục đích Đăng nhập vào tài khoản Người dùng User / Admin Điều kiện Người dùng nhấn vào nút đăng nhập trên header kích hoạt Điều kiện Có tài khoản, mật khẩu trước đó hoặc có tài khoản google hoặc có tài trước khoản facebook Điều kiện Di chuyển vào trang home đồng thời thay đổi thanh header 5 sau Luồng sự B1: Chọn nút Đăng nhập trên header kiện chính B2: Hệ thống hiển thị popup đăng nhập B3: Người dùng nhập email và password của tài khoản B4: Người dùng nhấn nút “Đăng nhập”. B5: Hệ thống kiểm tra định dạng các thông tin đã nhập. Nếu sai, thông báo lỗi và quay lại bước 3.
B6: Hệ thống di chuyển vào trang home và cập nhật lại header Luồng sự * Lưu mật khẩu: kiện phụ B1: Chọn nút Đăng nhập trên header B2: Hệ thống hiển thị popup đăng nhập B3: Người dùng nhập email và password của tài khoản B4: Người dùng nhấn vào checkbox “Nhớ tài khoản”. B5: Người dùng nhấn nút “Đăng nhập”. B6: Hệ thống kiểm tra định dạng các thông tin đã nhập. Nếu sai, thông báo lỗi và quay lại bước 3.
B7: Hệ thống sẽ lưu tài khoản và mật khẩu vào cookie trong phiên hoạt động và hiển thị khi người dùng sử dụng chức năng đăng nhập. B8: Hệ thống di chuyển vào trang home và cập nhật lại header * Đăng nhập bằng Google: B1: Chọn nút Đăng nhập trên header B2: Hệ thống hiển thị popup đăng nhập B3: Chọn nút Google để tiến hành đăng nhập B4: Hệ thống hiển thị danh sách tài khoản Google đang đăng nhập trong trình duyệt, chọn một tài khoản B5: Hệ thống di chuyển vào trang home và cập nhật lại header * Đăng nhập bằng Facebook: B1: Chọn nút Đăng nhập trên header B2: Hệ thống hiển thị popup đăng nhập B3: Chọn nút Facebook để tiến hành đăng nhập B4: Hệ thống hiển thị tài khoản Facebook đang đăng nhập trong trình duyệt, chọn “Tiếp tục” 6 B5: Hệ thống di chuyển vào trang home và cập nhật lại header Các ngoại - Nhập thiếu dữ liệu: Hiển thị thông báo yêu cầu nhập đầy đủ lệ - Email sai định dạng: Hiển thị thông báo nhập sai định dạng email - Sai thông tin: Thông báo sai email hoặc mật khẩu Kích hoạt Không sự kiện khác b. Đặc tả use case Đổi mật khẩu Tên use Đổi mật khẩu case Mục đích Đổi mật khẩu tài khoản Người dùng User / Admin Điều kiện Người dùng chọn tab Thay đổi mật khẩu ở trong dropdown bên cạnh ảnh kích hoạt đại diện người dùng ở giao diện trang chủ Điều kiện Đã đăng nhập vào trang chủ thành công trước Điều kiện Người dùng đổi mật khẩu tài khoản thành công sau Luồng sự B1: Chọn tab Thay đổi mật khẩu ở trong dropdown bên cạnh ảnh đại kiện chính diện người dùng B2: Hệ thống mở tính năng đổi mật khẩu trong trang Quản lý người dùng. B3: Người dùng nhập mật khẩu hiện tại, mật khẩu mới.
B4: Người dùng chọn nút “Lưu”. B5: Hệ thống kiểm tra định dạng các thông tin mật khẩu đã nhập và các trường bắt buộc. B6: Hệ thống kiểm tra mật khẩu hiện tại xem có trùng với mật khẩu tài khoản đó trong cơ sở dữ liệu hay không. 7 B7: Thông báo đổi mật khẩu tài khoản thành công và cập nhật mật khẩu mới của tài khoản đó trong cơ sở dữ liệu.
Luồng sự * Không đăng ký: Ở giao diện đổi mật khẩu trong trang Quản lý người kiện phụ dùng, chọn nút “Hủy” để quay lại trạng thái trước đó. * Đổi mật khẩu trước khi đăng nhập (User): B1: Người dùng ở giao diện trang chủ và chưa đăng nhập. B2: Người dùng chọn nút “Đăng nhập”. B3: Người dùng chọn nút “Quên mật khẩu”.
B4: Người dùng nhập email tài khoản muốn đổi mật khẩu. B5: Người dùng chọn nút “Quên mật khẩu”. B6: Hệ thống kiểm tra định dạng email đã nhập. Nếu sai, thông báo lỗi và quay lại bước 4.
B7: Hệ thống gửi mail đến email đã nhập. B8: Người dùng chọn nút “Đổi mật khẩu” trong mail. B9: Hệ thống kiểm tra, nếu còn trong thời hạn thì chuyển đến bước 10. Nếu không thì chuyển đến trang link đã hết hạn và kết thúc.
B10: Tương tự như luồng sự kiện chính đổi mật khẩu ở trang quản lý người dùng từ bước 3 đến bước 7. Các ngoại - Thiếu thông tin hoặc sai định dạng thông tin: Hệ thống thông báo lỗi và lệ yêu cầu nhập lại thông tin. - Không trùng với mật khẩu hiện tại: Hệ thống thông báo lỗi và yêu cầu nhập lại mật khẩu hiện tại. Kích hoạt Không sự kiện khác c.