Outils pour gérer son budget et optimiser son épargne
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Petite application web pour suivre son budget : revenus, charges, dépenses, cashback et arrondi automatique, économies potentielles, simulation de placement, exemples de produits financiers et synthèse visuelle, le tout avec AUCUNE FUITE DE DONNÉE !!
Version actuelle : v1.16.1 (historique dans patchNote.txt)
Démo en ligne : https://gt-steeve.github.io/gestionBudget/
Avertissement : cet outil ne fournit qu'une estimation. Il ne tient pas compte de nombreux paramètres réels (inflation, fiscalité, frais…) et les simulations de rendement supposent un taux annuel constant, ce qui n'est jamais le cas d'un placement réel. Il ne remplace pas un conseil financier.
.docx généré dans
le navigateur, sans bibliothèque) ou Google Docs (le même .docx, à
importer dans Google Drive : aucune connexion n'est faite). Trois modèles :
Simple (synthèse + dépenses du mois), Standard (+ revenus, charges,
placement) et Complet (+ historique des dépenses, économie, cashback,
RoundUp). Option Rapport + données (désactivée par défaut, pour qu'un
rapport partagé n'emporte pas tout le budget) : le .docx et le PDF
embarquent alors toutes les données du profil, quel que soit le modèle, pour
pouvoir les réimporter : partie JSON dans le .docx, lien « Gestion
budget » de la page de garde dans le PDF (lu en clair ou dans un flux
d'objets compressé)..docx ou du PDF exporté
par l'application avec l'option « Rapport + données » (glisser-déposer sur bureau) ; tout autre fichier est
refusé (autre application, export modifié ou réenregistré), et un nom déjà
pris doit être changé. Après une création ou un import, l'application ouvre
la page où continuer et y confirme l'action dans une pop-up.localStorage) —
aucun serveur, aucun compte.connect-src 'none', aucun script ni fichier
externe) : même un script ajouté par erreur ne pourrait rien envoyer.
npm run build échoue si une page n'en a pas.Aucune installation ni dépendance : ouvrez simplement index.html dans un
navigateur, ou servez le dossier avec n'importe quel serveur statique.
python3 -m http.server
HTML, CSS et JavaScript « vanilla » côté application : aucun framework, aucun
bundler, aucune étape de build pour faire tourner le site (ouvrir index.html
suffit). Un outillage Node existe en parallèle uniquement pour la qualité et
les releases (lint, tests, CI/CD) — voir « Contribuer » ci-dessous.
index.html — tableau de bord (page d'accueil)pages/ — pages dédiées (Revenus, Dépenses, Charges, CashBack/RoundUp,
Économie, Placement, Produits financiers, Guide, Annexe, Exporter, Imprimer,
Profil, Paramètres, À propos, Vos données)assets/css/style.css — thème (clair/sombre), taille agrandie, mise en page, responsive, impressionassets/js/script.js — logique des pages du tableau de bord (rendu, saisie, stockage local)assets/js/state.js — état de l'application : catégories, profil d'exemple, lecture des données enregistrées ou importées et archivage mensuel, partagé avec les testsassets/js/ui.js — outils d'interface partagés : formats, éléments DOM, pop-ups (pile, Échap, focus), choix en boutons, ajout guidé, tracés SVGassets/js/report.js — rapport d'export et d'impression (pages Exporter et Imprimer)assets/js/guide.js — guide de démarrage : page Guide, premier usage, étape en cours sur les pagesassets/js/docx.js — génération de fichiers Word (.docx) dans le navigateur (XML Word + archive ZIP), partagée avec les testsassets/js/pdflink.js — données du profil dans le lien de la page de garde du rapport PDF, et leur relecture à l'importassets/js/calc.js — calculs financiers purs (intérêts composés, économies), partagés avec les testsassets/js/profiles.js — profils : liste, profil actif, données de chaque profil sous sa propre clé localStorageassets/js/nav.js — menu, thème et taille d'affichage, bouton « Fermer l'exemple », effacement des donnéesassets/js/profil.js / assets/js/parametres.js — pages Profil et Paramètresassets/js/tabs.js — onglets accessibles (page Produits financiers)assets/img/ — favicons et image de partage (Open Graph)Le dépôt utilise Conventional Commits et une release automatisée :
npm install # installe l'outillage (lint, tests, hooks Git)
npm run lint # ESLint sur assets/js
npm test # Vitest sur calc.js, profiles.js, docx.js et pdflink.js
npm run build # vérifie les références des pages et la version de cache des CSS/JS
npm run bump-assets # augmente le ?v= des CSS/JS après les avoir modifiés
Les hooks Git (Husky) vérifient localement le message de commit, le lint, les tests et le build avant chaque commit.
Les pages chargent les CSS/JS avec un numéro de cache (style.css?v=1.01.25).
Après toute modification d'un fichier de assets/css ou assets/js, lancez
npm run bump-assets : sinon le build échoue, car les navigateurs garderaient
l'ancienne version en cache.
Toute PR passe par la CI (lint, tests, build) ; une fois
mergée sur main, si tout est vert, semantic-release détermine la
prochaine version à partir des commits (fix → patch, feat → minor,
BREAKING CHANGE → major), génère le tag, le CHANGELOG.md et la GitHub
Release, puis le site est déployé sur GitHub Pages.
Distribué sous licence MIT.