backend
This commit is contained in:
commit
d7666f7b2c
44 changed files with 2246 additions and 0 deletions
71
backend/README.md
Normal file
71
backend/README.md
Normal file
|
@ -0,0 +1,71 @@
|
|||
# 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).
|
||||
|
||||
---
|
Loading…
Add table
Add a link
Reference in a new issue