1. Trang chủ
  2. » Cao đẳng - Đại học

Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)

102 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox
Tác giả Nguyễn Vũ Khánh, Nguyễn Hoài Phong
Người hướng dẫn ThS. Thái Thụy Hàn Uyển
Trường học Đại học quốc gia tp. Hồ Chí Minh
Chuyên ngành Kỹ sư ngành kỹ thuật phần mềm
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố TP. HỒ CHÍ MINH
Định dạng
Số trang 102
Dung lượng 2,74 MB

Cấu trúc

  • Chương 1. TỔNG QUAN ĐỀ TÀI (22)
    • 1.1. Lý do chọn đề tài (22)
    • 1.2. Tính mới và điểm nổi bật của đề tài (22)
    • 1.3. Mục tiêu và phạm vi (23)
      • 1.3.1. Mục tiêu (23)
      • 1.3.2. Phạm vi (23)
    • 1.4. Phương pháp thực hiện (24)
    • 1.5. Bố cục báo cáo (24)
  • Chương 2. KIẾN THỨC NỀN TẢNG, KĨ THUẬT (26)
    • 2.1. Java - Spring Boot (26)
      • 2.1.1. Khái niệm (26)
      • 2.1.2. Tại sao nên sử dụng JavaSpring Boot (26)
      • 2.1.3. Áp dụng Java vào đề tài (26)
    • 2.2. Postgresql (26)
      • 2.2.1. Giới thiệu về Postgesql (26)
      • 2.2.2. Tại sao nên sử dụng hệ quản trị cơ sở dữ liệu Postgresql (27)
      • 2.2.3. Tại sao nên sử dụng PostgreSQL (28)
      • 2.2.4. Áp dụng PostgreSQL vào đề tài (28)
    • 2.3. Reactjs (29)
      • 2.3.1. Giới thiệu về Reactjs (29)
    • 2.4. Dịch vụ Dialogflow (29)
      • 2.4.1. Giới thiệu (29)
      • 2.4.2. Quá trình Understanding (30)
      • 2.4.3. Ý định (Intent) (31)
      • 2.4.4. Thực thể (Entities) (32)
      • 2.4.5. Chức năng Fullfillments (34)
      • 2.4.6. Chức năng Integration (34)
      • 2.4.7. Tại sao nên sử dụng Reactjs (35)
  • Chương 3. GIẢI QUYẾT VẤN ĐỀ (37)
    • 3.1. Đặt vấn đề (37)
    • 3.2. Hướng giải quyết (37)
      • 3.2.1. Tính toán độ phù hợp của từng bất động sản đối với người dùng (37)
      • 3.2.2. Tổng quát hóa số lượng bất động sản dưới dạng biểu đồ (38)
  • Chương 4. PHÂN TÍCH THIẾT KẾ HỆ THỐNG (39)
    • 4.1. Sơ đồ Use Case (39)
      • 4.1.1. Sơ đồ Use Case tổng quát (39)
      • 4.1.2. Danh sách các Actor (41)
      • 4.1.3. Đặc tả một số Use Case chính (42)
    • 4.2. Thiết kế cơ sở dữ liệu (59)
      • 4.2.1. Sơ đồ Cơ sở dữ liệu (59)
      • 4.2.2. Mô tả chi tiết các bảng (59)
    • 4.3. Thiết kế giao diện (86)
      • 4.3.1. Danh sách các màn hình (86)
      • 4.3.2. Hình ảnh một số màn hình chính (88)
  • Chương 5. KẾT LUẬN, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN (99)
    • 5.1. Đánh giá kết quả làm việc (99)
      • 5.1.1. Thuận lợi (99)
      • 5.1.2. Khó khăn (99)
    • 5.2. Kết quả đạt được (100)
      • 5.2.1. Ưu điểm (100)
      • 5.2.2. Nhược điểm (100)
    • 5.3. Hướng phát triển (101)

Nội dung

KIẾN THỨC NỀN TẢNG, KĨ THUẬT

Java - Spring Boot

− Spring Boot là một dự án phát triển bởi JAV (ngôn ngữ java) trong hệ sinh thái

Spring Framework giúp lập trình viên đơn giản hóa quá trình phát triển ứng dụng, cho phép họ tập trung vào việc phát triển các chức năng kinh doanh mà không phải lo lắng về các vấn đề phức tạp khác.

2.1.2 Tại sao nên sử dụng JavaSpring Boot

Khi sử dụng Java để tạo dự án web, quá trình thực hiện trở nên đơn giản và nhanh chóng hơn, vì Java tự động xử lý nhiều công đoạn, tương tự như các framework PHP như Symfony và Laravel Điều này cho phép lập trình viên tập trung vào việc phát triển Controller Thêm vào đó, mình nhận thấy rằng ứng dụng web Java hoạt động nhanh hơn so với PHP ngay cả khi đã sử dụng APC Cache.

2.1.3 Áp dụng Java vào đề tài

− Nhóm chúng em sử dụng Java để làm Backend dễ dàng hơn và có nhiều chức năng phát triển hơn.

Postgresql

PostgreSQL is an advanced open-source object-relational database management system designed for general-purpose use.

− PostgreSQL được phát triển dựa trên POSTGRES 4.2 tại phòng khoa học máy tính Berkeley, Đại học California

PostgreSQL được phát triển để hoạt động trên các hệ điều hành tương tự UNIX, nhưng cũng đã được điều chỉnh để tương thích với nhiều nền tảng khác như Mac OS X, Solaris và Windows.

PostgreSQL là phần mềm mã nguồn mở miễn phí, cho phép người dùng tự do sử dụng, sửa đổi và phân phối theo giấy phép PostgreSQL Với giấy phép này, bạn có quyền truy cập vào mã nguồn và tùy chỉnh phần mềm theo nhu cầu của mình.

PostgreSQL nổi bật với tính ổn định cao, giúp giảm thiểu công tác bảo trì Điều này mang lại lợi ích cho các ứng dụng phát triển trên nền tảng này, làm cho chi phí sở hữu thấp hơn so với các hệ thống quản trị dữ liệu khác.

2.2.2 Tại sao nên sử dụng hệ quản trị cơ sở dữ liệu Postgresql Ưu điểm:

− PostgreSQL có thể chạy các trang web và ứng dụng web động với LAMP

− Ghi nhật ký viết trước của PostgreSQL làm cho nó trở thành một cơ sở dữ liệu có khả năng chịu lỗi cao

Mã nguồn PostgreSQL được cung cấp miễn phí dưới giấy phép nguồn mở, cho phép người dùng tự do sử dụng, sửa đổi và triển khai theo nhu cầu kinh doanh của mình.

PostgreSQL cung cấp hỗ trợ cho các đối tượng địa lý, cho phép bạn phát triển các dịch vụ dựa trên vị trí và hệ thống thông tin địa lý một cách hiệu quả.

PostgreSQL cung cấp khả năng hỗ trợ các đối tượng địa lý, cho phép nó hoạt động như một kho lưu trữ dữ liệu không gian địa lý, phục vụ cho các dịch vụ dựa trên vị trí và hệ thống thông tin địa lý.

− Hạn chế việc bảo trì hệ thống

