
Plateforme de subventions.
Numériser non seulement une demande de subvention, mais toute la chaîne de validation qui la précède
Année.
2023
Employeur.
Embie
Rôle.
Développeur Full Stack
Contexte.
Une plateforme numérique pour une administration publique, remplaçant de bout en bout un processus de subvention entièrement papier. Les candidats externes déposent et gèrent leurs dossiers via un portail, en s'authentifiant via les services d'identité numérique nationale, tandis que le personnel se connecte avec ses comptes organisationnels pour instruire ces dossiers.
Challenge.
Numériser non seulement le formulaire de demande, mais tout le workflow interne, en plusieurs étapes, qu'un dossier de subvention traverse avant approbation, où différents relecteurs ont besoin de visibilité et d'actions différentes sur le même dossier selon où il se trouve dans ce processus, jusqu'au niveau du champ, et produire une décision signée à la fin de ce parcours.
Décisions et compromis.
Permissions Liées à l'État du Dossier : Les permissions CASL sont définies non seulement par rôle mais par étape du cycle de vie du dossier : le même relecteur peut lire un champ à une étape, puis le lire et le signer à l'étape suivante, à partir de règles qui se basent sur l'état courant du dossier plutôt que sur une table fixe rôle/permission.
Signature Fidèle au PDF : Les signatures sont capturées directement sur un aperçu en direct du PDF réel : le signataire clique à l'endroit exact sur la page rendue, et cette position est celle utilisée pour placer la signature lors de la génération du document final, plutôt qu'un champ générique « signez ici » déconnecté de la mise en page du document.
Un Moteur, Plusieurs Programmes : Le formulaire de demande lui-même est une structure imbriquée pilotée par configuration (onglets → sections → questions, chacun indépendamment répétable), rendue par un moteur de formulaire générique unique, de sorte qu'un programme de subvention avec des champs différents devient une nouvelle configuration, pas du nouveau code.
Les Tests Plutôt que le QA Manuel : Investi dans des tests end-to-end avec Playwright pour le flux de validation, plutôt que de s'appuyer sur des tests manuels entre les releases, parce qu'une régression silencieuse dans une chaîne à plusieurs étapes est bien plus difficile à repérer à la main qu'un bouton cassé.
Résultat.
Remplacé un processus de subvention entièrement manuel et papier par un processus numérique qui tourne en production depuis des années. Candidats externes et relecteurs internes sont passés sur la même plateforme.
Stack.
CASL pour les permissions par étape, Hasura GraphQL et tRPC pour l'API, react-pdf pour les signatures.
TypeScript
Next.js
Radix UI
Tailwind CSS
Zod
React Hook Form
CASL
tRPC
GraphQL
Hasura
End to end testing