Cahier des Charges pour une Application Java et React.js : Clone de Netflix avec Vidéos Libres de Droits
L'objectif de ce projet est de développer une plateforme web similaire à Netflix, utilisant une architecture backend en Java et un frontend en React.js. Cette application permettra aux utilisateurs de consulter et de visionner des vidéos de films gratuits et libres de droits disponibles sur YouTube. L'objectif est de fournir une interface intuitive, esthétique et fonctionnelle pour naviguer dans une bibliothèque de contenus vidéo.
-
Catalogue de Vidéos :
- Liste des vidéos disponibles avec titre, vignette et description.
- Classement par catégories (documentaires, films classiques, éducation, etc.).
-
Lecture Vidéo :
- Lecture directement dans l'application via l'intégration de l'API YouTube.
- Option de lecture plein écran.
-
Recherche de Contenus :
- Recherche par titre ou catégorie.
- Suggestion automatique lors de la saisie dans le champ de recherche.
-
Sélection de Vidéos Populaires :
- Mise en avant des vidéos les plus visionnées.
-
Ajout aux Favoris :
- Marquer des vidéos comme favorites pour un accès rapide.
-
Filtrage Avancé :
- Filtrer par durée, date de publication ou popularité.
-
Système de Recommandation :
- Proposer des contenus basés sur les vidéos consultées.
- Technologie : React.js.
- Langage : JavaScript avec JSX.
- Bibliothèques :
- Axios pour les appels API.
- React Router pour la navigation.
- Tailwind CSS ou Material-UI pour le design.
- Technologie : Java avec Spring Boot.
- Base de Données : MongoDB pour stocker les métadonnées des vidéos (titres, descriptions, URL, etc.).
- API externe : Intégration avec l'API YouTube Data pour rechercher et récupérer les vidéos.
- Endpoints Backend :
- Endpoint pour lister les vidéos.
- Endpoint pour les détails d'une vidéo.
- Endpoint pour gérer les favoris.
- Hébergement : Local pour développement et test.
-
En tant qu'utilisateur, je veux voir une liste de films disponibles
- Critères d'acceptation :
- Les vidéos sont affichées avec leurs titres, vignettes et descriptions.
- Critères d'acceptation :
-
En tant qu'utilisateur, je veux visionner une vidéo
- Critères d'acceptation :
- Le lecteur vidéo intégré fonctionne correctement avec les commandes de base (lecture, pause, plein écran).
- Critères d'acceptation :
-
En tant qu'utilisateur, je veux rechercher un film par son titre
- Critères d'acceptation :
- Les résultats pertinents apparaissent dynamiquement lors de la saisie.
- Critères d'acceptation :
-
En tant qu'utilisateur, je veux filtrer les contenus par catégorie
- Critères d'acceptation :
- Les vidéos affichées correspondent à la catégorie sélectionnée.
- Critères d'acceptation :
-
En tant qu'utilisateur, je veux ajouter des vidéos à mes favoris
- Critères d'acceptation :
- Les vidéos marquées apparaissent dans une section "Favoris".
- Critères d'acceptation :
-
En tant qu'utilisateur, je veux voir des recommandations basées sur mes vidéos visionnées
- Critères d'acceptation :
- Les recommandations s'affichent de manière pertinente.
- Critères d'acceptation :
- Performance : Temps de chargement inférieur à 3 secondes pour les listes de vidéos.
- Accessibilité : Interface responsive fonctionnelle sur desktop, tablette et mobile.
- Fonctionnalité : Toutes les fonctionnalités principales et complémentaires doivent être opérationnelles sans erreur.