Finance Tracker un outil complet et facile à utiliser pour gérer, analyser et optimiser vos investissements, comprendre l'impact des intérêts composés et des impôts, ou simplement planifier un budget. Bien que pensée d'abord pour les francophones, elle sera bientôt traduite pour une diffusion maximale. La protection de votre vie privée et de votre souveraineté est assurée par le stockage local des informations.
- ✨ Présentation Générale
- ⚡ Quick Start
- 🌐 Fonctionnalités Principales
- 📚 Documentation Spécialisée
- 🧱 Architecture du Projet
- 🧪 Tests & Qualité
- 🤝 Contribution
- 📄 Licence
Finance Tracker est une application de gestion de portefeuille qui permet de :
- Centraliser vos produits financiers (cash, SCPI, assurance-vie, PER, Bitcoin, etc.) ou vos projets (achat de vélo électrique, etc.).
- Suivre vos transactions et valorisations dans le temps.
- Calculer des indicateurs de performance réalistes (MWRR, rendement annualisé, etc.).
- Visualiser l’évolution de votre patrimoine via un dashboard web clair.
- Générer des rapports PDF et utiliser une CLI pour les utilisateurs avancés.
Deux publics cibles :
- 👤 Utilisateurs finaux : veulent utiliser l’application web et suivre leurs investissements.
- 💻 Développeurs / power users : veulent installer en local, utiliser la CLI ou contribuer au projet.
- Ouvrez l’application hébergée : 👉 https://finance-tracker-skohscripts.streamlit.app/
- Créez / chargez quelques produits et transactions de test.
- Explorez le 📊 Tableau de bord et les graphiques.
- Consultez la page 📖 Documentation intégrée pour les explications rapides.
Toutes les données restent stockées côté app / base configurée, vous n’avez rien à installer localement.
Pour un setup minimal de développement :
git clone https://github.com/SKOHscripts/finance-tracker.git
cd finance-tracker
python3 -m venv venv
source venv/bin/activate # macOS / Linux
# ou
venv\Scripts\activate # Windows
pip install -r requirements.txt
# Initialiser la base de données
finance-tracker init-db
finance-tracker seed-products
# Lancer l'application web
streamlit run app.pyPour un guide complet, voir : 👉 docs/INSTALLATION_SETUP.md
-
📊 Tableau de bord Vue globale du portefeuille, répartition par produit/catégorie, graphiques temporels, performance globale vs objectifs.
-
➕ Gestion des transactions Achat / vente, rebalance, historique détaillé, filtrage et export.
-
💰 Valorisation des positions Suivi des valorisations, comparaison valeur actuelle vs coût d’acquisition, distributions reçues.
-
₿ Espace Bitcoin Prix en temps réel (API CoinGecko), conversions EUR/BTC, historique sur 1 an, scénarios simples.
-
📄 Rapports PDF Génération de rapports complets, prêts à être partagés (PDF via WeasyPrint).
-
📈 Simulateur long terme Projections multi‑scénarios, croissance composée, analyse de sensibilité.
👉 Détails : docs/INTERFACE_WEB.md
La documentation est découpée en plusieurs guides thématiques pour rester claire et ciblée :
Comprendre les types de produits supportés (cash, SCPI, assurance‑vie, PER, crypto…), les notions de rendement, risque, distributions, valorisation, etc.
Guide pas à pas de chaque page Streamlit :
-
Tableau de bord
-
Formulaires d’ajout / édition
-
Espace Bitcoin
-
Rapports PDF
-
Simulateur long terme
Description de la structure SQLite (tables products, transactions, valuations, etc.), types de champs, contraintes, et conventions de nommage.
Détail des formules de calcul utilisées par le cœur métier :
-
Modified Dietz Return (MWRR)
-
Rendement annualisé
-
Concepts issus de la théorie moderne du portefeuille (MPT) pour la volatilité et la corrélation
-
Autres indicateurs clés utilisés par les vues et services.
Pour les utilisateurs qui veulent toucher aux lignes de commande ou développer dans le projet :
-
Installation détaillée.
-
Commandes CLI principales (
dashboard,add-transaction,report, etc.). -
Structure du projet et organisation des modules.
-
Déploiement et troubleshooting.
-
👉 Guide installation & setup complet : docs/INSTALLATION_SETUP.md
-
👉 Guide CLI : docs/CLI_GUIDE.md
Structure simplifiée du dépôt :
finance-tracker/
├── README.md # Ce fichier
├── requirements.txt # Dépendances pip
├── pyproject.toml # Config Poetry
├── docs/ # Documentation spécialisée
│ ├── CONCEPTS_FONDAMENTAUX.md
│ ├── INTERFACE_WEB.md
│ ├── BASE_DONNEES.md
│ ├── FORMULES_CALCULS.md
│ ├── CLI_GUIDE.md
│ ├── INSTALLATION_SETUP.md
│ └── ROADMAP.md
├── finance_tracker/
│ ├── web/ # Interface Streamlit
│ │ ├── app.py # Point d'entrée Streamlit
│ │ └── views/ # Pages individuelles
│ │ ├── dashboard.py
│ │ ├── transactions.py
│ │ ├── valuations.py
│ │ ├── bitcoin.py
│ │ ├── products.py
│ │ ├── simulation.py
│ │ └── documentation.py
│ ├── cli/ # Interface en ligne de commande
│ │ ├── main.py
│ │ ├── commands.py
│ │ └── formatters.py
│ ├── core/ # Logique métier
│ │ ├── models.py # Modèles SQLModel
│ │ ├── schemas.py # Schémas Pydantic
│ │ ├── database.py # Accès / init BD
│ │ └── calculations.py # Calculs financiers
│ └── services/ # Services métier
│ ├── portfolio.py
│ ├── bitcoin.py
│ ├── export.py
│ └── simulator.py
├── tests/ # Tests automatiques
│ ├── test_models.py
│ ├── test_calculations.py
│ └── conftest.py
└── finance_tracker.db # Base SQLite (générée)👉 Pour une description plus détaillée de chaque dossier et composant, voir : docs/INSTALLATION_SETUP.md et docs/ROADMAP.md.
Le projet s’appuie sur un ensemble d’outils pour garantir la qualité :
- Tests :
pytest,pytest-cov - Formatage :
black - Linting :
ruff - Typing :
mypy
Commandes usuelles :
# Lancer la suite de tests
pytest
# Couverture
pytest --cov=finance_tracker
# Formatage
black finance_tracker tests
# Lint
ruff check finance_tracker tests
# Typage
mypy finance_trackerLes contributions sont les bienvenues !
- Forker le dépôt.
- Créer une branche de fonctionnalité :
git checkout -b feature/ma-fonctionnalite
- Installer en mode développement :
pip install -e ".[dev]" - Lancer les tests et le lint :
pytest black finance_tracker tests ruff check finance_tracker tests
- Ouvrir une Pull Request avec une description claire.
Ou simplement proposer une feature dans les issues.
Pour plus de détails sur les conventions et la roadmap : 👉 docs/ROADMAP.md
Voir le fichier LICENSE pour plus de détails.
- 🌐 Application web : https://finance-tracker-skohscripts.streamlit.app/
- 💻 Code source : https://github.com/SKOHscripts/finance-tracker
- 🐛 Issues : https://github.com/SKOHscripts/finance-tracker/issues