Je crée un convertisseur de relevés bancaires pour un expert comptable

Je crée un convertisseur de relevés bancaires pour un expert comptable

Alexandre P. dans News - Le 10-02-2024

Dernièrement je bossais sur un convertisseur de relevés bancaires, qui permet de générer des fichiers au format attendu par le logiciel comptable. Afin d'optimiser au mieux cette conversion, j'ai opté pour une application full client-side afin de ne pas avoir à gérer le réseau, l'API et le stockage de fichier.

Une application lourde

Pour de nombreux développeurs Javascript (ou Typescript), faire une application lourde rime avec Electron. Pour les autres, Electron est un toolkit qui permet de générer une app JS qui propose une interface HTML. Vous pouvez donc créer une interface pour vos applications sans obliger qui que ce soit à travailler sous un terminal. Surtout lorsque votre application est destinée à un utilisateur lambda (non dev).

Je vous invite directement à vous rendre sur la page d'Electron pour en savoir plus sur cette technologie.

Pourquoi faire une app client-side ?

Alors avant d'expliquer le pourquoi, je vais vous faire un petit topo de qu'est-ce qui est attendu. Pour faire très simple : on veut transformer un fichier Excel ou CSV fourni par une banque, en un format Excel spécifique avec des colonnes préformatées, attendu par le logiciel comptable. Rien de très compliqué en soit, vous me direz, mais figurez vous qu'à ce jour, il y a encore beaucoup de sociétés qui font ces traitements manuellement. Soit en faisant absolument tout à la main, soit via quelque chose de plus évolué comme des formules Excel.

Maintenant, pourquoi ai-je choisi de faire une application sans mettre en place tout un système d'API ?

J'aurais bien pu faire une application serveur qui expose des endpoint d'upload de fichier, puis faire les traitements serveur side et dans ce cas, on n'aurait pas eu à installer quoique ce soit sur les machines. On serait en mesure de fournir une url aux comptables pour qu'ils puissent convertir facilement leur fichier.

Cependant, il y a plusieurs problèmes là dedans:

  • D'un côté, il peut y avoir des coupures d'internet imprévisible, mais celles-ci ne doivent en aucun cas empêcher la productivité
  • D'un autre côté travailler sur un produit avec une API, une interface web, une gestion de services est plus long à coder, donc je mettrai plus de temps à livrer quelque chose.

En optant pour une application Electron, j'ai fait le choix de ne pas gérer de réseau. Sur la machine de l'utilisateur, j'ai directement accès à son filesystem, donc je peux lire et écrire. Je n'ai pas à gérer l'upload (souvent problématique avec les tailles limites, le stream etc...).

Le seul point "négatif" là dedans, c'est que les évolutions de l'application se feront forcément manuellement, en mettant à jour l'application.

Ca ressemble à quoi ?

C'est pas l'application la plus belle du monde, mais ça a le mérite d'être fonctionnel 😂 :

Convertisseur Bancaire

L'utilisateur choisi sont fichier d'entrée, le type ainsi que la banque, il peut spécifier certaines options, et cela génère automatiquement un fichier de sortie séparé (pour ne pas écraser le fichier en entrée).

Pour le coup, je n'étais pas à ma version d'essai. J'ai déjà créé ce genre d'outil, notamment en 2013 lorsque je travaillais pour un groupe d'entreprise qui rassemblait la comptabilité de toutes ses sociétés sur une seule plateforme comptable (Isa Compta).

La seule petite différence c'est que Isa Compta utilisait des fichier tabulés, et pour mon convertisseur actuel qui utilise Coala, il s'agit d'un séparateur point-virgule.

Et dans l'approche, je n'ai pas fait exactement là même chose. Pour Isa Compta j'avais créé un moteur plus bas niveau (meta-language) sur une base de C#, qui permettait d'interprêter dynamiquement une config en entrée et avait un comportement sur mesure et paramétrable. Pour Coala j'ai décidé de faire un convertisseur simple avec une configuration en entrée par type de fichier d'input. C'est à dire que la mise à jour passera par du code et pas par de la config comme c'était le cas avant. Au moins, j'ai pu boucler ce projet plus rapidement grâce à cette approche.

En 2019, j'optais aussi pour une approche similaire à ce convertisseur bancaire chez Webedia pour faire du traitement automatique sur les paiements des influenceurs Youtube. A l'époque, j'étais Lead Developer sur un projet qui s'appellait Melberries (en charge du paiement des talents web). Il s'agissait de faire la répartition automatique et équitable par rapport au nombre de vue, des révenus générés par Youtube. Les utilisateurs de cette solutions passaient alors à quelques minutes au lieu de plusieurs jours de traitement des paiements.

C'est le genre de projet qui me plait, car c'est un projet qui peut voir le jour rapidement, sur lequel on peut observer des résultats et qui est utile pour l'utilisateur de cette solution.

Pour ma part, j'aime savoir que mes applications sont utiles 😊, nous ne codons pas uniquement pour notre plaisir personnel. La prochaine fois, je parlerai d'une approche avec IA pour convertir un export comptable scanné en PDF au lieu d'un CSV ou Excel.

#convertisseur#excel#projet

user picture
Alexandre P.

Développeur passionné depuis plus de 20 ans, j'ai une appétence particulière pour les défis techniques et changer de technologie ne me fait pas froid aux yeux.


Nous utilisons des cookies sur ce site pour améliorer votre expérience d'utilisateur.