Skip to content
ย 
ย 

Latest commit

ย 

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿก IREIA โ€“ Intelligent Real Estate Investment Advisor

๐Ÿ“Œ Project Overview

IREIA is an AI-powered real estate investment platform that helps users make smarter decisions by predicting future property prices and rental trends using machine learning. It integrates live property data via Realty In US and provides interactive visualizations including charts, maps, and investment scoring.


โœจ Key Features

  • ๐Ÿ” Smart Property Search: Search by ZIP code, city, address, or county with dynamic filters.
  • ๐Ÿ“ˆ Price Forecasting: Predicts property price trends for the next 3 years using an XGBoost ML model.
  • ๐Ÿ’ฐ Rental Estimates: Estimates monthly rental value using a XGBoost and Linear Regression ML model.
  • ๐Ÿง  Investment Recommendation: Suggests if a property is worth investing based on predicted vs. current price.
  • ๐Ÿ—บ๏ธ Interactive Maps: Google Maps integration with pins showing property price, rental price and investment status.
  • ๐Ÿ“Š Visual Charts: Future price and rent charts generated using Chart.js.
  • ๐Ÿšถ Walk & Transit Scores: Displays livability metrics using animated circular charts.
  • ๐Ÿซ Nearby Schools: Automatically shows schools near the selected property using Google Places API.
  • ๐Ÿ“ธ High-Resolution Images: Image enhancement logic ensures better property visuals.
  • ๐Ÿงพ Detailed Property View: Dedicated page per property with complete ML insights, images, and maps.
  • ๐Ÿ”„ Live Data Integration: Uses the Realty In US to fetch real-time property data dynamically.

๐Ÿ› ๏ธ Tech Stack

๐Ÿ”™ Backend

  • Python with Flask โ€“ for handling API requests and ML model predictions
  • XGBoost โ€“ machine learning model for price and rent forecasting
  • Realty In US API โ€“ to fetch live property data
  • Google Places API โ€“ to get nearby schools

๐Ÿ”› Frontend

  • React.js โ€“ for building dynamic user interfaces
  • Google Maps JavaScript API โ€“ for visualizing properties with location pins
  • Chart.js โ€“ for rendering price and rent forecast charts
  • react-circular-progressbar โ€“ to display walk, and transit scores
  • Material UI & Custom CSS โ€“ for styling components

๐Ÿงช Dev & Deployment

  • Netlify โ€“ for frontend deployment
  • Render โ€“ for backend hosting
  • GitHub โ€“ for version control and code documentation

๐Ÿ—๏ธ System Architecture

The IREIA system is built using a modular architecture consisting of three primary components:

1. Frontend (Client-Side)

  • Built with React.js
  • Allows users to search for properties by ZIP code, city, address, or county
  • Displays featured properties, predicted prices, and rental estimates
  • Shows dynamic maps, charts, and investment scores
  • Deployed via Netlify

2. Backend (Server-Side)

  • Implemented in Python using Flask
  • Exposes RESTful endpoints for:
    • /search_property โ€“ fetch and predict properties by location
    • /predict_price โ€“ ML-based price forecasting
    • /predict_rent โ€“ ML-based rental forecasting
  • Fetches data from Realty In US API in real time
  • Deployed via Render

3. Machine Learning Module

  • Trained using XGBoost
  • Uses features like: Year, Month, Crime Rate, Sentiment Score, Beds, Baths, Sqft, Price
  • Predicts:
    • Property prices for the next 3 years
    • Monthly rental estimates
  • Integrated into backend to provide instant predictions on API call

๐Ÿ” Data Flow

  1. User enters a location in the React UI
  2. Frontend sends a POST request to Flask backend
  3. Flask fetches property data from Realty In US API
  4. ML model runs predictions on property price & rent
  5. Results sent back to React frontend and rendered as charts, scores, and cards

โš™๏ธ Setup Instructions

To get started with the IREIA (Intelligent Real Estate Investment Advisor) platform locally, follow the setup steps for both backend (Flask) and frontend (React). Make sure you have all prerequisites installed.


๐Ÿงฐ Prerequisites

  • Python 3.10 or higher
  • Node.js 16 or higher
  • npm (Node Package Manager)
  • Git
  • API keys for:
    • Realty In US API (RapidAPI)
    • Google Maps JavaScript API

๐Ÿง  Backend Setup

  1. Clone the repository and navigate to the backend directory:

    git clone https://github.com/your-username/IREIA.git
    cd IREIA
  2. Create a virtual environment and activate it:

    python -m venv venv
    source venv/bin/activate       # Windows: venv\Scripts\activate
  3. Install all required Python packages:

    pip install -r requirements.txt
  4. Run the Flask backend server:

    python app.py

    The backend server will be live at: http://127.0.0.1:5000


