71 lines
No EOL
2.9 KiB
Markdown
71 lines
No EOL
2.9 KiB
Markdown
# 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 avec `passlib[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 :
|
|
|
|
1. **Naviguer dans le répertoire du backend :**
|
|
```bash
|
|
cd backend
|
|
```
|
|
2. **Créer et activer un environnement virtuel (recommandé) :**
|
|
```bash
|
|
python -m venv venv
|
|
source venv/bin/activate # Sur Linux/macOS
|
|
# venv\Scripts\activate # Sur Windows
|
|
```
|
|
3. **Installer les dépendances :**
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
4. **Configurer les variables d'environnement :**
|
|
* Copiez `.env.example` en `.env` :
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
* **Éditez le fichier `.env`** et renseignez les valeurs exactes pour `DATABASE_URL` (avec le `host`, `port`, `user`, `password` de votre base de données distante), `SECRET_KEY`, `GEMINI_API_KEY`, `MISTRAL_API_KEY`, et `FILES_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.
|
|
5. **Lancer l'application FastAPI :**
|
|
```bash
|
|
uvicorn main:app --reload --host 0.0.0.0 --port 8000
|
|
```
|
|
L'API sera accessible à `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).
|
|
|
|
--- |