Nouvelles fonctionnalités

Bonjour,

Je découvre Kresus depuis peu et je suis bluffé par la stabilité et la rapidité de mise en place de l’app.

Pour faire un petit tour d’historique je suis (et j’espère j’étais) un utilisateur de l’application payante Bankin’ et plus le temps passe, moins je m’y retrouve avec celle-ci - notamment son format payant, le fait qu’il faille encore upgrader son abonnement pour lister ses comptes pro, que des écritures disparaissent etc…

Il y a aussi le fait de confier la gestion de ses comptes à un tiers qui ne me plait pas trop non plus car ils font ce qu’ils veulent de vos données.

À l’époque où j’avais pris cet abonnement les outils n’étaient pas légion (c’était fin 2011) et ce qui m’intéressait surtout était le fait de conserver l’ensemble de mes transactions bancaires à un seul endroit pour consultation future.

Bref après avoir fait un tour de toutes les fonctions de Kresus dans l’ensemble je m’y retrouve vraiment bien.

Il y a plusieurs fonctions que j’aimerais y voir :

  • Catégorisation automatique (je le note mais je sais que c’est un sujet qui a déjà été discuté)
  • Avoir la possibilité de faire une recherche globale sur l’ensemble des comptes, ainsi que de filtrer sur le/les comptes où l’on souhaite faire sa recherche. Une loupe en haut à droite de l’interface, qui serait toujours présente serait top !
  • Avoir la possibilité de gérer des « Espaces ». Un espace étant une sélection de comptes bancaires. Ceci permettrait d’afficher des totaux par espace par exemple un espace « Perso » avec un compte chèque de la banque X et un autre compte chèque de la banque Y, Un espace « Pro » avec tous les comptes de la banque Z etc…

Je suis actuellement en train de regarder comment faire pour effectuer l’import de tout mon historique de Bankin vers Kresus. À partir de Bankin on peut faire un export de fichier excel contenant toutes les transactions.

Le fichier contient les éléments suivants :

  • Date
  • Description
  • Compte
  • Montant
  • Catégorie
  • Sous-catégorie
  • Note
  • Pointée

Actuellement la méthodologie que je pense utiliser serait la suivante :

  • Mapper les ID de chaque compte Kresus avec mon fichier
  • Créer les catégories manquantes dans Kresus, récupérer les ID et les mapper avec mon fichier
  • Créer une nouvelle colonne de type puis pour chaque type les mapper avec mon fichier
  • Importer le tout dans Kresus via un import dans PostgreSQL
  • Rectifier le montant de départ de chaque compte importé pour qu’il soit à nouveau correct

Ma méthodologie vous semble correcte ?

À titre informatif j’ai installé Kresus via une image Docker sur mon Synology, j’ai vu des sujets trainer pour des bêta testeurs pour faire un installateur spk, si toujours d’actualité je suis partant :slight_smile:

Salut salut !

Content de voir que tu es intéressé par l’idée d’utiliser Kresus :slight_smile:

Bonne nouvelle pour les trois fonctionnalités que tu demandes : en gros elles sont déjà prévues :slight_smile: Il nous manque simplement un peu de temps pour les implémenter, mais on a ça dans les tuyaux.

Ta stratégie semble plausible, mais un peu plus compliquée qu’idéalement : tu pourrais créer un fichier qui imiterait la structure d’un export de Kresus (format JSON), et ensuite juste l’importer dans Kresus. Le format est un peu documenté ici ; je te conseillerai de regarder un export pour avoir un exemple de structure.

Si tu as du temps et de la motivation, ce serait super cool de même faire un outil générique qui extrait les données du fichier Excel de Bankin et en fasse un fichier JSON importable dans Kresus :heart: Mais je rêve un peu :innocent:

À titre informatif j’ai installé Kresus via une image Docker sur mon Synology, j’ai vu des sujets trainer pour des bêta testeurs pour faire un installateur spk, si toujours d’actualité je suis partant :slight_smile:

