# brunbrun24/insightbank architecture

> Architecture diagram of the GitHub repository brunbrun24/insightbank, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/brunbrun24/insightbank
- Repository: https://github.com/brunbrun24/insightbank

## Overview

InsightBank est une application de bureau locale de gestion financière. L’utilisateur crée ou sélectionne des comptes et portefeuilles, importe ses opérations, les consulte et les catégorise, puis génère des analyses et des rapports. Le module boursier suit aussi les prix et les performances, tandis que le module Patrimoine consolide les avoirs et permet leur affichage multidevise. Le README décrit les capacités principales; les extraits de code étant partiels, les liens entre certains sous-systèmes ne sont pas détaillés au-delà des points documentés.

Main entry points: [`src/accounts/stock/database/stock_db.py`](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/database/stock_db.py) (Données boursières), [`src/dashboard/dashboard.py`](https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/dashboard.py) (Navigation dashboard), [`src/accounts/bank/database/bank_db.py`](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/database/bank_db.py) (Données bancaires), [`src/accounts/heritage/processing/processing.py`](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/heritage/processing/processing.py) (Consolidation patrimoine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_main["Lancement<br/>[main.py]"]
  node_dashboard["Navigation dashboard<br/>[dashboard.py]"]
  node_account_ui["Comptes et portefeuilles<br/>[account.py]"]
  node_config_ui["Configuration<br/>[configuration.py]"]
end

subgraph group_bank["Banque"]
  node_bank_ops["Opérations bancaires<br/>[operations.py]"]
  node_bank_import["Import bancaire<br/>[data_extractor.py]"]
  node_bank_process["Catégorisation<br/>[categorizer.py]"]
  node_bank_db[("Données bancaires<br/>[bank_db.py]")]
  node_bank_html["Rapport HTML<br/>[financial_chart.py]"]
  node_bank_js["Graphiques bancaires<br/>[bank.js]"]
  node_bank_excel["Export Excel banque<br/>[excel_generator.py]"]
  node_bank_html_js["Interactions HTML banque<br/>[bank.js]"]
end

subgraph group_stock["Bourse"]
  node_stock_ui["Transactions bourse<br/>[transactions.py]"]
  node_stock_import["Import transactions<br/>[data_extractor.py]"]
  node_stock_db[("Données boursières<br/>[stock_db.py]")]
  node_stock_market["Cours de marché<br/>[fetch_stock.py]"]
  node_tracker["Calcul portefeuille"]
  node_stock_html["Rapport HTML"]
  node_stock_js["Graphiques boursiers<br/>[stock.js]"]
  node_stock_excel["Export Excel bourse"]
end

subgraph group_heritage["Patrimoine"]
  node_heritage_ui["Vue patrimoine<br/>[heritage.py]"]
  node_heritage_process["Consolidation patrimoine<br/>[processing.py]"]
  node_heritage_report["Rapports patrimoine<br/>[reporting.py]"]
  node_heritage_visual["Visualisation patrimoine<br/>[visualization.py]"]
end

subgraph group_shared["Données partagées"]
  node_config["Paramètres locaux<br/>[config.py]"]
  node_database_base["Base SQLite commune<br/>[database_base.py]"]
end

node_user(("Utilisateur"))
node_market_service["Service de marché"]

node_user -->|"lance"| node_main
node_main -->|"crée"| node_dashboard
node_dashboard -->|"initialise"| node_account_ui
node_dashboard -->|"initialise"| node_bank_ops
node_dashboard -->|"initialise"| node_stock_ui
node_dashboard -->|"affiche"| node_heritage_ui
node_dashboard -->|"affiche"| node_config_ui
node_account_ui -->|"lit et modifie"| node_bank_db
node_account_ui -->|"lit et modifie"| node_stock_db
node_bank_ops -->|"enregistre opérations"| node_bank_db
node_bank_ops -->|"déclenche catégorisation"| node_bank_process
node_bank_import -->|"fournit données importées"| node_bank_ops
node_bank_db -->|"alimente rapport"| node_bank_html
node_bank_db -->|"alimente export"| node_bank_excel
node_bank_html -->|"inclut graphiques"| node_bank_js
node_stock_ui -->|"importe transactions"| node_stock_import
node_stock_ui -->|"enregistre transactions"| node_stock_db
node_stock_db -->|"fournit transactions et cours"| node_tracker
node_stock_db -.->|"récupère des cours"| node_market_service
node_market_service -.->|"fournit données marché"| node_stock_market
node_stock_db -->|"utilise récupération marché"| node_stock_market
node_stock_db -->|"alimente rapport"| node_stock_html
node_stock_db -->|"alimente export"| node_stock_excel
node_stock_html -->|"inclut graphiques"| node_stock_js
node_heritage_ui -->|"demande consolidation"| node_heritage_process
node_heritage_process -->|"lit avoirs bancaires"| node_bank_db
node_heritage_process -->|"lit portefeuilles"| node_stock_db
node_heritage_process -->|"fournit bilan"| node_heritage_report
node_heritage_process -->|"fournit données visualisées"| node_heritage_visual
node_config_ui -->|"configure"| node_config
node_bank_db -->|"hérite accès SQLite"| node_database_base
node_stock_db -->|"hérite accès SQLite"| node_database_base

click node_main "https://github.com/brunbrun24/insightbank/blob/main/src/main.py"
click node_dashboard "https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/dashboard.py"
click node_account_ui "https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/shared/account.py"
click node_bank_ops "https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/bank_accounts/operations/operations.py"
click node_bank_import "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/importers/data_extractor.py"
click node_bank_process "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/processing/categorizer.py"
click node_bank_db "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/database/bank_db.py"
click node_bank_html "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/visualization/financial_chart.py"
click node_bank_js "https://github.com/brunbrun24/insightbank/blob/main/src/static/bank/bank.js"
click node_bank_excel "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/reporting/excel_generator.py"
click node_stock_ui "https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/portfolio/transactions/transactions.py"
click node_stock_import "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/importers/data_extractor.py"
click node_stock_db "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/database/stock_db.py"
click node_stock_market "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/importers/fetch_stock.py"
click node_tracker "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/processing/portfolio_tracker.py"
click node_stock_html "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/visualization/portfolio_exporter.py"
click node_stock_js "https://github.com/brunbrun24/insightbank/blob/main/src/static/stock/stock.js"
click node_stock_excel "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/reporting/stock_excel_generator.py"
click node_heritage_ui "https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/heritage/heritage.py"
click node_heritage_process "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/heritage/processing/processing.py"
click node_heritage_report "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/heritage/reporting/reporting.py"
click node_heritage_visual "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/heritage/visualization/visualization.py"
click node_config_ui "https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/configuration/configuration.py"
click node_config "https://github.com/brunbrun24/insightbank/blob/main/src/config.py"
click node_database_base "https://github.com/brunbrun24/insightbank/blob/main/src/accounts/shared/database_base.py"
click node_bank_html_js "https://github.com/brunbrun24/insightbank/blob/main/src/static/bank/bank.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_dashboard,node_account_ui,node_config_ui toneBlue
class node_bank_ops,node_bank_import,node_bank_process,node_bank_db,node_bank_html,node_bank_js,node_bank_excel,node_bank_html_js toneAmber
class node_stock_ui,node_stock_import,node_stock_db,node_stock_market,node_tracker,node_stock_html,node_stock_js,node_stock_excel toneMint
class node_heritage_ui,node_heritage_process,node_heritage_report,node_heritage_visual toneRose
class node_config,node_database_base,node_user,node_market_service toneIndigo
```

## Components

### Application

- [Lancement](https://github.com/brunbrun24/insightbank/blob/main/src/main.py): `src/main.py`
- [Navigation dashboard](https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/dashboard.py): `src/dashboard/dashboard.py`
- [Comptes et portefeuilles](https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/shared/account.py): `src/dashboard/shared/account.py`
- [Configuration](https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/configuration/configuration.py): `src/dashboard/configuration/configuration.py`

### Banque

- [Opérations bancaires](https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/bank_accounts/operations/operations.py): `src/dashboard/bank_accounts/operations/operations.py`
- [Import bancaire](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/importers/data_extractor.py): `src/accounts/bank/importers/data_extractor.py`
- [Catégorisation](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/processing/categorizer.py): `src/accounts/bank/processing/categorizer.py`
- [Données bancaires](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/database/bank_db.py): `src/accounts/bank/database/bank_db.py`
- [Rapport HTML](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/visualization/financial_chart.py): `src/accounts/bank/visualization/financial_chart.py`
- [Graphiques bancaires](https://github.com/brunbrun24/insightbank/blob/main/src/static/bank/bank.js): `src/static/bank/bank.js`
- [Export Excel banque](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/bank/reporting/excel_generator.py): `src/accounts/bank/reporting/excel_generator.py`
- [Interactions HTML banque](https://github.com/brunbrun24/insightbank/blob/main/src/static/bank/bank.js): `src/static/bank/bank.js`

### Bourse

- [Transactions bourse](https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/portfolio/transactions/transactions.py): `src/dashboard/portfolio/transactions/transactions.py`
- [Import transactions](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/importers/data_extractor.py): `src/accounts/stock/importers/data_extractor.py`
- [Données boursières](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/database/stock_db.py): `src/accounts/stock/database/stock_db.py`
- [Cours de marché](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/importers/fetch_stock.py): `src/accounts/stock/importers/fetch_stock.py`
- [Calcul portefeuille](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/processing/portfolio_tracker.py): `src/accounts/stock/processing/portfolio_tracker.py`
- [Rapport HTML](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/visualization/portfolio_exporter.py): `src/accounts/stock/visualization/portfolio_exporter.py`
- [Graphiques boursiers](https://github.com/brunbrun24/insightbank/blob/main/src/static/stock/stock.js): `src/static/stock/stock.js`
- [Export Excel bourse](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/stock/reporting/stock_excel_generator.py): `src/accounts/stock/reporting/stock_excel_generator.py`

### Patrimoine

- [Vue patrimoine](https://github.com/brunbrun24/insightbank/blob/main/src/dashboard/heritage/heritage.py): `src/dashboard/heritage/heritage.py`
- [Consolidation patrimoine](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/heritage/processing/processing.py): `src/accounts/heritage/processing/processing.py`
- [Rapports patrimoine](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/heritage/reporting/reporting.py): `src/accounts/heritage/reporting/reporting.py`
- [Visualisation patrimoine](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/heritage/visualization/visualization.py): `src/accounts/heritage/visualization/visualization.py`

### Données partagées

- [Paramètres locaux](https://github.com/brunbrun24/insightbank/blob/main/src/config.py): `src/config.py`
- [Base SQLite commune](https://github.com/brunbrun24/insightbank/blob/main/src/accounts/shared/database_base.py): `src/accounts/shared/database_base.py`

### Other components

- **Utilisateur**
- **Service de marché**

## Connections

- Utilisateur → Lancement: lance
- Lancement → Navigation dashboard: crée
- Navigation dashboard → Comptes et portefeuilles: initialise
- Navigation dashboard → Opérations bancaires: initialise
- Navigation dashboard → Transactions bourse: initialise
- Navigation dashboard → Vue patrimoine: affiche
- Navigation dashboard → Configuration: affiche
- Comptes et portefeuilles → Données bancaires: lit et modifie
- Comptes et portefeuilles → Données boursières: lit et modifie
- Opérations bancaires → Données bancaires: enregistre opérations
- Opérations bancaires → Catégorisation: déclenche catégorisation
- Import bancaire → Opérations bancaires: fournit données importées
- Données bancaires → Rapport HTML: alimente rapport
- Données bancaires → Export Excel banque: alimente export
- Rapport HTML → Graphiques bancaires: inclut graphiques
- Transactions bourse → Import transactions: importe transactions
- Transactions bourse → Données boursières: enregistre transactions
- Données boursières → Calcul portefeuille: fournit transactions et cours
- Données boursières → Service de marché: récupère des cours
- Service de marché → Cours de marché: fournit données marché
- Données boursières → Cours de marché: utilise récupération marché
- Données boursières → Rapport HTML: alimente rapport
- Données boursières → Export Excel bourse: alimente export
- Rapport HTML → Graphiques boursiers: inclut graphiques
- Vue patrimoine → Consolidation patrimoine: demande consolidation
- Consolidation patrimoine → Données bancaires: lit avoirs bancaires
- Consolidation patrimoine → Données boursières: lit portefeuilles
- Consolidation patrimoine → Rapports patrimoine: fournit bilan
- Consolidation patrimoine → Visualisation patrimoine: fournit données visualisées
- Configuration → Paramètres locaux: configure
- Données bancaires → Base SQLite commune: hérite accès SQLite
- Données boursières → Base SQLite commune: hérite accès SQLite
