📋 Guide d'Installation et d'Utilisation
Complet - Système de Recrutement
Intelligent
🎯 Vue d'ensemble du Projet
Ce projet est un système de recrutement intelligent qui utilise l'intelligence
artificielle (IA) pour automatiser et optimiser le processus de recrutement. Il combine
une interface web moderne avec des algorithmes d'analyse avancés pour analyser les
CV, évaluer la compatibilité des candidats avec les offres d'emploi, et gérer l'ensemble
du pipeline de recrutement.
🏗️ Architecture du Système
Frontend : [Link] 15 avec React 19, TypeScript, Tailwind CSS
Backend : Django 4.2 avec Django REST Framework
Base de données : PostgreSQL
IA : Google Gemini AI, LlamaParse, PyPDF2, python-docx
Interface : Design moderne avec Radix UI et Lucide React
Éditeur : Visual Studio Code avec extensions recommandées
📊 Fonctionnalités Principales
1. Gestion des Candidats : Upload, analyse automatique des CV, gestion des profils
2. Gestion des Offres : Création, analyse de compatibilité, pipeline de recrutement
3. Gestion des Sociétés : Base de données des entreprises clientes
4. Analyse IA : Scoring automatique, extraction de texte, compatibilité CV/Offre
5. Positionnements : Liaison candidat-offre avec données spécifiques
🛠️ Installation Complète de A à Z
Étape 1 : Installation de Visual Studio Code
1.1 Téléchargement et Installation
1. Aller sur [Link]
2. Télécharger la version pour votre système d'exploitation
3. Exécuter l'installateur et suivre les instructions
4. Cocher les options :
5. ✅ "Add to PATH"
6. ✅ "Register as editor for supported file types"
7. ✅ "Add to context menu"
1.2 Extensions Essentielles à Installer
Ouvrir VS Code et installer ces extensions (Ctrl+Shift+X) :
Extensions Python : - Python (Microsoft) - Support Python complet - Pylance
(Microsoft) - IntelliSense avancé - Python Debugger (Microsoft) - Débogage Python -
Python Docstring Generator - Génération de docstrings
Extensions Web/Frontend : - ES7+ React/Redux/React-Native snippets - Snippets
React - Tailwind CSS IntelliSense - Support Tailwind CSS - TypeScript Importer
- Import automatique TypeScript - Auto Rename Tag - Renommage automatique des
balises - Bracket Pair Colorizer - Coloration des parenthèses
Extensions Django : - Django - Support Django - Django Template - Support des
templates Django - Python Django - Snippets Django
Extensions Utilitaires : - GitLens - Amélioration de Git - Prettier - Formatage de
code - ESLint - Linting JavaScript/TypeScript - Thunder Client - Client API REST -
REST Client - Tests d'API - Error Lens - Affichage des erreurs en ligne
Étape 2 : Installation de Python
2.1 Téléchargement Python
1. Aller sur [Link]
2. Télécharger Python 3.11 ou Python 3.12 (version recommandée)
3. ⚠️IMPORTANT : Cocher "Add Python to PATH" lors de l'installation
2.2 Vérification de l'Installation
Ouvrir un terminal (Cmd ou PowerShell) et vérifier :
python --version
# Doit afficher : Python 3.11.x ou Python 3.12.x
pip --version
# Doit afficher la version de pip
2.3 Mise à Jour de pip
python -m pip install --upgrade pip
Étape 3 : Installation de [Link]
3.1 Téléchargement [Link]
1. Aller sur [Link]
2. Télécharger la version LTS (Long Term Support)
3. Installer avec les options par défaut
3.2 Vérification de l'Installation
node --version
# Doit afficher : v18.x.x ou v20.x.x
npm --version
# Doit afficher la version de npm
Étape 4 : Installation de PostgreSQL
4.1 Téléchargement PostgreSQL
1. Aller sur [Link]
2. Télécharger PostgreSQL 15 ou 16
3. Installer avec ces paramètres :
4. Port : 5432 (par défaut)
5. Mot de passe : admin123 (ou votre choix)
4.2 Configuration PostgreSQL
1. Ouvrir pgAdmin 4 (installé avec PostgreSQL)
2. Se connecter avec le mot de passe défini
3. Créer une nouvelle base de données :
4. Clic droit sur "Databases" → "Create" → "Database"
5. Nom : recrutement_db
6. Owner : postgres
4.3 Installation des Outils PostgreSQL
# Installer psycopg2 pour la connexion Python
pip install psycopg2-binary
6.2 Structure du Projet
StagePFA/
├── app_recrutement/ # Frontend [Link]
│ ├── src/
│ │ ├── components/ # Composants React
│ │ ├── app/ # Pages [Link]
│ │ ├── config/ # Configuration réseau
│ │ └── lib/ # Utilitaires
│ ├── [Link] # Dépendances [Link]
│ └── [Link] # Configuration [Link]
├── backend_recrutement/ # Backend Django
│ ├── core/ # Application principale
│ │ ├── [Link] # Modèles de données
│ │ ├── [Link] # Vues API
│ │ ├── [Link] # Sérialiseurs
│ │ └── services/ # Services IA
│ ├── [Link] # Dépendances Python
│ └── [Link] # Script Django
└── GUIDE_UTILISATION_COMPLET.md
🚀 Configuration du Projet
Étape 7 : Configuration Backend (Django)
7.1 Création de l'Environnement Virtuel
# Naviguer vers le dossier backend
cd backend_recrutement
# Créer un environnement virtuel Python
python -m venv venv
# Activer l'environnement virtuel
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Vérifier que l'environnement est activé (doit afficher le chemin vers venv)
where python
7.2 Installation des Dépendances Python
# Mettre à jour pip
python -m pip install --upgrade pip
# Installer toutes les dépendances
pip install -r [Link]
# Vérifier l'installation
pip list
7.3 Configuration des Variables d'Environnement
Créer un fichier .env dans backend_recrutement/ :
# Base de données PostgreSQL
DATABASE_URL=postgresql://postgres:admin123@localhost:5432/recrutement_db
# Clés API IA
GEMINI_API_KEY=your_gemini_api_key_here
LLAMA_CLOUD_API_KEY=your_llama_parse_api_key_here
# Configuration Django
SECRET_KEY=django-insecure-your-secret-key-here-change-this-in-production
DEBUG=True
ALLOWED_HOSTS=[Link],localhost,[Link],[Link]
# CORS pour le frontend
CORS_ALLOWED_ORIGINS=[Link]
7.4 Configuration de la Base de Données
# Créer les migrations
python [Link] makemigrations
# Appliquer les migrations
python [Link] migrate
# Créer un superutilisateur Django
python [Link] createsuperuser
# Suivre les instructions pour créer un compte admin
7.5 Test du Backend
# Démarrer le serveur Django
python [Link] runserver [Link]:8000
# Ouvrir dans le navigateur : [Link]
# Se connecter avec le compte superutilisateur créé
Étape 8 : Configuration Frontend ([Link])
8.1 Installation des Dépendances [Link]
# Naviguer vers le dossier frontend
cd app_recrutement
# Installer toutes les dépendances
npm install
# Vérifier l'installation
npm list --depth=0
8.2 Configuration du Réseau
Le fichier src/config/[Link] est déjà configuré pour votre IP :
export const API_BASE_URL = '[Link]
export const FRONTEND_URL = '[Link]
8.3 Test du Frontend
# Démarrer le serveur de développement
npm run dev:network
# Ouvrir dans le navigateur : [Link]
Étape 9 : Configuration des Clés API
9.1 Clé API Google Gemini
1. Aller sur [Link]
2. Créer un nouveau projet ou sélectionner un projet existant
3. Générer une nouvelle clé API
4. Copier la clé et l'ajouter dans le fichier .env : env
GEMINI_API_KEY=AIzaSyC...votre_cle_ici
9.2 Clé API LlamaParse (Optionnel)
1. Aller sur [Link]
2. Créer un compte et obtenir une clé API
3. Ajouter dans le fichier .env : env
LLAMA_CLOUD_API_KEY=votre_cle_llama_parse
Étape 10 : Test de l'Installation Complète
10.1 Démarrer les Deux Serveurs
Terminal 1 - Backend :
cd backend_recrutement
venv\Scripts\activate
python [Link] runserver [Link]:8000
Terminal 2 - Frontend :
cd app_recrutement
npm run dev:network
10.2 Vérification des Services
1. Backend : [Link] (Interface Django Admin)
2. Frontend : [Link] (Interface utilisateur)
3. API : [Link] (Endpoints API)
10.3 Test de Connexion
1. Ouvrir le frontend dans le navigateur
2. Se connecter avec le compte superutilisateur
3. Vérifier que les données se chargent correctement
🎨 Interface Utilisateur et Fonctionnalités
Structure de l'Application
L'application se compose de deux interfaces principales :
1. Interface Admin ( /admin/ )
Dashboard Admin : Vue d'ensemble du système
Gestion des Utilisateurs : Création et gestion des comptes
Gestion des Emails : Configuration et envoi d'emails
Paramètres Système : Configuration globale
2. Interface Utilisateur ( /dashboard/ )
Dashboard Principal : Vue d'ensemble des données
Gestion des Candidats : Liste, ajout, modification des candidats
Gestion des Offres : Création et gestion des offres d'emploi
Positionnements : Liaison candidats-offres avec analyse IA
Automation : Configuration des processus automatiques
Paramètres : Configuration personnelle
Navigation et Structure
Navigation Latérale
📊 Dashboard
📈
├──
├──
└──
📊 Vue d'ensemble
🔄 Statistiques
Activité récente
👥
├── 📋 Liste des candidats
Candidats
├── ➕ Ajouter un candidat
├── 📤 Candidatures spontanées
└── 🔍 Recherche avancée
💼
├── 📋 Liste des offres
Offres d'emploi
├── ➕ Nouvelle offre
├── 📊 Positionnements
└── 🔍 Analyse de compatibilité
🏢
├── 📋 Liste des sociétés
Sociétés
├── ➕ Nouvelle société
└── 📊 Statistiques par société
📧
├── 📤 Envoi d'emails
Emails
├── 📋 Templates
└── 📊 Historique
├── 🔧 Configuration
⚙️Paramètres
├── 🔑 Clés API
└── 👤 Profil utilisateur
Composants Principaux
1. Dashboard Overview
Statistiques en temps réel : Nombre de candidats, offres, positionnements
Notifications : Alertes des date de repobse des offres
2. Gestion des Candidats ( [Link] )
Liste paginée avec filtres avancés
Upload de CV
Analyse automatique avec IA
Recherche sémantique par compétences
Export Excel des données
3. Gestion des Offres ( [Link] )
Création d'offres avec formulaire détaillé
Onglet Positionnements : Candidats liés à l'offre
Bouton "Analyser" : Analyse de compatibilité avec tous les CV exist
Modal d'analyse : Résultats avec scores et résumés
Gestion des états des positionnements
Commentaires personnalisés par candidat
4. Système de Positionnements
Liaison candidat-offre avec données spécifiques
Score de compatibilité calculé par IA
Résumé d'analyse généré automatiquement
États du processus
Historique des modifications
Upload d'avatar et CV spécifiques
👥 Gestion des Candidats
1. Ajout de Candidats
Méthode 1 : Ajout Manuel via Interface
1. Aller dans Dashboard → Candidats
2. Cliquer sur "Ajouter un candidat"
3. Remplir le formulaire :
4. Upload du CV : PDF ou DOCX (obligatoire)
Méthode 2 : Système de Positionnements (Offre)
1. Cliquer sur "Ajouter un candidat"
2. Remplir le formulaire :
3. Upload du CV : PDF ou DOCX (obligatoire)
2. Analyse Automatique des CV
Services d'Extraction de Texte
PyPDF2 : Extraction de texte des PDFs
LlamaParse : Extraction avancée avec IA (optionnel)
Analyse IA avec Google Gemini
# Exemple d'analyse automatique
def analyze_cv_with_gemini(cv_text, job_title):
prompt = f"""
Analyse ce CV pour le poste de {job_title}:
{cv_text}
Retourne:
- Score de compatibilité (0-100)
- Résumé des compétences
- Points forts
- Points d'amélioration
"""
return gemini_service.analyze_cv(cv_text, prompt)
Informations Extraites Automatiquement
Compétences techniques : Langages, frameworks, outils
Expérience professionnelle : Postes, durées, responsabilités
Formation : Diplômes, certifications, formations
Langues : Niveau de maîtrise
Soft skills : Leadership, communication, etc.
3. Gestion des Positionnements
Concept de Positionnement
Un positionnement est une liaison spécifique entre un candidat et une offre d'emploi
avec des données
Fonctionnalités des Positionnements
Score de compatibilité : Calculé par IA (0-100)
Résumé d'analyse : Généré automatiquement par Gemini
Commentaires personnalisés : Notes du recruteur
Avatar spécifique : Photo pour cette offre
CV spécifique : Version du CV pour cette offre
Historique : Suivi des modifications
💼 Gestion des Offres d'Emploi
1. Création d'Offres
Interface de Création ( [Link] )
1. Aller dans Dashboard → Offres d'emploi
2. Cliquer sur "Nouvelle offre"
3. Remplir le formulaire détaillé :
Champs Obligatoires
Titre du poste : Ex. "Développeur Full Stack"
cahier de charge : Missions, responsabilités, contexte
Société : Sélection dans la liste des sociétés
2. Analyse de Compatibilité
Analyse Individuelle d'une Offre
1. Sélectionner une offre dans la liste
2. Aller dans l'onglet "Positionnements"
3. Cliquer sur le bouton "Analyser"
4. Le système :
5. Récupère tous les CV disponibles
6. Exclut les candidats déjà positionnés sur cette offre
7. Analyse chaque CV avec l'IA Gemini
8. Calcule un score de compatibilité (0-100)
9. Génère un résumé d'analyse
10. Export Excel : Liste des offres avec positionnements
11. la recherche dans le cv par phrase : la phrase doit etre entre "" ex: "chef de
projet"
12. la recherche dans le cv par mot : le mot direct sans " "
🏢 Gestion des Sociétés
1. Création de Sociétés
Interface de Création
1. Aller dans Dashboard → Sociétés
2. Cliquer sur "Nouvelle société"
3. Remplir les informations :
2. Association avec les Offres
Chaque offre est liée à une société
Historique des offres par société
Statistiques de recrutement par entreprise
Gestion des contacts multiples par société
👤 Gestion des Utilisateurs (Interface Admin)
1. Création d'Utilisateurs
1. Aller dans Interface Admin → Gestion des Utilisateurs
2. Cliquer sur "Ajouter un nouvel utilisateur"
3. Remplir les informations requises (nom, email, mot de passe, rôles).
4. Valider la création.
2. Modification d'Utilisateurs
1. Aller dans Interface Admin → Gestion des Utilisateurs
2. Sélectionner l'utilisateur à modifier dans la liste.
3. Mettre à jour les informations nécessaires (rôles, permissions, etc.).
4. Enregistrer les modifications.
3. Suppression d'Utilisateurs
1. Aller dans Interface Admin → Gestion des Utilisateurs
2. Sélectionner l'utilisateur à supprimer.
3. Confirmer la suppression.
⚙️ Paramètres Système
1. Mise à Jour de l'API Gemini
1. Aller dans Interface Admin → Paramètres Système
2. Rechercher la section "Clés API".
3. Mettre à jour la clé GEMINI_API_KEY avec la nouvelle valeur.
4. Enregistrer les modifications pour que la nouvelle clé soit prise en compte par le
système.