Postgres không thuộc sở hữu của một tổ chức nào, điều này đã tạo ra thách thức trong việc khẳng định tên tuổi của nó Mặc dù vậy, Postgres vẫn sở hữu đầy đủ tính năng và có thể cạnh tranh với các hệ thống quản lý cơ sở dữ liệu khác.

− Những thay đổi được thực hiện để cải thiện tốc độ đòi hỏi nhiều công việc hơn MySQL vì PostgreSQL tập trung vào khả năng tương thích

− Nhiều ứng dụng nguồn mở hỗ trợ MySQL, nhưng có thể không hỗ trợ PostgreSQL

− Về số liệu hiệu suất, nó chậm hơn MySQL

2.2.3 Tại sao nên sử dụng PostgreSQL:

PostgreSQL là một hệ quản trị cơ sở dữ liệu mạnh mẽ với nhiều tính năng đa dạng, hỗ trợ các nhà phát triển xây dựng ứng dụng và giúp các quản trị viên bảo vệ toàn vẹn dữ liệu Hệ thống này cho phép tạo ra một môi trường chịu lỗi, giúp quản lý dữ liệu hiệu quả cho cả tập dữ liệu lớn và nhỏ Với mã nguồn mở và miễn phí, PostgreSQL còn nổi bật với khả năng mở rộng tuyệt vời, cho phép người dùng định nghĩa kiểu dữ liệu riêng, xây dựng hàm tùy chỉnh và viết mã từ nhiều ngôn ngữ lập trình khác nhau mà không cần phải biên dịch lại cơ sở dữ liệu.

PostgreSQL tuân thủ tiêu chuẩn SQL mà không làm mất đi các tính năng truyền thống, tránh các quyết định kiến trúc có hại Mặc dù nhiều tính năng theo tiêu chuẩn SQL được hỗ trợ, nhưng đôi khi cú pháp hoặc hàm có thể có sự khác biệt nhỏ.

2.2.4 Áp dụng PostgreSQL vào đề tài

Nhờ vào các tính năng vượt trội của PostgreSQL, nhóm đã chọn PostgreSQL làm hệ quản trị cơ sở dữ liệu chính Máy chủ sử dụng PostgreSQL để lưu trữ toàn bộ dữ liệu, và dữ liệu này sẽ được truy xuất qua REST API.

Reactjs

React.js là một thư viện Javascript đang phát triển mạnh mẽ trong xu hướng Single Page Application Khác với các framework khác tập trung vào mô hình MVC hoàn chỉnh, React nổi bật với sự đơn giản và khả năng tương tác dễ dàng với các thư viện Javascript khác Trong khi AngularJS cho phép nhúng mã Javascript vào HTML qua các thuộc tính như ng-model hay ng-repeat, React sử dụng JSX để nhúng HTML vào mã Javascript, giúp việc lồng ghép các đoạn HTML trong JS trở nên dễ dàng hơn Sự tích hợp giữa Javascript và HTML trong JSX làm cho các component trở nên dễ hiểu và dễ sử dụng hơn.

React là một thư viện UI do Facebook phát triển, giúp xây dựng các thành phần giao diện người dùng (UI components) tương tác, có trạng thái và có thể tái sử dụng Thư viện này được sử dụng trong môi trường sản xuất tại Facebook, và Instagram hoàn toàn được phát triển dựa trên React.

React là một thư viện hấp dẫn vì nó không chỉ hoạt động trên phía client mà còn có khả năng render trên server, cho phép kết nối linh hoạt giữa hai bên Thư viện này so sánh sự thay đổi giữa các giá trị của các lần render khác nhau và chỉ cập nhật những thay đổi tối thiểu trên DOM, giúp tối ưu hóa hiệu suất.

Dịch vụ Dialogflow

Dialogflow, trước đây là API.AI, là một dịch vụ được Google mua lại vào tháng 9 năm 2016 Nó xuất phát từ công ty nổi tiếng với trợ lý ảo Speaktoit, nhằm hỗ trợ các lập trình viên trong việc phát triển sản phẩm giao tiếp giữa người dùng và hệ thống một cách dễ dàng hơn.

10 hội thoại bằng văn bản (text) hoặc giọng nói (voice) Nói cách khác,

Dialogflow là một framework cung cấp các dịch vụ NLP / NLU (Natural

Language Processing / Natural Language Understanding) - xử lý ngôn ngữ tự nhiên

Hình 2.4.1 Các hoạt động của Dialogflow

Understanding là quá trình training từ cho bot hiểu được ý nghĩa từ câu trả lời của người dùng đã cung cấp:

Intent là ý định của người dùng, và sau khi nhận yêu cầu, Hệ thống Dialogflow sẽ phân tích để đưa ra một intent phù hợp Intent này bao gồm các thành phần quan trọng như Context (ngữ cảnh), Training phrase (câu training cho bot), Response (câu trả lời), Action (hành động kèm theo), và Parameters (các đối số mà người dùng đã định nghĩa trong phần training phrase).

Entities là các thực thể bổ nghĩa cho một Intent

Người dùng có thể tạo ra một thực thể mới từ việc kết hợp các entities nhỏ hơn, giúp chatbot phân tích dữ liệu hiệu quả hơn và trả về thông tin chính xác cho lập trình viên Sự kết hợp này sẽ nâng cao khả năng hiểu ngữ nghĩa của chatbot đối với những câu hỏi phức tạp.

Hình 2.4.5 Chi tiết trong 1 entities

Việc thiết kế các thực thể (entities) cho chatbot cần được xác định rõ ràng để đảm bảo quá trình gán nhãn không ảnh hưởng tiêu cực đến các ý định (intent) Cần nhóm các thực thể chung một cách hợp lý, giúp chatbot dễ dàng phân tích và tránh bị rối bởi nhiều câu có ngữ nghĩa tương tự Nếu có quá nhiều intent trùng lặp, chatbot sẽ gặp khó khăn trong việc phân tích ngữ nghĩa, dẫn đến việc không cung cấp kết quả intent chính xác cho người dùng.

Người dùng có thể xây dựng một hệ thống tùy chỉnh cho lập trình viên, cho phép tiếp nhận các intent và kết nối với dữ liệu từ các intent đó Hệ thống này có khả năng tích hợp với các dịch vụ bên ngoài để phân tích dữ liệu một cách hiệu quả, từ đó cung cấp kết quả chính xác cho người dùng.

Chức năng integrations của dialogflow cho phép ứng dụng kết hợp với lại nhiều nền tảng khác nhau như (Messenger, Skype, Telegram, Slack, )

2.4.7 Tại sao nên sử dụng Reactjs

React là một thư viện GUI mã nguồn mở bằng JavaScript, chuyên tập trung vào việc hoàn thành hiệu quả các nhiệm vụ giao diện người dùng (UI) Nó được xếp vào loại "V" trong mô hình MVC (Model-View-Controller).

Là một lập trình viên JavaScript, bạn sẽ nhanh chóng nắm vững các kiến thức cơ bản về React Chỉ trong vài ngày, bạn có thể bắt đầu phát triển các ứng dụng web sử dụng React một cách dễ dàng.

Để nâng cao kiến thức về React, hãy khám phá các hướng dẫn đa dạng như video, tài liệu và bài viết Những nguồn tài nguyên này sẽ cung cấp thông tin quý giá và giúp bạn làm phong phú thêm hiểu biết của mình về công cụ này.

