Notation

La notation sera établi sur le projet rendu à la fin du cours. La date de rendu est le dimanche 2 février 2025 à 23h59.

Merci d'envoyer le lien de votre git à l'adresse suivante: cyril at algorion.fr. Merci de repréciser les membres de votre groupe ainsi que le nom du professeur avec qui vous étiez (NOUVET Cyril ou BERNAY Benoit) dans le mail.

La notation sera basée sur les critères suivants:

Partie API backend:

  • Utilise l'authentification JWT
  • Utilise l'entity framework pour la base de données sqlite
  • Controller User:
    • Récupérer la liste des utilisateurs (Id, Pseudo, Role)
    • Récupérer un utilisateur par son pseudo et son mot de passe (login)
    • Ajouter un utilisateur (register)
    • Modifier un utilisateur (Pseudo, Password, Role)
    • Supprimer un utilisateur
    • Le mot de passe est hashé et n'est pas renvoyé
  • Controller Favorite:
    • Récupérer les favoris d'un utilisateur
    • Ajouter un favori
    • Supprimer un favori
  • Controller Movie:
    • Récupérer les films
    • Supprimer un film
  • Controller OMDB:
    • Rechercher un film par son titre
    • Importer des films depuis l'API OMDB
  • Utilisation de la configuration pour les secrets (Clé d'API OMDB, Secret JWT)
  • Utilisation de l'injection de dépendance
  • Utilisation du méchanisme d'authentification pour protéger les routes
  • Configuration du JWT
  • 2 Services (JWT et OMDB)
  • Gestion des erreurs (try catch, throw)
  • Réponse de code HTTP approprié 200, 404, 500, ...
  • Utilisation de async await pour les appels API, et l'accès BDD

Partie Blazor frontend:

  • Formulaire de login
  • Formulaire d'inscription
  • Page de liste des films:
    • Les films sont affichés sous forme de carte dans un composant
    • On peux ajouter/retirer un film aux favoris
  • Liste des utilisateurs avec leur rôles
  • Page qui affiche les films favoris d'un utilisateur
  • Page admin pour importer des films
  • Possibiliter de se déconnecter
  • Présence de 4 services pour communiquer avec l'API:
    • AuthService
    • UserService
    • FavoriteService
    • MovieService
  • Lors de l'authentification, le token JWT est stocké dans le local storage
  • Le token JWT est envoyé dans le header de chaque requête API qui le nécessite
  • Les pages sont protégées en fonction des rôles
  • Les services sont injectés et appelés dans les composants
  • Utilisation de async await pour les appels API

Si vous avez rajoutez des fonctionnalités, vous pouvez les décrire dans le README.md de votre projet. Elles seront prises en compte dans la notation.

Le projet doit être rendu sur git dans un repository public ou accessible facilement. Vous pouvez nous les envoyez en amont pour avoir un retour sur votre code.