mirror of
https://github.com/BreizhHardware/projet-ia-web-bigdata-cipa4.git
synced 2026-05-09 00:07:25 +02:00
No description
- Jupyter Notebook 84.7%
- R 5%
- HTML 3.5%
- JavaScript 1.9%
- CSS 1.7%
- Other 3.2%
| .devcontainer | ||
| BigData | ||
| IA | ||
| Web | ||
| .gitignore | ||
| Makefile | ||
| README.md | ||
| test.mk | ||
Projet IA / Web / Big Data — CIPA4
Projet complet de traitement, d'analyse et de valorisation du patrimoine arboré urbain, réalisé par le Trinôme 12.
Il s'articule en trois modules indépendants mais interdépendants :
| Module | Description |
|---|---|
| BigData | Scripts R — statistiques descriptives, visualisations et modélisation exploratoire |
| IA | Scripts Python — trois modèles de Machine Learning (clustering, âge, déracinement) |
| Web | Application web PHP + JS — API REST, interface de saisie, visualisation et intégration des modèles ML |
Organisation du dépôt
.
├── README.md
├── Makefile ← point d'entrée global (délègue à BigData/, IA/, Web/)
│
├── BigData/
│ ├── Makefile
│ ├── main.R
│ ├── Patrimoine_Arboré_data.csv
│ ├── Patrimoine_Arboré_data_clean.csv
│ ├── DataVisualisation/
│ ├── CorrelationAnalysis/
│ ├── PredictionAndModelisation/
│ └── output/
│
├── IA/
│ ├── Makefile
│ ├── Besoin_Client_1/ ← Clustering (KMeans)
│ ├── Besoin_Client_2/ ← Prédiction de l'âge (Random Forest)
│ └── Besoin_Client_3/ ← Risque de déracinement (Random Forest)
│
└── Web/
├── Makefile
├── index.html
├── api/ ← routeur PHP
├── src/ ← Controllers, Services, Core (JWT, Router…)
├── db/ ← schéma SQLite, seed, conversion coordonnées
├── ia/ ← modèles .pkl copiés + scripts Python
├── html/ ← pages HTML (ajouter, visualisation, connexion…)
├── css/
├── js/
└── burno/ ← collection Bruno (tests API)
Prérequis globaux
- R (pour BigData)
- Python 3 avec
pipetvenv(pour IA et Web) - PHP ≥ 8.2 avec extensions
pdo,pdo_sqlite,json,mbstring(pour Web) - Un terminal compatible
make
Lancer le projet
Ordre recommandé (première installation)
# 1. Générer les données nettoyées et les visualisations R
make bigdata/all
# 2. Entraîner les modèles ML
make ia/prepare-sdk
make ia/all
# 3. Préparer et lancer le serveur web
make web/all
make web/start-server
Commandes disponibles — Makefile racine
BigData
make bigdata/all # pipeline R complet
make bigdata/data_visualisation # graphiques et répartitions
make bigdata/correlation_analysis # analyse des corrélations
make bigdata/prediction_modelisation # modélisation R
make bigdata/script_top10_especes
make bigdata/script_liens_variables
make bigdata/clean
IA
make ia/prepare-sdk # crée le virtualenv et installe les dépendances Python
make ia/client1/train # entraîne le modèle de clustering
make ia/client1/predict ARGS="--haut_tot 15 --haut_tronc 5 --tronc_diam 40"
make ia/client2/train # entraîne le modèle de prédiction d'âge
make ia/client2/predict ARGS="--haut_tot 15 --haut_tronc 5 --tronc_diam 40 --type til"
make ia/client3/train # entraîne le modèle de risque de déracinement
make ia/client3/predict ARGS="--haut_tot 25 --tronc_diam 30 --feuillage Feuillu --stadedev Adulte --situation Isolé --type til"
make ia/clean
Web
make web/all # installe Composer, dépendances PHP + Python,
# copie le CSV, convertit les coordonnées, initialise SQLite
make web/prepare-sdk # installe vendor/ et dépendances Python
make web/prepare-data # copie le CSV depuis BigData/
make web/prepare-db # crée db.sqlite et importe les données
make web/prepare-cluster-assets # copie les .pkl clustering depuis IA/Besoin_Client_1
make web/prepare-age-assets # copie les .pkl âge depuis IA/Besoin_Client_2
make web/prepare-deracinement-assets # copie les .pkl déracinement depuis IA/Besoin_Client_3
make web/start-server # lance PHP sur http://localhost:8000
make web/clean
Nettoyage global
make clean # nettoie BigData, IA et Web
make bigdata/clean
make ia/clean
make web/clean
Module BigData
Scripts R d'analyse du dataset Patrimoine_Arboré_data_clean.csv :
- DataVisualisation/ : répartition par espèce, stade de développement, port, genre botanique…
- CorrelationAnalysis/ : matrices de corrélation et liens entre variables
- PredictionAndModelisation/ : modèles exploratoires R (arbres de décision, régression)
Les sorties (.png, .csv, .pdf) sont rangées dans BigData/output/.
Documentation détaillée :
BigData/README.md
Module IA
Trois besoins clients adressés par des notebooks Jupyter entraînant des modèles scikit-learn :
| Besoin | Modèle | Cible prédite |
|---|---|---|
| Client 1 | KMeans + StandardScaler | Cluster de taille (Petits / Moyens / Grands) |
| Client 2 | Random Forest Regressor | Âge estimé de l'arbre (années) |
| Client 3 | Random Forest Classifier | Risque de déracinement (Faible / Modéré / Élevé) |
Les modèles exportés (.pkl) sont ensuite copiés dans Web/ia/ pour être servis par l'API.
Documentation détaillée :
IA/README.md
Module Web — LeafLife
Application complète composée d'une API REST PHP et d'un frontend HTML/CSS/JS.
API (base : http://localhost:8000/api/v1)
| Méthode | Route | Description |
|---|---|---|
POST |
/users |
Créer un compte |
POST |
/auth/login |
Se connecter (JWT) |
GET |
/arbres |
Liste tous les arbres |
POST |
/arbres |
Ajouter un arbre (JWT requis) |
GET |
/references |
Listes déroulantes (espèces, états, stades…) |
GET |
/stats |
Statistiques globales |
POST |
/predictions/age |
Prédit l'âge d'un arbre |
POST |
/predictions/chute |
Prédit le risque de déracinement |
GET |
/predictions/cluster |
Carte des clusters (GeoJSON) |
GET |
/swagger |
Documentation Swagger UI |
Pages frontend
| Page | Description |
|---|---|
index.html |
Accueil — statistiques et navigation |
html/connexion.html |
Connexion (JWT stocké dans localStorage) |
html/inscription.html |
Création de compte |
html/ajouter.html |
Saisie d'un arbre avec carte Leaflet |
html/visualisation.html |
Tableau filtrable + carte interactive |
html/predict-clusters.html |
Visualisation des clusters IA |
html/predict-age.html |
Formulaire prédiction d'âge |
html/predict-deracinement.html |
Formulaire prédiction risque |
Documentation détaillée :
Web/README.md
Fichiers de conception
| Fichier | Contenu |
|---|---|
Web/MCD.pdf |
Modèle Conceptuel de Données |
Web/Maquette.pdf |
Maquettes des interfaces |
Web/Gantt Web Trinome 12.pdf |
Planning du module Web |
BigData/Diagramme de Gantt Trinome 12.pdf |
Planning BigData |
BigData/Rapport Big Data Data Trinome 12.pdf |
Rapport d'analyse |
Auteurs
Trinôme 12 :
- Sofiane Amokrane — https://github.com/enosolo
- Maxime Serin-Hetault — https://github.com/MaximeSH2
- Félix Marquet — https://github.com/BreizhHardware