React cho phép tái sử dụng các component đã phát triển cho các ứng dụng khác có chức năng tương tự, mang lại lợi thế nổi bật cho lập trình viên Tính năng này không chỉ tiết kiệm thời gian mà còn nâng cao hiệu quả phát triển phần mềm.

− Viết component dễ dàng hơn:

− React component dễ viết hơn vì nó sử dụng JSX, mở rộng cú pháp tùy chọn cho JavaScript cho phép kết hợp HTML với JavaScript

JSX là sự kết hợp hoàn hảo giữa JavaScript và HTML, giúp đơn giản hóa quá trình xây dựng cấu trúc trang web Bên cạnh đó, phần mở rộng này cũng hỗ trợ việc render nhiều lựa chọn một cách dễ dàng hơn.

JSX, mặc dù không phải là phần mở rộng cú pháp phổ biến nhất, nhưng đã chứng minh hiệu quả trong việc phát triển các components đặc biệt cũng như các ứng dụng quy mô lớn.

2.4.7.1 Hiệu suất tốt hơn với Virtual DOM:

React cải thiện hiệu quả cập nhật DOM (Mô hình đối tượng tài liệu), điều này thường gây thất vọng trong các dự án ứng dụng web Nhờ vào việc sử dụng virtual DOM, React giúp tránh những vấn đề liên quan đến quá trình này.

Công cụ này cho phép xây dựng các virtual DOM và lưu trữ chúng trong bộ nhớ, giúp cập nhật ngay lập tức khi có sự thay đổi trong DOM thực tế.

− Hệ thống này sẽ ngăn DOM thực tế để buộc các bản cập nhật được liên tục Do đó, tốc độ của ứng dụng sẽ không bị gián đoạn

Hình 2.4.7 Lí do vì sao nên sử dụng Reactjs

GIẢI QUYẾT VẤN ĐỀ

Đặt vấn đề

Qua khảo sát, nhóm nhận thấy thị trường hiện nay có nhiều hình thức quảng bá và tư vấn thông tin bất động sản Tuy nhiên, vẫn thiếu một giải pháp hiệu quả giúp người dùng tìm ra sản phẩm phù hợp với nhu cầu cá nhân của mình.

Việc nghiên cứu và tìm ra giải pháp phù hợp để tư vấn lựa chọn bất động sản cho từng người dùng là một thách thức lớn, đòi hỏi nhóm cần đầu tư thời gian để phát triển và thực hiện các ý tưởng sáng tạo.

Hướng giải quyết

Sau quá trình khảo sát và tìm hiểu, nhóm đã quyết định áp dụng một số phương pháp tư vấn để giúp khách hàng lựa chọn giải pháp phù hợp nhất với nhu cầu của họ.

3.2.1 Tính toán độ phù hợp của từng bất động sản đối với người dùng

Hệ thống sẽ tự động đánh giá độ phù hợp của từng bất động sản với người dùng dựa trên lịch sử tìm kiếm trước đó, bao gồm các hoạt động như lọc tìm kiếm, xem sản phẩm, đánh dấu yêu thích và tương tác qua chatbox.

Người dùng có thể đăng nhập để hệ thống xác định chính xác thông tin, đồng thời hệ thống cũng tự động lưu trữ dữ liệu dựa trên địa chỉ IP nhằm cung cấp tư vấn phù hợp cho người dùng.

Hệ thống đánh giá độ phù hợp của bất động sản sử dụng phương pháp tính trung bình cộng điểm, dựa trên các yếu tố quan trọng như thể loại, loại bất động sản và vị trí quận, huyện.

18 o Tỉnh, thành phố o Diện tích o Phòng ngủ o Phòng tắm o Hướng nhà o Số tầng o Giá

3.2.2 Tổng quát hóa số lượng bất động sản dưới dạng biểu đồ

Hệ thống cung cấp chức năng biểu đồ cho phép người dùng dễ dàng tổng hợp và khái quát hóa thông tin bất động sản, giúp họ nhanh chóng nhận diện các lựa chọn phù hợp với tiêu chí cá nhân Nhờ vào số lượng lớn bất động sản, người dùng có thể tìm kiếm và đưa ra quyết định tốt nhất cho nhu cầu của mình.

− Hệ thống hỗ trợ 3 dạng biểu đồ: o Biểu đồ cột o Biểu đồ đường o Biểu đồ radar

Hệ thống hỗ trợ thống kê bất động sản cung cấp các tiêu chí quan trọng, bao gồm: thống kê theo diện tích với điều kiện thành phố và giá cả, thống kê theo thành phố với điều kiện diện tích và giá cả, và thống kê theo giá cả với điều kiện diện tích và thành phố.

PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Sơ đồ Use Case

4.1.1 Sơ đồ Use Case tổng quát

Hình 4.1.1 Sơ đồ Use Case tổng quát

1 Đăng ký Người dùng truy cập vào trang web và đăng ký tài khoản khách hàng vào hệ thống

2 Đăng nhập Người dùng truy cập vào trang web và đăng nhập tài khoản vào hệ thống (có thể là admin hoặc khách hàng)

3 Đổi mật khẩu Người dùng truy cập vào trang web và chọn đổi mật khẩu thay vì đăng nhập

4 Đăng xuất Người dùng đã đăng nhập vào hệ thống và đăng xuất thông tin người dùng

Để tìm kiếm và lọc bất động sản hiệu quả, bạn có thể sử dụng các thông tin như từ khóa, tỉnh/thành phố, quận/huyện, loại bất động sản, mức giá và diện tích Việc này giúp bạn nhanh chóng tìm ra những lựa chọn phù hợp nhất với nhu cầu của mình.

6 Trang cá nhân Bao gồm các thông tin và chức năng của quản lý bài viết, chỉnh sửa thông tin, quản lý yêu thích bài viết

Quản lý bài viết bất động sản cá nhân cho phép người dùng chỉnh sửa, xóa thông tin các bài đã đăng và theo dõi những bài viết đang chờ duyệt.

8 Quản lý yêu thích, lưu lại thông tin bài viết

Quản lý danh sách yêu thích, lưu lại thông tin bài viết của tất cả người dùng khách hàng

9 Chỉnh sửa thông tin Chỉnh sửa thông tin cá nhân của người dùng

10 Tạo bđs Tạo bất động sản sau khi đăng nhập

11 Gợi ý bđs liên quan Hiển thị các bài viết liên quan phù hợp với các hoạt động của người dùng như xem, tìm kiếm, yêu thích,

Bảng 4.1.1 Thông tin các Use Case chính

Các đối tượng giao tiếp với hệ thống

Người dùng là tất cả những cá nhân có nhu cầu giao dịch các loại bất động sản và tận dụng đầy đủ các tính năng của hệ thống, bao gồm việc đăng tin giao dịch, tra cứu thông tin bất động sản, thực hiện giao dịch và đẩy tin bất động sản.

2 Admin Nắm trọn bộ quyền quản lý hệ thống, quản lý người dùng, quản lý bài đăng, thao tác đóng mở bất động sản,…

12 Xem thông tin bđs dưới dạng biểu đồ

