Ce projet vise à concevoir un pipeline ETL complet permettant de :
- transformer des données de ventes brutes,
- les stocker dans une base de données relationnelle,
- produire des reportings automatisés,
- suivre des indicateurs clés de performance (KPI) quotidiens,
- diffuser les résultats via Excel et Google Sheets.
Le projet simule un cas réel en entreprise, depuis l’ingestion des données jusqu’au reporting automatisé accessible aux équipes métier.
## 🧱 Architecture globale du pipeline
CSV brut
↓
Python (pandas) – Nettoyage & Feature Engineering
↓
Base de données SQL (SQLite – modèle en étoile)
↓
Requêtes SQL (KPI & analyses)
↓
Reporting automatisé
├─ Excel (openpyxl)
└─ Google Sheets (API via Service Account GCP)
Langues et outils
-
Python (pandas, sqlite3)
-
SQL
-
SQLite
-
Excel (openpyxl)
-
API Google Sheets
-
API Google Drive
-
Google Cloud Platform (GCP) – Compte de service
-
VS Code
sales_analytics_etl/
├─ data/
│ ├─ raw/
│ │ └─ sales_raw.csv
│ └─ processed/
│ └─ sales_clean.csv
├─ outputs/
│ └─ report_sales.xlsx
├─ secrets/
│ └─ service_account.json # (non versionné)
├─ sql/
│ └─ create_tables.sql
├─ src/
│ ├─ 00_check.py
│ ├─ 01_generate_dataset.py
│ ├─ 02_clean_transform.py
│ ├─ 03_load_to_sqlite.py
│ ├─ 04_make_excel_report.py
│ └─ 05_push_to_google_sheets.py
├─ sales_analytics.db
└─ README.md
Scénario : 01_generate_dataset.py
-
Génération d'un dataset de ventes réalistes (>100 lignes)
-
Données volontairement imparfaites :
-
formats de dates multiples,
-
valeurs manquantes,
-
prix en chaîne de caractères,
-
doublons.
-
🎯 Objectif : simuler des données brutes issues d'un SI réel .
Scénario : 02_clean_transform.py
Traitements effectués :
-
suppression des doublons,
-
analyse robuste des dates,
-
conversion des prix en valeurs numériques,
-
gestion des valeurs manquantes,
-
calculs métiers :
-
montant brut,
-
remise,
-
chiffre d'affaires net.
-
📈 Résultat : données propres prêtes pour l'analyse.
Scripts :
-
create_tables.sql
-
03_load_to_sqlite.py
Modèle en étoile
-
fact_sales
-
dim_customers
-
dim_products
-
dim_date
Avantages :
-
performance analytique,
-
simplicité des requêtes,
-
compatibilité BI.
Scénario : 04_make_excel_report.py
Création automatique d'un fichier Excel avec :
KPI globaux :
-
nombre de commandes,
-
nombre de clients,
-
chiffre d'affaires net,
-
panier moyen;
Top produits par chiffre d'affaires;
Données détaillées.
📎 Livrable directement exploitable par les équipes métier.
Mise en place
-
Création d'un projet GCP
-
Activation des API :
-
API Google Sheets
-
API Google Drive
-
-
Création d'un compte de service
-
Génération d'une clé d'authentification JSON
🔐 Cette méthode permet une authentification serveur à serveur , idéale pour l'automatisation.
Scénario : 05_push_to_google_sheets.py
Caractéristiques :
-
Connexion sécurisée via Compte de Service
-
Mise à jour automatique des onglets :
-
Indicateurs clés de performance (KPI)
-
Meilleurs produits
-
Indicateurs clés de performance quotidiens
-
📆 KPI quotidiens & analyses de tendances
Indicateurs suivis par jour
-
Nombre de commandes
-
Nombre de clients uniques
-
Chiffre d'affaires net
-
Panier moyen
-
Quantité totale vendue
Analyses avancées
- Variation du chiffre d'affaires jour / jour
d'identifier les tendances réelles,
de détecter les anomalies ou photos d'activité,
de soutenir la prise de décision métier.
Les clés GCP sont stockées dans le dossiersecrets/
Le dossier est exclu du versionnement via.gitignore
Aucune information sensible n'est publiée
Migration vers PostgreSQL / Cloud SQL
Orchestration avec flux d'air
Visualisation via Apache Superset
Segmentation des clients (RFM, clustering)
A/B testing et analyses statistiques
Conception de pipelines ETL
Modélisation analytique SQL
Automatisation des rapports
Intégration Google Cloud Platform
Analyse des KPI et tendances
Données de communication orientées métier
Mamadou Diedhiou
Data Analyst / Chargé d'études statistiques
Projet personnel à vocation professionnelle et pédagogique.