🌐 Diagramme Global d’Interactions — CV-Builder ClaraJob
Phase 2 (Analysis) — Two-Track Unified Process (2TUP)
|
Note
|
📺 Diagramme Global d’Interactions
Documents liés : Diagrammes de séquences · Cas d’utilisation · Composants |
Vue d’ensemble
Le diagramme global d’interactions donne la vue macro de toutes les interactions du CV-builder, telles qu’elles existent dans le code : acteurs, frontières (navigateur / backend / systèmes externes), protocoles et chemins de données.
Trois frontières structurent le système :
-
Navigateur : SPA Vue 3 — route
/cv-builder(16 écrans navigués par?screen=<id>&cv=<id>) et route publique/cv/:token. L’export PDF et le score ATS restent entièrement dans cette frontière. -
Backend
clarajob-front-api: Spring Boot WebFlux (Netty) — controllers spec-first OpenAPI, services applicatifs DDD, adapters MongoDB isolés surboundedElastic. -
Systèmes externes : Keycloak (OAuth2/JWT), MongoDB, MinIO (S3), IA générative (Gemini ou Groq selon
clarajob.ai.provider), Redis (présent mais quota IA inactif).
📊 Diagramme
🔄 Flux d’interaction principaux
| N° | Flux | Chemin | UC couverts |
|---|---|---|---|
1 |
Authentification |
Candidat → SPA → Keycloak (OAuth2 PKCE) → jeton JWT joint par axios en |
tous les UC authentifiés |
2 |
CRUD des CV |
SPA → |
UC04-07, UC09, UC12, UC14, UC19 |
3 |
Import de CV |
SPA → |
UC02-03 |
4 |
Assistance IA |
SPA → |
UC01, UC16-17 |
5 |
Matching offre |
SPA → |
UC15 |
6 |
Consultation publique |
Visiteur → |
UC13 |
7 |
Export PDF |
SPA → |
UC11 |
8 |
Config admin |
Admin → |
UC14 |
🧭 Frontières et protocoles
| Frontière | Protocole | Remarques |
|---|---|---|
Navigateur → Backend |
HTTPS JSON, |
endpoints publics : |
Navigateur → Keycloak |
OAuth2 Authorization Code + PKCE |
jeton JWT vérifié par le backend en Resource Server |
Backend → MongoDB |
driver MongoDB — |
aucune table CV en PostgreSQL |
Backend → MinIO |
AWS SDK v2 S3, bucket |
fichiers uploadés uniquement (import PDF) ; clé contrôlée |
Backend → IA générative |
HTTPS — Gemini |
provider unique |
Backend → Redis |
Lettuce réactif ( |
présent mais inactif : |
Navigateur (local) |
|
conversations Clara (50 conversations × 200 messages max) |
🔍 Points clés (réalité du code)
-
Export PDF 100 % navigateur :
useCvVectorExport.exportVectorPdf()→window.print(), renduCvPrintDocument(@pageA4, marges 12 mm). Aucun PDF stocké serveur. -
Autosave :
watchDebounced2 s surcvData(UC19) →PUT /cv-documents/{id}— pas de timer 30 s, pas d’IndexedDB, pas de brouillon séparé. -
Chat Clara : les actions proposées par l’IA ne sont jamais appliquées sans validation du candidat ; l’historique de conversation vit en
localStorage, pas en base. -
Templates : aucune entité backend — 57 layouts Vue × 20 palettes générés côté client (
useCvTemplates.ts) ;templateLayoutest une simpleStringdu document Mongo. -
Kafka + Avro présents dans le projet mais non utilisés par le CV-builder.
-
Fonctionnalités « coming soon » (maquettes UI sans backend) : collaboration, interview prep, extras premium, analytics de partage.
🔗 Légende du diagramme
| Élément | Signification |
|---|---|
Bonhomme |
Acteur : Candidat (authentifié), Visiteur (lien public), Admin |
Cadre pointillé |
Frontière : navigateur / backend / systèmes externes |
Boîte bleue |
Composant frontend (Vue 3 / composable / store Pinia) |
Boîte violette |
Composant backend (controller / service / adapter Spring WebFlux) |
Boîte verte |
Stockage (MongoDB, MinIO, localStorage) |
Boîte rose |
Système externe (Keycloak, IA générative) |
Boîte grisée pointillée |
Présent dans le code mais inactif (Redis quota IA) |
Flèche pleine |
Appel synchrone (HTTPS JSON / appel de méthode) |
Flèche pointillée |
Retour, événement asynchrone ou flux local |
✅ SYNC GATE 2 : Cohérence Globale
| Critère | Vérification |
|---|---|
Chaque flux correspond à des UC de la liste officielle (UC01-UC19) |
✅ cas-d-utilisations.adoc |
Les endpoints du diagramme existent dans |
✅ |
Les frontières reflètent le déploiement réel |
✅ navigateur / clarajob-front-api / Keycloak-MongoDB-MinIO-IA |
L’export PDF n’apparaît dans aucun flux backend |
✅ |
Les composants référencés existent dans le diagramme de composants |
✅ services applicatifs, adapters |
Verdict Sync Gate 2 : ✅ APPROUVÉ — la vue macro (frontières, protocoles) et les vues micro (séquences par UC) sont alignées sur le code réel.
Phase 2 Analysis — Diagramme global d’interactions complété