# Egypt House Price Predictor 🏠
An end-to-end MLOps project — a trained Machine Learning model served via a REST API, fully containerized with Docker, monitored with Prometheus & Grafana, and deployed through a CI/CD pipeline on GitHub Actions.
---
## 🧠 What it does
Predicts apartment/villa prices (in EGP) across 10 Egyptian cities based on:
- Area (Cairo, New Cairo, Maadi, Zamalek, etc.)
- Property type (Apartment, Villa, Duplex, Studio, Penthouse)
- Size, bedrooms, bathrooms, floor, age
- Amenities (garage, elevator, pool)
**Model:** Random Forest Regressor | **R² score:** 0.856
---
## 🏗️ Architecture
```
┌─────────────────────────────────────────────────┐
│ GitHub Actions │
│ push → test (pytest) → build → smoke test │
└──────────────────────┬──────────────────────────┘
│
┌────────────▼────────────────────────┐
│ Docker Compose │
│ │
│ ┌───────────────────────────────┐ │
│ │ price-predictor :5000 │ │
│ │ POST /predict │ │
│ │ GET /health │ │
│ │ GET /metrics ─────────────┼──┼──► Prometheus :9090
│ └───────────────────────────────┘ │ │
│ │ ▼
│ │ Grafana :3000
└─────────────────────────────────────┘
```
---
## 🚀 Quick Start
```bash
git clone
github.com
cd egypt-house-price-predictor
docker compose up --build
```
| Service | URL |
|------------|--------------------------|
| API |
localhost |
| Prometheus |
localhost |
| Grafana |
localhost |
---
## 📡 API Usage
### `GET /health`
```json
{ "status": "healthy", "model_loaded": true }
```
### `GET /info`
Returns all valid areas, property types, and a sample request body.
### `POST /predict`
**Request:**
```j …