Command Palette

Search for a command to run...

GitHub
Blog

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.

Ecosphere — Cockpit Décisionnel Retail

Source : https://ecosphere-production.up.railway.app

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

TechnologieRôle
Next.js 16 (App Router)Framework React SSR/SSG
React 19 + TypeScript 5UI + typage statique
shadcn/ui + Radix UIComposants accessibles
Tailwind CSS v4 + CVAStyling utility-first
Recharts 3Visualisations de données
TanStack Query 5Cache et synchronisation serveur
TanStack Table 8Tableaux interactifs (tri, filtres, pagination)
Zustand 5État global (sidebar, devtools)
nuqsSynchronisation filtres/URL
Better AuthAuthentification email/password + sessions JWT
Prisma (adapter MariaDB)ORM pour le planning RH et auth
Motion (ex-Framer Motion)Animations
ExcelJSExport Excel côté client

Backend

TechnologieRôle
FastAPI (Python 3.12+)API REST haute performance
SQLAlchemy 2ORM + requêtes SQL optimisées
MySQL 8Base de données relationnelle
scikit-learnML prédictif (RandomForest)
Pandas + NumPy + SciPyCalculs statistiques et corrélations
PydanticValidation des schémas API
openpyxlExport Excel côté serveur

Infrastructure

TechnologieRôle
Docker ComposeOrchestration multi-services
NginxReverse proxy + SSL
RailwayDéploiement cloud (MySQL managé + services)
BunRuntime JS et gestionnaire de paquets
Ultracite + BiomeLinting et formatting automatisés
RuffLinting 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