Ecosphere — Cockpit Décisionnel Retail
Plateforme full-stack de Business Intelligence pour la grande distribution : dashboards temps réel, intelligence météo, ML prédictif et alertes automatisées.

Introduction
Ecosphere est mon projet final de certification Data Analyst : une plateforme de Business Intelligence full-stack conçue pour la grande distribution. L'objectif ? Transformer des données brutes — ventes, stocks, météo, retours clients — en décisions actionnables, accessibles en moins de 2 minutes là où il fallait auparavant 15 à 20 minutes de croisements manuels dans des tableurs éparpillés.
Le cockpit couvre l'intégralité de la chaîne décisionnelle d'un directeur de magasin : du suivi de CA en temps réel jusqu'aux recommandations de commandes ajustées par intelligence artificielle, en passant par la corrélation météo/ventes et le nettoyage de données.
Le Problème
Dans la grande distribution, les équipes terrain prennent des décisions critiques chaque jour : combien commander, quel rayon surveiller, faut-il ajuster les stocks avant un week-end pluvieux ? Pourtant, la réalité opérationnelle est souvent la même :
- Données fragmentées : les ventes sont dans un système, les stocks dans un autre, la météo sur un site tiers, les retours clients dans un tableur partagé.
- Décisions au feeling : sans vue consolidée, les responsables de rayon s'appuient sur leur expérience plutôt que sur des données factuelles.
- Temps de réaction lent : croiser manuellement les données prend du temps, et quand l'analyse arrive, l'opportunité est souvent passée.
- Pas de vision prédictive : les outils existants montrent le passé, jamais l'avenir.
Ecosphere répond à ce besoin en centralisant toutes les données dans un cockpit unique, avec une navigation pyramidale intuitive.
La Solution
L'architecture d'Ecosphere repose sur une navigation pyramidale qui reflète l'organisation réelle d'un magasin :
Magasin → Secteur → Rayon
- Vue Magasin : KPIs globaux (CA jour/semaine/mois vs N-1), alertes sur les rayons en difficulté, widget météo 7 jours, répartition par secteur.
- Vue Secteur : détail par secteur (Frais, Sec, Non-alimentaire) avec la part de CA de chaque rayon.
- Vue Rayon : analyse fine avec tendances de ventes, corrélation météo, prédictions ML, recommandations de commandes et analyse de la casse.
Chaque niveau affiche les KPIs avec leur évolution vs N-1, un objectif automatique (CA N-1 + 5%), et des garde-fous qui désactivent les alertes si la couverture de données historiques est insuffisante (seuil à 70%).
Stack Technique
Frontend
| Technologie | Rôle |
|---|---|
| Next.js 16 (App Router) | Framework React SSR/SSG |
| React 19 + TypeScript 5 | UI + typage statique |
| shadcn/ui + Radix UI | Composants accessibles |
| Tailwind CSS v4 + CVA | Styling utility-first |
| Recharts 3 | Visualisations de données |
| TanStack Query 5 | Cache et synchronisation serveur |
| TanStack Table 8 | Tableaux interactifs (tri, filtres, pagination) |
| Zustand 5 | État global (sidebar, devtools) |
| nuqs | Synchronisation filtres/URL |
| Better Auth | Authentification email/password + sessions JWT |
| Prisma (adapter MariaDB) | ORM pour le planning RH et auth |
| Motion (ex-Framer Motion) | Animations |
| ExcelJS | Export Excel côté client |
Backend
| Technologie | Rôle |
|---|---|
| FastAPI (Python 3.12+) | API REST haute performance |
| SQLAlchemy 2 | ORM + requêtes SQL optimisées |
| MySQL 8 | Base de données relationnelle |
| scikit-learn | ML prédictif (RandomForest) |
| Pandas + NumPy + SciPy | Calculs statistiques et corrélations |
| Pydantic | Validation des schémas API |
| openpyxl | Export Excel côté serveur |
Infrastructure
| Technologie | Rôle |
|---|---|
| Docker Compose | Orchestration multi-services |
| Nginx | Reverse proxy + SSL |
| Railway | Déploiement cloud (MySQL managé + services) |
| Bun | Runtime JS et gestionnaire de paquets |
| Ultracite + Biome | Linting et formatting automatisés |
| Ruff | Linting Python |
Fonctionnalités Clés
1. Dashboards KPI Temps Réel
Suivi du chiffre d'affaires à trois granularités (jour, semaine WTD, mois MTD), chacune avec :
- Évolution vs N-1 en pourcentage et en valeur absolue
- Objectif automatique (CA N-1 + 5%) et écart objectif
- Nombre de ruptures et risques de surstock
Un système d'alertes intelligent signale les rayons dont le CA est inférieur de plus de 5% à l'objectif, avec désactivation automatique si la couverture de données historiques est trop faible.
2. Intelligence Météo
Widget de prévisions météo sur 7 jours intégré au dashboard magasin, avec un module d'analyse avancé au niveau rayon :
- Corrélation Pearson température/CA calculée via SciPy
- Variations de CA par condition météo (ensoleillé, pluvieux, etc.)
- Top 5 produits les plus sensibles aux conditions météorologiques
3. Prédictions ML
Un modèle RandomForest (scikit-learn, 100 estimateurs) entraîné sur 1 an d'historique par rayon :
- Features : température, jour de semaine, mois, week-end, conditions météo (one-hot)
- Prédictions : CA quotidien sur les 7 prochains jours, ajusté par la météo prévue
- Niveau de confiance affiché : élevée (R2 ≥ 0.7), moyenne (R2 ≥ 0.4), faible
- Modèles sérialisés avec joblib, cache en mémoire par rayon
4. Recommandations de Commandes
Système hybride ML + heuristiques qui génère des recommandations d'ajustement :
- Seuil de rupture : stock < 3 jours de ventes moyennes
- Seuil de surstock : stock > 14 jours de ventes moyennes
- Impact minimum de 10% pour déclencher une recommandation
- Source tracée (ML ou heuristique) pour la transparence
5. Gestion des Stocks
Tableau interactif avec statuts dynamiques (rupture, sous-seuil, OK, surstock) :
- Seuil d'alerte configurable par produit
- Date picker borné sur les dates avec données réelles
- Export CSV des recommandations
6. Data Cleaning (Qualitatif et Quantitatif)
Deux pipelines de nettoyage de données intégrés :
- Feedback clients : normalisation texte, déduplification, analyse de sentiment NLP, extraction d'entités et mots-clés, score de priorité
- Ventes : normalisation des types, détection d'outliers, imputation de valeurs manquantes, validation
Chaque session est isolée par UUID pour les démonstrations.
7. Planning RH et Promotions
- Planning : grille hebdomadaire des shifts, génération automatique, visualisation de la couverture horaire, gestion des congés, export Excel
- Promotions : historique paginé avec filtres, métriques détaillées (volume, CA, taux de casse), comparatif entre promotions
Architecture et Modèle de Données
Communication Frontend / Backend
Le frontend Next.js communique avec le backend FastAPI via des Server Actions ("use server") qui relayent les appels REST avec transmission du token JWT Better Auth. La validation de session se fait côté Next.js avant chaque appel, garantissant une couche d'authentification cohérente.
Star Schema
Le modèle de données suit une architecture en étoile classique, optimisée pour l'analyse décisionnelle retail :
Tables de dimension :
dim_magasins— Magasins (nom, adresse, surface)dim_secteurs— Secteurs par magasin (Frais / Sec / Non-alimentaire)dim_rayons— Rayons par secteur (responsable)dim_produits— Produits par rayon (catégorie, prix unitaire)dim_temps— Calendrier enrichi (jour de semaine, semaine, mois, week-end, jour férié)dim_meteo— Météo quotidienne (température, conditions, précipitations)dim_employes— Employés par magasin et secteur
Tables de fait :
fact_ventes— Grain : produit x temps x magasin (quantité, montant)fact_stocks— Snapshots quotidiens (quantité, seuil d'alerte, stock de sécurité)fact_casse— Pertes par cause (DLC dépassée, abîmé, vol)fact_ruptures— Durée et CA perdu estiméfact_promotions— Réductions, volumes, CA généré, taux de casse
Cette hiérarchie dimensionnelle magasin → secteur → rayon → produit se retrouve directement dans la navigation de l'application.
Résultats et Impact
- Temps d'accès à l'information : de 15-20 min (croisements manuels) à moins de 2 min (dashboard consolidé)
- Couverture analytique : 7 modules couvrant ventes, stocks, météo, ML, promotions, planning, data cleaning
- Anticipation : prédictions ML sur 7 jours avec niveau de confiance, au lieu d'une gestion purement réactive
- Traçabilité : chaque recommandation indique sa source (ML ou heuristique), chaque alerte dispose d'un garde-fou sur la qualité des données
- Autonomie terrain : les responsables de rayon accèdent directement aux insights sans dépendre d'un analyste
Compétences Mobilisées
- Data Engineering : modélisation en étoile, pipelines ETL/nettoyage, gestion de la qualité des données
- Data Analysis : KPIs métier, analyse de corrélation, segmentation par dimension
- Machine Learning : RandomForest prédictif, feature engineering, évaluation de modèles (R2, MAE)
- Développement Full-Stack : Next.js 16 / FastAPI, Server Actions, REST API, authentification JWT
- Data Visualization : dashboards interactifs Recharts, navigation pyramidale, alertes contextuelles
- Infrastructure : Docker Compose, déploiement Railway, reverse proxy Nginx
- Méthodologie : architecture en étoile, garde-fous statistiques, traçabilité des sources de recommandation
Références
- Application live : https://ecosphere-production.up.railway.app