.. | ||
alembic | ||
core | ||
crud | ||
models | ||
repositories | ||
routers | ||
schemas | ||
services | ||
.env.example | ||
__init__.py | ||
alembic.ini | ||
dependencies.py | ||
main.py | ||
README.md | ||
requirements.txt |
Backend - Allons-y API
Ce dossier contient le code source de l'API RESTful pour l'application "Allons-y - Assistant de Candidature IA". Il est développé en Python avec le framework FastAPI.
Technologies
- Framework : FastAPI
- Base de Données ORM : SQLAlchemy
- Base de Données : PostgreSQL (connexion à une base de données distante)
- Authentification : JWT avec
python-jose
et hachage de mot de passe avecpasslib[bcrypt]
- Analyse de Fichiers :
pypdf
pour les PDF,python-docx
pour les DOCX - IA APIs :
google-generativeai
pour Gemini,mistralai
pour Mistral - Gestion des variables d'environnement :
python-dotenv
Comment Démarrer le Backend (Développement Local)
Pré-requis :
- Python 3.9+
- pip (gestionnaire de paquets Python)
- Accès à votre base de données PostgreSQL distante.
Étapes :
- Naviguer dans le répertoire du backend :
cd backend
- Créer et activer un environnement virtuel (recommandé) :
python -m venv venv source venv/bin/activate # Sur Linux/macOS # venv\Scripts\activate # Sur Windows
- Installer les dépendances :
pip install -r requirements.txt
- Configurer les variables d'environnement :
- Copiez
.env.example
en.env
:cp .env.example .env
- Éditez le fichier
.env
et renseignez les valeurs exactes pourDATABASE_URL
(avec lehost
,port
,user
,password
de votre base de données distante),SECRET_KEY
,GEMINI_API_KEY
,MISTRAL_API_KEY
, etFILES_UPLOAD_PATH
.- Important : La
SECRET_KEY
doit être une chaîne de caractères longue et aléatoire pour la sécurité de vos JWT. - Pour
FILES_UPLOAD_PATH
, assurez-vous que le répertoire./uploads
existe ou sera créé et qu'il a les permissions d'écriture.
- Important : La
- Copiez
- Lancer l'application FastAPI :
L'API sera accessible àuvicorn main:app --reload --host 0.0.0.0 --port 8000
http://localhost:8000
. La documentation Swagger UI est disponible àhttp://localhost:8000/docs
.
Structure du Code (à venir)
main.py
: Point d'entrée de l'application FastAPI.routers/
: Contient les routes de l'API (authentification, fichiers, IA).models/
: Contient les modèles de base de données SQLAlchemy.schemas/
: Contient les Pydantic schemas pour la validation des données.crud/
: Contient les opérations CRUD pour la base de données.utils/
: Fonctions utilitaires (sécurité, extraction de texte, etc.).core/
: Configuration, dépendances.
Endpoints Principaux (MVP)
POST /auth/register
: Inscription d'un nouvel utilisateur.POST /auth/login
: Connexion de l'utilisateur.GET /users/me
: Récupérer le profil utilisateur (authentifié).POST /files/upload_cv
: Upload d'un CV.POST /ia/analyze_offer
: Analyse d'offre d'emploi (scoring).