Hiển thị thông tin tổng quát số lượng bất động sản dưới dạng biểu đồ đường, cột, radar

13 Tương tác với chatbox Tương tác tìm kiếm sản phẩm thông qua chatbox

14 Quản lý thể loại Quản lý danh sách thể loại như tìm kiếm, thêm mới, sửa, xóa thể loại

15 Quản lý bđs Quản lý danh sách bài viết bđs như tìm kiếm, lọc/xóa lọc trường thông tin, sắp xếp, xóa, sửa, thêm, duyệt bài viết

16 Làm nổi bật bđs Lựa chọn bài viết để làm bài nổi bật trên trang web

17 Quản lý người dùng khách hàng

Danh sách người dùng khách hàng sẽ hiển thị các thông tin chi tiết, bao gồm danh sách bài đăng và danh sách yêu thích của từng khách hàng Người dùng cũng có khả năng lọc danh sách theo từng trường thông tin để tìm kiếm dễ dàng hơn.

4.1.3 Đặc tả một số Use Case chính

4.1.3.1 Đặc tả use-case “Đăng Ký"

Tên chức năng Đăng ký

Tóm tắt Người dùng muốn đăng bất động sản hoặc lưu bài viết để xem lại cần đăng kí người dùng khách hàng để đăng nhập vào hệ thống

Actor Người dùng khách hàng

Dòng sự kiện chính Nhập đầy đủ thông tin

Dòng sự kiện khác Không thể đăng ký

• Trùng tên đăng ký người dùng

• Trùng email đã đăng ký

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case Đăng ký thành công, tự động trở lại trang đăng nhập

Các yêu câu đặc biệt Không có

Bảng 4.1.3 Đặc tả usecase “Đăng Ký”

4.1.3.2 Đặc tả use-case “Đăng Nhập"

Tên chức năng Đăng nhập

Tóm tắt Đăng nhập vào hệ thống để thực hiện những tính năng trong hệ thống

Dòng sự kiện chính Người dùng truy cập vào hệ thống

Người dùng nhấn đăng nhập để tiến hành đăng nhập vào hệ thống

Người dùng chưa đăng ký có thể truy cập trang web hệ thống như khách hàng bình thường, tuy nhiên sẽ không được sử dụng các chức năng đầy đủ của trang.

Dòng sự kiện khác Không thể đăng nhập

• Không thể kết nối đến server

• Người dùng nhập sai mật khẩu

• Người dùng chưa đăng ký tài khoản

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng đăng nhập thành công, truy cập vào trang chủ

Người dùng đăng nhập thất bại hiển thị thông báo ở trang đăng nhập

Các yêu câu đặc biệt Không có

Bảng 4.1.4 Đặc tả usecase “Đăng Nhập”

4.1.3.3 Đặc tả use-case “Đổi mật khẩu "

Tên chức năng Đổi mật khẩu

Tóm tắt Đăng mật khẩu hiện tại của người dùng

Dòng sự kiện chính Người dùng truy cập vào hệ thống

Người dùng nhấn đăng nhập để đăng nhập vào hệ thống

Sau khi đăng nhập thành công nhấn người dùng chọn Đổi mật khẩu

Dòng sự kiện khác Không thể đổi mật khẩu

• Sai mật khẩu hiện tại

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng đổi mật khẩu thành công xuất hiện thông báo

Các yêu câu đặc biệt Không có

Bảng 4.1.5 Đặc tả usecase “Đổi mật khẩu”

4.1.3.4 Đặc tả use-case “Đăng xuất "

Tên chức năng Đăng xuất

Tóm tắt Đăng xuất người dùng ra khỏi hệ thống

Dòng sự kiện chính Người dùng truy cập vào hệ thống

Người dùng nhấn đăng xuất để tiến hành đăng xuất khỏi hệ thống

Dòng sự kiện khác Không thể đăng xuất

• Chưa đăng nhập vào hệ thống

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng đăng xuất thành công hệ thống tải lại trang đăng nhập

Các yêu câu đặc biệt Không có

Bảng 4.1.6 Đặc tả usecase “Đăng xuất”

4.1.3.5 Đặc tả use-case “Lọc/Tìm kiếm bất động sản"

Tên chức năng Lọc/ Tìm kiếm bất động sản

Tìm kiếm và lọc bất động sản hiệu quả bằng cách sử dụng các thông tin quan trọng như từ khóa, tỉnh/thành phố, quận/huyện, loại hình bất động sản, mức giá và diện tích mong muốn.

Dòng sự kiện chính Người dùng truy cập vào hệ thống

Vào trang chủ chọn thể loại, thành phố, mức giá, quận huyện, diện tích hoặc nhập vào sau đó nhấn tìm kiếm để thực hiện chức năng

Dòng sự kiện khác Không thể tìm kiếm

• Không có bài đăng chứa từ khóa

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị danh sách tìm kiếm/lọc thành công cho người dùng

Các yêu câu đặc biệt Không có

Bảng 4.1.7 Đặc tả usecase “Lọc/Tìm kiếm bất động sản”

4.1.3.6 Đặc tả use-case “Trang cá nhân"

Tên chức năng Trang cá nhân

Tóm tắt Bao gồm các thông tin và chức năng của quản lý bài viết, chỉnh sửa thông tin, quản lý yêu thích bài viết

Dòng sự kiện chính Chọn thông tin người dùng

Hiển thị thông tin cơ bản của người dùng bao gồm:

• Đã cung cấp cmnd, email … hay chưa Hiển thị những bất động sản của người dùng đang đăng giao dịch trên hệ thống

Hiển thị những bất động sản của người dùng đã lưu

Dòng sự kiện khác Không thể truy xuất

Nguyên nhân : không thể kết nối đến server

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị đầy đủ thông tin người dùng, danh sách bài đăng, danh sách yêu thích

Các yêu câu đặc biệt Không có

Bảng 4.1.8 Đặc tả usecase “Trang cá nhân”

4.1.3.7 Đặc tả use-case “Quản lý bất động sản cá nhân"

Tên chức năng Quản lý bất động sản cá nhân

Tóm tắt Quản lý các bài viết bất động sản người dùng khách hàng đã tạo bao gồm sửa, xóa thông tin bài đã đăng và đang chờ duyệt

Dòng sự kiện chính Chọn thông tin người dùng

Để quản lý bất động sản, bạn cần nhấn vào chỉnh sửa bài viết đang ở trạng thái PENDING Sau khi thực hiện chỉnh sửa thông tin, bài viết vẫn sẽ giữ trạng thái PENDING và chờ sự phê duyệt từ người dùng admin.

Dòng sự kiện khác Không thể chỉnh sửa

• Chỉ những bài viết đang tình trạng PENDING mới được sửa

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị danh sách tất cả bài đăng bất động sản của người dùng

Các yêu câu đặc biệt Không có

Bảng 4.1.9 Đặc tả usecae “Quản lý bất động sản cá nhân”

4.1.3.8 Đặc tả use-case “Quản lý yêu thích, lưu lại thông tin bài viết"

Tên chức năng Quản lý yêu thích, lưu lại thông tin bài viết

Tóm tắt Quản lý danh sách yêu thích, lưu lại thông tin bài viết của tất cả người dùng khách hàng

