Gestionnaire de base de données — Netflix
Application Angular/Flask pour manipuler une base de données de séries et films.
01 — Le contexte
Ce projet universitaire (2025) a été conçu comme un terrain d’expérimentation intensif pour consolider nos compétences fraîchement acquises sur la stack Angular et Flask.
Le sujet d’étude choisi était l’univers Netflix. L’objectif n’était pas de recréer le service de streaming vidéo, mais de construire une interface d’administration métier (Back-Office) capable de manipuler une architecture de données relationnelles lourde (séries, épisodes, acteurs, catégories) de manière robuste.

02 — Manipulation des données
L’interface centrale permet à l’administrateur de naviguer dans l’immense base de données via un système de tableaux complexes.
Nous y avons implémenté de nombreuses fonctionnalités essentielles côté client et côté serveur :
- Un système de recherche, filtrage multicritères, et tri dynamique.
- Une pagination optimisée pour ne pas surcharger la mémoire du navigateur lors de l’affichage de milliers de lignes.
- L’ajout, l’édition et la suppression avec des validations strictes et une gestion fine des retours d’erreurs (formulaires Angular connectés aux codes HTTP Flask).

03 — Intégrité et Analytics
Au-delà du simple “CRUD” (Créer, Lire, Mettre à jour, Supprimer), le projet requérait une gestion minutieuse des relations entre les tables PostgreSQL.
L’une des difficultés principales a été d’assurer l’intégrité référentielle (par exemple, gérer proprement la suppression en cascade d’une série sans laisser d’épisodes orphelins). L’application offre également une vue d’analyse de données (Data Analytics) permettant de visualiser graphiquement la répartition des contenus.

04 — Architecture technique & Logs
L’import de données dynamiques
Une des fonctionnalités critiques du système est la capacité d’importer une base de données .sql brute et de la charger à la volée dans l’application via l’interface web.
Comme le montre cette capture de terminal, l’équipe (6 développeurs) a dû mettre en place une traçabilité rigoureuse (logs SQL) côté Backend (SQLAlchemy) pour surveiller le comportement des requêtes lors des gros imports et des traitements en cascade.
