Aller au contenu principal

Journal d’itération

2026-04-19 — Initialisation du wiki FastAPI

Structure créée

  • création du dossier FastAPI LLM Wiki
  • création des sous-dossiers Foundations et Use Cases
  • création des notes de pilotage principales

Décisions éditoriales

  • le wiki est un guide pédagogique en français sur FastAPI
  • le premier grand chapitre pratique ne s'appelle pas "section 1"
  • il s'appelle API de base
  • les chapitres pratiques doivent contenir du code obligatoire
  • le premier grand chapitre s'appuie sur l'architecture du repo task-organizer-API

Notes créées

2026-04-19 — Simplification de la structure et renforcement de API de base

Simplification

  • suppression des dossiers Glossaire/, Comparisons/ et Sources/
  • maintien volontaire d'une structure légère centrée sur les notes utiles
  • mise à jour de SCHEMA et FastAPI LLM Wiki pour refléter cette structure simplifiée

Renforcement du chapitre principal

  • ajout de repères utiles avant de lire le code
  • ajout de plus de détails de setup
  • ajout de plus de code utile (.gitignore, .env.example, configuration PostgreSQL plus complète)
  • amélioration du guidage sur les fichiers et leur rôle
  • amélioration de la vérification avec curl, cas 404 et vérification SQL

Orientation actuelle

  • garder API de base comme socle principal du wiki
  • réserver le second grand bloc du wiki aux enrichissements de l'API

2026-04-19 — Initialisation du bloc Advanced FastAPI

Décision

  • API de base est considéré comme suffisamment solide pour servir de socle
  • les améliorations restantes sur ce chapitre sont désormais optionnelles et non bloquantes
  • le bloc 2 est officiellement nommé Advanced FastAPI

Travail réalisé

  • inspection des dossiers 11-Register User à 33-Docker dans la source FastAPI avancée
  • regroupement des thèmes avancés par familles pédagogiques
  • création de la note Advanced FastAPI
  • mise à jour de FastAPI LLM Wiki et du Plan directeur

Orientation retenue pour la suite

  • commencer la montée en puissance par l'authentification
  • continuer ensuite avec relations SQL, robustesse, tests et Docker

2026-04-19 — Rédaction du premier sous-chapitre Authentification avec FastAPI

Travail réalisé

  • création de la note Authentification avec FastAPI
  • transformation des sources 11-Register User, 12-Login User et 13-Logout User en tutoriel guidé
  • adaptation du domaine seller des sources vers un domaine plus générique user
  • conservation de la logique d'architecture tout en améliorant la pédagogie et le setup

Contenu ajouté dans le chapitre

  • dépendances d'authentification
  • variables d'environnement JWT
  • core/security.py
  • modèle User
  • schémas utilisateur
  • UserService
  • récupération de l'utilisateur courant via dépendance
  • routes signup, token, me
  • protection des routes d'écriture sur les tâches
  • explication claire du logout simple vs logout robuste avec blacklist Redis

Suite logique

  • développer ensuite le chapitre sur les relations SQL et l'enrichissement du modèle

2026-04-19 — Rédaction du chapitre Relations SQL avec FastAPI

Travail réalisé

  • création de la note Relations SQL avec FastAPI
  • transformation des sources 14-SQL Relations, 16-Delivery Partner et 25-Many to Many en tutoriel guidé
  • adaptation du domaine source vers la relation User -> Task
  • ajout d'une progression claire : clé étrangère, relation ORM, ownership, filtrage par utilisateur

Contenu ajouté dans le chapitre

  • mise à jour du modèle Task
  • relation inverse côté User
  • schémas Task adaptés à owner_id
  • TaskService enrichi avec get_task_for_user() et get_tasks_for_user()
  • routes /task/mine, lecture/écriture protégées par ownership
  • explication du choix 404 vs 403
  • aperçu bonus du many-to-many

Suite logique

  • continuer ensuite vers la gestion d'erreurs ou le middleware

2026-04-19 — Rédaction du chapitre Gestion d’erreurs avec FastAPI

Travail réalisé

  • création de la note Gestion d’erreurs avec FastAPI
  • transformation des sources 26-Error Handling/133-exceptions.py et 134-exceptions.py en tutoriel guidé
  • adaptation de la logique source au projet construit dans API de base, Authentification avec FastAPI et Relations SQL avec FastAPI