Dòng sự kiện chính Người dùng đăng nhập

Người dùng có thể lưu bài đăng bất động sản vào danh sách yêu thích cá nhân bằng cách nhấn nút yêu thích ở góc bài viết.

Dòng sự kiện khác Không thể yêu thích bài viết

• Người dùng chưa đăng nhập

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Yêu thích bài viết thành công

Các yêu câu đặc biệt Không có

Bảng 4.1.10 Đặc tả usecase “Quản lý yêu thích, lưu lại thông tin bài viết”

4.1.3.9 Đặc tả use-case “Chỉnh sửa thông tin"

Tên chức năng Chỉnh sửa thông tin

Tóm tắt Chỉnh sửa thông tin cá nhân của người dùng

Dòng sự kiện chính Người dùng đăng nhập

Chọn người dùng, xuất hiện thông tin người dùng, chỉnh sửa thông tin cần thiết nhấn Lưu chỉnh sửa để cập nhật thông tin

Dòng sự kiện khác Không thể chỉnh sửa thông tin

• Người dùng chỉnh sửa email đã được đăng ký

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Chỉnh sửa thông tin người dùng thành công

Các yêu câu đặc biệt Không có

Bảng 4.1.11 Đặc tả usecase “Chỉnh sửa thông tin”

4.1.3.10 Đặc tả use-case “Tạo bất động sản"

Tên chức năng Tạo bất động sản

Tóm tắt Tạo bất động với đẩy đủ thông tin cần thiết để đăng giao dịch bất động sản lên hệ thống

Sau khi tạo bất động sản thành công cần chờ admin phê duyệt để hiển thị

Dòng sự kiện chính Người dùng đăng nhập

Tạo bất động sản mới

Khi tạo bất động sản trên hệ thống, bạn cần nhập đầy đủ thông tin cần thiết Bài viết sẽ ở trạng thái chờ duyệt và chỉ được đăng trên trang web sau khi được phê duyệt thành công Nếu admin không phê duyệt, bài viết sẽ không hiển thị trên hệ thống.

Trừ trường hợp nếu người dùng là admin sẽ không cần đợi sự phê duyệt mà tạo bất động sản thành công trên hệ thống

Dòng sự kiện khác Không thể tạo bất động sản

• Người dùng chưa đăng nhập

• Người dùng không được sự phê duyệt của admin

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Tạo bất động sản thành công Đợi xác nhận từ admin để được hiển thị trên hệ thống

Các yêu câu đặc biệt Không có

Bảng 4.1.12 Đặc tả usecase “Tạo bất động sản”

4.1.3.11 Đặc tả use-case “Gợi ý bất động sản liên quan"

Tên chức năng Gợi ý bất động sản liên quan

Tóm tắt Hiển thị các bài viết liên quan phù hợp với các hoạt động của người dùng như xem, tìm kiếm, yêu thích,…

Actor Người dùng khách hàng

Dòng sự kiện chính Truy cập vào trang web

Truy cập vào tab “Danh sách phù hợp”

Hiển thị danh sách gợi ý thông qua tìm kiếm/ lọc và xem

Dòng sự kiện khác Không có

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị danh sách bài đăng được gợi ý

Các yêu câu đặc biệt Không có

Ngoại lệ Người dùng khách hàng không trực tiếp tác động tới usecase Chỉ gián tiếp sử dụng thông qua hệ thống

Bảng 4.1.13 Đặc tả usecase “Gợi ý bất động sản liên quan”

4.1.3.12 Đặc tả use-case “Xem thông tin bất động sản dưới dạng biểu đồ”

Tên chức năng Xem thông tin bất động sản dưới dạng biểu đồ

Tóm tắt Tổng quát số lượng bất động sản dưới dạng biểu đồ đường, cột, radar thông qua một số thông tin về địa điểm, giá cả, diện tích

Actor Người dùng khách hàng

Dòng sự kiện chính Truy cập vào trang web

Truy cập vào tab “Thống kê bất động sản” Lựa chọn điều kiện để hiển thị biểu đồ Biểu đồ hiển thị

Dòng sự kiện khác Không có

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị biểu đồ theo yêu cầu của người dùng

Các yêu câu đặc biệt Không có

Bảng 4.1.14 Đặc tả usecase “Xem thông tin bđs dưới dạng biểu đồ”

4.1.3.13 Đặc tả use-case “Tương tác với chatbox”

Tên chức năng Tương tác với chatbox

Tóm tắt Tìm kiếm thông tin phù hợp để tương tác với người dùng

Actor Người dùng khách hàng

Dòng sự kiện chính Truy cập vào trang web

Chọn popup chatbox Tiến hành tìm kiếm, tương tác với chatbox

Dòng sự kiện khác Không có

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị kết quả phù hợp với tìm kiếm của người dùng

Các yêu câu đặc biệt Chỉ trả lời các thông tin liên quan đến tìm kiếm bất động sản

Bảng 4.1.15 Đặc tả usecase “Tương tác với chatbox”

4.1.3.14 Đặc tả use-case “Quản lý thể loại"

Tên chức năng Quản lý thể loại

Tóm tắt Quản lý danh sách thể loại như tìm kiếm, thêm mới, sửa, xóa thể loại

Dòng sự kiện chính Đăng nhập vào tài khoản người dùng admin

Truy cập vào tab “Quản lý thể loại”

Hiển thị danh sách thể loại

Nhấn từng chức năng sửa, thêm, tìm kiếm, xuất hiện trang danh sách hoặc trang thông tin để nhập

Nhấn chức năng xóa xuất hiện thông báo xác nhận xóa

Dòng sự kiện khác Không có

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị danh sách thể loại sau khi sử dụng chức năng

Các yêu câu đặc biệt Không có

Bảng 4.1.16 Đặc tả usecase “Quản lý thể loại”

4.1.3.15 Đặc tả use-case “Quản lý bất động sản"

Tên chức năng Quản lý bất động sản

Tóm tắt Hiển thị các bài viết liên quan phù hợp với các hoạt động của người dùng như xem, tìm kiếm, yêu thích,…

Dòng sự kiện chính Đăng nhập vào tài khoản người dùng admin

Truy cập vào tab “Quản lý căn hộ”

Hiển thị danh sách bài đăng bất động sản của người dùng

Nhấn từng chức năng sửa, thêm, tìm kiếm, xuất hiện trang danh sách hoặc trang thông tin để nhập

Nhấn chức năng xóa xuất hiện thông báo xác nhận xóa

Dòng sự kiện khác Không có

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị danh sách bài đăng bất động sản sau khi sử dụng chức năng

Các yêu câu đặc biệt Không có

Bảng 4.1.17 Đặc tả usecase “Quản lý bất động sản”

4.1.3.16 Đặc tả use-case “Làm nổi bật bất động sản"

Tên chức năng Làm nổi bật bất động sản

Tóm tắt Lựa chọn bài viết để làm bài nổi bật trên trang web

Dòng sự kiện chính Đăng nhập vào tài khoản người dùng admin

Truy cập vào tab “Quản lý căn hộ”

Hiển thị danh sách bài đăng bất động sản của người dùng

Nhấn chọn bài đăng muốn làm tin nổi bật hiển thị trên trang web

