backend
This commit is contained in:
commit
d7666f7b2c
44 changed files with 2246 additions and 0 deletions
110
documentation/PRD.md
Normal file
110
documentation/PRD.md
Normal file
|
@ -0,0 +1,110 @@
|
|||
# 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.
|
||||
|
||||
---
|
83
documentation/ROADMAP.md
Normal file
83
documentation/ROADMAP.md
Normal file
|
@ -0,0 +1,83 @@
|
|||
# ROADMAP - Allons-y Assistant de Candidature IA
|
||||
|
||||
Ce document décrit la feuille de route du projet Allons-y Assistant de Candidature IA, décomposée en phases pour une implémentation progressive. Il servira de guide pour le développement et la priorisation des fonctionnalités.
|
||||
|
||||
## Vision Générale
|
||||
|
||||
Rendre le processus de candidature plus efficace et accessible grâce à l'IA, en fournissant des outils intuitifs pour l'optimisation des documents et l'adaptation aux offres d'emploi.
|
||||
|
||||
## Phases de Développement
|
||||
|
||||
### Phase 1 : Minimum Viable Product (MVP) - (Focus sur l'Essentiel et la Découverte)
|
||||
|
||||
**Objectif :** Valider le concept principal avec les fonctionnalités IA les plus critiques et permettre une première prise en main de l'application, même sans inscription.
|
||||
|
||||
* **Frontend :**
|
||||
* Page d'accueil simple avec CTA pour l'inscription/connexion et l'essai anonyme.
|
||||
* Interface pour l'**Analyse d'Offre (Scoring)** :
|
||||
* Champ de texte pour coller le descriptif de poste.
|
||||
* Option d'upload temporaire d'un CV (pour l'analyse anonyme) ou sélection d'un CV déjà uploadé (pour utilisateur connecté).
|
||||
* Affichage clair du score de pertinence et des points clés d'amélioration/correspondance.
|
||||
* Pages d'Inscription et de Connexion.
|
||||
* Tableau de bord utilisateur basique (après connexion) :
|
||||
* Affichage du nom de l'utilisateur.
|
||||
* Section pour uploader un CV.
|
||||
* Accès à la fonctionnalité d'Analyse d'Offre.
|
||||
* Gestion basique des erreurs et chargements.
|
||||
* **Backend :**
|
||||
* API RESTful pour l'authentification (inscription, connexion avec JWT).
|
||||
* Gestion des utilisateurs et de leurs données de base en PostgreSQL.
|
||||
* Endpoint pour l'upload de CVs (sauvegarde locale/S3, entrée en DB).
|
||||
* Endpoint pour l'**Analyse d'Offre (Scoring)** :
|
||||
* Réception du texte de l'offre et du contenu du CV (après extraction).
|
||||
* Préparation du prompt pour l'API IA (Gemini/Mistral).
|
||||
* Appel à l'API IA.
|
||||
* Traitement et renvoi du résultat formaté.
|
||||
* Gestion des interactions anonymes (limitation de requêtes par IP/session).
|
||||
* Gestion sécurisée des clés API IA et des fichiers.
|
||||
* Modèles de base de données : `User`, `File`, `AiInteraction` (simplifié pour le scoring).
|
||||
* **Documentation :**
|
||||
* `README.md` (racine, frontend, backend) complétés.
|
||||
* `ROADMAP.md` (ce document).
|
||||
* `PRD.md` (détaillé pour la Phase 1).
|
||||
|
||||
### Phase 2 : Enrichissement des Outils IA et Expérience Utilisateur
|
||||
|
||||
**Objectif :** Développer les autres fonctionnalités IA clés et améliorer l'expérience utilisateur, notamment la gestion des documents et l'historique.
|
||||
|
||||
* **Frontend :**
|
||||
* Interface pour la **Génération de Paragraphe de Motivation**.
|
||||
* Interface pour la **Reformulation de Compétences**.
|
||||
* Interface pour les **Questions d'Entretien**.
|
||||
* Section "Mes documents" sur le tableau de bord : Lister les CVs/LMs uploadés, permettre la suppression, prévisualisation basique.
|
||||
* Page "Historique des Requêtes" pour les utilisateurs connectés.
|
||||
* **Backend :**
|
||||
* Endpoints pour les nouvelles fonctionnalités IA (paragraphe, reformulation, questions).
|
||||
* Amélioration de la gestion des fichiers (URL pré-signées pour le téléchargement).
|
||||
* Enrichissement du modèle `AiInteraction` pour stocker toutes les requêtes.
|
||||
* Logique pour l'extraction de texte à partir de PDF/DOCX (si non déjà robuste).
|
||||
* **Documentation :**
|
||||
* Mise à jour du `PRD.md` avec les nouvelles fonctionnalités.
|
||||
|
||||
### Phase 3 : Optimisation et Fonctionnalités Avancées
|
||||
|
||||
**Objectif :** Ajouter des outils plus spécifiques, améliorer la performance et la fiabilité, et explorer de nouvelles opportunités.
|
||||
|
||||
* **Frontend :**
|
||||
* Interface pour la **Génération de Mots-clés CV**.
|
||||
* Tableau de bord plus riche : statistiques d'utilisation, suggestions proactives.
|
||||
* Notifications (ex: "Votre analyse est prête").
|
||||
* Amélioration de l'UX (animations, feedback utilisateur).
|
||||
* **Backend :**
|
||||
* Endpoint pour les Mots-clés CV.
|
||||
* Optimisation des appels IA (caching si pertinent, gestion des erreurs avancée).
|
||||
* Mise en place de tests d'intégration et de performance.
|
||||
* Monitoring de l'utilisation des APIs.
|
||||
* **Potentiel Futur :**
|
||||
* Exportation des résultats (ex: générer une lettre de motivation complète en PDF).
|
||||
* Intégration avec des plateformes d'emploi (LinkedIn, Indeed - nécessite une étude approfondie).
|
||||
* Fonctionnalités collaboratives (partage de candidatures).
|
||||
* Modèles d'IA personnalisables (pour utilisateurs premium).
|
||||
* Interface pour la gestion des offres d'emploi suivies (comme sur le screenshot de dashboard).
|
||||
|
||||
---
|
Loading…
Add table
Add a link
Reference in a new issue