๐Ÿ’ป Frontend Setup

  1. Open a new terminal window, then navigate to the frontend folder:

    cd my-real-estate-app
    
  2. Install the necessary npm dependencies:

    npm install
  3. Start the React development server:

    npm start

    The frontend will be accessible at: http://localhost:5173


๐Ÿงพ Code Documentation

This section outlines the major files, scripts, and modules used across both backend and frontend of the IREIA project. Each component is documented with its purpose to help future contributors understand the codebase structure and responsibilities.


๐Ÿ“ Project Directory Structure

IREIA/ โ”œโ”€โ”€ app.py # Main Flask application entry point
โ”œโ”€โ”€ requirements.txt # Backend Python dependencies
โ”œโ”€โ”€ .env.ireia # Backend environment variables
โ”œโ”€โ”€ backend/ โ”‚ โ””โ”€โ”€ property-price-prediction/ โ”‚ โ””โ”€โ”€ property_price_predictor.py # ML logic for property price prediction
โ”œโ”€โ”€ ml_models/ โ”‚ โ””โ”€โ”€ price-prediction-model/ โ”‚ โ””โ”€โ”€ xgboost/ โ”‚ โ”œโ”€โ”€ xgboost_final_model.pkl # Trained XGBoost model
โ”‚ โ””โ”€โ”€ xgboost_price_predictor.py # XGBoost inference logic
โ”œโ”€โ”€ rental_prediction_app/ โ”‚ โ”œโ”€โ”€ rental_model.pkl # Trained rental model
โ”‚ โ”œโ”€โ”€ rental_scaler.pkl # Scaler used during training
โ”‚ โ”œโ”€โ”€ rental_model.py # Rental prediction logic
โ”‚ โ””โ”€โ”€ rental_feature_importance.png # Rental feature visualization
โ”œโ”€โ”€ my-real-estate-app/ โ”‚ โ”œโ”€โ”€ public/ # Static assets (index.html, favicon)
โ”‚ โ””โ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ components/ # Reusable UI: Navbar, Footer, etc.
โ”‚ โ”œโ”€โ”€ pages/ # Main pages: HomePage, SearchPage, PropertyPage
โ”‚ โ”œโ”€โ”€ styles/ # CSS styles scoped to components/pages
โ”‚ โ”œโ”€โ”€ utils/ โ”‚ โ”‚ โ””โ”€โ”€ maps.js # Google Maps logic and pins
โ”‚ โ”œโ”€โ”€ App.js # Main React component
โ”‚ โ”œโ”€โ”€ index.js # Entry point
โ”‚ โ””โ”€โ”€ .env # Frontend environment configs
โ”œโ”€โ”€ package.json # React project dependencies
โ””โ”€โ”€ README.md # Project documentation


๐Ÿง  Backend Overview

  • app.py: Main Flask server that defines routes like:

    • /search_property: Processes location input and returns matching properties.
    • /predict_price: Calls XGBoost model for property price prediction.
    • /predict_rent: Returns rental estimate using XGBoost model.
  • requirements.txt: Lists dependencies: Flask, XGBoost, scikit-learn, pandas, etc.

  • backend/property-price-prediction/property_price_predictor.py:

    • Contains helper logic to load and invoke the trained XGBoost model for price predictions.
  • ml_models/price-prediction-model/xgboost/xgboost_price_predictor.py:

    • Main inference script for property price prediction.
    • Loads xgboost_final_model.pkl and preprocesses input features.
  • xgboost_dynamic_predictor.py:

    • Supports predictions for dynamically changing inputs during experimentation.
  • saved_models/:

    • Stores serialized trained XGBoost models.
  • rental_prediction_app/rental_model.py:

    • Loads rental XGBoost model and returns monthly rent estimates.
    • Uses rental feature importance for explainability.
  • rental_model.pkl, rental_scaler.pkl:

    • Serialized machine learning models and scalers for rent prediction.

๐Ÿง  Frontend Overview (React)

  • components/

    • Navbar.js, Footer.js: UI shell components.
    • PropertyCard.js: Renders property summaries with images, prediction, and tags.
    • SearchBar.js: Handles input for location-based search.
  • pages/

    • HomePage.js: Detects geolocation, fetches and renders featured properties.
    • SearchPage.js: Displays search results and Google Maps pins.
    • PropertiesPage.js: Fetches properties based on location or lat/lng.
    • PropertyPage.js: Displays full details, charts, map, and walk/transit/investment scores.
  • styles/: CSS modules for scoped styling:

    • PropertyPage.css, SearchPage.css, HomePage.css, etc.
  • utils/maps.js:

    • Initializes and styles Google Maps view and pins with property prices and colors.
  • App.js: Top-level routing using React Router.

  • index.js: React root renderer.


