Aller au contenu

Back-Office LMELP - Documentation

Bienvenue dans la documentation du Back-Office LMELP, une application web pour la gestion et l'édition des descriptions d'épisodes de podcast.

Vue d'ensemble

Cette application permet de :

  • Consulter la liste des épisodes de podcast

  • Visualiser/Modifier les titres/descriptions (on conserve les versions originales et modifiees) des episodes

  • Corriger les auteurs / livres / edtiteurs issus des avis ctitiques

  • Rechercher dans les auteurs, livres, editeurs et episodes

Architecture

  • Backend : FastAPI avec garde-fous mémoire intégrés
  • Frontend : Vue.js avec surveillance mémoire automatique
  • Base de données : MongoDB
  • Environnement : Docker devcontainer avec uv pour le developpement, image docker pour le deploiement (pour installation PC ou Nas)

Documentation

👨‍💻 Pour les développeurs (docs/dev/)

👤 Pour les utilisateurs (docs/user/)

Démarrage rapide

Prérequis

  • Docker et VS Code avec devcontainer
  • Ou Python 3.11+ avec uv

Lancement

en mode developpement

# Lancement backend + frontend
./scripts/start-dev.sh

# Documentation locale (port 8000)
mkdocs serve

en mode image docker

voir instructions dans docker/deployment/README.md

Accès developpemet

Acces image docker

Fonctionnalités principales

🛡️ Garde-fous mémoire

  • Backend : Limite 500MB avec surveillance continue
  • Frontend : Limite 100MB avec rechargement d'urgence
  • Alertes : Avertissements à 80% de la limite
  • Protection : Arrêt automatique si limite dépassée

📝 Gestion des épisodes

  • Sélection d'épisodes via dropdown
  • Affichage des métadonnées complètes
  • Édition en temps réel des descriptions
  • Sauvegarde automatique avec indicateur visuel

🧪 Tests complets

  • Suite de tests :
  • CI/CD Pipeline : GitHub Actions avec Python 3.11/3.12 + Node.js 18
  • Couverture backend : 40% avec pytest + coverage
  • Tests frontend : Vitest + @vue/test-utils (EpisodeSelector, EpisodeEditor, HomePage)

🔧 Qualité de code

  • Linting : Ruff avec configuration optimisée
  • Type checking : MyPy avec strictness progressive
  • Pre-commit hooks : Formatage, sécurité, qualité automatiques
  • Documentation : MkDocs + Material Design sur GitHub Pages

Contribuer

  1. Consultez la documentation développeurs
  2. Suivez les conventions de développement
  3. Implémentez les tests unitaires

Support