# rarianaaina/mes-outils architecture

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

- Interactive diagram: https://gitdiagram.com/rarianaaina/mes-outils
- Repository: https://github.com/rarianaaina/mes-outils

## Overview

Mes outils is a Windows desktop dashboard for personal and developer utilities. The main workflow is the floating bubble opening a local dashboard, where users select tools and manage projects, communications, and personal data. The graph preserves README capabilities and sampled core modules; some modules are unsampled, so their routing links are shown as unverified rather than asserted.

Main entry points: [`outil/hub.py`](https://github.com/rarianaaina/mes-outils/blob/main/outil/hub.py) (Local dashboard server), [`outil/config.py`](https://github.com/rarianaaina/mes-outils/blob/main/outil/config.py) (User settings), [`outil/projets.py`](https://github.com/rarianaaina/mes-outils/blob/main/outil/projets.py) (Projects and dev servers), [`outil/github.py`](https://github.com/rarianaaina/mes-outils/blob/main/outil/github.py) (GitHub)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Dashboard"]
  node_bubble["Floating bubble<br/>[bulle.py]"]
  node_hub["Local dashboard server<br/>[hub.py]"]
  node_dashboard["Dashboard interface<br/>[hub.html]"]
end

subgraph group_dev["Developer tools"]
  node_projects["Projects and dev servers<br/>[projets.py]"]
  node_github["GitHub<br/>[github.py]"]
  node_containers["Docker containers<br/>[conteneurs.py]"]
  node_ports["Port management<br/>[ports.py]"]
  node_api["API tester<br/>[requetes.py]"]
  node_ssh["SSH keys<br/>[ssh_cles.py]"]
end

subgraph group_personal["Personal tools"]
  node_mail["Email<br/>[mail.py]"]
  node_notes["Notes and calendar<br/>[notes.js]"]
  node_passwords[("Password vault<br/>[coffre.py]")]
  node_snippets["Code snippets<br/>[extraits.py]"]
  node_clipboard["Clipboard history<br/>[presse_papiers.py]"]
  node_time["Time tracking<br/>[temps.py]"]
  node_toolbox["Toolbox<br/>[boite.js]"]
end

subgraph group_shared["Shared services"]
  node_config[("User settings<br/>[config.py]")]
  node_data[("Module data<br/>[donnees.py]")]
  node_windows_vault[("Windows credential store<br/>[coffre_windows.py]")]
  node_settings_ui["Settings<br/>[reglages.py]"]
end

node_user(("User"))

node_user -->|"opens"| node_bubble
node_bubble -->|"opens dashboard"| node_hub
node_hub -->|"serves locally"| node_dashboard
node_dashboard -.->|"uses local tools"| node_hub
node_hub -->|"reads settings"| node_config
node_hub -->|"uses data"| node_data
node_hub -->|"imports"| node_mail
node_hub -->|"imports"| node_passwords
node_hub -->|"imports"| node_ssh
node_hub -->|"imports"| node_github
node_hub -.->|"dispatches routes"| node_projects
node_hub -.->|"dispatches routes"| node_containers
node_hub -.->|"dispatches routes"| node_ports
node_hub -.->|"dispatches routes"| node_api
node_hub -.->|"dispatches routes"| node_snippets
node_hub -.->|"dispatches routes"| node_clipboard
node_hub -.->|"dispatches routes"| node_time
node_hub -.->|"dispatches routes"| node_settings_ui
node_projects -->|"reads settings"| node_config
node_projects -->|"uses GitHub"| node_github
node_projects -->|"uses vault"| node_passwords
node_github -->|"stores token"| node_windows_vault
node_mail -->|"reads settings"| node_config
node_passwords -->|"reads settings"| node_config
node_snippets -->|"reads settings"| node_config
node_clipboard -->|"reads settings"| node_config
node_time -->|"reads settings"| node_config
node_settings_ui -->|"updates settings"| node_config

click node_bubble "https://github.com/rarianaaina/mes-outils/blob/main/outil/bulle.py"
click node_hub "https://github.com/rarianaaina/mes-outils/blob/main/outil/hub.py"
click node_dashboard "https://github.com/rarianaaina/mes-outils/blob/main/outil/hub.html"
click node_projects "https://github.com/rarianaaina/mes-outils/blob/main/outil/projets.py"
click node_github "https://github.com/rarianaaina/mes-outils/blob/main/outil/github.py"
click node_containers "https://github.com/rarianaaina/mes-outils/blob/main/outil/conteneurs.py"
click node_ports "https://github.com/rarianaaina/mes-outils/blob/main/outil/ports.py"
click node_api "https://github.com/rarianaaina/mes-outils/blob/main/outil/requetes.py"
click node_ssh "https://github.com/rarianaaina/mes-outils/blob/main/outil/ssh_cles.py"
click node_mail "https://github.com/rarianaaina/mes-outils/blob/main/outil/mail.py"
click node_notes "https://github.com/rarianaaina/mes-outils/blob/main/outil/web/notes.js"
click node_passwords "https://github.com/rarianaaina/mes-outils/blob/main/outil/coffre.py"
click node_snippets "https://github.com/rarianaaina/mes-outils/blob/main/outil/extraits.py"
click node_clipboard "https://github.com/rarianaaina/mes-outils/blob/main/outil/presse_papiers.py"
click node_time "https://github.com/rarianaaina/mes-outils/blob/main/outil/temps.py"
click node_toolbox "https://github.com/rarianaaina/mes-outils/blob/main/outil/web/boite.js"
click node_config "https://github.com/rarianaaina/mes-outils/blob/main/outil/config.py"
click node_data "https://github.com/rarianaaina/mes-outils/blob/main/outil/donnees.py"
click node_windows_vault "https://github.com/rarianaaina/mes-outils/blob/main/outil/coffre_windows.py"
click node_settings_ui "https://github.com/rarianaaina/mes-outils/blob/main/outil/reglages.py"

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_bubble,node_hub,node_dashboard,node_user toneBlue
class node_projects,node_github,node_containers,node_ports,node_api,node_ssh toneAmber
class node_mail,node_notes,node_passwords,node_snippets,node_clipboard,node_time,node_toolbox toneMint
class node_config,node_data,node_windows_vault,node_settings_ui toneRose
```

## Components

### Dashboard

- [Floating bubble](https://github.com/rarianaaina/mes-outils/blob/main/outil/bulle.py): `outil/bulle.py`
- [Local dashboard server](https://github.com/rarianaaina/mes-outils/blob/main/outil/hub.py): `outil/hub.py`
- [Dashboard interface](https://github.com/rarianaaina/mes-outils/blob/main/outil/hub.html): `outil/hub.html`

### Developer tools

- [Projects and dev servers](https://github.com/rarianaaina/mes-outils/blob/main/outil/projets.py): `outil/projets.py`
- [GitHub](https://github.com/rarianaaina/mes-outils/blob/main/outil/github.py): `outil/github.py`
- [Docker containers](https://github.com/rarianaaina/mes-outils/blob/main/outil/conteneurs.py): `outil/conteneurs.py`
- [Port management](https://github.com/rarianaaina/mes-outils/blob/main/outil/ports.py): `outil/ports.py`
- [API tester](https://github.com/rarianaaina/mes-outils/blob/main/outil/requetes.py): `outil/requetes.py`
- [SSH keys](https://github.com/rarianaaina/mes-outils/blob/main/outil/ssh_cles.py): `outil/ssh_cles.py`

### Personal tools

- [Email](https://github.com/rarianaaina/mes-outils/blob/main/outil/mail.py): `outil/mail.py`
- [Notes and calendar](https://github.com/rarianaaina/mes-outils/blob/main/outil/web/notes.js): `outil/web/notes.js`
- [Password vault](https://github.com/rarianaaina/mes-outils/blob/main/outil/coffre.py): `outil/coffre.py`
- [Code snippets](https://github.com/rarianaaina/mes-outils/blob/main/outil/extraits.py): `outil/extraits.py`
- [Clipboard history](https://github.com/rarianaaina/mes-outils/blob/main/outil/presse_papiers.py): `outil/presse_papiers.py`
- [Time tracking](https://github.com/rarianaaina/mes-outils/blob/main/outil/temps.py): `outil/temps.py`
- [Toolbox](https://github.com/rarianaaina/mes-outils/blob/main/outil/web/boite.js): `outil/web/boite.js`

### Shared services

- [User settings](https://github.com/rarianaaina/mes-outils/blob/main/outil/config.py): `outil/config.py`
- [Module data](https://github.com/rarianaaina/mes-outils/blob/main/outil/donnees.py): `outil/donnees.py`
- [Windows credential store](https://github.com/rarianaaina/mes-outils/blob/main/outil/coffre_windows.py): `outil/coffre_windows.py`
- [Settings](https://github.com/rarianaaina/mes-outils/blob/main/outil/reglages.py): `outil/reglages.py`

### Other components

- **User**

## Connections

- User → Floating bubble: opens (evidence: `README.md`)
- Floating bubble → Local dashboard server: opens dashboard (evidence: `outil/bulle.py`)
- Local dashboard server → Dashboard interface: serves locally (evidence: `README.md`)
- Dashboard interface → Local dashboard server: uses local tools
- Local dashboard server → User settings: reads settings (evidence: `outil/hub.py`)
- Local dashboard server → Module data: uses data (evidence: `outil/hub.py`)
- Local dashboard server → Email: imports (evidence: `outil/hub.py`)
- Local dashboard server → Password vault: imports (evidence: `outil/hub.py`)
- Local dashboard server → SSH keys: imports (evidence: `outil/hub.py`)
- Local dashboard server → GitHub: imports (evidence: `outil/hub.py`)
- Local dashboard server → Projects and dev servers: dispatches routes
- Local dashboard server → Docker containers: dispatches routes
- Local dashboard server → Port management: dispatches routes
- Local dashboard server → API tester: dispatches routes
- Local dashboard server → Code snippets: dispatches routes
- Local dashboard server → Clipboard history: dispatches routes
- Local dashboard server → Time tracking: dispatches routes
- Local dashboard server → Settings: dispatches routes
- Projects and dev servers → User settings: reads settings (evidence: `outil/projets.py`)
- Projects and dev servers → GitHub: uses GitHub (evidence: `outil/projets.py`)
- Projects and dev servers → Password vault: uses vault (evidence: `outil/projets.py`)
- GitHub → Windows credential store: stores token (evidence: `outil/github.py`)
- Email → User settings: reads settings (evidence: `outil/mail.py`)
- Password vault → User settings: reads settings (evidence: `outil/coffre.py`)
- Code snippets → User settings: reads settings (evidence: `outil/extraits.py`)
- Clipboard history → User settings: reads settings (evidence: `outil/presse_papiers.py`)
- Time tracking → User settings: reads settings (evidence: `outil/temps.py`)
- Settings → User settings: updates settings (evidence: `outil/reglages.py`)