C’est gentil de proposer ! Si tu te sens de le faire (et de le maintenir dans la durée ; c’est la partie un peu plus prenante), c’est avec plaisir qu’on apportera le soutien nécessaire (communication, réponse à tes questions, aide au support, etc.). Enfin, je n’engage que moi :wink:

N’hésite pas si tu as des questions en attendant !
Benjamin

Merci Benjamin pour ton retour rapide !

Super pour les fonctionnalités ! Je fais du développement, principalement en AnuglarJS et PHP mais mes connaissances dans les languages que vous utilisez (NodeJS+Express / React) sont pour le moment assez limitées.

Je vais regarder plus en détail comment le code source est structuré pour voir si c’est possible de vous offrir mon aide.

Pour l’import à partir de Bankin je comptais aller en ce sens de faire un générateur de fichier tout prêt à manger. La partie la plus longue serait la conception d’une GUI pour gérer les différents étapes d’échange avec l’utilisateur. Il faut que je regarde ce qu’il serait le plus rapide de développer.

Enfin pour le Syno j’entendais tester car pour faire le spk je ne l’ai encore jamais fait, mais ça s’apprend :slight_smile:

Salut Mathieu !

Quelques précisions pour la conversion du fichier Bankin vers notre JSON (rappel : https://kresus.org/user-doc.html#puis-je-importer-de-lofx-ou-dautres-formats).

Tu verras dans le JSON que tu peux directement importer des catégories également. Si une catégorie existe déjà avec le même label, elle sera préservée. Au besoin + tard, dans Kresus, si tu as des catégories similaires, lorsque tu supprimeras une catégorie, tu pourras affecter ses opérations à une catégorie de remplacement, déjà existante.

  1. Nous n’avons pas de sous-catégories, uniquement des catégories.
  2. Nous n’avons pas de « Note », ni de champ qui « Pointe »
  3. Nos types sont fixes, tu ne pourras pas en créer (et je serais étonné que tu aies le besoin de le faire)
  4. Lors de l’import de ce JSON, cela créera forcément un nouvel accès et nouveau compte (pour éviter d’avoir des opérations en doublon en fait). Si tu es sûr de toi et n’a importé que des opérations qui n’existent pas déjà dans tes comptes actuels, tu pourras ensuite aller dans PostgreSQL et modifier manuellement l’accountId de ces opérations en mettant celui de ton compte déjà existant.

Le + simple dans un premier temps est certainement un script, sans GUI, qui accepte un fichier en entrée au format fourni par Bankin’ et génère un JSON en sortie, dans le format compris par Kresus.

Bon courage !

Bonjour :slight_smile:

Après 2 ans d’absence, je reviens à la charge !

Je me suis remis récemment sur le développement du bridge entre Bankin et Kresus, que j’effectue en python.

J’ai finalement fait en sorte de plutôt tout récupérer via l’API de Bankin car on peut récupérer le RAW data des libellés ainsi que plus d’informations sur les banques (problème de nommer plusieurs « comptes chèques » on ne peut pas différentier les comptes entre eux dans l’export fichier)

Je récupère bien les banques, les comptes, les catégories et les transactions.

L’objectif du bridge est d’effectuer une migration en trois étapes :

1/ Récupération de l’ensemble des données de Bankin et génération de trois fichiers de mapping :

  • Un pour les banques
  • Un pour les comptes en banque
  • Un pour les catégories

2/ Sur chaque fichier de mapping on associe l’ID de Kresus si il est existant, sinon le bridge s’occupera de créer l’élément dans Kresus
3/ Envoi des données dans Kresus

J’ai actuellement plusieurs problématiques et je ne sais pas exactement comment les adresser.

  • Sauf erreur, l’API ne permet pas de créer un compte pour une banque existante (que celle-ci soit une banque « manuelle » ou une banque sous synchro)

=> Seul moyen que j’imagine pour le moment, passer par un POST sur /api/all, d’y créer la banque dans accesses, de créer le/les comptes dans accounts. Ensuite faire un GET dans accesses et dans accounts pour récupérer les éléments pour par la suite préparer les requêtes SQL de réaffectation post import.

  • Pour créer un compte « manual » via l’API /accesses, celui-ci crée 3 comptes, ni plus ni moins. Si je dois ajouter un nouveau compte « manual », je pense que je serais obligé de procéder via /api/all

Avez-vous des idées que j’aurais omises ?

Sinon, au niveau des fonctionnalités, je vois que certaines choses ont avancé, c’est top !

Avez-vous pu également avancer sur la partie recherche globale et espaces ?

J’ai vu un post trainer sur une refonte du front, ce sujet est-t-il toujours d’actualité ?

Merci pour vos retours !

Mathieu

1 « J'aime »

Salut !

Non, en effet, on crée directement un accès avec les comptes. Ensuite c’est le provider qui régulièrement va récupérer la liste des comptes et à ce moment qu’ils seront ajoutés éventuellement (de mémoire).

En effet, c’est une limitation du compte manuel, ça a été fait ainsi pour proposer rapidement la fonctionnalité, justement car on ne peut ajouter d’account directement.

Une possibilité c’est par contre de supprimer les comptes non voulus (je ne sais plus s’ils seront recréés par contre) : https://framagit.org/kresusapp/kresus/-/blob/main/server/controllers/routes.ts#L92.

Non pas encore.

Je ne vois pas de quoi tu parles ?

Salut @nicofrand,

Merci pour ton retour !

Je vais donc me débrouiller en créant les comptes manuels et en produisant les requêtes SQL post import.

Je parle de ce topic : Appel à contribution : UX et/ou UI et/ou designer qui saurait coder! - #3 par fla

Concernant les fonctionnalités de recherche globale et d’espaces, celles-ci sont importantes pour moi. Conscient du temps de développement que cela prend, et et de la dispo que toi et Benjamin avez et passez bénévolement sur le projet, je me tiens à dispo pour aider à effectuer les développements.

En termes d’organisation, vous gérez le projet via Gitlab ? Du coup cela veut dire que je pourrais proposer des PR ?

Sinon j’ai une autre question d’ordre fonctionnelle : Imaginons que j’associe l’ID d’un compte qui a été manual sur une banque qui se synchronise, comment va se comporter l’app ? Elle va pas trouver le compte dans woob.

Le but ici est d’importer les transactions de comptes qui ont été clôturés depuis mais sur laine banque dont d’autres comptes sont toujours actifs et se synchronisent toujours.

Tu me diras que je pourrais garder le compte à part en le laissant « manual », mais je trouverais ça plus propre et plus cohérent de le remettre dans la banque dans laquelle il se trouvait.

Bonne journée.

Oui, sur framagit (Gitlab donc), et avec plaisir pour les PR ! N’hésite pas à venir en parler d’abord, sur IRC ou via une MR vide, qu’on soit bien tous sur la même longueur d’ondes !

Le + simple serait sûrement de :

  1. Créer le compte qui se synchronise
  2. Créer les opérations dessus (on peut ajouter des opérations à n’importe quel compte en fait)

Je me suis mal exprimé. La banque est déjà synchronisée, mais sans le compte clôturé. Je veux ajouter manuellement un compte en banque qui n’aura plus d’opérations dessus car clôturé mais sur une banque qui possède d’autres comptes qui se synchronisent toujours. Possible ?

Car je n’ai pas vu d’infos comme quoi on désactiverait la synchro sur un compte en particulier.

Salut !

Trop cool de te revoir, re bienvenu parmi nous :wave:

Depuis la dernière fois, une auto catégorisation simple a été mise en place. Pour ce qui est des espaces, c’est quelque chose que j’aimerais bien également, il faut juste prendre le temps de l’implémenter ! Et j’avais imaginé une recherche par espace, donc avec un espace global tu pourrais faire une recherche globale, en théorie. Quitte à ce qu’on le propose par défaut.

Pour le côté UX, j’avais un peu discuté avec des designers, mais c’est dur de progresser ensemble car à mon sens il faut beaucoup de conversation et la possibilité d’implémenter les changements rapidement. Comme tout le monde est bénévole sur le sujet, on n’a pas eu peu de temps à y consacrer, des deux côtés, donc ça a un peu fait plouf au final. On a pu intégrer quelques propositions cela dit, et ça c’est cool !

Pour la récupération des comptes : je pense que le plus simple serait de faire un gros fichier JSON d’import au format où Kresus l’attend. Tu peux même définir le paramètre vendorId qui contrôle le backend à utiliser pour récupérer les transactions plus récentes, tu trouveras les valeurs dans le fichier banks.json (ce sont les valeurs de uuid) dans le dépôt de code. Ensuite en utilisant un import via l’interface, tout devrait marcher normalement ; il te faudra re-rentrer (depuis l’UI de Kresus) le mot de passe pour réactiver la synchronisation du compte nouvellement importé, et tout devrait fonctionner.

N’hésite pas si tu as des questions ou si tu veux implémenter des choses à faire signe sur gitlab, où nous faisons la plupart des développements. Même si c’est calme, ce n’est pas mort pour autant :slight_smile:

Bonne soirée !
Benjamin

Hello Benjamin,

Désolé pour ma réponse tardive, la rentrée est très chargée niveau boulot !

Pour la partie UX, que pensez-vous de se baser sur un thème open-source existant que l’on adapterait à Kresus ? On fait le tour de ce qui existe et on choisit le plus adapté. Cela permettrait de gagner du temps sur toute la partie visuelle et de se concentrer sur les fonctions.

Ex avec Argon : GitHub - creativetimofficial/argon-dashboard-react: React version of Argon Dashboard
Ou Volt : GitHub - themesberg/volt-react-dashboard: Free and open source React.js admin dashboard template and UI library based on Bootstrap 5

Pour la récupération des comptes je n’ai pas encore terminé le dèv mais je vais me remettre dessus prochainement. J’imaginais plutôt pousser les données directement en passant par l’API afin de ne pas avoir d’erreur sur le solde de compte, puis générer les requêtes SQL à passer dans la BDD pour faire les petites modifications que ne permettent pas l’API.

Je mettrais mes développements sur Github quand ce sera fini et que je me serais assuré que c’est bien fonctionnel.

Bonne journée.

Mathieu

Salut !

Perso je suis pas chaud pour l’UI, surtout après avoir passé autant de temps à virer bootstrap, et faudrait définir clairement les points d’UX à revoir potentiellement avant de choisir une techno/un nouveau framework.

puis générer les requêtes SQL à passer dans la BDD pour faire les petites modifications que ne permettent pas l’API.

Tu pourrais lister ce qui manque dans l’API ? On pourrait peut-être les ajouter…

1 « J'aime »

Hello @nicofrand,

Pour l’UI je comprend ta position. Je partais juste du principe de départ qui était donner vite, afin de réutiliser des composants existants plutôt que de les développer de 0, notamment pour les pages qui n’existent pas.

Concernant l’API, les requêtes que je prévoie tournent autour du fait que le seul moyen de créer un nouveau compte passe par le fait de créer une banque manuelle, qui crée 3 comptes.

Si j’ai besoin d’un compte en plus, il faut que je crée une seconde banque manuelle, associer les transactions au compte et le rattacher à la première banque.

Si j’utilise le 3ème compte, il faut que je puisse changer la devise en la repassant en euros.

Enfin concernant le type de compte, il faut que je puisse le modifier (checkout, savings, etc…)

Il y a aussi le fait que pour certaines banques déjà ajoutées et toujours synchronisées, que je puisse ajouter un compte dont j’ai déjà l’historique sur Bankin.

Pour résumer, il faudrait idéalement avoir la possibilité d’avoir deux endpoints :

  • Un premier endpoint qui crée uniquement la banque manuelle, sans compte associé
  • Un second endpoint qui crée le compte pour une banque avec en entrée l’ID de la banque, son type, son libellé, et sa devise

De cette manière je pourrais adresser l’ensemble de mes points :slight_smile:

1 « J'aime »