Contenu ajouté dans le chapitre

  • création d’un core/exceptions.py
  • hiérarchie d’exceptions métier
  • handlers centralisés
  • enregistrement des handlers dans main.py
  • simplification de services/user.py, services/task.py et api/dependencies.py
  • routes plus fines grâce à la centralisation des erreurs
  • vérification guidée sur 409, 401, 404, 400

Suite logique

  • continuer ensuite sur le middleware avec la source 27-Middleware

2026-04-19 — Rédaction du chapitre Middleware avec FastAPI

Travail réalisé

  • création de la note Middleware avec FastAPI
  • transformation de la source 27-Middleware/135-main.py en tutoriel guidé
  • adaptation de l’idée source vers une version plus propre avec core/middleware.py

Contenu ajouté dans le chapitre

  • middleware HTTP dédié dans core/middleware.py
  • mesure du temps avec perf_counter
  • génération d’un request_id
  • ajout des headers X-Request-ID et X-Process-Time
  • logging global des requêtes
  • branchement dans main.py
  • intégration optionnelle avec la gestion d’erreurs via request.state

Suite logique

  • continuer ensuite sur les tests avec les sources 29-pytest et 30-API Testing

2026-04-19 — Rédaction du chapitre Tests avec FastAPI

Travail réalisé

  • création de la note Tests avec FastAPI
  • transformation des sources 29-pytest et 30-API Testing en tutoriel guidé
  • adaptation des fixtures et des exemples de test au projet construit dans le wiki

Contenu ajouté dans le chapitre

  • dépendances pytest, pytest-asyncio, httpx, aiosqlite
  • dossier tests/
  • tests/example.py
  • tests/conftest.py
  • tests auth
  • tests tâches
  • overrides de dépendances FastAPI
  • base SQLite mémoire pour les tests

Suite logique

  • continuer ensuite sur Docker avec la source 33-Docker

2026-04-19 — Rédaction du chapitre Docker avec FastAPI

Travail réalisé

  • création de la note Docker avec FastAPI
  • transformation des sources 33-Docker/170-Dockerfile, 172-compose.yaml et 173-compose.yaml en tutoriel guidé
  • adaptation de la logique source à notre projet avec une version minimale api + db puis une extension redis + celery

Contenu ajouté dans le chapitre

  • création de .dockerignore
  • création de Dockerfile
  • création de docker-compose.yml
  • explication de l’override POSTGRES_SERVER=db
  • healthcheck PostgreSQL
  • vérification avec docker build, docker compose up, docker compose ps, curl et logs
  • variante étendue avec Redis et Celery

Suite logique

  • continuer ensuite sur les réponses personnalisées avec la source 19-Custom Response

2026-04-19 — Rédaction du chapitre Réponses personnalisées avec FastAPI

Travail réalisé

  • création de la note Réponses personnalisées avec FastAPI
  • transformation des sources 19-Custom Response/106-app.py, 105-shipment.py et 105-track.html en tutoriel guidé
  • adaptation des exemples source au domaine de notre application de tâches

Contenu ajouté dans le chapitre

  • ajout de jinja2 dans les dépendances utiles
  • création de core/responses.py
  • création de templates/task_detail.html
  • création de exports/task-api-example.txt
  • ajout de routes JSONResponse, FileResponse, RedirectResponse, TemplateResponse et réponse texte custom
  • vérifications avec curl -i
  • explication de response_model vs response_class

Suite logique

  • continuer ensuite sur les notifications et la communication utilisateur avec les sources 18-Send Mail, 20-Email Confirmation, 21-Password Reset et 22-SMS

2026-04-19 — Rédaction du chapitre Notifications et communication utilisateur avec FastAPI

Travail réalisé

Contenu ajouté dans le chapitre

  • ajout de fastapi-mail, itsdangerous et twilio
  • création de core/url_tokens.py
  • création de services/notification.py
  • ajout de email_verified sur User
  • templates email HTML de vérification et reset
  • routes de vérification email, demande de reset, confirmation de reset et SMS de test
  • explication des BackgroundTasks, des tokens d’URL signés et des bonnes pratiques de sécurité sur reset/password

Suite logique

  • continuer ensuite sur Celery avec la source 24-Celery

2026-04-19 — Rédaction du chapitre Tâches asynchrones avec Celery et FastAPI

Travail réalisé

Contenu ajouté dans le chapitre

  • ajout de celery[redis], redis et asgiref
  • création de worker/tasks.py
  • app Celery connectée à Redis
  • tâches send_mail, send_email_template et send_sms
  • évolution de services/notification.py pour utiliser .delay()
  • commande worker locale et Docker Compose
  • explication de async_to_sync() et de la séparation API / worker

