This project aims to build an interactive web application that predicts rental prices for properties in Dubai based on geographic coordinates and property features.
Users can click anywhere on a map and receive an estimated rental price powered by a machine learning model.
- Build an end-to-end machine learning system
- Create an interactive map-based user interface
- Develop a backend API for real-time predictions
- Ensure smooth integration between all components
-
User clicks on a location on the map
-
Frontend captures latitude and longitude
-
User optionally provides property details:
- Bedrooms
- Bathrooms
- Property size
-
Frontend sends request to backend API
-
Backend processes input and runs ML model
-
Predicted rental price is returned and displayed
Frontend (React + Leaflet) ⬇ Backend API (FastAPI) ⬇ Machine Learning Model (Scikit-learn / XGBoost)
All components MUST follow this request/response format:
{
"lat": 25.2048,
"lon": 55.2708,
"bedrooms": 2,
"bathrooms": 2,
"size": 1200
}{
"predicted_price": 85000
}- React
- TypeScript
- Leaflet.js
- FastAPI (Python)
- Pandas
- Scikit-learn
- XGBoost
- Dubai Rental Market Dataset (Kaggle)
- Data cleaning and preprocessing
- Feature engineering
- Model training and evaluation
- Define required input features (API contract)
- API development using FastAPI
- Implement
/predictendpoint - Apply preprocessing pipeline
- Load and run trained model
- Build interactive map interface
- Handle user input
- Call backend API
- Display predictions
project-root/
│
├── frontend/ # React application
├── backend/ # FastAPI server
├── ml/ # Model training & notebooks
├── data/ # Dataset (not committed if large)
├── docs/ # Reports and documentation
└── README.md
- Heatmap visualization of rental prices
- Prediction confidence range
- Advanced feature engineering (geospatial features)
- Model optimization
- Deployment (Vercel + Render)
- usage of docker (Important if we have time)
- Dataset coordinates may not be highly accurate
- Focus is on system design and integration, not just model accuracy
- Consistency between training and inference pipelines is critical