Dòng sự kiện khác Không có

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị danh sách bài đăng bất động sản sau khi sử dụng chức năng

Các yêu câu đặc biệt Không có

Bảng 4.1.18 Đặc tả usecase “Làm nổi bật bất động sản”

4.1.3.17 Đặc tả use-case “Quản lý người dùng khách hàng"

Tên chức năng Quản lý người dùng khách hàng

Bài viết tóm tắt việc hiển thị danh sách người dùng khách hàng, bao gồm thông tin chi tiết, danh sách bài đăng và danh sách yêu thích của từng khách hàng Người dùng cũng có khả năng lọc danh sách dựa trên các trường thông tin cụ thể.

Dòng sự kiện chính Đăng nhập vào tài khoản người dùng admin

Truy cập vào tab “Quản lý người dùng” Hiển thị danh sách người dùng

Xem danh sách bài đăng, bài yêu thích, thông tin của người dùng

Dòng sự kiện khác Không có

Trạng thái hệ thống trước khi thực hiện usecase

Actor: tất cả actor Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị danh sách người dùng

Các yêu câu đặc biệt Không có

Bảng 4.1.19 Đặc tả usecase “Quản lý người dùng khách hàng”

Thiết kế cơ sở dữ liệu

4.2.1 Sơ đồ Cơ sở dữ liệu

Hình 4.2.1 Sơ đồ cơ sở dữ liệu

4.2.2 Mô tả chi tiết các bảng

4.2.2.1 Bảng “user” – Tài Khoản người Dùng

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng user

2 username varchar Bắt buộc nhập Tên đăng nhập của người dùng

3 password varchar Bắt buộc nhập Mật khẩu của người dùng

4 first_name varchar Tên người dùng

5 last_name varchar Họ người dùng

6 full_name varchar Họ tên đầy đủ của người dùng

7 gender varchar Giới tính của người dùng

8 email varchar Email của người dùng

9 avatar varchar Ảnh đại diện của người dùng

10 description varchar Mô tả người dùng

11 phone varchar Số điện thoại người

12 role_id int Khóa ngoại Role của người dùng

13 is_deleted boolean Xác định đối tượng đã xóa hay chưa

14 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

15 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

16 created_at date Thời gian khởi tạo đối tượng

17 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.1 Mô tả bảng “user” – Thông tin người dùng

4.2.2.2 Bảng “role” – Vai trò của người dùng

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id varchar Khóa chính ID định danh của bảng role

2 description varchar Mô tả chi tiết vai trò

3 is_deleted boolean Xác định đối tượng đã xóa hay chưa

4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

6 created_at date Thời gian khởi tạo đối tượng

7 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.2 Mô tả bảng “role” – Vai trò của người dùng

4.2.2.3 Bảng “privilege” – Quyền hạn có trong hệ thống

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id varchar Khóa chính ID định danh của bảng privilege

2 description varchar Mô tả chi tiết quyền hạn

3 is_deleted boolean Xác định đối tượng đã xóa hay chưa

4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

6 created_at date Thời gian khởi tạo đối tượng

7 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.3 Mô tả bảng “privilege” – Quyền hạn có trong hệ thống

4.2.2.4 Bảng “role_privilege” – Quyền hạn của vai trò

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 role_id varchar Khóa chính, Khóa ngoại

ID định danh của bảng role_privilege, khóa ngoại trỏ tới bảng role

2 privilege_id varchar Khóa chính, Khóa ngoại

ID định danh của bảng role_privilege, khóa ngoại trỏ tới bảng privilege

3 is_deleted boolean Xác định đối tượng đã xóa hay chưa

4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

6 created_at date Thời gian khởi tạo đối tượng

7 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.4 Mô tả bảng “role_privilege” – Quyền hạn của vai trò

4.2.2.5 Bảng “user_address” – Địa chỉ của người dùng

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính, Khóa ngoại

ID định danh của bảng user_address, quan hệ 1-1 với bảng user

2 address varchar Bắt buộc nhập Mô tả chi tiết địa chỉ người dùng

3 country_id varchar Khóa Ngoại, Bắt buộc nhập

Khóa ngoại trỏ đến bảng country, cho biết người dùng thuộc quốc gia nào

4 province_id int Khóa Ngoại, Bắt buộc nhập

Khóa ngoại trỏ đến bảng province, cho biết người dùng thuộc tỉnh, thành phố nào

5 district_id int Khóa Ngoại, Bắt buộc nhập

Khóa ngoại trỏ đến bảng district, cho biết người dùng thuộc xã, huyện nào

Bảng 4.2.5 Mô tả bảng “user_address” – Địa chỉ của người dùng

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 code varchar Khóa chính ID định danh của bảng country

2 name varchar Bắt buộc nhập Tên quốc gia

3 phone_code int Bắt buộc nhập Mã code điện thoại của quốc gia

Bảng 4.2.6 Mô tả bảng “country” – Quốc gia

4.2.2.7 Bảng “province” – Tỉnh, Thành Phố

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id id Khóa chính ID định danh của bảng province

2 is_city boolean Bắt buộc nhập Kiểm tra đối tượng có phải thành phố hay không

3 name varchar Bắt buộc nhập Tên của tỉnh, thành phố

4 short_name varchar Bắt buộc nhập Tên rút gọn của tỉnh, thành phố

5 country_id varchar Khóa ngoại, Bắt buộc nhập

Khóa ngoại trỏ đến bảng country, cho biết tỉnh, thành phố thuộc quốc gia nào

Bảng 4.2.7 Mô tả bảng “province” – Tỉnh, Thành Phố

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id id Khóa chính ID định danh của bảng district

2 name varchar Bắt buộc nhập Tên của xã, huyện

3 short_name varchar Bắt buộc nhập Tên rút gọn của xã, huyện

4 province_id int Khóa ngoại, Bắt buộc nhập

Khóa ngoại trỏ đến bảng province, cho biết xã, huyện thuộc tỉnh, thành phố nào

Bảng 4.2.8 Mô tả bảng “district” – Xã, Huyện

4.2.2.9 Bảng “apartment” – Thông tin bất động sản

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng apartment

2 area double Bắt buộc nhập Diện tích bất động sản

3 title varchar Bắt buộc nhập Tiêu đề bất động sản

4 expired_date date Bắt buộc nhập Ngày hết hạn (đóng bài viết) bất động sản

5 price_rent double Giá thuê bất động sản(dành cho thể loại thuê)

6 unit_rent varchar Giá bất động sản kèm đơn vị(dành cho thể loại thuê)(VD: 15 triệu/ tháng)

7 price double Giá bất động sản tính theo đơn vị m2(dành cho thể loại bán)

8 total_price double Tổng giá của bất động sản(dành cho thể loại bán)

9 type_apartment varchar Bắt buộc nhập Loại bất động sản

10 highlight boolean Bất động sản nổi bật

11 status varchar Trạng thái bất động sản

12 photos varchar Bắt buộc nhập Danh sách hình ảnh của bất động sản

13 author_id int Khóa ngoại Khóa ngoại trỏ đến bảng user, tác giả của bất động sản

14 category_id int Khóa ngoại, Bắt buộc nhập

Khóa ngoại trỏ đến bảng category, thể loại bất động sản

