L'application est déployée et accessible en direct : datavizsae401.netlify.app ↗
Comprendre la pression immobilière et anticiper les besoins en logements sociaux est un enjeu territorial majeur. Cependant, les données open data (INSEE, Ministère du Logement) se présentent sous forme de fichiers bruts très volumineux et difficilement interprétables pour les décideurs et citoyens.
L'objectif de cette SAÉ 401 était de concevoir et développer une application web complète, capable de digérer ces données complexes et de les restituer sous la forme d'un dashboard analytique réactif et intuitif.
Le projet a été pensé de bout en bout : de la modélisation de la base de données SQL et la mise en place d'une API REST Symfony jusqu'au rendu interactif des graphiques en React avec Chart.js.
Pour assurer scalabilité, maintenabilité et fluidité, nous avons opté pour une architecture découplée avec séparation stricte des responsabilités entre le Frontend React et le Backend Symfony.
Le pilotage des données repose sur une logique claire et performante :
Sidebar. Un hook useEffect écoute ces changements pour déclencher l'appel API.App stocke les statistiques régionales dans un useState et les redistribue via les props aux composants enfants.Chaque graphique a été rigoureusement choisi pour éclairer une problématique précise sans surcharger l'utilisateur :
Pour garantir des temps de réponse quasi-instantanés, nous avons conçu un pipeline d'ingestion sur mesure :
ImportStatistiquesDepartementCommand pour lire les fichiers CSV, valider les codes départements et alimenter MySQL par lots (batch processing).geom, epci) et des variables périphériques (passoires thermiques DPE, ventes physiques), pour ne retenir que les indicateurs directement actionnables.Serializer Groups de Symfony pour ne renvoyer au client React que les champs strictement requis pour le rendu graphique.
Ce projet illustre ma capacité à concevoir et livrer une application complète à forte valeur ajoutée analytique, combinant un backend robuste avec une interface front-end réactive, esthétique et accessible.
L'utilisation conjointe de React 19, Tailwind CSS, DaisyUI et Chart.js a permis d'obtenir une expérience fluide avec des transitions naturelles et un confort visuel immédiat.