tibxla@croustyfolio:~/sélection/edifig$ online étude de cas
cd .. retour au portfolio
PROJET // 01

Edifig

> chemin de fer numérique — Propriétés Le Figaro

contexte
Le Figaro · stage DSI · 2026
rôle
conception + développement, en autonomie
stack
Next.js 16 · TypeScript · PostgreSQL · Okta · SSE
statut
en production

le problème

Le magazine Propriétés Le Figaro (300 à 400 pages, bimestriel) composait son chemin de fer dans un fichier Excel échangé par mail. La question du stage : comment le remplacer, en huit semaines et seul, par une application web intégrée au SI du Figaro, utilisable par une équipe éditoriale non technique, et qui génère en temps réel le XML conforme à la chaîne d'impression ?

les contraintes

  • Réseau de la DSI fermé : aucun appel sortant possible à l'exécution.
  • XML normé (chaîne Sentinel), validé octet par octet contre une fixture de référence.
  • Équipe non technique : zéro friction, aucune rupture avec l'habitude du tableur.
  • Édition collaborative : plusieurs personnes sur le même chemin de fer en même temps.

les décisions

Chaque arbitrage est tracé. Quatre parmi trente.

ADR-0001

Concurrence optimiste scindée

Côté client, dernière-écriture-gagne, silencieux : l'édition ne bloque jamais. Côté serveur, versioning strict (409) : aucune donnée n'est écrasée à l'insu de personne. Deux régimes pour deux besoins opposés.

ADR-0025

Temps réel sans service tiers

Le réseau de la DSI est fermé. Plutôt qu'un service temps réel externe, j'ai rediffusé le LISTEN/NOTIFY de PostgreSQL en Server-Sent Events. Zéro dépendance sortante, l'édition collaborative se met à jour en sous-seconde.

ADR-0024

Auth Okta validée en local

SSO d'entreprise via Okta (OIDC), mais le jeton est validé localement contre les clés JWKS (pas d'appel sortant à chaque requête), puis posé en cookie httpOnly. Contrainte réseau transformée en architecture.

ADR-0009

Création progressive

Créer une édition de 300 pages devait être instantané pour l'utilisateur. La ligne est insérée, la redirection part aussitôt, et les pages se peuplent par lots en arrière-plan, poussées au client par SSE au fil de l'eau.

le résultat

  • 42 000 lignes TypeScript
  • 1 443 commits en 8 semaines
  • ~1 600 tests Vitest
  • 30 décisions tracées (ADR)

En production fin mai 2026, l'application est passée en test réel avec la rédaction Propriétés. Trois réunions de présentation ont nourri six fonctionnalités ajoutées après le déploiement (rapport d'avancement par mail, rôles, refonte de la taxonomie des rubriques). Le stage a été noté 19 sur 20.