Rapprochement bancaire assisté
Relevés bancaires et factures rapprochés automatiquement, avec un score de confiance.
Chiffres clés
- pour livrer la v1 et la v2
- 15 jours
- lignes de code
- ~9 400
Contexte
Rapprocher à la main les paiements reçus des factures émises est long et source d'erreurs : les références sont incomplètes et les noms ne correspondent pas toujours. Il fallait un outil qui propose les correspondances et laisse la décision finale à une personne.
Mon rôle
De la conception à l'exploitation, en autonomie complète.
Solution
L'utilisateur importe un relevé bancaire et un export de factures. Le traitement s'exécute côté serveur, dans un worker thread, et sa progression survit à un rechargement de la page.
Le moteur de correspondance floue combine quatre approches : référence, montant, nom approché et combinée. Chaque proposition reçoit un score de confiance de 0 à 100. Un éditeur de revue permet de valider, de rejeter et de résoudre les cas multiples.
Fonctionnalités clés
Quatre types de correspondance
Référence, montant, nom approché ou correspondance combinée, pour couvrir les cas réels.
Score de confiance de 0 à 100
Chaque proposition indique son niveau de fiabilité, pour concentrer la revue sur les cas douteux.
Revue humaine guidée
Validation, rejet et résolution des cas multiples dans un éditeur dédié.
Statistiques et export Excel
Le résultat se lit d'un coup d'œil et s'exporte en Excel.
Défis d'ingénierie
- 1
Traitement asynchrone en worker thread
La correspondance floue (Fuse.js) tourne dans un worker thread Node, hors du fil principal du serveur.
- 2
Progression qui survit au rechargement
Le calcul vit côté serveur : recharger la page ne perd ni le traitement ni son avancement.
- 3
Scoring explicable
Chaque correspondance porte son type et un score de 0 à 100, ce qui rend la décision vérifiable.
- 4
Données typées de bout en bout
TypeScript et Zod encadrent les données, SheetJS gère les fichiers tableur et l'export Excel.
Stack technique
- Frontend
- Next.js 15React 19TypeScriptTailwind 4Flowbite
- Backend
- Node worker_threadsFuse.jsZod
- Data
- SheetJS
Un projet de cette envergure ?
Parlons de votre contexte : je vous dis franchement ce qui est faisable, et en combien de temps.