๐Ÿ”ง Notable Features & Logic

  • Image Quality Optimization:

    • In PropertyCard.js and PropertyPage.js, we dynamically rewrite low-resolution image URLs from Realty In US API to fetch high-res alternatives using suffix patterns (-t.jpg โ†’ -o.jpg, -m.jpg โ†’ -mx.jpg, etc.).
  • Chart.js Integration:

    • PropertyPage.js uses Chart.js to visualize future price and rent trends.
    • Shows combined historical and forecast data interactively.
  • Scoring Indicators:

    • PropertyPage.js shows investment score, walk score, and transit score using react-circular-progressbar.
  • Smart Recommendation Badges:

    • Property cards display โ€œOverpricedโ€, โ€œWorth Investingโ€, etc., based on model recommendation.
  • Local Storage-Based Routing:

    • Selected property info is passed between pages via localStorage.
  • Resilient Map Rendering:

    • Google Maps initialized on page load with fallback logic if window.google.maps is delayed.

๐Ÿ“– User Manual

๐ŸŽฏ Objective

IREIA helps users find and evaluate real estate investment opportunities using AI-powered price and rent forecasts, live API data, and visual insights.


๐Ÿ–ฅ๏ธ Accessing the Application

You can run the app in two ways:

1. Local Deployment

Follow the setup instructions in the โš™๏ธ Setup Instructions section to run the backend and frontend locally.

2. Live Deployment

If hosted on a platform like Render/Netlify, simply open the live URL in a browser.


๐Ÿ” Using the App

๐Ÿ”Ž Home Page

  • Auto-detects your location and displays nearby featured properties.
  • Includes a search bar to look up properties by ZIP, city, address, or county.

๐Ÿ” Search Page

  • Displays properties matching the searched location or filter.
  • Shows a scrollable list of properties alongside an interactive Google Map.
  • Pins are colored based on investment recommendation.

๐Ÿ  Property Detail Page

Click on any property card to view:

  • Full property details including price, rent, beds, baths, etc.
  • Charts for future price and rent predictions.
  • Walk & Transit scores visualized as circular meters.
  • A Google Map with the selected property and nearby schools.

๐Ÿง  Key Features for Users

Feature Description
๐Ÿ”ฎ Price Forecast 3-year price and rent predictions powered by XGBoost
๐Ÿ—บ๏ธ Map View Pins show real-time investment tags
๐Ÿ’ฌ Recommendation Badge Indicates if a property is Worth Investing or Overpriced
๐Ÿ“ˆ Interactive Charts Chart.js-based graphs for trends
๐Ÿ“ School Insights Nearby schools fetched via Google Places API

๐Ÿ’ก Tips

  • Hover over map pins to see quick stats.
  • Use browser DevTools for debugging fetch/API issues.
  • Press Ctrl + Shift + R to hard-refresh and clear cache if needed.

๐Ÿ“š Citations & References

๐Ÿ”Œ APIs & Services Used


๐Ÿ“ฆ Libraries & Frameworks


๐Ÿง  Inspiration


๐Ÿ› ๏ธ Project Team

  • Developed by: Jacob Jashwanth Patoju, Gnana Sahiti Nambeti, Hemanth Kumar Goud Gudidevuni
    For CS682: Intelligent Real Estate Systems (Spring 2025), UMass Boston

๐Ÿ‘ฅ Meet Our Team

Jacob Jashwanth Patoju

Lead Full Stack AI Developer

  • Designed full-stack real estate prediction platform
  • Built and integrated XGBoost-based property price prediction model
  • Developed interactive React frontend with maps, charts, and forecasts

Gnana Sahiti Nambeti

Data Scientist

  • Developed a rental income optimization model using supervised machine learning algorithms
  • Engineered ML pipelines and integrated data API to retrieve real-time data for analysis and predictive modeling
  • Visualized property price trends for actionable insights

Hemanth Kumar Goud Gudidevuni

Web Developer

  • Integrated location metrics like walk and transit scores to simulate real-world investment insight
  • Mapped scoring results to the frontend interface to visually guide user decisions
  • Collaborated on testing and refining score logic to align with the platformโ€™s predictive models

๐Ÿ”ฎ Future Scope

  • Add login/signup and user authentication for personalized dashboards
  • Enable users to save and bookmark favorite properties
  • Integrate additional insights like crime rate, neighborhood sentiment score, and property tax history
  • Extend support to commercial properties with ROI-based investment analysis
  • Build a mobile app version of the platform for cross-device accessibility

๐Ÿ“Ž License

MIT License (for academic use only)


๐ŸŒ Live URLs

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages