ay/backend
2025-06-24 18:17:53 +02:00
..
alembic backend 2025-06-24 18:17:53 +02:00
core backend 2025-06-24 18:17:53 +02:00
crud backend 2025-06-24 18:17:53 +02:00
models backend 2025-06-24 18:17:53 +02:00
repositories backend 2025-06-24 18:17:53 +02:00
routers backend 2025-06-24 18:17:53 +02:00
schemas backend 2025-06-24 18:17:53 +02:00
services backend 2025-06-24 18:17:53 +02:00
.env.example backend 2025-06-24 18:17:53 +02:00
__init__.py backend 2025-06-24 18:17:53 +02:00
alembic.ini backend 2025-06-24 18:17:53 +02:00
dependencies.py backend 2025-06-24 18:17:53 +02:00
main.py backend 2025-06-24 18:17:53 +02:00
README.md backend 2025-06-24 18:17:53 +02:00
requirements.txt backend 2025-06-24 18:17:53 +02:00

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 :
    cd backend
    
  2. Créer et activer un environnement virtuel (recommandé) :
    python -m venv venv
    source venv/bin/activate  # Sur Linux/macOS
    # venv\Scripts\activate  # Sur Windows
    
  3. Installer les dépendances :
    pip install -r requirements.txt
    
  4. Configurer les variables d'environnement :
    • Copiez .env.example en .env :
      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 :
    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).