6.1Cas concrets
L'essentiel en 30 secondes
- Ancrer : le suivi de dépenses enchaîne fonctions → dataclass + JSON → venv + pytest → FastAPI → Docker + CI jusqu'au déploiement.
- Automatiser : le rapport CSV hebdo greffe pandas, graphique Matplotlib, cron avec logs et envoi e-mail sur ces fondamentaux.
- Livrer : venv reconstruit, requirements figé, tests au vert et logs vérifiés le premier mois.
Fil Nabil — un an après : deux chantiers qui tournent à Alger
Nabil, data analyst junior à Alger, relit ses deux chantiers marquants de l'année : le suivi de dépenses né carnet console devenu API déployée, puis le rapport hebdo des ventes CSV entièrement automatisé. Les deux cas ci-dessous reprennent son enchaînement : découper, typer, tester, isoler, livrer.
Chaque cas suit le déroulé Contexte → Étapes → Résultat : rejouez-le sur vos projets.
Mettre les briques bout à bout
Les niveaux précédents ont posé les briques (bases, structures, POO, erreurs, modules, venv, tests, web, data, déploiement) ; ici on les assemble en conditions réelles : on part d'un besoin concret, on découpe, on type, on teste, on isole et on livre. Deux cas déroulés de A à Z.
Cas 1 — Suivi de dépenses : du carnet à l'API déployée
Contexte : Le projet fil rouge : un suivi de dépenses né carnet console (N1), devenu persistant (N2), testé (N3), exposé en API (N4) et déployé (N5).
Déroulé :
- N1 : fonctions ajouter/lister/total, menu main(), 80 lignes découpées.
- N2 : dataclass Dépense, JSON via pathlib, try/except sur la saisie.
- N3 : modules + venv + requirements, hints, tests pytest du total.
- N4 : FastAPI (GET/POST) pour exposer les dépenses.
- N5 : Dockerfile slim, CI ruff + pytest, déploiement à chaque push.
Résultat : Une URL qui liste vos dépenses, testée en CI, redéployée à chaque push.
Cas 2 — Rapport hebdo automatisé d'un CSV
Contexte : Chaque lundi, un export CSV des ventes doit devenir un résumé chiffré envoyé par e-mail.
Déroulé :
- pandas : lire, inspecter (isna), groupby par ville, top 5.
- Matplotlib : une barre titrée-message, export PNG.
- Script planifié (cron) avec logging + try ciblés, testé sur copies.
- E-mail du résumé + PNG en pièce jointe, logs vérifiés le premier mois.
Résultat : Zéro lundi manuel : le rapport arrive seul, avec ses logs.
Script prêt à dire — cadrer un projet Python avant de coder (30 s)
« Notre besoin : [suivi de dépenses exposé en API]. Nos fondations : [fonctions découpées + hints + pytest + venv]. On persiste en JSON, on expose en FastAPI, on livre via Docker + CI. »
Modèle copier-coller — API de suivi minimale (FastAPI)
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
depenses: list[dict] = []
class Depense(BaseModel):
motif: str
montant: float
@app.get("/depenses")
def lister() -> list[dict]:
return depenses
@app.post("/depenses", status_code=201)
def ajouter(depense: Depense) -> dict:
item = depense.model_dump()
depenses.append(item)
return item
TPE / petit budget
Un seul cas rejoué sur un besoin simple : suivi à une ressource, rapport CSV minimal, déploiement direct.
PME Alger
Adapter le déploiement aux réalités locales : postes partagés, pics du lundi, sauvegardes et référent nommé.
Remote / hybride
Doubler la traçabilité à distance : requirements figé documenté, pipeline CI et accès écrits.
Interculturel
Vérifier les usages locaux avant de transposer un cas : intitulés, villes et règles de regroupement doivent parler à l'équipe.
Défi 48h — appliquez demain
Prenez 1 projet réel et écrivez sa chaîne en 5 temps (découper → typer → tester → isoler → livrer). Identifiez la prochaine étape.
- Je sais assembler les briques en une application complète, du carnet à l'API déployée.
- J'ai un modèle FastAPI rejouable pour mon projet.
- J'ai fait le défi 48h ou planifié sa date.
Nabil fait grandir son suivi de dépenses jusqu'à l'API déployée. Quel enchaînement respecte le guide ?