15 is_deleted boolean Xác định đối tượng đã xóa hay chưa

16 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

17 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

18 created_at date Thời gian khởi tạo đối tượng

19 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.9 Mô tả bảng “apartment” – Thông tin bất động sản

4.2.2.10 Bảng “apartment_detail” – Thông tin chi tiết bất động sản

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính, khóa ngoại

ID định danh của bảng apartment_detail, quan hệ 1-1 với bảng apartment

2 bathroom_quantity int Số lượng phòng tắm của bất động sản

3 bedroom_quantity int Số lượng phòng ngủ của bất động sản

4 description varchar Mô tả chi tiết bất động sản

5 floor_quantity int Số lượng tầng của bất động sản

6 house_direction varchar Hướng nhà bất động sản

7 toilet_quantity int Số phòng vệ sinh của bất động sản

8 more_info varchar Thông tin thêm về bất động sản

Bảng 4.2.10 Mô tả bảng “apartment_detail” – Thông tin chi tiết bất động sản

4.2.2.11 Bảng “apartment_address” – Địa chỉ bất động sản

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính, Khóa ngoại

ID định danh của bảng apartment_address,

49 quan hệ 1-1 với bảng apartment

2 address varchar Bắt buộc nhập Mô tả chi tiết địa chỉ bất động sản

3 country_id varchar Khóa Ngoại, Bắt buộc nhập

Khóa ngoại trỏ đến bảng country, cho biết bất động sản thuộc quốc gia nào

4 province_id int Khóa Ngoại, Bắt buộc nhập

Khóa ngoại trỏ đến bảng province, cho biết bất động sản thuộc tỉnh, thành phố nào

5 district_id int Khóa Ngoại, Bắt buộc nhập

Khóa ngoại trỏ đến bảng district, cho biết bất động sản thuộc xã, huyện nào

Bảng 4.2.11 Mô tả bảng “apartment_address” – Địa chỉ của bất động sản

4.2.2.12 Bảng “category” – Thể loại bất động sản

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id varchar Khóa chính ID định danh của bảng category

2 name varchar Mô tả tên của thể loại

3 is_deleted boolean Xác định đối tượng đã xóa hay chưa

4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

6 created_at date Thời gian khởi tạo đối tượng

7 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.12 Mô tả bảng “category” – Thể loại bất động sản

4.2.2.13 Bảng “favourite” – Danh sách bất động sản yêu thích của người dùng

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 apartment_id int Khóa chính, Khóa ngoại

ID định danh của bảng favourite, khóa ngoại trỏ tới bảng apartment

2 user_id int Khóa chính, Khóa ngoại

ID định danh của bảng favourite, khóa ngoại trỏ tới bảng user

3 is_deleted boolean Xác định đối tượng đã xóa hay chưa

4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

6 created_at date Thời gian khởi tạo đối tượng

7 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.13 Mô tả bảng “favourite” – Người dùng yêu thích bất động sản

4.2.2.14 Bảng “tracking_category” – Danh sách thông tin tracking của người dùng đối với thể loại

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_category

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với thể loại này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 category_id int Khóa ngoại Khóa ngoại trỏ đến bảng category

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.14 Mô tả bảng “tracking_category” – Thông tin tracking của người dùng đối với category

4.2.2.15 Bảng “tracking_district” – Danh sách thông tin tracking của người dùng đối với huyện/xã

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_ district

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với huyện, xã này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 district_id int Khóa ngoại Khóa ngoại trỏ đến bảng district

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.15 Mô tả bảng “tracking_ district” – Thông tin tracking của người dùng đối với xã, huyện

4.2.2.16 Bảng “tracking_province” – Danh sách thông tin tracking của người dùng đối với quận/thành phố

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 province_id int Khóa ngoại Khóa ngoại trỏ đến bảng province

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.16 Mô tả bảng “tracking_ province” – Thông tin tracking của người dùng đối với tỉnh, thành phố

4.2.2.17 Bảng “tracking_area” – Danh sách thông tin tracking của người dùng đối với diện tích

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 area double Thông tin tracking về diện tích

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.17 Mô tả bảng “tracking_ area” – Thông tin tracking của người dùng đối với diện tích

4.2.2.18 Bảng “tracking_bathroom” – Danh sách thông tin tracking của người dùng đối với phòng tắm

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 bathroom int Thông tin tracking về số lượng phòng tắm

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.18 Mô tả bảng “tracking_ bathroom” – Thông tin tracking của người dùng đối với phòng tắm

4.2.2.19 Bảng “tracking_bedroom” – Danh sách thông tin tracking của người dùng đối với phòng ngủ

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 bedroom int Thông tin tracking về số lượng phòng ngủ

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.19 Mô tả bảng “tracking_ bedroom” – Thông tin tracking của người dùng đối với phòng ngủ

4.2.2.20 Bảng “tracking_direction” – Danh sách thông tin tracking của người dùng đối với hướng nhà

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm

59 đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 direction varchar Thông tin tracking về hướng nhà

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.20 Mô tả bảng “tracking_ province” – Thông tin tracking của người dùng đối với hướng nhà

4.2.2.21 Bảng “tracking_floor” – Danh sách thông tin tracking của người dùng đối với số lượng tầng

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 floor int Thông tin tracking về số lượng tầng

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.21 Mô tả bảng “tracking_ floor” – Thông tin tracking của người dùng đối với số lượng tầng

4.2.2.22 Bảng “tracking_price” – Danh sách thông tin tracking của người dùng đối với giá

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 price double Thông tin tracking về số lượng giá

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.22 Mô tả bảng “tracking_ price” – Thông tin tracking của người dùng đối với giá

4.2.2.23 Bảng “tracking_toilet” – Danh sách thông tin tracking của người dùng đối với nhà vệ sinh

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 toilet int Thông tin tracking về nhà vệ sinh

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.23 Mô tả bảng “tracking_ toilet” – Thông tin tracking của người dùng đối với nhà vệ sinh

4.2.2.24 Bảng “tracking_type_apartment” – Danh sách thông tin tracking của người dùng đối với thể loại

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm

64 đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 type_apartment varchar Thông tin tracking về số lượng thể loại

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.24 Mô tả bảng “tracking_ type_apartment” – Thông tin tracking của người dùng đối với số lượng thể loại

4.2.2.25 Bảng “tracking_temporary_chat” – Tracking lại thông tin tạm thời đối với chatbox

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 key varchar unique Key tự động để tìm kiếm

3 value varchar Danh sách bất động sản phù hợp

Bảng 4.2.25 Mô tả bảng “tracking_ temporary_chat” – Thông tin tracking tạm thời của chatbox

4.2.2.26 Bảng “log_scraping” – Danh sách thông tin lịch sử cào dữ liệu

STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú

1 id int Khóa chính ID định danh của bảng tracking_province

2 ip varchar Bắt buộc nhập Địa chỉ IP của người dùng

3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với quận thành phố này

4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user

5 type_apartment varchar Thông tin tracking về số lượng thể loại

6 is_deleted boolean Xác định đối tượng đã xóa hay chưa

7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng

8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng

9 created_at date Thời gian khởi tạo đối tượng

10 updated_at date Thời gian cập nhật đối tượng

