Aller au contenu principal
Projet personnel

Budget Familial — Suivi financier du foyer avec IA

Une application de budget familial full-stack avec ledger unique, mode hors ligne et assistant IA branché sur les vraies données du foyer.

Conception & développement

Angular Node.js Express MySQL Capacitor Gemini AI
731
Cellules de budget migrées
61
Catégories réelles importées
0
Vulnérabilité npm détectée

Le défi

Depuis trois ans, Saad pilotait le budget de son foyer via un tableur Excel de plus en plus lourd : formules imbriquées, onglets par année, aucune vue mobile et aucune manière fiable de suivre deux cagnottes d'épargne distinctes sans erreurs de copier-coller. Impossible de saisir une dépense hors connexion, de visualiser en un coup d'œil l'écart budget/réel par catégorie, ou de poser une simple question sur ses propres finances sans rouvrir le fichier. Le vrai défi n'était pas seulement de reconstruire l'Excel en application web, mais de migrer trois ans d'historique réel sans rien perdre ni désynchroniser les soldes.

La solution

Saad a construit une application de budget familial autour d'un principe unique : un seul ledger de transactions fait foi, chaque solde affiché étant recalculé à la volée plutôt que stocké séparément. L'application couvre :

  • saisie dépense/revenu en environ 3 secondes, fonctionnant hors ligne ;
  • une grille budget annuelle à 4 vues (mixte, estimation, réel, écart) ;
  • deux cagnottes d'épargne nommées ("normale" et "urgence") calculées automatiquement ;
  • une liste de souhaits avec indicateur "finançable maintenant" ;
  • un module abonnements et un module prêts ;
  • le support natif d'une daret (tontine marocaine) comme catégorie de ledger ;
  • un assistant IA (Gemini) répondant à partir des vraies données du foyer.

Les résultats

La migration a importé avec succès 61 catégories réelles, 731 cellules de budget (2023-2025 verrouillées comme historique, 2026 restant modifiable), 17 objectifs d'épargne et 8 abonnements depuis l'ancien tableur, sans écart de solde entre l'historique et le nouveau ledger unique. Une revue de sécurité datée a identifié puis corrigé deux failles réelles : une faille d'isolation entre foyers via une clé étrangère non validée, et un jeton de rafraîchissement sans révocation possible, remplacé par une table dédiée avec rotation et détection de réutilisation. L'audit des dépendances npm du backend n'a révélé aucune vulnérabilité, confirmant la fiabilité d'une base pensée pour un usage familial réel.

Méthodologie et gestion de projet

Le projet a été construit en un sprint intensif d'environ deux semaines (fin juin à début juillet 2026, 18 commits), en partant systématiquement des vraies données existantes plutôt que d'un jeu de données fictif. Les migrations de schéma sont écrites en SQL brut plutôt qu'en migrations JS Knex, un choix délibéré pour garder un contrôle explicite sur chaque changement de structure. Le script d'import a été conçu et testé spécifiquement pour absorber l'historique Excel réel sans perte. Une fois les fonctionnalités posées, une revue de sécurité dédiée est venue clôturer le cycle avant toute mise en ligne, plutôt que d'être traitée comme une étape accessoire.

Architecture technique et performance

Le backend s'appuie sur Node.js/Express avec MySQL 8 et Knex comme query builder, une authentification JWT (access + refresh) via Passport stockée en cookies HttpOnly plutôt qu'en localStorage. Le frontend est une Angular 19 + Tailwind/DaisyUI construite comme Progressive Web App installable, avec service worker et file d'écriture hors ligne en IndexedDB synchronisée au retour du réseau. Capacitor embarque cette même web app dans une application Android installable avec déverrouillage biométrique, en chargeant l'application web live à l'exécution : chaque déploiement web met donc aussi à jour l'app Android installée, sans processus de publication séparé.

Vous avez un projet similaire ?

Contactez-moi pour en discuter.

Discuter sur WhatsApp