Suite logique

  • explorer ensuite le bloc frontend / React avec les sources 31-React JS et 32-Frontend

2026-04-19 — Rédaction du chapitre Frontend React consommant l’API FastAPI

Travail réalisé

  • création de la note Frontend React consommant l’API FastAPI
  • transformation des sources 31-React JS et 32-Frontend en tutoriel guidé
  • adaptation des patterns source vers une version plus simple en Vite + React + TypeScript

Contenu ajouté dans le chapitre

  • prérequis CORS côté main.py
  • client API centralisé avec axios
  • AuthContext
  • ProtectedRoute
  • page de login
  • page forgot password
  • dashboard branché sur /task/mine
  • formulaire de création de tâche avec invalidation React Query
  • explication du lien entre token frontend et routes protégées FastAPI

Suite logique

  • ouvrir ensuite une phase de raffinement avec un parcours de lecture et une FAQ pratique

2026-04-19 — Ouverture de la phase de raffinement

Travail réalisé

Contenu ajouté dans ces notes

  • parcours recommandés selon le niveau et l’objectif
  • parcours backend-first, produit réaliste, full-stack et déploiement
  • questions fréquentes
  • erreurs classiques
  • réflexes de diagnostic et conseils pratiques

Suite logique

  • renforcer maintenant la cohérence transversale et la navigation entre les gros chapitres

2026-04-19 — Consolidation transversale et polish pédagogique

Travail réalisé

Contenu renforcé

  • transitions entre chapitres
  • orientation du lecteur selon le niveau et l’objectif
  • cohérence des renvois entre backend socle, bloc avancé, frontend bonus et notes de raffinement
  • checklist du template enrichie avec le renvoi vers le parcours/FAQ quand pertinent

Suite logique

  • continuer ensuite avec un polish plus fin, chapitre par chapitre, si l’on veut encore renforcer l’homogénéité éditoriale du wiki

2026-04-19 — Deuxième passe de polish éditorial chapitre par chapitre

Travail réalisé

  • audit ciblé des notes de use cases pour repérer les sections Pour aller plus loin encore incomplètes
  • ajout d’un vrai Pour aller plus loin à Advanced FastAPI
  • harmonisation de l’ordre de lecture recommandé dans FastAPI LLM Wiki pour faire remonter plus tôt Parcours de lecture
  • renforcement des Related et Pour aller plus loin sur les chapitres majeurs encore un peu en retrait

Contenu renforcé

  • meilleure entrée lecteur depuis FastAPI LLM Wiki vers le parcours de lecture
  • meilleure fermeture des chapitres sur des renvois cohérents
  • meilleure homogénéité entre le gateway note Advanced FastAPI et les sous-chapitres concrets
  • meilleure articulation entre socle, bloc avancé, frontend bonus et notes de support

Suite logique

  • faire ensuite, si souhaité, une passe de réécriture micro-locale sur la formulation elle-même (densité, répétitions, fluidité)

2026-04-19 — Clôture éditoriale de la v1

Travail réalisé

  • harmonisation finale des intros et sorties de chapitres
  • standardisation des checklists de fin de chapitre
  • clarification de l’ordre canonique de lecture dans FastAPI LLM Wiki et Parcours de lecture
  • nettoyage des notes meta pour refléter un état terminé en v1, plus une roadmap ouverte

Contenu renforcé

  • cohérence entre hub, socle, sous-chapitres avancés et notes de navigation
  • lisibilité des derniers renvois lecteur
  • clôture propre du périmètre éditorial retenu

Statut de clôture

  • la v1 du wiki est considérée comme complète
  • les enrichissements futurs relèvent désormais d’une v2 ou d’extensions optionnelles, pas de tâches restantes sur le périmètre actuel

2026-04-19 — Réorganisation physique des Use Cases

Travail réalisé

  • création de deux sous-dossiers dans Use Cases/
  • déplacement de [API de base](/docs/use-cases/api-de-base) dans Use Cases/API de base/
  • déplacement du hub [Advanced FastAPI](/docs/use-cases/advanced-fastapi) et de tous les autres chapitres avancés dans Use Cases/Advanced FastAPI/
  • mise à jour de SCHEMA pour refléter cette arborescence plus lisible dans Obsidian

Intention

  • séparer visuellement le socle du bloc avancé
  • rendre la navigation latérale du vault plus claire
  • conserver les wikilinks inchangés tout en améliorant l’organisation physique des fichiers