TỔNG QUAN
Đặt vấn đề
Thị trường bất động sản đóng vai trò quan trọng trong nền kinh tế quốc dân, liên kết chặt chẽ với các thị trường tài chính, xây dựng, vật liệu xây dựng và lao động Việc phát triển và quản lý hiệu quả thị trường này không chỉ thúc đẩy tăng trưởng kinh tế - xã hội mà còn thu hút đầu tư, góp phần vào sự phát triển bền vững của đô thị và nông thôn, hướng tới công nghiệp hóa và hiện đại hóa đất nước.
Với kiến thức về công nghệ thông tin, chúng ta có thể phát triển phần mềm hỗ trợ cung cấp thông tin chính xác, giúp người bán và người mua giao dịch thuận tiện hơn Phần mềm này còn giúp người mua tìm kiếm thông tin phù hợp với nhu cầu cá nhân và tin tưởng vào các thông tin được đăng tải trên website, thay vì phải dựa vào các cò đất không uy tín trên thị trường.
Phát biểu bài toán
1.2.1 Giới thiệu hệ thống website “Tìm kiếm và chia sẻ thông tin bất động sản”
Hệ thống thu thập và rút trích thông tin bất động sản từ batdongsan.com.vn một cách hiệu quả, bao gồm nội dung, giá cả, địa chỉ, thông tin chi tiết và hình ảnh Thông tin được sắp xếp và lưu trữ hệ thống, giúp dễ dàng sử dụng và chia sẻ với khách hàng một cách rõ ràng, dễ nhìn và dễ đọc, mang lại lợi ích tối đa cho khách hàng.
Hệ thống này cho phép khách hàng tiết kiệm thời gian bằng cách không cần phải truy cập từng trang web để tìm kiếm thông tin Thay vào đó, họ chỉ cần truy cập vào một trang web duy nhất để có được tất cả thông tin cần thiết.
Website cung cấp công cụ sắp xếp hiệu quả, giúp người dùng nhanh chóng tìm kiếm thông tin theo các tiêu chí như lượt thích nhiều nhất, lượt bình luận nhiều nhất và mới nhất.
Website sở hữu công cụ tìm kiếm hiệu quả, giúp người dùng nhanh chóng tìm kiếm thông tin về bất động sản như loại nhà đất, địa chỉ và giá cả.
Hệ thống cho phép người dùng đăng tải thông tin bất động sản của mình, giúp chia sẻ rộng rãi đến những người dùng khác và khách hàng tiềm năng.
Hệ thống cho phép người dùng tương tác với từng tin tức bằng cách bày tỏ trạng thái như Thích và Bình luận, từ đó tăng tính tin cậy cho bài viết và biến thông tin không còn một chiều Ngoài ra, người dùng còn có thể thêm hoặc bỏ tin tức vào danh sách ưa thích, giúp họ dễ dàng theo dõi những thông tin nhà đất mà họ quan tâm.
Người dùng có quyền sửa hoặc xoá tin tức mà họ đã chia sẻ nếu phát hiện nội dung sai lệch Bên cạnh đó, quản trị viên có quyền chỉnh sửa hoặc gỡ bỏ toàn bộ tin tức khi nhận được báo cáo về thông tin không chính xác.
1.2.2 Khảo sát hệ thống liên quan
- Nhóm đã tham khảo nhiều hệ thống website bất động sản như batdongsan.com.vn
Hầu hết các website bất động sản hiện nay chỉ cung cấp thông tin một chiều, khiến người dùng khó xác thực tính an toàn và độ chính xác của dữ liệu Điều này tạo ra sự mơ hồ trong quá trình tìm kiếm Để khắc phục vấn đề này, hệ thống sẽ phát triển một website đột phá, không chỉ cho phép người dùng tìm kiếm thông tin về bất động sản mà còn cung cấp các tin tức và phân tích thị trường, giúp họ có cái nhìn toàn diện và chính xác hơn.
4 tin cụ thể và chính xác hơn.
Mục tiêu và phạm vi đề tài
- Xây dựng một website trên nền tảng web với mục đích chính là tìm kiếm và chia sẻ thông tin bất động sản
- Xây dựng chức năng thêm vào danh sách ưu thích để tiện cho người dùng
- Xây dựng server theo thời gian thực, cập nhật các thông tin bài viết người dùng đăng hoặc chia sẻ
- Xây dựng chức năng đăng thông tin bất động sản
- Xây dựng chức năng cập nhật và xoá thông tin bất động sản
- Xây dựng chức năng đăng nhập và hệ thống người dùng để tăng tính bảo mật
- Xây dựng chức năng tìm kiếm thông tin bất động sản cơ bản và nâng cao
- Xây dựng chức năng sắp xếp với các yêu cầu cơ bản để giúp người dùng tiện trong lúc tìm kiếm thông tin
Sau khi tìm hiểu và nghiên cứu sơ bộ về nhu cầu sử dụng của người dùng, nhóm quyết định phạm vi thực hiện đề tài như sau:
- Phạm vi địa lý: Ứng dụng được sử dụng tại Việt Nam
• Quản lý thông tin người dùng
• Quản lí thông tin bất động sản
• Quản lí bài viết của người dùng
• Tìm kiếm thông tin loại hình bất động sản
• Sắp xếp thông tin bất động sản
• Cập nhật thông tin bất động sản mới nhất
Các cá nhân có nhu cầu tìm kiếm và chia sẻ thông tin bất động sản
- Hoàn thành website cung cấp thông tin bất động sản
- Hoàn thành chức năng cho phép người dùng lưu vào danh sách ưa thích
- Hoàn thành chức năng tìm kiếm và sắp xếp tin tức
- Hoàn thành chi tiết về 1 thông tin bất động sản.
CƠ SỞ LÝ THUYẾT
JavaSpring 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 quy trình phát triển ứng dụng, cho phép họ tập trung vào việc xây dựng các tính năng kinh doanh mà không cần lo lắng về các khía cạnh phức tạp khác của lập trình.
2.1.2 Tại sao nên sử dụng JavaSpring Boot
Sử dụng Java để phát triển web project giúp tiết kiệm thời gian và công sức, vì nhiều công đoạn đã được tự động hóa, tương tự như việc sử dụng các framework PHP như Symfony hay 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 đó, theo quan điểm của tôi, ứng dụng web Java sau khi build có tốc độ chạy nhanh hơn đáng kể 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 chủ yếu cho các nền tảng tương tự UNIX, nhưng đã được điều chỉnh để tương thích với nhiều hệ điều hành 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 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ó toàn quyền tự do trong việc khai thác và phát triển PostgreSQL dưới mọi hình thức.
PostgreSQL có tính ổn định cao, do đó không cần nhiều công tác bảo trì Khi phát triển ứng dụng dựa trên PostgreSQL, bạn sẽ tiết kiệm được chi phí sở hữu 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 của PostgreSQL được cung cấp miễn phí dưới giấy phép mã 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 người dùng triển khai 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 hỗ trợ cho các đối tượng địa lý, cho phép nó trở thành kho lưu trữ dữ liệu không gian địa lý lý tưởng 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 bất kỳ tổ chức nào, điều này đã khiến nó gặp khó khăn trong việc xây dựng thương hiệu Mặc dù vậy, Postgres sở hữu đầy đủ tính năng và có khả năng cạnh tranh với các hệ thống quản lý cơ sở dữ liệu (DBMS) 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
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 tính năng đa dạng, hỗ trợ các nhà phát triển xây dựng ứng dụng và các quản trị viên bảo vệ tính toàn vẹn dữ liệu Hệ thống này cung cấp 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ỏ Ngoài việc là mã nguồn mở và miễn phí, PostgreSQL còn cho phép mở rộng linh hoạt, 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à tích hợp mã từ nhiều ngôn ngữ lập trình 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, đồng thời vẫn giữ được các tính năng truyền thống mà không gây ra những quyết định kiến trúc không hợp lý Mặc dù hỗ trợ nhiều tính năng theo tiêu chuẩn SQL, cú pháp và hàm của nó đôi khi có sự khác biệt nhỏ.
2.2.3 Áp dụng PostgreSQL vào đề tài
Nhờ vào những tính năng vượt trội, PostgreSQL đã được nhóm lựa chọn làm hệ quản trị cơ sở dữ liệu chính Server sử dụng PostgreSQL để lưu trữ toàn bộ dữ liệu, và dữ liệu này được truy xuất thông qua REST API.
Reactjs
React.js là thư viện Javascript đang ngày càng phổ biến trong xu hướng phát triển 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ích hợp 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 mã HTML thông qua các thuộc tính như ng-model và ng-repeat, React sử dụng JSX để nhúng mã HTML vào mã Javascript, giúp lồng ghép các đoạn HTML vào trong JS một cách dễ dàng Sự tích hợp giữa Javascript và HTML trong JSX làm cho các component trở nên dễ hiểu hơn.
React là thư viện UI được phát triển bởi Facebook nhằm tạo ra 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à khả năng tái sử dụng Thư viện này không chỉ được sử dụng rộng rãi tại Facebook mà còn là nền tảng chính cho Instagram, nơi toàn bộ ứng dụng được xây dựng trên React.
React 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 Thư viện này so sánh sự thay đổi giữa các giá trị của lần render hiện tại và lần render trước, từ đó cập nhật một cách tối ưu nhất trên DOM.
2.3.2 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ụ liên quan đến giao diện người dùng (UI) Thư viện này được phân loại vào kiểu “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 bắt các khái niệm 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, bạn nên khám phá các hướng dẫn bổ ích như video, tài liệu và hướng dẫn chi tiết, giúp mở rộng hiểu biết và cải thiện kỹ năng sử dụng công cụ này.
Hỗ trợ Reusable Component trong Java:
React cho phép tái sử dụng các components đã 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 trong quá trình phát triển.
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 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 Ngoài ra, phần mở rộng này còn hỗ trợ việc render nhiều lựa chọn một cách dễ dàng hơn.
JSX có thể không phải là phần mở rộng cú pháp phổ biến nhất, nhưng nó đã chứng minh hiệu quả trong việc phát triển các component đặc biệt và ứng dụng quy mô lớn.
Hiệu suất tốt hơn với Virtual DOM:
React cải thiện hiệu suất cập nhật DOM (Mô hình đối tượng tài liệu), một quá trình thường gây thất vọng trong các ứ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 hiệu suất này.
Công cụ này cho phép tạo ra 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
React cung cấp khả năng tạo giao diện người dùng thân thiện với các công cụ tìm kiếm, điều này mang lại lợi thế lớn vì không phải tất cả các khung JavaScript đều tối ưu cho SEO.
React không chỉ giúp tăng tốc độ ứng dụng mà còn cải thiện kết quả SEO Tốc độ tải trang web là yếu tố quan trọng trong quá trình tối ưu hóa SEO, do đó việc sử dụng React có thể mang lại lợi ích đáng kể cho hiệu suất tìm kiếm.
Hình 2 1: Lý do vì sao nên sử dụng Reactjs
PHÁT BIỂU BÀI TOÁN
Giới thiệu hệ thống website “Tìm kiếm và chia sẻ thông tin bất động sản” 12 3.2 Khảo sát các hệ thống liên quan
Hệ thống sẽ thu thập và rút trích thông tin bất động sản một cách hiệu quả từ các trang web nổi tiếng như batdongsan.com.vn, bao gồm nội dung, giá cả, địa chỉ, người liên lạc, thông tin dự án và hình ảnh Thông tin này sẽ được sắp xếp và lưu trữ một cách có hệ thống, giúp dễ dàng sử dụng và chia sẻ tới khách hàng một cách rõ ràng, dễ nhìn, dễ đọc, mang lại lợi ích tối đa cho họ.
Hệ thống này giúp khách hàng tiết kiệm thời gian bằng cách cung cấp tất cả thông tin cần thiết chỉ qua một trang web duy nhất của nhóm, thay vì phải truy cập từng trang web khác nhau để tìm kiếm tin tức và thông tin.
Trang web cung cấp công cụ tìm kiếm hiệu quả, giúp người dùng nhanh chóng tìm kiếm thông tin về bất động sản, bao gồm địa chỉ, giá cả và loại hình bất động sản.
Trang web cung cấp công cụ sắp xếp hiệu quả, giúp người dùng nhanh chóng tìm kiếm thông tin theo các tiêu chí như lượt thích nhiều nhất, bài đăng mới nhất và lượt bình luận nhiều nhất.
Hệ thống cho phép người dùng đăng tải thông tin bất động sản của mình để chia sẻ với cộng đồng và khách hàng tiềm năng Mỗi tin tức được chia sẻ cho phép người dùng thể hiện ý kiến qua các tính năng như Thích, Bình luận, giúp tăng tính tin cậy cho bài viết Người dùng cũng có thể chia sẻ bài viết đến bạn bè để mở rộng sự tiếp cận thông tin.
3.2 Khảo sát các hệ thống liên quan
Nhóm đã nghiên cứu nhiều website bất động sản như batdongsan.com.vn, nhận thấy rằng hầu hết các trang này chỉ cung cấp thông tin một chiều, khiến người dùng gặp khó khăn trong việc tìm kiếm thông tin Để khắc phục điều này, hệ thống sẽ phát triển một website đột phá, tương tự như vnexpress, cho phép người dùng không chỉ tìm kiếm thông tin bất động sản mà còn tiếp cận các dịch vụ liên quan một cách dễ dàng và hiệu quả hơn.
Batdongsan.com.vn là một trong những website hàng đầu tại Việt Nam, cung cấp thông tin phong phú về bất động sản Người dùng có thể tìm kiếm, xem tin tức và đăng bài chia sẻ thông tin dễ dàng Trang web này không chỉ cập nhật liên tục các tin tức mới nhất mà còn có đội ngũ nhân viên tư vấn bất động sản sẵn sàng hỗ trợ, giúp người dùng tiếp cận thông tin cần thiết về các loại hình bất động sản.
Hình 3.1 Trang chủ của batdongsan.com.vn Các chức năng nổi bật của batdongsan.com.vn:
- Tìm kiếm chi tiết các loại hình thông tin bất động sản như: giá cả, vị trí, tên loại hình cũng như hướng…
- Cho phép người dùng đăng kí tài khoản đăng bài rao bán loại hình bất động sản của mình
Bài viết này cung cấp thông tin chi tiết về một loại hình bất động sản cố định, bao gồm tên loại hình, giá cả, địa chỉ, giá bán, hình ảnh minh họa rõ ràng, hướng nhà, cùng với các thông tin bổ sung và nội thất.
Chúng tôi có đội ngũ nhân viên tư vấn bất động sản chuyên nghiệp, sẵn sàng cung cấp thông tin chi tiết và hỗ trợ cần thiết cho người dùng, bao gồm cả hướng dẫn về thủ tục pháp lý.
Tìm kiếm thông tin bất động sản trở nên dễ dàng và thông minh hơn bao giờ hết Bạn chỉ cần nhập tên loại hình bất động sản, địa chỉ, diện tích hoặc mức giá để hệ thống nhanh chóng cung cấp thông tin cần thiết Với tính năng tìm kiếm và xem nhanh, bạn sẽ tiết kiệm thời gian và tìm được thông tin một cách hiệu quả nhất.
Website batdongsan.com.vn cung cấp thông tin chi tiết về bất động sản, bao gồm tên loại hình, giá cả, địa chỉ, hình ảnh và phong thủy nội thất.
- Hệ thống đăng bài rao tin chi tiết cụ thể và nhanh chóng
- Hệ thống thông tin hiển thị của trang web rất rối mắt vì các hình ảnh cứ lặp đi lặp lại nhiều
- Thông tin một chiều, có 1 vài tin không rõ thông tin người bán
Mogi.vn là một trang web mới nổi tại Việt Nam, chuyên cung cấp thông tin về bất động sản, giúp người dùng tìm kiếm và chia sẻ tin tức Dù mới ra mắt, mogi.vn đã nhanh chóng thu hút sự chú ý với giao diện thân thiện và hấp dẫn, tạo điều kiện thuận lợi cho người sử dụng Với những cải tiến liên tục, mogi.vn đang trở thành đối thủ đáng gờm của các website bất động sản hàng đầu tại Việt Nam.
Hình 3.2 Trang chủ của mogi.vn Các chức năng nổi bật của mogi.vn:
- Tìm kiếm chi tiết các loại hình thông tin bất động sản như: giá cả, vị trí, tên loại hình bất động sản, địa điểm …
- Cho phép người dùng đăng kí tài khoản đăng bài rao bán loại hình bất động sản của mình
Bài viết này cung cấp thông tin chi tiết về một loại hình bất động sản cố định, bao gồm tên loại hình, giá cả, địa chỉ cụ thể, giá bán, hình ảnh rõ nét, hướng nhà, cùng các thông tin bổ sung và mô tả nội thất.
Chúng tôi có đội ngũ nhân viên tư vấn bất động sản chuyên nghiệp, sẵn sàng cung cấp thông tin chi tiết và hỗ trợ cần thiết cho người dùng, bao gồm cả hướng dẫn về thủ tục pháp lý.
Tìm kiếm thông tin về loại hình bất động sản trở nên dễ dàng và thông minh hơn bao giờ hết Bạn chỉ cần nhập tên loại hình bất động sản, địa chỉ, diện tích hoặc mức giá để hệ thống nhanh chóng cung cấp thông tin cần thiết Với chức năng xem nhanh, việc tìm kiếm thông tin sẽ diễn ra nhanh chóng và hiệu quả.
Yêu cầu hệ thống
- Yêu cầu lưu trữ: Hệ thống đáp ứng yêu cầu lưu trữ các thông tin như:
• Thông tin bất động sản: địa điểm, loại hình bất động sản, diện tích, kích thước, giá bán, hướng nhà, người đăng tin
• Thông tin người dùng: họ tên
• Thông tin về hình ảnh: hình ảnh chân thật, rõ ràng
• Thông tin loại hình bất động sản
• Tìm kiếm loại hình bất động sản ví dụ như: bán, thuê, nhà riêng, biệt thự, đất nền dự án
• Tìm kiếm thông tin cụ thể của tin tức bất động sản như: địa điểm, khu vực, mức giá, diện tích
• Sắp xếp tin tức bất động sản ví dụ như: theo lượt thích, lượt bình luận, bài đăng mới nhất
3.3.2 Yêu cầu phi chức năng
- Yêu cầu về giao diện:
Giao diện hệ thống thân thiện và dễ sử dụng, giúp người dùng cảm thấy thoải mái mà không bị rối mắt Với thiết kế đơn giản, nó hướng đến việc tối ưu hóa trải nghiệm người dùng và nâng cao tính tương tác.
▪ Dễ dàng nâng cấp khi muốn nâng cao tính năng sẵn có nhờ vào tính tối ưu hoá của code
▪ Dễ dàng mở rộng khi ứng dụng được đón nhận rộng rãi và nhu cầu người dùng tăng lên nhờ vào Java và Reactjs
▪ Hệ thống có giao diện trực quan, thân thiện và dễ sử dụng
▪ Các nút ấn và dòng chữ hiển thị rõ ràng, dễ nhận thấy
▪ Hệ thống có tính responsive cho các dòng điện thoại và máy tính bảng
▪ Các nút ấn và dòng chữ hiển thị trực quan nội dung muốn truyền đạt
▪ Hệ thống thể hiện trực quan và chi tiết thông tin về loại hình bất động sản
Hệ thống tìm kiếm thông tin bất động sản cung cấp đầy đủ các thông tin cần thiết, bao gồm tiêu đề, nội dung bài viết và hình ảnh liên quan mà người dùng đăng tải.
▪ Qua việc có thể đăng tin, xoá tin, sửa tin, thích, bình luận như trang mạng xã hội hiện nay
▪ Hoạt động tốt trên nhiều trình duyệt web khác nhau
▪ Hoạt động tốt trên nhiều điện thoại thông minh
ĐẶC TẢ CÁC CHỨC NĂNG
Chức năng đăng bài viết
Chức năng Đăng bài viết
Mô tả Đăng các bài viết liên quan đến sản phẩm cần bán hoặc cần mua bao gồm thông tin, hình ảnh, giá cả, …
Mục đích Tiếp cận được với các đối tượng khi tham gia vào web và dễ dàng đưa thông tin sản phẩm lan rộng
- Xác thực thông tin chính xác
Người dùng cần xác thực thông tin tài khoản (KYC) trước khi được phép đăng tải bài viết Nếu thông tin không chính xác, họ sẽ phải chịu trách nhiệm bồi thường.
- Giới hạn lượt đăng bài của mỗi tài khoản
Bảng 4.1: Đặc tả chức năng bài viết
Chức năng tìm kiếm bài viết
Chức năng Tìm kiếm lọc bài viết
Mô tả Dùng để tìm kiếm thông tin liên quan đến nhà, đất theo ý muốn
Tích hợp các filter lọc thông tin
Mục đích Dễ dàng tiếp cận các sản phẩm quan tâm
- Lọc thông tin không theo ý muốn của người dùng
- Xử lí lọc thông tin chậm
Giải pháp - Tăng cường bộ lọc đa dạng
- Tối ưu thuật toán giúp lọc thông tin nhanh hơn
Bảng 4.2: Đặc tả chức năng tìm kiếm bài viết
Chức năng yêu thích, lưu lại thông tin bài viết quan tâm
Chức năng Chức năng yêu thích, lưu lại thông tin bài viết
Mô tả Lưu trữ các bài viết quan tâm để xem lại
Mục đích Truy xuất nhanh các bài viết mình cần quan tâm
- Người dung lưu nhiều thông tin dẫn đến bị nhầm lẫn giữa các bài viết
Giải pháp - Thêm bộ lọc, lưu trữ thêm thông tin về thời gian, chú thích
Bảng 4.3: Đặc tả chức năng yêu thích lưu lại thông tin bài viết
Chức năng recommend bài viết
Chức năng Hiển thị tự động bài viết khuyến khích cho người dùng
Mô tả Hiển thị một số loại bài viết tương tự mà người dùng đã quan tâm trước đó
Mục đích Dễ dàng tiếp cận các sản phẩm quan tâm
- Xử lí thông tin không chính xác
- Cần phải thông qua dữ liệu của người dùng sau một thời gian sử dụng
Giải pháp - Tối ưu thuật toán
Bảng 4.4: Đặc tả chức năng recommend bài viết
Chức năng quản lý người dùng
Chức năng Quản lý thông tin người dùng
Mô tả Quản lý thông tin, lịch sử quan tâm, của người dùng trong hệ thống
Mục đích Biết được nhu cầu, dễ dàng đáp ứng nhu cầu của người dùng
Giải pháp - Phân chia dựa theo số lượng quan tâm bài viết của người dùng
Bảng 4.5: Đặc tả chức năng quản lý người dùng
Chức năng quản lý bài viết
Chức năng Quản lý bài viết
Mô tả Quản lý thông tin bài viết, cho phép duyệt, từ chối đến những bài viết không đạt yêu cầu
Mục đích Đảm bảo thông tin, tính xác thực của bài viết
- Phân loại không chính xác bài viết
Giải pháp - Cho phép người dùng gửi lại thông tin bài viết kèm lí do để quản trị viên xem xét
Bảng 4.6: Đặc tả chức năng quản lý bài viết
Chức năng quản lý các báo cáo
Chức năng Quản lý báo cáo, thống kê
Mô tả Quản lý các báo cáo, thống kê về người dùng, lượt đăng tải bài
Mục đích Dễ dàng tổng kết, quản lí thông tin của hệ thống
- Thống kê cần phải chi tiết và chính xác
Giải pháp - Chia nhỏ thống kê và tối ưu thuật toán
Bảng 4.7: Đặc tả chức năng quản lý báo cáo
Chức năng cập nhật mục tiêu tìm kiếm
Chức năng Cập nhật mục tiêu tìm kiếm của người dùng
Người dùng có thể xác định mục tiêu và nhu cầu tìm kiếm bất động sản của mình, bao gồm địa điểm, giá cả và diện tích Dựa trên những thông tin này, hệ thống sẽ cung cấp các lựa chọn phù hợp nhất với yêu cầu của người dùng.
Mục đích - Hệ thống phân loại và đưa ra những sản phẩm phù hợp với mục tiêu tìm kiếm của các nhân
Người dùng nên cung cấp thông tin đầy đủ và chi tiết để hệ thống có thể đưa ra những bất động sản phù hợp nhất với nhu cầu của họ.
Giải pháp - Tối ưu thuật toán
Bảng 4.8: Đặc tả chức năng cập nhật mục tiêu tìm kiếm
Chức năng hiển thị độ phù hợp của bất động sản đối với người dùng 23 4.10 Chức năng thống kê tổng quát bất động sản
Hệ thống sẽ phân tích mục tiêu của từng người dùng và cung cấp phần trăm độ phù hợp của từng bất động sản với nhu cầu của họ.
Mục đích - Người dùng sẽ dễ dàng có cái nhìn tổng quan hơn, dễ dàng tìm kiếm được bất động sản phù hợp với mong muốn của bản thân
- Cần phải nâng cao độ chính xác để đưa ra được độ phù hợp chuẩn xác đối với người dùng
Giải pháp - Tối ưu thuật toán
Bảng 4.9: Đặc tả chức năng hiển thị độ phù hợp của bất động sản đối với người dùng
4.10 Chức năng thống kê tổng quát bất động sản
Chức năng Thống kê tổng quát bất động sản dưới dạng biểu đồ
Hệ thống sẽ tổng hợp và phân tích số lượng bất động sản dựa trên các yếu tố như địa điểm, giá cả và diện tích, giúp người dùng có cái nhìn tổng quát hơn về thị trường Đồng thời, hệ thống cũng sẽ giới thiệu những sản phẩm nổi bật phù hợp với nhu cầu của người dùng.
24 người dùng cho phép người dùng dễ dàng lựa chọn
Mục đích - Người dùng có thể khảo sát, xem xét được tổng quát các bất động sản để đưa ra quyết định phù hợp với nhu cầu của mình
- Cần tối ưu hóa biểu đồ để người dùng có cách nhìn trực quan hơn
Giải pháp - Hiển thị 3 dạng biểu đồ: đường, cột, radar để người dùng dễ dàng quan sát
Bảng 4.10: Đặc tả chức năng thống kê tỏng quát bất động sản
THIẾT KẾ DỮ LIỆU
Sơ đồ cơ sở dữ liệu
Hình 5.1: Sơ đồ cơ sở dữ liệu
Mô tả chi tiết các bảng
5.2.1 Bảng “user” – Tài Khoản người Dùng
Z` 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 is_deleted boolean Xác định đối tượng đã xóa hay chưa
13 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
14 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
15 created_at date Thời gian khởi tạo đối tượng
16 updated_at date Thời gian cập nhật đối tượng
Bảng 5.1: Mô tả bảng “user” – Thông tin người dùng
5.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 5.2: Mô tả bảng “role” – Vai trò của người dùng
5.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 5.3: Mô tả bảng “privilege” – Quyền hạn có trong hệ thống
5.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 5.4: Mô tả bảng “role_privilege” – Quyền hạn của vai trò
5.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
30 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 5.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 5.6: Mô tả bảng “country” – Quốc gia
5.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 5.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 5.8: Mô tả bảng “district” – Xã, Huyện
5.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 overview varchar Bắt buộc nhập Tổng quan của bài viết
6 price double Giá bất động sản tính theo đơn vị m2
7 total_price double Bắt buộc nhập Tổng giá của bất động sản
8 type_apartment varchar Bắt buộc nhập Loại bất động sản
9 highlight boolean Bất động sản nổi bật
10 status varchar Trạng thái bất động sản
11 photos varchar Bắt buộc nhập Danh sách hình ảnh của bất động sản
12 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
13 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
14 is_deleted boolean Xác định đối tượng đã xóa hay chưa
15 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
16 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
17 created_at date Thời gian khởi tạo đối tượng
18 updated_at date Thời gian cập nhật đối tượng
Bảng 5.9: Mô tả bảng “apartment” – Thông tin bất động sản
5.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 balcony_direction varchar Bắt buộc nhập Hướng ban công của bất động sản
3 bathroom_quantity int Bắt buộc nhập Số lượng phòng tắm của bất động sản
4 bedroom_quantity int Bắt buộc nhập Số lượng phòng ngủ của bất động sản
5 description varchar Bắt buộc nhập Mô tả chi tiết bất động sản
6 entrance_building varchar Bắt buộc nhập Hướng cổng vào bất động sản
7 floor_quantity int Bắt buộc nhập Số lượng tầng của bất động sản
8 front_building varchar Bắt buộc nhập Hướng mặt trước của bất động sản
9 furniture varchar Bắt buộc nhập Nội thất của bất động sản
10 house_direction varchar Bắt buộc nhập Hướng nhà bất động sản
11 toilet_quantity int Bắt buộc nhập Số phòng vệ sinh của bất động sản
Bảng 5.10: Mô tả bảng “apartment_detail” – Thông tin chi tiết bất động sản
5.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, 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 5.11: Mô tả bảng “apartment_address” – Địa chỉ của bất động sản
5.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 5.12: Mô tả bảng “category” – Thể loại bất động sản
5.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 5.13: Mô tả bảng “favourite” – Người dùng yêu thích bất động sản
5.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 5.14: Mô tả bảng “tracking_category” – Thông tin tracking của người dùng đối với category
5.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 5.15: Mô tả bảng “tracking_ district” – Thông tin tracking của người dùng đối với xã, huyện
5.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 5.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ố
5.2.17 Bảng “user_target” – Thông tin mục tiêu 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 ID định danh của bảng user_target
2 area double Mục tiêu về diện tích
3 bathroom_quantity int Mục tiêu về số lượng phòng vệ sinh
4 bedroom_quantity int Mục tiêu về số lượng phòng ngủ
5 category int Mục tiêu về thể loại
6 district int Mục tiêu về địa điểm huyện
7 floor_quantity int Mục tiêu về số lượng tầng
8 price double Mục tiêu về giá
9 province int Mục tiêu về địa điểm tỉnh, thành phố
10 user_id int Khóa ngoại Khóa ngoại xác định mục tiêu của người dùng nào
11 is_deleted boolean Xác định đối tượng đã xóa hay chưa
12 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
13 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
14 created_at date Thời gian khởi tạo đối tượng
15 updated_at date Thời gian cập nhật đối tượng
Bảng 5.17: Mô tả bảng “user_target” – Thông tin mục tiêu của người dùng
HIỆN THỰC HỆ THỐNG – SƠ ĐỒ USECASE
Danh sách actor
Các đối tượng giao tiếp với hệ thống bao gồm:
Người dùng là tất cả những cá nhân có nhu cầu thực hiện giao dịch với các loại bất động sản khác nhau và tận dụng đầy đủ các tính năng của hệ thống, bao gồm đă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,…
Bảng 6.1: Danh sách các actor của hệ thống
Sơ đồ usecase tổng quát
Các tác nhân trong phần trên sẽ sử dụng các use case như bảng 6.1:
Hình 6.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ằ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 bất động sản, mức giá và diện tích Những tiêu chí này giúp người dùng 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ất động sản cá nhân cho phép người dùng kiểm soát các bài viết mà họ đã tạo, bao gồm việc sửa đổi, xóa thông tin của những bài đã đăng hoặc đ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 6.2: Bảng danh sách các usecase của hệ thống
Đặc tả một số use-case chính
6.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
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 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
14 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
15 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
16 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ị thông tin chi tiết, bao gồm bài đăng và danh sách yêu thích của từng khách hàng Bên cạnh đó, người dùng có thể dễ dàng lọc danh sách theo các trường thông tin khác nhau để tìm kiếm nhanh chóng và hiệu quả.
• 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 6.3: Đặc tả usecase “Đăng Ký”
6.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 với tư cách khách hàng bình thường, tuy nhiên họ sẽ không thể sử dụng các chức năng đầy đủ của hệ thống.
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 6.4: Đặc tả usecase “Đăng Nhập”
6.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 6.5: Đặc tả usecase “Đổi mật khẩu”
6.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 6.6: Đặc tả usecase “Đăng xuất”
6.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 6.7: Đặc tả usecase “Lọc/Tìm kiếm bất động sản”
6.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 6.8: Đặc tả usecase “Trang cá nhân”
6.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
Chọn mục Quản lý bất động sản và nhấn chỉnh sửa cho bài viết đang ở trạng thái PENDING Sau khi 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ừ 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 6.9: Đặc tả usecae “Quản lý bất động sản cá nhân”
6.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 viết bất động sản vào danh sách yêu thích cá nhân bằng cách nhấn vào biểu tượng yêu thích ở góc bài đăng.
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 6.10: Đặc tả usecase “Quản lý yêu thích, lưu lại thông tin bài viết”
6.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 6.11: Đặc tả usecase “Chỉnh sửa thông tin”
6.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ẽ chuyển sang 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 6.12: Đặc tả usecase “Tạo bất động sản”
6.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 6.13: Đặc tả usecase “Gợi ý bất động sản liên quan”
6.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 6.14: Đặc tả usecase “Xem thông tin bđs dưới dạng biểu đồ”
6.3.13 Đặ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 6.15: Đặc tả usecase “Quản lý thể loại”
6.3.14 Đặ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 6.16: Đặc tả usecase “Quản lý bất động sản”
6.3.15 Đặ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 6.17: Đặc tả usecase “Làm nổi bật bất động sản”
6.3.16 Đặ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 này tóm tắt danh sách người dùng khách hàng, bao gồm thông tin cá nhân, danh sách bài đăng và danh sách yêu thích của từng khách hàng Ngoài ra, người dùng có thể dễ dàng lọc danh sách theo từng trường thông tin để tìm kiếm nhanh chóng và hiệu quả.
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 6.18: Đặc tả usecase “Quản lý người dùng khách hàng”