Bảng 4.2.26 Mô tả bảng “log_scraping” – Danh sách thông tin lịch sử cào dữ liệu

Thiết kế giao diện

4.3.1 Danh sách các màn hình

Tên màn hình Ý nghĩa, ghi chú

1 Đăng ký Màn hình đăng ký tài khoản dành cho người dùng chưa có tài khoản

2 Đăng nhập Màn hình hiện nơi đăng nhập cho người dùng

3 Đổi mật khẩu Màn hình đổi mật khẩu dành cho người dùng

4 Trang chủ Màn hình hiển thị tìm kiếm theo 2 danh mục: nhà đất bán và nhà đất cho thuê

Có những chức năng chính như:

• Tìm kiếm theo một số tiêu chí như: thể loại, thành phố, huyện, diện tích, mưc giá ,…

• Vào trang quản lý thông tin cá nhân

• Vào trang tìm kiếm tất cả danh mục

• Hiển thị danh sách bất động sản phù hợp

• Hiển thị các thể loại

• Hiển thị danh sách bất động sản mới nhất, bất động sản nổi bật

Hiển thị thông tin cơ bản của hệ thống

5 Tạo bất động sản Màn hình để người dùng có thể thêm mới một bất động sản

6 Cập nhập bất động sản

Màn hình cập nhật bất động sản của người dùng sau khi đã thêm mới

7 Cập nhập thông tin cá nhân

Màn hình chỉnh sửa thông tin cá nhân của người dùng

Ngoài ra ở màn hình thông tin cá nhân còn có:

• Danh sách bất động sản đã đăng

• Danh sách bất động sản yêu thích

8 Danh sách nhà đất bán

Màn hình hiển thị danh sách nhà đất bán, lọc, tìm kiếm một số thông tin cơ bản

9 Danh sách nhà đất cho thuê

Màn hình hiển thị danh sách nhà đất cho thuê, lọc, tìm kiếm một số thông tin cơ bản

10 Danh sách bất động sản phù hợp

Màn hình hiển thị danh sách các bất động sản phù hợp với người dùng

11 Chi tiết bất động sản Màn hình hiển thị đầy đủ thông tin của bất động sản giúp người dùng dể dàng tham khảo, kèm theo đó là

68 thông tin của người bán và những gợi ý bất động sản liên quan hoặc gần như tương tự

12 Màn hình quản lý bất động sản

Màn hình quản lý căn hộ dành cho quản trị viên Bao gồm các tính năng:

• Duyệt, Xóa, Sửa, Khôi phục bất động sản

13 Màn hình quản lý người dùng

Màn hình quản lý người dùng dành cho quản trị viên Bao gồm các tính năng:

• Quản lý thông tin người dùng

• Danh sách các bài đăng của người dùng

• Danh sách các bài yêu thích của người dùng

14 Màn hình quản lý thể loại

Màn hình quản lý, thêm, xóa, sửa thể loại

15 Màn hình thống kê bất động sản

Màn hình thống kê bất động sản dưới dạng biểu đồ: đường, cột, radar

Bảng 4.3.1 Danh sách các màn hình

4.3.2 Hình ảnh một số màn hình chính

Hình 4.3.1 Giao diện trang “Đăng ký”

Hình 4.3.2 Giao diện trang “Đăng nhập”

Hình 4.3.3 Giao diện trang “Trang chủ”

4.3.2.4 Màn hình “Tạo bất động sản”

Hình 4.3.4 Giao diện trang “Tạo bất động sản”

4.3.2.5 Màn hình “Cập nhật thông tin cá nhân”

Hình 4.3.5 Giao diện trang “Chỉnh sửa thông tin cá nhân”

4.3.2.6 Màn hình “Danh sách bất động sản”

Hình 4.3.6 Giao diện trang “Danh sách bất động sản”

4.3.2.7 Màn hình “Chi tiết bất động sản”

Hình 4.3.7 Giao diện trang chi tiết bất động sản

4.3.2.8 Màn hình “Biểu đồ thống kê bất động sản”

Hình 4.3.8 Giao diện trang “Thống kê biểu đồ”

4.3.2.9 Màn hình “Quản lý bất động sản”

Hình 4.3.9 Giao diện trang “Quản lý bất động sản”

4.3.2.10 Màn hình “Quản lý người dùng”

Hình 4.3.10 Giao diện trang “Quản lý người dùng”

4.3.2.11 Màn hình “Quản lý thể loại”

Hình 4.3.11 Giao diện trang “Quản lý thể loại”

Ngày đăng: 16/06/2022, 21:03

HÌNH ẢNH LIÊN QUAN

Hình 2.4.1. Các hoạt động của Dialogflow - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Hình 2.4.1. Các hoạt động của Dialogflow (Trang 30)
Hình 2.4.2. Training phrases Dialogflow - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Hình 2.4.2. Training phrases Dialogflow (Trang 31)
Hình 2.4.3. Intents - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Hình 2.4.3. Intents (Trang 32)
Hình 2.4.7. Lí do vì sao nên sử dụng Reactjs - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Hình 2.4.7. Lí do vì sao nên sử dụng Reactjs (Trang 36)
4.1. Sơ đồ Use Case - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
4.1. Sơ đồ Use Case (Trang 39)
Bảng 4.1.6. Đặc tả usecase “Đăng xuất” - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Bảng 4.1.6. Đặc tả usecase “Đăng xuất” (Trang 45)
Bảng 4.1.7. Đặc tả usecase “Lọc/Tìm kiếm bất động sản” - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Bảng 4.1.7. Đặc tả usecase “Lọc/Tìm kiếm bất động sản” (Trang 46)
Bảng 4.1.8. Đặc tả usecase “Trang cá nhân” - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Bảng 4.1.8. Đặc tả usecase “Trang cá nhân” (Trang 47)
Bảng 4.1.10. Đặc tả usecase “Quản lý yêu thích, lưu lại thông tin bài viết” - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Bảng 4.1.10. Đặc tả usecase “Quản lý yêu thích, lưu lại thông tin bài viết” (Trang 49)
Bảng 4.1.11. Đặc tả usecase “Chỉnh sửa thông tin” - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Bảng 4.1.11. Đặc tả usecase “Chỉnh sửa thông tin” (Trang 50)
Bảng 4.1.18. Đặc tả usecase “Làm nổi bật bất động sản” - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Bảng 4.1.18. Đặc tả usecase “Làm nổi bật bất động sản” (Trang 57)
Bảng 4.1.19. Đặc tả usecase “Quản lý người dùng khách hàng” - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Bảng 4.1.19. Đặc tả usecase “Quản lý người dùng khách hàng” (Trang 58)
4.2.1. Sơ đồ Cơ sở dữ liệu - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
4.2.1. Sơ đồ Cơ sở dữ liệu (Trang 59)
Bảng 4.2.5. Mô tả bảng “user_address” – Địa chỉ của người dùng - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Bảng 4.2.5. Mô tả bảng “user_address” – Địa chỉ của người dùng (Trang 64)
Bảng 4.2.14. Mô tả bảng “tracking_category” – Thông tin tracking của người dùng - Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2)
Bảng 4.2.14. Mô tả bảng “tracking_category” – Thông tin tracking của người dùng (Trang 72)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w