Projet DevOps – Letter Box (2025–2026)

Bensaleh Ghita · Bouetel Marie · Detrez Cléo · Bernard Noah · Bouet Grégoire
Filière : Data Science et Intelligence Artificielle
ESIEE Paris – Année académique 2025–2026


Sommaire


1. Contexte académique

Ce projet a été réalisé dans le cadre du module DevOps for Software Engineering à ESIEE Paris.

L’objectif pédagogique est de mettre en œuvre une chaîne DevOps complète, depuis le développement applicatif jusqu’au déploiement automatisé sur un environnement conteneurisé.


2. Présentation du projet

Letter Box est une application web full-stack de gestion de films permettant :

  • La consultation d’un catalogue de films
  • L’ajout, la modification et la suppression de films
  • L’import massif de données via un scraper AlloCiné
  • L’exposition d’API REST sécurisées

Le projet démontre l’intégration des pratiques suivantes :

  • Intégration Continue (CI) et Livraison Continue (CD) via GitHub Actions
  • Conteneurisation de chaque composant avec Docker
  • Orchestration multi-services avec Docker Compose et Kubernetes
  • Infrastructure déclarative et reproductible

3. Structure du dépôt

Le dépôt est organisé en plusieurs dossiers principaux :

  • backend/ : API FastAPI, logique métier, gestion des migrations, tests unitaires
  • frontend/ : Application React (Vite), gestion des vues et appels API
  • db/ : Scripts SQL d’initialisation, gestion des schémas et migrations
  • scraper/ : Scrapy pour l’import automatisé de données AlloCiné, export JSON/MongoDB
  • devops/ : Scripts de déploiement, fichiers Kubernetes, automatisation CI/CD
  • site/ : Documentation Quartz, générée et versionnée dans le dépôt

Exemples de fichiers clés :

  • backend/main.py : point d’entrée de l’API
  • frontend/src/api.js : gestion des appels API
  • db/init.sql : création du schéma PostgreSQL
  • scraper/integration_pipeline.py : pipeline d’intégration des données
  • devops/kubernetes-deployment.yaml : manifest Kubernetes complet

Chaque dossier contient un README dédié pour faciliter la prise en main.


4. Objectifs DevOps

Les objectifs techniques du projet sont :

  • Automatiser les tests et le build (GitHub Actions)
  • Standardiser les environnements via Docker et Docker Compose
  • Déployer l’application sur Kubernetes (Minikube)
  • Garantir la reproductibilité et la traçabilité des déploiements
  • Mettre en place une architecture scalable et modulaire

5. Organisation de la documentation

La documentation du projet est structurée comme suit :

Chaque section détaille les choix techniques réalisés ainsi que leur justification, avec des exemples concrets issus du code et des scripts du projet.

4 items under this folder.