A web app that predicts real estate prices in Tunisia
# Tunisia Real Estate Predictor 🇹🇳
> An end-to-end machine learning project for estimating residential property prices in Tunisia from scraped real-estate listings.
This project explores the complete data-science workflow: collecting real-world property listings, cleaning and transforming noisy data, performing exploratory analysis, engineering predictive features, training regression models, and exposing predictions through an API.
## Project goals
The objective is not only to train a model, but to build a reproducible pipeline from raw web data to a usable prediction service.
```text
Property listings
↓
Data collection / scraping
↓
Cleaning & validation
↓
Exploratory data analysis
↓
Feature engineering
↓
Model training & evaluation
↓
Best model
↓
FastAPI prediction service
```
## What the project demonstrates
- Web scraping and data acquisition
- Data cleaning and preprocessing
- Exploratory data analysis (EDA)
- Feature engineering for tabular regression
- Machine-learning model comparison
- Model evaluation with regression metrics
- Model serialization and reuse
- FastAPI model serving
- Separation between data collection, ML logic, and API layers
## Project structure
```text
├── scraper/ # Property listing collection
├── data/ # Raw and processed datasets
├── notebooks/ # EDA and model development
├── src/ # Reusable preprocessing, features and training logic
├── api/ # FastAPI prediction service
├── app/ # Optional frontend / prediction interface
├── models/ # Serialized trained models
├── requirements.txt
└── README.md
```
## Data pipeline
### 1. Collection
Property listings are collected from real-estate listing sources and converted into structured records.
### 2. Cleaning
The pipeline handles typical web-data issues such as missing values, inconsistent representations, duplicated listings, and numerical fields embedded in text.
### 3. Feature engineering
Potential …