110 lines
No EOL
6.9 KiB
Markdown
110 lines
No EOL
6.9 KiB
Markdown
# PRD - Product Requirements Document - Allons-y Assistant de Candidature IA
|
|
|
|
## 1. Introduction
|
|
|
|
Ce Product Requirements Document (PRD) détaille les objectifs, les fonctionnalités et les exigences techniques du projet "Allons-y - Assistant de Candidature IA". Il vise à fournir une compréhension claire et partagée du produit, de ses utilisateurs et des spécifications nécessaires à son développement.
|
|
|
|
## 2. Objectifs du Produit
|
|
|
|
* **Objectif Principal :** Simplifier et optimiser le processus de candidature pour les demandeurs d'emploi grâce à l'intelligence artificielle.
|
|
* **Objectifs Spécifiques :**
|
|
* Réduire le temps passé par les candidats à adapter leurs documents.
|
|
* Augmenter la pertinence des candidatures par rapport aux offres.
|
|
* Fournir des retours constructifs pour améliorer les documents (CV, LM).
|
|
* Offrir une expérience utilisateur intuitive et accessible.
|
|
* Permettre une découverte rapide du produit sans barrière d'inscription.
|
|
|
|
## 3. Utilisateurs Cibles
|
|
|
|
* Toute personne en recherche d'emploi, du jeune diplômé au professionnel expérimenté.
|
|
* Utilisateurs cherchant à optimiser leur temps et l'efficacité de leurs candidatures.
|
|
|
|
## 4. Portée du MVP (Minimum Viable Product) - Phase 1
|
|
|
|
Le MVP se concentrera sur la fonctionnalité la plus valorisante et la plus différenciante : **l'Analyse d'Offre (Scoring)**, combinée à une gestion de base des utilisateurs et des documents.
|
|
|
|
### 4.1 Fonctionnalités du MVP
|
|
|
|
* **Gestion de l'Authentification :**
|
|
* Inscription d'un nouvel utilisateur (email, mot de passe, nom/prénom optionnels).
|
|
* Connexion / Déconnexion (basée sur JWT).
|
|
* Gestion du profil utilisateur (affichage, modification basique).
|
|
* **Gestion des Documents Utilisateur :**
|
|
* Upload d'un CV par l'utilisateur connecté (formats PDF, DOCX).
|
|
* Stockage sécurisé du CV sur le backend (avec lien en DB).
|
|
* **Fonctionnalité IA : Analyse d'Offre (Scoring) :**
|
|
* **Pour utilisateur connecté :** L'utilisateur colle le descriptif de l'offre et sélectionne un CV déjà uploadé.
|
|
* **Pour utilisateur non connecté (Anonyme) :** L'utilisateur colle le descriptif de l'offre et uploade temporairement un CV.
|
|
* L'IA (Gemini/Mistral) analyse le descriptif de l'offre et le CV.
|
|
* Résultat : Un score de pertinence (ex: 1-100%) et des points clés textuels justifiant le score (ex: "Compétences manquantes", "Mots-clés pertinents trouvés", "Expériences similaires").
|
|
* Limitation du nombre de requêtes pour les utilisateurs anonymes (ex: 2 requêtes/session ou par IP).
|
|
* **Interface Utilisateur :**
|
|
* Page d'accueil invitant à s'inscrire/se connecter ou à essayer l'analyse d'offre.
|
|
* Formulaire simple pour l'analyse d'offre.
|
|
* Tableau de bord utilisateur basique avec les actions rapides et un aperçu des documents.
|
|
* Messages d'erreur et de succès clairs.
|
|
|
|
## 5. Exigences Fonctionnelles Détaillées (MVP)
|
|
|
|
* **FE-AUTH-001 :** L'utilisateur doit pouvoir s'inscrire avec une adresse email et un mot de passe.
|
|
* **FE-AUTH-002 :** L'utilisateur doit pouvoir se connecter avec son email et son mot de passe.
|
|
* **FE-AUTH-003 :** L'utilisateur doit être redirigé vers le tableau de bord après une connexion réussie.
|
|
* **FE-PROFILE-001 :** L'utilisateur connecté doit voir son nom ou email sur le tableau de bord.
|
|
* **FE-FILE-001 :** L'utilisateur connecté doit pouvoir uploader un fichier (CV) via un bouton dédié.
|
|
* **FE-FILE-002 :** L'upload doit supporter les formats PDF et DOCX.
|
|
* **FE-IA-ANALYSE-001 :** L'utilisateur doit pouvoir accéder au formulaire d'analyse d'offre.
|
|
* **FE-IA-ANALYSE-002 :** Le formulaire doit inclure un champ de texte pour le descriptif de poste.
|
|
* **FE-IA-ANALYSE-003 :** Le formulaire doit inclure une option pour sélectionner un CV uploadé (pour connecté) ou uploader un CV temporaire (pour anonyme).
|
|
* **FE-IA-ANALYSE-004 :** Après soumission, un indicateur de chargement doit apparaître.
|
|
* **FE-IA-ANALYSE-005 :** Le résultat de l'analyse (score, texte d'analyse) doit être affiché de manière claire.
|
|
* **FE-ANONYMOUS-001 :** Un utilisateur non connecté doit pouvoir accéder au formulaire d'analyse d'offre sans s'inscrire.
|
|
* **FE-ANONYMOUS-002 :** Après l'analyse anonyme, une invitation à s'inscrire doit être affichée.
|
|
|
|
* **BE-AUTH-001 :** Le backend doit valider les informations d'inscription (email unique, mot de passe fort).
|
|
* **BE-AUTH-002 :** Le backend doit hasher les mots de passe avant stockage en DB.
|
|
* **BE-AUTH-003 :** Le backend doit générer un JWT après connexion réussie.
|
|
* **BE-FILE-001 :** Le backend doit gérer l'upload de fichiers, les stocker et enregistrer leurs métadonnées en DB.
|
|
* **BE-FILE-002 :** Le backend doit extraire le texte des fichiers PDF/DOCX pour l'IA.
|
|
* **BE-IA-ANALYSE-001 :** L'endpoint d'analyse d'offre doit recevoir le descriptif et le CV.
|
|
* **BE-IA-ANALYSE-002 :** Le backend doit construire un prompt optimisé pour l'IA (Gemini/Mistral) intégrant l'offre et le CV.
|
|
* **BE-IA-ANALYSE-003 :** Le backend doit appeler l'API IA et gérer ses réponses (parsing, erreurs).
|
|
* **BE-IA-ANALYSE-004 :** Le backend doit stocker les requêtes IA et leurs résultats en DB (avec ou sans `user_id`).
|
|
* **BE-ANONYMOUS-001 :** Le backend doit implémenter un mécanisme de limitation de débit (rate limiting) pour les requêtes anonymes.
|
|
|
|
## 6. Exigences Non Fonctionnelles (MVP)
|
|
|
|
* **Performance :**
|
|
* Temps de réponse de l'API IA : < 5 secondes (hors temps de l'API externe).
|
|
* Temps de chargement des pages : < 3 secondes.
|
|
* **Sécurité :**
|
|
* Mots de passe hachés.
|
|
* Utilisation de HTTPS en production.
|
|
* Protection contre les injections SQL, XSS, CSRF.
|
|
* Stockage sécurisé des clés API.
|
|
* Gestion des fichiers uploadés de manière sécurisée (permissions, noms de fichiers uniques).
|
|
* **Scalabilité :**
|
|
* Architecture permettant d'ajouter de nouvelles fonctionnalités IA.
|
|
* Base de données PostgreSQL pour la scalabilité des données.
|
|
* **Fiabilité :**
|
|
* Gestion des erreurs robuste pour les appels API (backend et IA).
|
|
* Journalisation (logging) des événements importants.
|
|
* **Expérience Utilisateur :**
|
|
* Interface propre, intuitive et réactive.
|
|
* Messages de retour clairs et amicaux.
|
|
|
|
## 7. Critères d'Acceptation du MVP
|
|
|
|
Le MVP sera considéré comme achevé lorsque :
|
|
|
|
* Les utilisateurs peuvent s'inscrire, se connecter et gérer leur profil.
|
|
* Les utilisateurs connectés peuvent uploader et stocker leurs CVs.
|
|
* La fonctionnalité d'Analyse d'Offre (scoring) est entièrement opérationnelle pour les utilisateurs connectés et anonymes (avec limitation).
|
|
* Les résultats de l'analyse d'offre sont pertinents et bien présentés.
|
|
* L'application est stable et ne présente pas d'erreurs majeures.
|
|
* Les exigences de sécurité de base sont respectées.
|
|
|
|
## 8. Futures Itérations / Fonctionnalités Post-MVP
|
|
|
|
Voir le document `ROADMAP.md` pour les détails des phases futures.
|
|
|
|
--- |