Real Estate Platform

Real Estate Platform is an innovative online marketplace that aims to revolutionize the way individuals and real estate professionals buy, sell, and rent properties. By leveraging advanced technology, comprehensive data analytics, it offers an all-in-one solution for navigating the real estate market with ease and confidence.

Key Features


  • Property Listings
    • Users can browse, list, and manage properties for sale or rent, featuring high-quality photos, and detailed descriptions of properties.
  • Intelligent Search Engine
    • A powerful, intuitive search functionality that allows users to filter properties by location, price, property type, number of bedrooms/bathrooms, and other key features.
  • Real Estate Agent Directory
    • A comprehensive directory of verified real estate agents, enabling users to find and connect with agents based on expertise, location, and customer ratings.
  • User Dashboard
    • A personalized dashboard for users to track their property searches, favorites, and interactions with agents or potential buyers/renters.
  • Messaging System
    • A secure messaging platform that enables direct communication between sellers, buyers, renters, and real estate professionals within the app. Enhanced with notification alerts, this system ensures that users stay informed and engaged throughout their property transaction journey.
  • User Registration and Authentication
    • Users will be able to register on the platform using their email addresses. The system will ensure secure authentication and authorization for accessing different features based on user roles.
  • User Profile Page
    • A customizable profile page for each user, whether they are buyers, sellers, renters, or real estate professionals. This page allows users to:
      • Personalize: Add personal information, profile pictures, and contact details.
      • Showcase: For professionals, display qualifications, specialties, past transactions, and customer reviews. For sellers and renters, highlight current and past listings.
      • Track Activity: View history of viewed properties, saved searches, and direct communications with other users through the in-app messaging system.
  • Admin Dashboard
    • The admin dashboard is essential for maintaining the integrity and performance of the application. It equips administrators with the tools needed to manage the platform effectively, ensuring a high-quality experience for all users while fostering a secure and dynamic online real estate marketplace.
      • Monitor and Manage Content: Review and approve property listings, user profiles, and reviews to ensure they meet platform guidelines.
      • User Management: Oversee user activities, handle reports of inappropriate behavior, and manage user access based on platform policies.
      • Platform Health: Monitor system performance, track bug reports, and manage updates to ensure a smooth user experience.

Functional Requirements


  • Users can create accounts using email and password. The system must verify the user's identity and ensure secure authentication.
  • Users can create and edit their profiles, including personal information, preferences, and property interests.
  • Sellers and agents can create, edit, and delete property listings, including details like photos, price, and descriptions.
  • Users can search for properties using various filters such as location, price range, property type, and amenities.
  • Users can save their favorite properties and searches for easy access in the future.
  • Secure messaging functionality for users to communicate directly within the platform.
  • System to notify users about new matches, messages, listings, or updates relevant to their preferences.
  • Tools for admins to review, approve, or reject listings, profiles, and reviews to maintain platform standards.
  • Admin can Activate/Deactivate users.
  • Admin can reset passwords.
  • All delete operations should be a soft deletion.
  • Log all user activities on the system.
  • Limit login attempts. If a user try to login with an invalid password more than 5 times, the system will lock the user and make it unable to login for 15 minutes.

Technical Details


  • Use Java and Spring Boot framework for the backend project.
  • Use n-tier software architecture model.
  • Populate your database with dummy data using data.sql.
    • Prepare your dummy data for testing and presentation.
  • If necessary, change isolation levels.
  • If necessary, change Fetch mode.

Submission


  • Submit a detailed project plan for your daily performance (day/task/time) and submit it with your code.
  • Create a postman collection for your endpoints.
  • Upload your code to Sakai.
  • Project will be evaluated based on your code quality. It is possible that I will need to schedule meetings with some students about their source-code.

Important Notes


  • You are not allowed to share codes with your classmates. If detected, you will get NC.

  • Remember to respect the code honor submission policy. All written code must be original. Presenting something as one’s own work when it came from another source is plagiarism and is forbidden.

  • Plagiarism is a very serious thing in all American academic institutions and is guarded against vigilantly by every professor.