No description
  • Jupyter Notebook 84.7%
  • R 5%
  • HTML 3.5%
  • JavaScript 1.9%
  • CSS 1.7%
  • Other 3.2%
Find a file
2026-04-30 14:32:42 +02:00
.devcontainer feat: add dependancies to devcontainer 2026-04-22 17:43:30 +00:00
BigData feat: add tree fall prediction script, automate IA pipeline, and update correlation analysis with new stage development mapping 2026-04-28 10:00:26 +02:00
IA refactor: use 3 latin name instead of french name 2026-04-29 18:04:44 +02:00
Web refactor: mise à jour du design system et suppression de contenu obsolète 2026-04-30 14:32:42 +02:00
.gitignore feat: add tree fall prediction script, automate IA pipeline, and update correlation analysis with new stage development mapping 2026-04-28 10:00:26 +02:00
Makefile feat: first version of the backend 2026-04-29 11:29:33 +02:00
README.md feat: mise à jour du README pour clarifier l'organisation du projet et ajouter des détails sur la partie Web 2026-04-30 11:55:16 +02:00
test.mk feat: improve shell portability in Makefiles and update README requirements 2026-04-24 09:52:40 +02:00

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 pip et venv (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 :