# 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. ---