Phát biểu bài toán
Giới thiệu hệ thống website “Rút trích và trực quan hóa thông tin bất động sản” 2 1.2.2 Khảo sát 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 từ alonhadat.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 Sau đó, thông tin sẽ được sắp xếp, trực quan hóa và lưu trữ một cách có hệ thống, giúp dễ dàng sử dụng và chia sẻ với khách hàng một cách hợp lý, rõ ràng 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 truy cập một trang web duy nhất để tìm kiếm thông tin, thay vì phải đến từng trang web khác nhau.
Website 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 theo các tiêu chí như loại nhà đất, địa chỉ và giá cả.
- Website có công cụ trực quan dữ liệu một cách hiệu quả giúp người dùng so sánh thông tin giữa các trang web một cách nhanh nhất có thể
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 mỗi 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ó thể thêm hoặc bỏ tin vào danh sách ưa thích, giúp họ dễ dàng lưu lại những thông tin nhà đất thú vị để tiện theo dõi sau này.
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 sửa hoặc xoá toàn bộ tin tức, đảm bảo rằng mọi báo cáo về thông tin không chính xác sẽ được xử lý kịp thời.
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ỉ cho phép người dùng tìm kiếm và đăng bài rao bán, nhưng thông tin thường mang tính một chiều và không thể xác thực, gây khó khăn trong việc 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ỉ cung cấp thông tin thị trường mà còn đảm bảo tính chính xác và cụ thể, giúp người dùng dễ dàng tìm hiểu và xác minh thông tin bất động sản.
Mục tiêu và phạm vi đề tài
Mục tiêu
- 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, trực quan dữ liệu 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.
Phạm vi
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
Đối tượng sử dụng
Các cá nhân có nhu cầu tìm kiếm và chia sẻ thông tin bất động sản.
Kết quả dự kiế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
Chương 2 CƠ SỞ LÝ THUYẾT
Nodejs
Giới thiệu về Nodejs
NodeJS là nền tảng phát triển ứng dụng web, dựa trên V8 JavaScript Engine, cho phép xây dựng ứng dụng một cách đơn giản và dễ dàng mở rộng.
NodeJS được phát triển bởi Ryan Dahl vào năm 2009 và có thể chạy trên nhiều hệ điều hành khác nhau: OS X, Microsoft Windows, Linux
Phần Core bên dưới của Nodejs được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao
Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực
Node.js là giải pháp lý tưởng cho các sản phẩm có lưu lượng truy cập lớn, yêu cầu khả năng mở rộng nhanh chóng, cần đổi mới công nghệ, hoặc khi cần phát triển các dự án khởi nghiệp trong thời gian ngắn nhất.
Tại sao nên sử dụng Nodejs
Node.js là một nền tảng ứng dụng được phát triển bằng ngôn ngữ JavaScript, một ngôn ngữ phổ biến trong lập trình Theo Ryan Dahl, người sáng lập JavaScript, ngôn ngữ này có những đặc điểm nổi bật, đặc biệt là việc không hỗ trợ đa luồng, mà chỉ hoạt động trên cơ chế đơn luồng và hướng sự kiện.
NodeJS nổi bật với tốc độ xử lý nhanh nhờ vào cơ chế xử lý bất đồng độ (non-blocking), cho phép nó quản lý hàng ngàn kết nối đồng thời một cách hiệu quả mà không gặp khó khăn nào.
Dễ dàng mở rộng Nếu bạn có nhu cầu phát triển website thì tính năng dễ dàng mở rộng của NodeJS là một lợi thế cực kỳ quan trọng
Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết bị
Node.js hoạt động dựa trên mô hình luồng đơn và cơ chế sự kiện lặp, cho phép các máy chủ phản hồi không ngăn chặn, từ đó nâng cao khả năng mở rộng so với các máy chủ truyền thống Điều này giúp Node.js phục vụ một số lượng lớn yêu cầu đồng thời hơn hẳn so với các máy chủ như Apache HTTP Server.
Hình 2.1 Blocking I/O (trái) và Non-Blocking I/O (phải)
Áp dụng Nodejs vào đề tài
Node.js được sử dụng làm backend cho hệ thống ứng dụng của nhóm nhờ vào những ưu điểm vượt trội, đặc biệt là tốc độ xử lý nhanh chóng, rất phù hợp cho các ứng dụng nhỏ.
ExpressJS framework
Giới thiệu về ExpressJS
Express.js là một framework nhỏ gọn nhưng linh hoạt, được phát triển dựa trên nền tảng Node.js Nó mang đến những tính năng mạnh mẽ, hỗ trợ hiệu quả cho việc phát triển ứng dụng web và di động.
Về các package hỗ trợ: Expressjs có vô số các package hỗ trợ nên không phải lo lắng khi làm việc với Framework này
Về performance: Express cung cấp thêm về các tính năng (feature) để dev lập trình tốt hơn Chứ không làm giảm tốc độ của NodeJS
Và hơn hết, các Framework nổi tiếng của NodeJS hiện nay đều sử dụng ExpressJS như một core function, chẳng hạn: SailsJS, MEAN,
Hình 2.2 Cấu trúc của ExpressJs
- App.js chứa các thông tin về cấu hình, khai báo, các định nghĩa, để ứng dụng của chúng ta chạy trơn tru
- Package.json chứa các package cho ứng dụng chạy, có chức năng tương tự như composer.json hoặc Gemfile trong PHP hoặc RoR
- Folder routes: chứa các route có trong ứng dụng
- Folder view: chứa view/template cho ứng dụng
- Folder public chứa các file css, js, images, cho ứng dụng
Tại sao nên sử dụng ExpressJS
Framework giúp rút ngắn thời gian phát triển ứng dụng, tương tự như Rails (Ruby), Django (Python), Laravel và CakePHP (PHP) Express, được xây dựng trên nền tảng NodeJs, mang lại nhiều ưu điểm cho việc phát triển ứng dụng, làm cho nó trở thành lựa chọn hấp dẫn cho các lập trình viên.
Express hỗ trợ việc phát triển ứng dụng theo mô hình MVC, mô hình phổ biến cho việc lập trình web hiện nay
Cho phép định nghĩa Middleware hỗ trợ cho việc tổ chức và tái sử dụng code Định nghĩa routes và các request method đến server một cách dễ dàng
Và còn rất nhiều thứ mà framework này hỗ trợ.
Áp dụng ExpressJS vào đề tài
ExpressJS được sử dụng làm framework backend cho hệ thống ứng dụng của nhóm nhờ vào những ưu điểm nổi bật như tốc độ xử lý nhanh, hỗ trợ Rest API và có một cộng đồng phát triển lớn mạnh, rất phù hợp cho các ứng dụng nhỏ.
MongoDB
Giới thiệu về MongoDB
MongoDB là phần mềm cơ sở dữ liệu NoSQL mã nguồn mở, đa nền tảng, được thiết kế theo hướng đối tượng, cho phép lưu trữ dữ liệu phức tạp và đa dạng, thường được gọi là Big Data Chương trình này lưu trữ dữ liệu dưới dạng collection theo kiểu tài liệu JSON, mang lại hiệu suất và tính khả dụng cao hơn so với các cơ sở dữ liệu truyền thống sử dụng bảng.
NoSQL (Non-Relational SQL) là một loại cơ sở dữ liệu mã nguồn mở, được phát triển như một mô hình tiên tiến hơn so với các cơ sở dữ liệu quan hệ truyền thống MongoDB, một trong những hệ thống NoSQL phổ biến, cho phép lưu trữ và quản lý dữ liệu phi cấu trúc một cách linh hoạt, đáp ứng nhu cầu ngày càng cao của các ứng dụng hiện đại.
NoSQL, với kiểu dữ liệu JSON, cung cấp tốc độ và tính năng vượt trội so với hệ quản trị cơ sở dữ liệu quan hệ RDBMS Dữ liệu trong NoSQL được tổ chức theo dạng key-value, mang lại hiệu suất nhanh và khả năng mở rộng linh hoạt mà không bị ràng buộc bởi việc tạo khóa ngoại hay khóa chính, do đó ngày càng được ưa chuộng và sử dụng rộng rãi.
NoSQL cho phép mở rộng dữ liệu linh hoạt mà không cần quan tâm đến khóa ngoại, khóa chính hay kiểm tra ràng buộc như các hệ quản trị cơ sở dữ liệu truyền thống Ưu điểm nổi bật của NoSQL là khả năng giải quyết hiệu quả các vấn đề liên quan đến dữ liệu lớn (big data) trong các hệ thống thông tin và phân tán dữ liệu.
Mặc dù việc không hạn chế mở rộng dữ liệu mang lại nhiều lợi ích, nhưng nó cũng dẫn đến một số nhược điểm như sự phụ thuộc vào từng bản ghi, vấn đề về tính nhất quán và các đặc tính toàn vẹn dữ liệu.
Tại sao nên sử dụng hệ quản trị cơ sở dữ liệu MongoDB
Tính linh hoạt trong việc lưu trữ dữ liệu với các kích cỡ khác nhau là một ưu điểm nổi bật, cho phép bạn dễ dàng chèn bất kỳ thông tin nào bạn muốn dưới dạng tài liệu JSON.
Khác với hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), dữ liệu trong hệ thống này không bị ràng buộc và không yêu cầu tuân theo cấu trúc nhất định, giúp tiết kiệm thời gian cho việc kiểm tra tính hợp lệ của cấu trúc khi thực hiện các thao tác chèn, xóa, cập nhật hoặc thay đổi dữ liệu trong bảng.
- MongoDB dễ dàng mở rộng hệ thống bằng cách thêm node vào cluster – cụm các node chứa dữ liệu giao tiếp với nhau
Tốc độ truy vấn nhanh hơn đáng kể so với hệ quản trị cơ sở dữ liệu quan hệ RDBMS là một trong những ưu điểm nổi bật, nhờ vào việc dữ liệu được lưu trữ trong bộ nhớ RAM Điều này cho phép các lượt truy vấn tiếp theo diễn ra nhanh chóng mà không cần phải truy cập ổ cứng.
- Cũng là một ưu điểm về hiệu suất truy vấn của MongoDB, trường dữ liệu “_id” luôn được tự động đánh chỉ mục để đạt hiệu suất cao nhất
MongoDB không có các tính chất ràng buộc giống như trong RDBMS, vì vậy việc thao tác với MongoDB đòi hỏi người dùng phải cẩn thận hơn.
MongoDB tiêu tốn nhiều tài nguyên hệ thống hơn so với RDBMS, nhưng hiện nay vấn đề này không còn đáng lo ngại do cấu hình máy tính hiện tại đã được nâng cao.
Tại sao nên sử dụng MongoDB:
- Khi website có tính chất INSERT cao, bởi vì mặc định MongoDB có sẵn cơ chế ghi với tốc độ cao và an toàn
Khi một website hoạt động ở dạng real-time, điều này có nghĩa là nhiều người có thể cùng lúc tương tác với ứng dụng trong thời gian thực, như trong các ứng dụng chat hoặc các buổi livestream trực tuyến.
Khi làm việc với website có lượng dữ liệu lớn, chẳng hạn như ứng dụng web có tới 10 triệu bản ghi, việc truy vấn bằng MySQL có thể gặp khó khăn Do đó, lựa chọn MongoDB là hợp lý, vì nó có khả năng tìm kiếm thông tin nhanh chóng và hiệu quả hơn trong trường hợp này.
Áp dụng MongoDB vào đề tài
Nhờ vào những tính năng nổi bật của MongoDB, nhóm đã chọn MongoDB làm hệ quản trị cơ sở dữ liệu chính Server sử dụng MongoDB để lưu trữ toàn bộ dữ liệu, và dữ liệu này sẽ được truy xuất thông qua REST API.
Reactjs
Giới thiệu về Reactjs
React.js là một thư viện JavaScript đang phát triển mạnh mẽ trong lĩnh vực Single Page Application Khác với các framework khác theo mô hình MVC, React nổi bật nhờ 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 HTML qua các thuộc tính như ng-model, ng-repeat, thì React sử dụng JSX để nhúng HTML vào JavaScript, giúp việc lồng ghép các đoạn HTML vào JS trở nên dễ dàng hơn Sự kết 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 do Facebook phát triển, giúp xây dựng các thành phần UI tương tác, có trạng thái và có khả năng tái sử dụng Thư viện này không chỉ được Facebook sử dụng trong sản xuất mà còn là nền tảng chính cho Instagram, nơi toàn bộ ứng dụng được viết bằng 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 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 những thay đổi tối thiểu trên DOM.
Tại sao nên sử dụng Reactjs
React là thư viện GUI mã nguồn mở bằng JavaScript, chuyên biệt để tối ưu hóa hiệu suất trong việc xây dựng giao diện người dùng (UI) Nó được phân loại vào thành phần "View" 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 của React Bạn có thể bắt đầu phát triển ứng dụng web với React chỉ trong vài ngày.
Để nâng cao kiến thức về React, bạn nên tìm hiểu thêm nhiều hướng dẫn khác nhau Những tài liệu này bao gồm video, hướng dẫn chi tiết và dữ liệu phong phú, giúp mở rộng góc nhìn của bạn về cách 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 những ứ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 phát triển mà còn nâng cao hiệu quả trong việc duy trì và mở rộng ứng dụng.
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 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 tỏ hiệu quả trong việc phát triển các components đặc biệt cũng như các ứng dụng có quy mô lớn.
Hiệu suất tốt hơn với Virtual DOM:
React tối ưu hóa hiệu suất cập nhật DOM (Mô hình đối tượng tài liệu), giúp giảm thiểu những thất vọng thường gặp trong các dự án ứng dụng web Nhờ vào việc sử dụng virtual DOM, React có khả năng tránh được 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.
Postman
Postman là gì?
Postman là một công cụ cho phép chúng ta thao tác với API, phổ biến nhất là
Postman là một trong những công cụ phổ biến nhất để thử nghiệm API, cho phép người dùng gọi Rest API mà không cần viết mã.
Postman hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT, PATCH, DELETE,
…) Bên cạnh đó, nó còn cho phép lưu lại lịch sử các lần request, rất tiện cho việc sử dụng lại khi cần.
Tại sao sử dụng Postman?
Những lợi ích khi sử dụng Postman:
1 Sử dụng Collections – Postman cho phép người dùng tạo bộ sưu tập cho các lệnh gọi API của họ Mỗi bộ sưu tập có thể tạo các thư mục con và nhiều yêu cầu (request) Điều này giúp việc tổ chức các bộ thử nghiệm
2 Collaboration – Collections và environment có thể được import hoặc export giúp chia sẻ tệp dễ dàng
3 API Testing – Test trạng thái phản hồi HTTP
4 Gỡ lỗi – Bảng điều khiển Postman giúp kiểm tra dữ liệu nào đã được truy xuất giúp dễ dàng gỡ lỗi kiểm tra.
Áp dụng Postman vào đồ án
Trong đồ án, nhóm sử dụng postman để test và xây dựng các API
Chương 3 PHÁT BIỂU BÀI TOÁN
Giới thiệu hệ thống website “Rút trích và trực quan hóa thông tin bất động sản”
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 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 Sau đó, thông tin sẽ được sắp xếp và lưu trữ một cách có hệ thống để 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 cho họ.
Hệ thống của chúng tôi cho phép khách hàng dễ dàng tiếp cận thông tin mà không cần phải truy cập từng trang web riêng lẻ Chỉ cần vào trang web của nhóm, người dùng có thể nhanh chóng nắm bắt tin tức và các thông tin cần thiết một cách thuận tiện.
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 liên quan đến bất động sản, bao gồm địa chỉ, giá cả và loại hình bất động sản.
Trang web sở hữu 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 cần thiết, chẳng hạn như theo lượt thích nhiều nhất, bài đăng mới nhất, hoặc 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, 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 Mỗi bài viết được chia sẻ đều có tính năng cho phép người dùng thể hiện trạng thái như Thích, bình luận, và chia sẻ bài viết, từ đó tăng tính tin cậy và tiếp cận của thông tin bất động sản.
Khảo sát các hệ thống liên quan
Website batdongsan.com.vn
Batdongsan.com.vn là một trong những website hàng đầu tại Việt Nam, cung cấp thông tin về bất động sản, cho phép người dùng tìm kiếm, xem tin tức và đăng bài chia sẻ Với lượng tin tức phong phú và được cập nhật liên tục, trang web này giúp người dùng dễ dàng tiếp cận tất cả thông tin cần thiết về bất động sản Đội ngũ tư vấn chuyên nghiệp sẵn sàng hỗ trợ người dùng trong việc tìm kiếm loại hình bất động sản phù hợp.
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ỉ cụ thể, giá bán, hình ảnh chi tiết, 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 chuyên nghiệp, sẵn sàng cung cấp thông tin chi tiết về bất động sản và hỗ trợ người dùng trong các thủ tục pháp lý cần thiết.
Tìm kiếm thông tin về bất động sản trở nên dễ dàng và thông minh hơn bao giờ hết bằng cách nhập tên loại hình, địa chỉ, diện tích hoặc mức giá Hệ thống tìm kiếm nhanh chóng cung cấp thông tin cần thiết, giúp người dùng tiếp cận dữ liệu một cách hiệu quả và nhanh chóng.
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.
Website mogi.vn
Mogi.vn là một trang web mới nổi tại Việt Nam, chuyên cung cấp thông tin bất động sản, cho phép người dùng tìm kiếm, xem tin tức và chia sẻ thông tin Mặc dù còn mới, mogi.vn đã nhanh chóng thu hút sự chú ý với lượng tin tức phong phú và giao diện thân thiện, dễ sử dụng Với những cải tiến liên tục, mogi.vn đang trở thành đối thủ cạnh tranh đá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ỉ, giá bán, hình ảnh chi tiết, hướng, thông tin bổ sung và nội thất.
Đội ngũ nhân viên tư vấn bất động sản của chúng tôi sẵn sàng hỗ trợ người dùng với thông tin chi tiết và hướng dẫn cần thiết về các thủ tục pháp lý liên quan.
Tìm kiếm thông tin về bất động sản trở nên dễ dàng và thông minh hơn bao giờ hết bằng cách nhập tên loại hình, địa chỉ, diện tích hoặc mức giá Hệ thống của chúng tôi cho phép bạn tìm kiếm và xem nhanh thông tin, giúp bạn tiết kiệm thời gian và tìm được thông tin một cách nhanh chóng nhất.
Website mogi.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 giao diện bắt mắt, gọn gang giúp người dùng dễ tìm kiếm thông tin
- Chưa có chức năng thích và bình luận bài viết cụ thể như một bài viết trên trang mạng xã hội
- Thông tin một chiều, không có tính tương tác của người dùng để biết sản phẩm ra sao.
Website alonhadat.com.vn
Với thiết kế web bất động sản thân thiện, chú trọng đến trải nghiệm người dùng,
Alonhadat.com.vn là kênh rao vặt bất động sản thu hút nhiều người truy cập, cung cấp thông tin chi tiết về mua bán BĐS, nhà đất, các dự án và kinh nghiệm giao dịch bất động sản trên toàn quốc.
Hình 3.3 Trang chủ website alonhadat.com.vn Các chức năng nổi bật của alonhadat.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 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 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õ nét, hướng nhà, thông tin bổ sung và nội thất đi kèm.
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ằng cách nhập tên loại hình, địa chỉ, diện tích hoặc mức giá Hệ thống tìm kiếm nhanh chóng cung cấp thông tin, giúp người dùng tìm kiếm một cách hiệu quả và nhanh nhất.
Website alonhadat.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à yếu tố phong thủy nội thất.
Website alonhadat.com.vn cung cấp chức năng cho người mua phản ánh các tin rao vi phạm như giá không đúng, tin không có thật, hoặc số điện thoại không liên lạc được Điều này giúp Alo nhà đất sàng lọc thông tin, đảm bảo tính chính xác và loại trừ những người bán hoặc nhà môi giới không trung thực.
- Là website cũ nên hệ thống nhiều lúc chạy còn chậm
- Giao diện chưa được bắt mắt như những trang web khác
So sánh hệ thống với các website
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 khi bạn chỉ cần gõ tên loại hình, địa chỉ, diện tích hoặc mức giá.
Hệ thống tìm kiếm và xem nhanh thông tin, giúp tìm thông tin một cách nhanh 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
Website mogi.vn - Tìm kiếm thông tin loại hình bất động sản dễ dàng thông minh bằng
- Cổng liên hệ chưa tốt, chưa có trò chuyện trực tiếp
23 cách gõ: tên loại hình bất động sản, hoặc địa chỉ, diện tích hay mức giá
Hệ thống tìm kiếm và xem nhanh thông tin, giúp tìm thông tin một cách nhanh nhất
Website mogi.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 giao diện bắt mắt, gọn gang giúp người dùng dễ tìm kiếm thông tin
- Chưa có chức năng thích và bình luận bài viết cụ thể như một bài viết trên trang mạng xã hội
- Thông tin một chiều, không có tính tương tác của người dùng để biết sản phẩm ra sao
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ằng cách nhập tên loại hình, địa chỉ, diện tích hoặc mức giá.
Hệ thống tìm kiếm và xem nhanh thông tin, giúp tìm thông tin một cách nhanh nhất
Website alonhadat.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à yếu tố phong thủy nội thất.
- Thông tin đăng bài được kiểm duyệt chặt chẽ để người dùng có trải
- Là website cũ nên hệ thống nhiều lúc chạy còn chậm
- Giao diện chưa được bắt mắt như những trang web khác
Hệ thống website của nhóm
- Hệ thống thông tin hiển thị của trang web đơn giản, cung cấp đầy đủ chi tiết của một tin bất động sản
- Có các bài viết có tin tức về sàn bất động sản
- Thông tin được đánh giá bởi những người dùng khác, an toàn và công khai
- Hệ thống chưa có nhiều người dùng, còn hạn chế về lượt tương tác
- Hạn chế về lượng thông tin bất động sản
- Hạn chế về tính năng hỗ trợ cho người dùng
Bảng 3.1 Bảng so sánh giữa các hệ thống
Yêu cầu hệ thống
Yêu cầu chức nă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
• 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
- Yêu cầu về trực quan hóa:
• Trực quan hóa dữ liệu một cách rõ ràng, dễ nhận biết
• Xây dựng biểu đồ đa dạng.
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, phù hợp với đa số người dùng Nó mang lại cảm giác gần gũi, không gây rối mắt, và tập trung vào việc hướng dẫn người dùng với tính tương tác cao.
▪ 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 dữ liệu quan trọng như 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
Chương 4 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Sơ đồ phân rã chức năng
Hình 4.1 Sơ đồ phân rã chức năng
Sơ đồ Use-case
Danh sách các Actor
Người dùng là cá nhân trực tiếp tương tác với hệ thống, có khả năng xem và đăng tải bài viết, sắp xếp thông tin, thêm bài viết vào danh sách ưa thích, cũng như thích và bình luận về nội dung bài viết.
Bảng 4.1 Bảng danh sách người dùng
Danh sách các Use-case
STT Tên Usecase Mô tả Usecase
1 Đăng kí Cho phép người dùng tạo tài khoản mới bằng email, username và mật khẩu
2 Đăng nhập Cho phép người dùng đăng nhập vào hệ thống để sử dụng các chức năng
3 Xem tin tức Người dùng xem các tin tức có trên hệ thống
4 Tìm kiếm Cho phép người dùng tìm kiếm các thông tin về bất động sản theo loại hình, khu vực, giá tiền,…
5 Sắp xếp Cho phép người dùng sắp xếp các thông tin tìm kiếm được theo loại khác nhau
Người dùng có thể xem thông tin một cách trực quan bằng hệ thống biểu đồ
Bảng 4.2 Bảng dánh sách use-case
Các sơ đồ và luồng hoạt động
Đăng kí
Là chức năng cho phép người dùng tạo tài khoản mới trong hệ thống
Người dùng nhập tên user, email và mật khẩu, đây là những thông tin bắt buộc khi tạo một tài khoản mới
Hệ thống tạo tài khoản mới cho người dùng và người dùng sử dụng tài khoản này để đăng nhập vào hệ thống
Sau khi tạo tài khoản thành công, người dùng sẽ sử dụng tên user và mật khẩu để vào ứng dụng
Hình 4.3 Sơ đồ hoạt động chức năng đăng kí
Hình 4.4 Sơ đồ tuần tự chức năng đăng kí
Đăng nhập
Là chức năng cho phép người dùng sử dụng tài khoản đã tạo để đăng nhập vào ứng dụng
Người dùng sử dụng user name và mật khẩu để đăng nhập
Hệ thống kiểm tra tài khoản đã tồn tại và xác thực hay chưa, nếu đã có thì nhảy tới trang chủ ứng dụng
Hình 4.5 Sơ đồ hoạt động chức năng đăng nhập
Hình 4.6 Sơ đồ tuần tự chức năng đăng nhập
Tìm kiếm
Chức năng tìm kiếm cho phép người dùng tra cứu bài viết và thông tin liên quan đến nhu cầu của họ Hệ thống sẽ cung cấp kết quả chính xác, phù hợp với thông tin mà người dùng cần tìm.
Hệ thống tìm kiếm cung cấp cho người dùng thông tin chi tiết về bất động sản, bao gồm tên, địa chỉ, diện tích, giá bán và hình ảnh, cùng với các thông tin bổ sung liên quan đến loại hình bất động sản.
Hình 4.7 Sơ đồ hoạt động chức năng tìm kiếm
Hình 4.8 Sơ đồ tuần tự chức năng tìm kiếm
Sắp xếp
Là chức năng cho phép người dùng sắp xếp thông tin bài viết theo diện tích, theo giá tiền hoặc mới nhất để tiện theo dõi
Người dùng có thể truy cập hệ thống để sắp xếp thông tin bài viết theo nhu cầu tìm kiếm của mình, giúp họ nhận được nội dung phù hợp với lựa chọn đã định.
Hình 4.9 Sơ đồ hoạt động chức năng sắp xếp
Hình 4.10 Sơ đồ tuần tự chức năng sắp xếp
Thiết lập biểu đồ
4.3.5.1 Mô tả: Đây là chức năng cho phép người dùng tìm kiếm thông tin theo biểu đồ, giúp người dùng có một cái nhìn trực quan về thông tin nhà đất
Người dùng truy cập vào hệ thống, tìm kiếm thông tin, hệ thống sẽ cung cấp các biểu đồ theo yêu cầu của người dùng
Hình 4.11 Sơ đồ hoạt động chức năng thiết lập biểu đồ
Hình 4.12 Sơ đồ hoạt động chức năng thiết lập biểu đồ
Thiết kế kiến trúc
Mô hình kiến trúc
Hiện tại nhóm em xây dựng đề tài trên web Project của nhóm được kế theo mô hình: mô hình MVC (Model-View-Controller).
Mô tả
MVC: là mô hình giúp tương tác giữa người dùng và giao diện đồ họa Mô hình MVC gồm có 3 phần:
- Model: bao gồm các dữ liệu, trạng thái
View là thành phần đại diện cho các Model, có nhiệm vụ hiển thị giao diện người dùng (UI) và tương tác với controller khi người dùng sử dụng ứng dụng.
Controller là phần điều khiển chính trong ứng dụng, chịu trách nhiệm xử lý các tương tác từ View Khi người dùng nhấn nút, Controller sẽ quyết định cách tương tác với các Model liên quan Dựa vào sự thay đổi dữ liệu trong Model, Controller có thể cập nhật trạng thái của View một cách phù hợp.
Express là một framework hỗ trợ việc phát triển ứng dụng theo mô hình MVC, mô hình phổ biến cho việc lập trình web hiện nay
• Cho phép định nghĩa Middleware hỗ trợ cho việc tổ chức và tái sử dụng code
• Định nghĩa routes và các request method đến server một cách dễ dàng
• Và còn rất nhiều thứ mà framework này hỗ trợ, còn bây giờ hãy thử cài đặt và xây dựng một ứng dụng đơn giản nhé
Trong hệ thống này, server được sử dụng trên NodeJS Vậy NodeJS là gì và lý do sử dụng nó:
• Node.js là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine
Nó được xây dựng để chạy trên server
Hệ thống sử dụng MongoDB, một loại cơ sở dữ liệu NoSQL, cho phép lưu trữ thông tin linh hoạt mà không bị ràng buộc kiểu dữ liệu Dữ liệu được lưu trữ trực tiếp trên server Mongo, thay vì trên máy tính của người dùng, mang lại sự tiện lợi trong việc quản lý và truy cập thông tin.
Dữ liệu sau khi được cào sẽ được lưu trữ trên server Mongo với định dạng : Hệ cơ sở dữ liệu MongoDB cũng cung cấp các phương thức CRUD, giúp thuận tiện trong việc thao tác và quản lý dữ liệu.
Thiết kế cơ sở dữ liệu
4.4.3.1 Tổng quan cơ sở dữ liệu:
Hình 4.13 Thiết kế cơ sở dữ liệu
1 Field Thông tin cơ bản của tin tức bất động sản
2 FieldDetail Thông tin chi tiết của tin tức bất động sản
3 User Thông tin người dùng hệ thống
4.4.3.2 Mô tả chi tiết từng collection
1 _id ID của người dùng
2 username Tên đăng nhập của người dùng
3 email Email của người dùng
4 password Mật khẩu của người dùng
Bảng 4.4 Thông tin chi tiết collection user
2 title Tên của tin tức bất động sản
3 img Đường link dẫn đến hình ảnh minh hoạ cho tin tức
4 type Thể loại của tin tức (mua, bán, thuê, …)
6 like Số lượt thích của tin tức
7 comment Số lượt comment của tin tức
Bảng 4.5 Thông tin chi tiết collection field
1 _id ID chi tiết tin tức
2 title Tiêu đề của bài đăng
3 image Đường link dẫn tới những hình ảnh
6 address Địa chỉ của tin tức
7 description Nội dung chi tiết của tin tức bất động sản
8 fieldId ID của tin tức
Bảng 4.6 Thông tin chi tiết collection fieldDetail
Thiết kế giao diện
4.4.4.1 Màn hình đăng kí tài khoản:
Hình 4.14 Màn hình đăng kí
STT Tên đối tượng Chức năg
1 EditText Username Nhập tên tài khoản
2 EditText Email Nhập email sử dụng
3 EditText Password Nhập mật khẩu
4 Button Đăng Nhập Chuyển qua màn hình đăng nhập
5 Button Đăng Ký Thực hiện đăng kí tài khoản
- Người dùng cần nhập đầy đủ thông tin, hệ thống sẽ cảnh báo nếu người dùng nhập thiếu
- Sau khi đăng kí thành công sẽ có thông báo cho người dùng
Bảng 4.7 Mô tả thành phần màn hình đăng kí
Hình 4.15 Màn hình đăng nhập
STT Tên đối tượng Chức năg
1 EditText Username Nhập tên tài khoản
3 EditText Password Nhập mật khẩu
4 Button Đăng Ký Chuyển qua màn hình đăng ký
5 Button Đăng Nhập Thực hiện đăng nhập tài khoản
- Người dùng cần nhập đầy đủ thông tin, hệ thống sẽ cảnh báo nếu người dùng nhập thiếu
- Sau khi đăng nhập thành công sẽ chuyển đến màn hình trang chủ
Bảng 4.8 Mô tả thành phần màn hình đăng nhập
Hình 4.16 Màn hình trang chủ
4.4.4.4 Màn hình xem thông tin tìm kiếm:
Hình 4.17 Màn hình thông tin bài viết
4.4.4.5 Màn hình xem chi tiết thông tin bài viết:
Hình 4.18 Màn hình thông tin chi tiết bài viết
4.4.4.6 Màn hình xem thông tin biểu đồ:
Hình 4.19 Màn hình thông tin biểu đồ
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Hướng phát triển
Trong quá trình thực hiện đồ án, đến thời điểm hiện tại, tôi nhận thấy rằng vẫn còn một số thiếu sót cần được khắc phục và phát triển trong thời gian tới.
- Crawler thêm nhiều tin tức từ nhiều nguồn khác để nội dung trang web được phong phú
- Phát triển thêm nhiều biểu đồ cụ thể hơn để người dùng dễ dàng so sánh
- Hoàn thiện thêm các chức năng đề ra ban đầu và thêm vào các tính năng mới như đăng bài, trang thông tin cá nhân người dùng,
- Cải thiện lại giao diện cho bắt mắt hơn
- Cải thiện và nâng cấp các chức năng như tìm kiếm và sắp xếp
- Giới thiệu sản phẩm tới đông đảo người dùng.