đïž Cas d’utilisation CV-builder
|
Note
|
đș Diagrammes SVG de ce document
Vue interactive : index.html đ DĂ©tail 2TUP par cas d’utilisation : chaque fiche UC ci-dessous pointe vers sa page
Fidélité au code : ces 19 UC correspondent aux fonctionnalités réellement implémentées dans
|
Phase 0 : Ătude PrĂ©alable
Acteurs identifiés :
-
Candidat (Job Seeker) : crĂ©e, Ă©dite, exporte et partage ses CV â authentifiĂ© via Keycloak (JWT)
-
Visiteur : consulte un CV partagé via un lien public (
/cv/{token}) â sans authentification -
Admin : configure le plafond de versions par CV (
/cv-documents/admin/config, rĂŽleADMIN) -
SystÚme : sauvegarde automatique (deep watch débouncé 2 s cÎté client)
-
IA générative (externe) : Gemini ou Groq selon
clarajob.ai.providerâ gĂ©nĂ©ration, structuration d’imports, chat Clara, reformulation
Limites du systĂšme :
-
Scope : CV-builder de ClaraJob â SPA sur la route unique
/cv-builder(16 écrans internes via?screen=), API REST/api/v1 -
Interface : Web uniquement ; l’export PDF s’exĂ©cute dans le navigateur (
window.print()) -
Données : documents CV dans MongoDB (collections
cvDocuments,cvDocumentVersions,cvVariants,appConfig) ; le contenu du CV est un blobdataschemaless. PostgreSQL ne stocke aucune table CV (uniquement le référentiel utilisateur et les CV-fichiers uploadésresumes). Les fichiers uploadés (PDF importés) vont dans MinIO (S3) -
Hors pĂ©rimĂštre (maquettes « coming soon » sans backend) : collaboration, prĂ©paration d’entretien, extras premium, analytics de partage
Phase 1 : Identification des Cas d’Utilisation
đ Diagramme de Cas d’Utilisation Complet
Légende du diagramme :
-
Les personnages représentent les acteurs (Candidat, Visiteur, Admin, SystÚme)
-
Les ellipses reprĂ©sentent les 19 cas d’utilisation, colorĂ©es par domaine fonctionnel
-
Les traits pleins sont les associations acteur â cas d’utilisation
-
Les flÚches pointillées sont les dépendances «include» / «extend»
đ User Journey - Flux Complet
Phases réelles du parcours :
-
DĂMARRAGE â Ă©cran d’accueil (
?screen=init) : wizard Clara, import PDF, import profil, ou reprise d’un CV rĂ©cent -
ĂDITION â workspace : 8 sections typĂ©es + sections personnalisĂ©es, aperçu live (300 ms), autosave (2 s)
-
DESIGN â galerie de templates (57 layouts Ă 20 palettes), couleur, police, espacement
-
OPTIMISATION â score & conseils, chat Clara, reformulation IA, adaptation Ă une offre
-
SORTIE â aperçu paginĂ© A4, export PDF (impression navigateur), partage par lien, versions
đ DĂ©pendances entre Use Cases
Types de relations :
-
Include (â) : le use case A exĂ©cute B de maniĂšre systĂ©matique
-
Extends (âą) : le use case C ajoute une variante optionnelle Ă D
-
Require (â) : le use case E requiert que F ait Ă©tĂ© exĂ©cutĂ© avant
Phase 1 : Description DĂ©taillĂ©e des Cas d’Utilisation
đ Gestion des CV
UC1 : Créer un CV depuis zéro
Acteur |
Candidat (+ IA générative) |
Préconditions |
Utilisateur authentifié (Keycloak) |
Flux Principal |
1. Le candidat lance le wizard Clara ( |
Flux Alternatif |
A1 : partir d’un CV vierge sans passer par le wizard |
Flux Exception |
E1 : rĂ©ponse IA non parsable â 502, le wizard reste ouvert E2 : quota/erreur IA â 429, message d’attente |
Postconditions |
Document |
UC2 : Importer un CV PDF
Acteur |
Candidat (+ IA générative) |
Préconditions |
Utilisateur authentifié ; fichier PDF †60 Mo |
Flux Principal |
1. Le candidat dĂ©pose un PDF (Ă©cran d’accueil ou chat Clara)
2. ContrĂŽle local |
Flux Exception |
E1 : |
Postconditions |
CV prĂ©-rempli ouvert dans l’Ă©diteur |
UC3 : Importer depuis le profil ClaraJob
Acteur |
Candidat |
Préconditions |
Utilisateur authentifié, profil renseigné |
Flux Principal |
1. Le candidat clique « Importer depuis mon profil »
2. |
Flux Exception |
E1 : Ă©chec de l’import du PDF attachĂ© â repli non bloquant sur les seules donnĂ©es du profil |
Postconditions |
CV créé ; expĂ©riences/formations vides si aucun PDF n’a pu ĂȘtre fusionnĂ© |
UC4 : Consulter mes CV
Acteur |
Candidat |
Préconditions |
Utilisateur authentifié |
Flux Principal |
1. Le candidat ouvre « Mes CV » ( |
Flux Alternatif |
A1 : filtre par statut d’affichage ou CV rĂ©cents |
Flux Exception |
E1 : aucun CV â renvoi vers l’Ă©cran d’accueil (UC01âUC03) |
Postconditions |
Le CV sélectionné est chargé dans le store ( |
UC5 : Supprimer un CV
Acteur |
Candidat |
Préconditions |
CV existant appartenant au candidat |
Flux Principal |
1. Le candidat clique « Supprimer » et confirme
2. |
Flux Exception |
E1 : CV d’un autre utilisateur â |
Postconditions |
Suppression définitive (pas de corbeille, pas de soft delete) |
đš Ădition du contenu
UC6 : Modifier le contenu du CV
Acteur |
Candidat |
Préconditions |
CV ouvert dans le workspace |
Flux Principal |
1. Le candidat édite une des 8 sections typées (identité, accroche, expériences,
formations, compétences, langues, projets, certifications) via son formulaire dédié
2. Les champs riches utilisent l’Ă©diteur TipTap ( |
Flux Alternatif |
A1 : ajouter/supprimer une section personnalisée ( |
Flux Exception |
E1 : CV sans id (jamais persistĂ©) â crĂ©ation au premier autosave |
Postconditions |
Contenu Ă jour dans MongoDB (blob |
UC7 : Réorganiser et masquer les sections
Acteur |
Candidat |
Préconditions |
CV ouvert dans le workspace |
Flux Principal |
1. Le candidat glisse-dépose les sections ( |
Postconditions |
Ordre et visibilité appliqués à tous les rendus (aperçu, export, partage) |
đŻ Templates & Design
UC8 : Choisir un template
Acteur |
Candidat |
Préconditions |
CV en cours d’Ă©dition |
Flux Principal |
1. Le candidat ouvre la galerie ( |
Flux Alternatif |
A1 : saisie d’une couleur hex libre |
Flux Exception |
E1 : layout inconnu au rendu â repli |
Postconditions |
|
UC9 : Personnaliser le design
Acteur |
Candidat |
Préconditions |
CV en cours d’Ă©dition |
Flux Principal |
1. Couleur d’accent : presets, saisie hex validĂ©e, contrĂŽle de contraste ( |
Postconditions |
|
đïž Aperçu, Export & Partage
UC10 : Prévisualiser le CV
Acteur |
Candidat |
Préconditions |
CV en édition |
Flux Principal |
1. Le candidat ouvre l’aperçu ( |
Flux Exception |
E1 : pagination approximative (mesure de hauteur) â le rendu de rĂ©fĂ©rence est l’impression (UC11) |
Postconditions |
Le candidat voit le rendu final paginé |
UC11 : Exporter en PDF
Acteur |
Candidat |
Préconditions |
CV ouvert |
Flux Principal |
1. Le candidat clique « Exporter » ( |
Flux Exception |
E1 : le candidat annule la boĂźte d’impression â aucun effet |
Postconditions |
PDF vectoriel enregistrĂ© par l’utilisateur ; aucun PDF stockĂ© cĂŽtĂ© serveur
(l’endpoint |
UC12 : Partager le CV
Acteur |
Candidat |
Préconditions |
CV persisté |
Flux Principal |
1. Le candidat active le partage ( |
Flux Alternatif |
A1 : désactiver le partage à tout moment ; A2 : partage LinkedIn (URL seule) |
Flux Exception |
E1 : slug dĂ©jĂ pris â 409 Conflict |
Postconditions |
CV accessible publiquement ; pas d’expiration, de mot de passe, de QR code ni de compteur de vues (les KPI affichĂ©s par l’Ă©cran Partage sont illustratifs) |
UC13 : Consulter un CV partagé
Acteur |
Visiteur (non authentifié) |
Préconditions |
Partage activé sur le CV |
Flux Principal |
1. Le visiteur ouvre |
Flux Exception |
E1 : partage dĂ©sactivĂ© ou token inconnu â page introuvable |
Postconditions |
CV consulté sans compte ; aucune trace cÎté serveur (pas de compteur) |
â Versions & Variantes
UC14 : Gérer les versions
Acteur |
Candidat (Admin pour la configuration du plafond) |
Préconditions |
CV persisté |
Flux Principal |
1. Ăcran Versions ( |
Flux Alternatif |
A1 (Admin) : modifier le plafond via |
Postconditions |
Historique borné, restauration possible à tout moment |
UC15 : Adapter le CV Ă une offre
Acteur |
Candidat |
Préconditions |
CV avec contenu ; description d’offre disponible |
Flux Principal |
1. Ăcran Adapter ( |
Flux Alternatif |
A1 : consulter/supprimer les variantes (écran Versions, onglet « variants ») |
Postconditions |
Variante rattachée au CV maßtre, comparable (diff) et listée |
đ€ Assistance IA & Automatismes
UC16 : Discuter avec Clara
Acteur |
Candidat (+ IA générative) |
Préconditions |
CV ouvert ; écran Coach ( |
Flux Principal |
1. Le candidat envoie un message (cooldown 5 s entre requĂȘtes)
2. |
Flux Alternatif |
A1 : quick actions d’import (PDF, profil) depuis le chat ; A2 : undo |
Flux Exception |
E1 : erreur IA/429 â « L’IA est momentanĂ©ment indisponible » |
Postconditions |
Conversations persistĂ©es en localStorage (50 max Ă 200 messages) â pas cĂŽtĂ© serveur |
UC17 : Reformuler ou générer par IA
Acteur |
Candidat (+ IA générative) |
Préconditions |
Champ riche en édition (accroche, expérience, projet) |
Flux Principal |
1. Boutons « Reformuler » / « Générer » dans |
Flux Exception |
E1 : Ă©chec ou 429 â toast d’erreur, le contenu existant n’est jamais Ă©crasĂ© E2 : cooldown local 5 s entre appels |
Postconditions |
Texte amĂ©liorĂ© dans la section ; persistance par l’autosave (UC19) |
UC18 : Consulter le score et les conseils
Acteur |
Candidat |
Préconditions |
CV avec contenu |
Flux Principal |
1. Ăcran Score ( |
Flux Exception |
E1 : les listes de mots-clĂ©s ATS affichĂ©es sont illustratives (donnĂ©es fixes) â seuls les scores et clichĂ©s sont rĂ©ellement calculĂ©s |
Postconditions |
Jauge et recommandations affichĂ©es â aucun appel rĂ©seau, aucune validation bloquante |
UC19 : Sauvegarde automatique
Acteur |
SystĂšme |
Préconditions |
CV ouvert dans le workspace |
Flux Principal |
1. |
Flux Alternatif |
A1 : les actions IA validées dans le chat déclenchent |
Flux Exception |
E1 : le watch ne couvre que |
Postconditions |
Document MongoDB à jour ; pas de timer périodique, pas de cache hors-ligne |
Phase 2 : Analyse et Vérification (Sync Gate 1)
VĂ©rification d’implĂ©mentabilitĂ© â constatĂ©e dans le code :
â Chaque use case correspond Ă du code livrĂ©
-
UC01âUC03 :
ScratchWizardModal/CvInitScreen2âAiController/CvDocumentControllerâCvGenerationService/CvImportService -
UC04âUC07, UC19 : store
cvBuilder+ autosave âCvDocumentServiceâ MongoDBcvDocuments -
UC08âUC11 : galerie, design et export 100 % cĂŽtĂ© client (aucun endpoint template/export actif)
-
UC12âUC13 :
CvShareService+ endpoints publicsshared/{token}etshared/s/{slug} -
UC14âUC15 :
CvVersionService(FIFO 10) etCvMatcherService/CvVariantService -
UC16âUC18 :
CvChatService/AiService(Gemini ou Groq) etuseCvScoring(client)
â Architecture rĂ©elle
-
Frontend : SPA Vue 3, une route builder + 16 écrans par query param, un seul store Pinia
-
Backend : WebFlux spec-first OpenAPI, DDD par bounded context, MongoDB bloquant isolé sur
boundedElastic -
Storage : MongoDB (
cvDocuments,cvDocumentVersions,cvVariants,appConfig) ; MinIO pour les fichiers uploadés ; aucune table CV en PostgreSQL -
Export :
window.print()vectoriel â aucun PDF stockĂ© cĂŽtĂ© serveur
â Limites connues (assumĂ©es dans le code)
-
Quota de 5 CV appliqué cÎté interface uniquement
-
Quota de tokens IA défini (
clarajob.ai.usage-quota) mais non appliqué par les endpoints -
Contrat OpenAPI
/api/v1/cvspartiellement implĂ©mentĂ© (crĂ©ation/Ă©dition/export â 501)
Matrice Acteurs Ă Use Cases
| Use Case | Candidat | Visiteur | Admin | SystĂšme | IA externe |
|---|---|---|---|---|---|
UC1 : Créer depuis zéro |
â |
â |
â |
â |
â |
UC2 : Importer un PDF |
â |
â |
â |
â |
â |
UC3 : Importer du profil |
â |
â |
â |
â |
(â si PDF) |
UC4 : Consulter mes CV |
â |
â |
â |
â |
â |
UC5 : Supprimer |
â |
â |
â |
â |
â |
UC6 : Modifier le contenu |
â |
â |
â |
â |
â |
UC7 : Réorganiser/masquer |
â |
â |
â |
â |
â |
UC8 : Choisir un template |
â |
â |
â |
â |
â |
UC9 : Personnaliser le design |
â |
â |
â |
â |
â |
UC10 : Prévisualiser |
â |
â |
â |
â |
â |
UC11 : Exporter en PDF |
â |
â |
â |
â |
â |
UC12 : Partager |
â |
â |
â |
â |
â |
UC13 : Consulter un CV partagé |
â |
â |
â |
â |
â |
UC14 : Gérer les versions |
â |
â |
â (plafond) |
â |
â |
UC15 : Adapter Ă une offre |
â |
â |
â |
â |
â |
UC16 : Chat Clara |
â |
â |
â |
â |
â |
UC17 : Reformuler/générer |
â |
â |
â |
â |
â |
UC18 : Score & conseils |
â |
â |
â |
â |
â |
UC19 : Sauvegarde auto |
â |
â |
â |
â |
â |
Priorisation (Phase 3)
| Priorité | Use Cases | Effort | Valeur |
|---|---|---|---|
P0 - CĆur livrĂ© |
UC01âUC06, UC10âUC11, UC19 |
M |
Haute CrĂ©er (wizard/imports), Ă©diter, prĂ©visualiser, exporter â le parcours complet fonctionne |
P1 - Différenciateurs livrés |
UC08âUC09, UC12âUC17 |
M |
Haute Templates/design, partage public, versions, variantes, IA (chat, reformulation) |
P2 - Confort livré |
UC07, UC18 |
S |
Moyenne Réorganisation des sections, score & conseils |
Backlog (non implémenté) |
Collaboration, interview prep, extras premium, analytics de partage |
L |
â Maquettes « coming soon » prĂ©sentes dans l’interface, sans backend |