📊 ProblĂ©matique Business

Contexte : La startup e-commerce n'a aucune visibilité sur ses performances.

ProblĂšme : Excel ne suffit plus avec 500k+ transactions annuelles.

Objectif : Dashboard professionnel avec KPIs temps réel pour le CEO et l'équipe marketing.

đŸ—‚ïž Dataset

🎯 KPIs ImplĂ©mentĂ©s

💰 Ventes

  • Chiffre d'affaires (jour, mois, annĂ©e)
  • Évolution CA vs N-1
  • Top 10 produits

đŸ‘„ Clients

  • Nouveaux clients vs rĂ©currents
  • Panier moyen
  • Taux de conversion
  • Analyse RFM

📊 Cohortes

  • RĂ©tention par mois de premiĂšre commande
  • LTV (Lifetime Value) par cohorte

đŸ› ïž Stack Technique

Python Pandas DuckDB Power BI PostgreSQL Streamlit (alternative)

đŸ’» Code de DĂ©marrage

Téléchargez et exécutez le script Python pour générer les données :

"""
PROJET 1 : Dashboard KPIs E-commerce
Génération de données et analyse
"""

import pandas as pd
import numpy as np
import duckdb
from datetime import datetime, timedelta

# Générer des données e-commerce
def generate_ecommerce_data(n_transactions=1000):
    np.random.seed(42)
    
    # Dates sur 12 mois
    end_date = datetime.now()
    start_date = end_date - timedelta(days=365)
    dates = pd.date_range(start=start_date, end=end_date, freq="H")
    
    # Générer les transactions
    data = []
    for i in range(n_transactions):
        data.append({
            "transaction_id": i + 1,
            "date": np.random.choice(dates),
            "client_id": np.random.randint(1001, 1100),
            "produit": np.random.choice(["Laptop", "Souris", "Clavier"]),
            "quantite": np.random.randint(1, 4),
            "prix_unitaire": np.random.choice([999.99, 49.99, 149.99]),
        })
    
    df = pd.DataFrame(data)
    df["montant_total"] = df["quantite"] * df["prix_unitaire"]
    return df

# Analyser avec DuckDB
def analyze_data(df):
    con = duckdb.connect()
    
    # KPI : CA Total
    ca_total = con.execute("""
        SELECT SUM(montant_total) as ca_total
        FROM df
    """).fetchdf()
    
    print(f"💰 CA Total : {ca_total["ca_total"].iloc[0]:,.2f} €")

# Exécution
df = generate_ecommerce_data(5000)
analyze_data(df)
df.to_csv("data/ecommerce.csv", index=False)

📁 Fichier complet : projets/code/projet1_ecommerce_starter.py

🚀 ExĂ©cution : python projet1_ecommerce_starter.py

📩 Structure du Projet

06-dashboard-kpis-ecommerce/
├── src/
│   ├── etl_pipeline.py      # Nettoyage donnĂ©es
│   └── db_setup.py          # CrĂ©ation tables
├── sql/
│   ├── schema.sql           # Star schema
│   └── queries.sql          # RequĂȘtes complexes
├── dashboards/
│   ├── ecommerce.pbix       # Power BI
│   └── ecommerce.twb        # Tableau
└── data/
    └── raw/                 # CSV brut

🎯 CritĂšres de RĂ©ussite

  • Dashboard < 3s de chargement
  • Actualisation automatique quotidienne
  • KPIs standards e-commerce complets
  • Design professionnel

📚 Ressources