# dovahkiinderennes/application-web-full-outils architecture

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

- Interactive diagram: https://gitdiagram.com/dovahkiinderennes/application-web-full-outils
- Repository: https://github.com/dovahkiinderennes/application-web-full-outils

## Overview

C’est une application Symfony personnelle de gestion locale de mots de passe. L’utilisateur se connecte, crée ou déverrouille son coffre avec une master key, puis consulte, recherche, ajoute, modifie et organise ses entrées avec des dossiers facultatifs. Les contrôleurs chiffrent les mots de passe avant leur persistance et les déchiffrent pour l’affichage. Le README documente également la gestion des identifiants et URL, ainsi qu’une interface responsive. Les liens ci-dessous s’appuient sur les contrôleurs échantillonnés et la documentation ; les détails des dépôts et de certaines routes non échantillonnées restent limités.

Main entry points: [`src/Controller/Gestionnaire/add_update_delete`](https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/src/Controller/Gestionnaire/add_update_delete) (Entrées mot de passe), [`src/Controller/Gestionnaire/GestionnaireController.php`](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Gestionnaire/GestionnaireController.php) (Consultation du coffre), [`src/Controller/Folder/FolderController.php`](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Folder/FolderController.php) (Consultation dossier), [`src/Controller/Folder/add_update_delete`](https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/src/Controller/Folder/add_update_delete) (Dossiers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Accès et coffre"]
  node_login["Connexion"]
  node_masterkey["Master key"]
  node_vault_session["Clé de coffre"]
end

subgraph group_vault["Gestion du coffre"]
  node_dashboard["Consultation du coffre"]
  node_folder_view["Consultation dossier"]
  node_password_crud["Entrées mot de passe"]
  node_folder_crud["Dossiers"]
  node_api_password["API mot de passe"]
end

subgraph group_persistence["Données locales"]
  node_user_repo["Dépôt utilisateur<br/>[UserRepository.php]"]
  node_users[("Utilisateurs<br/>[User.php]")]
  node_password_repo["Dépôt mots de passe"]
  node_folder_repo["Dépôt dossiers"]
  node_password_data[("Entrées chiffrées<br/>[AllPassword.php]")]
  node_folder_data[("Dossiers<br/>[Folder.php]")]
end

subgraph group_interface["Interface"]
  node_theme["Préférences thème"]
  node_templates["Vues Twig"]
  node_frontend["Styles et scripts"]
end

node_user(("Utilisateur"))

node_user -->|"se connecte"| node_login
node_login -->|"charge utilisateurs"| node_user_repo
node_user_repo -->|"lit utilisateurs"| node_users
node_user -->|"déverrouille coffre"| node_masterkey
node_masterkey -->|"enregistre hash"| node_user_repo
node_masterkey -->|"dérive et place"| node_vault_session
node_user -->|"consulte coffre"| node_dashboard
node_dashboard -->|"lit clé"| node_vault_session
node_dashboard -->|"cherche entrées"| node_password_repo
node_dashboard -->|"charge dossiers"| node_folder_repo
node_password_repo -->|"lit entrées"| node_password_data
node_folder_repo -->|"lit dossiers"| node_folder_data
node_dashboard -->|"rend vue"| node_templates
node_user -->|"ouvre dossier"| node_folder_view
node_folder_view -->|"lit clé"| node_vault_session
node_folder_view -->|"charge entrées"| node_password_repo
node_folder_view -->|"charge dossiers"| node_folder_repo
node_folder_view -->|"rend vue"| node_templates
node_user -->|"gère entrées"| node_password_crud
node_password_crud -->|"lit clé"| node_vault_session
node_password_crud -->|"recherche entrée"| node_password_repo
node_password_crud -->|"charge dossiers"| node_folder_repo
node_password_crud -->|"chiffre et persiste"| node_password_data
node_password_crud -->|"rend formulaires"| node_templates
node_user -->|"gère dossiers"| node_folder_crud
node_folder_crud -->|"vérifie coffre"| node_vault_session
node_folder_crud -->|"lit dossier"| node_folder_repo
node_folder_crud -->|"charge entrées liées"| node_password_repo
node_folder_crud -->|"modifie dossiers"| node_folder_data
node_user -->|"utilise API"| node_api_password
node_user -->|"choisit thème"| node_theme
node_theme -->|"pose cookie"| node_user
node_templates -->|"charge ressources"| node_frontend

click node_login "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Security/SecurityController.php"
click node_user_repo "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Repository/UserRepository.php"
click node_users "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Entity/User.php"
click node_masterkey "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/MasterKey/MasterKeyController.php"
click node_vault_session "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/MasterKey/MasterKeyController.php"
click node_dashboard "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Gestionnaire/GestionnaireController.php"
click node_folder_view "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Folder/FolderController.php"
click node_password_crud "https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/src/Controller/Gestionnaire/add_update_delete"
click node_folder_crud "https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/src/Controller/Folder/add_update_delete"
click node_password_repo "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Repository/AllPasswordRepository.php"
click node_folder_repo "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Repository/FolderRepository.php"
click node_password_data "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Entity/AllPassword.php"
click node_folder_data "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Entity/Folder.php"
click node_api_password "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/ApiExtension/PasswordApiController.php"
click node_theme "https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Theme/ThemeController.php"
click node_templates "https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/templates"
click node_frontend "https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/public/assets"

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_login,node_masterkey,node_vault_session toneBlue
class node_dashboard,node_folder_view,node_password_crud,node_folder_crud,node_api_password toneAmber
class node_user_repo,node_users,node_password_repo,node_folder_repo,node_password_data,node_folder_data toneMint
class node_theme,node_templates,node_frontend toneRose
class node_user toneIndigo
```

## Components

### Accès et coffre

- [Connexion](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Security/SecurityController.php): `src/Controller/Security/SecurityController.php`
- [Master key](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/MasterKey/MasterKeyController.php): `src/Controller/MasterKey/MasterKeyController.php`
- [Clé de coffre](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/MasterKey/MasterKeyController.php): `src/Controller/MasterKey/MasterKeyController.php`

### Gestion du coffre

- [Consultation du coffre](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Gestionnaire/GestionnaireController.php): `src/Controller/Gestionnaire/GestionnaireController.php`
- [Consultation dossier](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Folder/FolderController.php): `src/Controller/Folder/FolderController.php`
- [Entrées mot de passe](https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/src/Controller/Gestionnaire/add_update_delete): `src/Controller/Gestionnaire/add_update_delete`
- [Dossiers](https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/src/Controller/Folder/add_update_delete): `src/Controller/Folder/add_update_delete`
- [API mot de passe](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/ApiExtension/PasswordApiController.php): `src/Controller/ApiExtension/PasswordApiController.php`

### Données locales

- [Dépôt utilisateur](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Repository/UserRepository.php): `src/Repository/UserRepository.php`
- [Utilisateurs](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Entity/User.php): `src/Entity/User.php`
- [Dépôt mots de passe](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Repository/AllPasswordRepository.php): `src/Repository/AllPasswordRepository.php`
- [Dépôt dossiers](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Repository/FolderRepository.php): `src/Repository/FolderRepository.php`
- [Entrées chiffrées](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Entity/AllPassword.php): `src/Entity/AllPassword.php`
- [Dossiers](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Entity/Folder.php): `src/Entity/Folder.php`

### Interface

- [Préférences thème](https://github.com/dovahkiinderennes/application-web-full-outils/blob/master/src/Controller/Theme/ThemeController.php): `src/Controller/Theme/ThemeController.php`
- [Vues Twig](https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/templates): `templates`
- [Styles et scripts](https://github.com/dovahkiinderennes/application-web-full-outils/tree/master/public/assets): `public/assets`

### Other components

- **Utilisateur**

## Connections

- Utilisateur → Connexion: se connecte
- Connexion → Dépôt utilisateur: charge utilisateurs
- Dépôt utilisateur → Utilisateurs: lit utilisateurs
- Utilisateur → Master key: déverrouille coffre
- Master key → Dépôt utilisateur: enregistre hash
- Master key → Clé de coffre: dérive et place
- Utilisateur → Consultation du coffre: consulte coffre
- Consultation du coffre → Clé de coffre: lit clé
- Consultation du coffre → Dépôt mots de passe: cherche entrées
- Consultation du coffre → Dépôt dossiers: charge dossiers
- Dépôt mots de passe → Entrées chiffrées: lit entrées
- Dépôt dossiers → Dossiers: lit dossiers
- Consultation du coffre → Vues Twig: rend vue
- Utilisateur → Consultation dossier: ouvre dossier
- Consultation dossier → Clé de coffre: lit clé
- Consultation dossier → Dépôt mots de passe: charge entrées
- Consultation dossier → Dépôt dossiers: charge dossiers
- Consultation dossier → Vues Twig: rend vue
- Utilisateur → Entrées mot de passe: gère entrées
- Entrées mot de passe → Clé de coffre: lit clé
- Entrées mot de passe → Dépôt mots de passe: recherche entrée
- Entrées mot de passe → Dépôt dossiers: charge dossiers
- Entrées mot de passe → Entrées chiffrées: chiffre et persiste
- Entrées mot de passe → Vues Twig: rend formulaires
- Utilisateur → Dossiers: gère dossiers
- Dossiers → Clé de coffre: vérifie coffre
- Dossiers → Dépôt dossiers: lit dossier
- Dossiers → Dépôt mots de passe: charge entrées liées
- Dossiers → Dossiers: modifie dossiers
- Utilisateur → API mot de passe: utilise API
- Utilisateur → Préférences thème: choisit thème
- Préférences thème → Utilisateur: pose cookie
- Vues Twig → Styles et scripts: charge ressources
