# đ Air Quality Prediction in Moroccan Cities
## đ Description
Application web Full Stack de prédiction de la qualité de l'air (PM2.5)
dans les villes marocaines, utilisant le Machine Learning et des données
météo réelles collectées via l'API OpenWeatherMap.
## đïž Architecture
Frontend (React) ââ Backend (Flask API) ââ ModĂšles ML (.pkl)
â
OpenWeatherMap API
## đ ïž Technologies
| Composant | Technologie |
|-----------|-------------|
| Frontend | React + Vite + Recharts |
| Backend | Flask + Flask-CORS |
| ML | scikit-learn (Random Forest, Linear Regression) |
| Data | pandas, numpy, MinMaxScaler |
| API | OpenWeatherMap |
## đ ModĂšles ML
| ModĂšle | MAE | RMSE | RÂČ |
|--------|-----|------|----|
| Random Forest | 1.09 | 1.62 | 0.45 |
| Linear Regression | 1.09 | 1.62 | 0.46 |
## đïž Structure du projet
air-quality-project/
âââ data/
â âââ raw_data.csv # DonnĂ©es brutes (480 lignes)
â âââ clean_data.csv # DonnĂ©es nettoyĂ©es
âââ models/
â âââ random_forest.pkl
â âââ linear_regression.pkl
âââ notebooks/
â âââ analysis.ipynb # Analyse exploratoire
âââ results/
â âââ graphs.png
âââ src/
â âââ collect_data.py # Collecte API OpenWeatherMap
â âââ preprocess.py # Nettoyage et normalisation
â âââ train_model.py # EntraĂźnement ML
â âââ federated.py # Simulation Federated Learning
â âââ app.py # API Flask
âââ frontend/
â âââ src/
â âââ App.jsx
â âââ components/
â âââ PredictionForm.jsx
â âââ ResultCard.jsx
â âââ Dashboard.jsx
âââ README.md
## đ Installation et lancement
### Prérequis
- Python 3.11+
- Node.js 18+
### Backend (Flask)
```bash
# Créer environnement virtuel
python -m venv venv
.\venv\Scripts\Activate.ps1 # Windows
source venv/bin/activate # Linux/Mac
# Installer dépendances
pip install flask flask-cors scikit-learn pandas numpy joblib requests
# Lancer l'API
python src/app.py
```
### Frontend (React)
```bash
cd frontend
npm install âŠ