ay/documentation/PRD.md
2025-06-24 18:17:53 +02:00

6.9 KiB

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.