Séries télé
Description
Section intitulée « Description »Vous devez créer une application du style réseau social dans laquelle les utilisateurs sont invités à s’inscrire et créer/partager une liste de lecture de leurs séries télé préférées.
Fonctionnalités
Section intitulée « Fonctionnalités »Authentification
Section intitulée « Authentification »- Les utilisateurs peuvent s’inscrire par leur courriel/mot de passe ainsi que leur nom, se connecter avec courriel/mot de passe ainsi que se déconnecter.
- Une fois connecté, la liste de favoris de l’utilisateur est affichée en permanence dans une section de l’interface (voir potentiellement un layout différent).
- Les initiales de l’utilisateur connecté ainsi qu’un moyen de se déconnecter sont aussi visibles/accessibles dans le navigateur.
Séries populaires
Section intitulée « Séries populaires »- Une page permet d’afficher les séries les plus populaires. L’utilisateur peut:
- cliquer sur l’une des séries pour naviguer jusqu’à la page de cette série
- ajouter directement la série à sa liste de favoris (server-action & revalidate)
Recherche
Section intitulée « Recherche »- Une page permet d’effectuer une recherche par nom de série. L’utilisateur peut ensuite:
- cliquer sur l’une des séries pour naviguer jusqu’à la page de cette série
- ajouter directement la série à sa liste de lecture (server-action & revalidate)
- Il doit être également possible de faire la recherche par nom d’utilisateur (voir l’utilisation du filtre ilike avec Drizzle)
- un clic sur le nom d’un utilisateur permettrait d’afficher sa liste de favoris.
- l’utilisateur connecté peut effectuer un “like” selon son appréciation de la liste (pour simplifier, il n’est pas nécessaire de vérifier l’unicité du like).
Page dédiée à une série
Section intitulée « Page dédiée à une série »- La page à url dynamique dédiée à l’affichage des détails d’une série utilise le slug comme segment dynamique. On y affiche:
- le titre,
- le synopsis (overview),
- si la série est terminée (status)
- le trailer (voir un module npm qui afficherait un embed Youtube depuis le lien fourni)
API de séries
Section intitulée « API de séries »Une librairie faisant appel aux services Trakt.tv ainsi que TheMovieDB vous sera fournie. Cette librairie servira de relais entre votre application et les deux services afin d’éliminer un peu de complexité. Vous devez copier/coller le code fourni pour utiliser l’API.
Tous les appels à l’API fourni devront être regroupés dans une couche de données (_data).
Inscription aux services
Section intitulée « Inscription aux services »Vous devez de plus vous inscrire aux deux services et y créer une application afin d’obtenir des clés d’API.
Récupérer le Client ID
Récupérer la Clé de l’API
Configuration
Section intitulée « Configuration »Dans le fichier .env (à la racine du projet), vous rédigerez les clés suivantes:
IS_ONLINE="0" # permet de fonctionner offline avec une version en cacheTRAKT_API_KEY="" #Client ID qui provient de Trakt.tvTRAKT_API_VERSION="2"THEMOVIEDB_API_KEY="" #Clé de l’API qui provient de TheMovieDBAPI_URL="http://localhost:3000/api/series" # Afin de faciliter le travail si vous changer de port durant le développementRequêtes disponibles dans l’API
Section intitulée « Requêtes disponibles dans l’API »Les requêtes suivantes peuvent être effectuées en GET du côté client ou du côté serveur:
Séries populaires
Section intitulée « Séries populaires »http://localhost:3000/api/series/trending
Retourne le sommaire des séries populaires du moment (ou la version en cache si IS_ONLINE=”0”)
Détails d’une série
Section intitulée « Détails d’une série »http://localhost:3000/api/series/slug-ou-id
Remplacer le terme slug-ou-id par celui de la série afin d’obtenir d’avantage d’information sur cette série.
Liste de favoris
Section intitulée « Liste de favoris »http://localhost:3000/api/series/favorites
On lui envoie le id de plusieurs séries afin d’obtenir les informations sommaires de ces séries uniquement. On fourni les ids sous la forme:
http://localhost:3000/api/series/favorites?id[]=188205&id[]=185699&id[]=1409
Recherche d’une série
Section intitulée « Recherche d’une série »http://localhost:3000/api/series/search
Permet d’effectuer une recherche par titre de série. On fourni le titre avec le paramètre q:
http://localhost:3000/api/series/search?q=one-piece
Mise en garde
Section intitulée « Mise en garde »L’utilisation de l’IA générative au développement de ces fonctionnalités entraîne la note de zéro pour ce projet.
Vous devez, pour le développement de ce projet, employer strictement les méthodes vues en cours. La vidéo de l’exercice du cours 06 peut servir de rappel.
Le travail est à remettre par Teams au début du cours 9 (grille d’évaluation à venir au cours 8). Sa pondération est de 25%.