Titre de la page

De $1

Sujet du mini projet : améliorer le TP sur les Assignments

A faire an Angular.

Contraintes :

  • A faire en binôme.
     
  • Au moins 1000 assignments dans la base de données (utilisez un générateur de données)
     
  • A rendre sur github et hébergé sur Heroku.com. Penser à faire un README qui détaille vos contributions et qui m'explique en détail ce que je dois faire pour le faire tourner sur ma machine.
     
  • Vidéo sur YouTube pas trop longue illustrant une démo et un point remarquable de votre projet (ce que vous avez fait mais que les autres n'ont pas fait, un point difficile dont vous êtes fiers, etc.)
     
  • Date de rendu : le 15 Janvier 2022, non nénociable. Je mets zéro après cette date.  


  • Pompage = zéro mais... Vous avez le droit de récupérer des bouts d'un autre groupe mais en le disant clairement ("J'ai repris ce bout de code ici sur le net voilà l'URL, et ça du groupe xxx et yyy qui m'ont aidé")

Détail du travail attendu

Vous apporterez les améliorations optionnelles suivantes à ce TP :

  • Ajouter une gestion de login/password  
    • Vous coderez une authentification par login/password selon le workflow classique (formulaire + boutons connexion/deconnexion, gérer l'affichage des boutons selon qu'on est connecté/déconnecté
    • Côté back, l'athentification se fera à l'aide de Json Web Tokens (JWT)en suivant par exemple ce tutoriel
       
    • Comme dans le TP vous gérerez le cas particulier admin (lui seul peut éditer/supprimer)
       
  • Ajouter de nouvelles propriétés au modèle des Assignments:
    • Auteur (nom de l'élève)
    • Matière (Base de données, Technologies Web, Grails, etc.)
      • Une image sera associée à chaque matière + une photo du prof
    • Note sur 20, on ne peut marquer "rendu" un Assignment qui n'a pas été noté.
    • Remarques sur l'assignment
    • Vous devrez ajuster les différentes vues (ajout/affichage/back end) pour tenir compte de ces nouvelles propriétés.
       
  • Améliorer l'affichage des Assignments
    • Affichage sous forme de liste avec scrolling infini ou via des boutons de pagination. Pour le scrolling infini voir vidéo à paraitre  dans la page du cours.
    • Puisqu'on a ajouté de nouvelles propriétés, il faudra mettre à jour les différents endroits où les Assignments sont affichés/édités/saisis, en particulier :
      • Afficher dans la liste des Assignments chaque Assignment sous forme d'une Material Card, avec le titre, la date, l'élève, une petite image illustrant la matière, la photo du prof en petit en haut à droite.
    • La vue détails montrera en plus les remarques, la note s'il a été rendu, etc.
    • Les formulaires d'ajout et de détails proposeront un choix fixe de matières (et associeront automatiquement le prof et l'image illustrant la matière)
       
  • Afficher les Assignments sous forme de liste de material cards dans deux onglets séparés ou dans deux panels séparés sur la même page selon qu'ils ont été rendus ou pas encore rendus
    • Lorsqu'on met une note à un Assignment et il devient rendu et apparaitra dans l'onglet "Rendu"
    • On pourra passer un assignment de non rendu à rendu en passant par la vue de détails, MAIS AUSSI EN LE DRAG'N'DROPPANT d'une liste à l'autre. (ou d'une liste dans l'onglet de l'autre liste)
       
  • Optionnel (mais simple à faire): utiliser un Formulaire de type Stepper (formulaire en plusieurs étapes) pour l'ajout d'Assignments (éventuellement pour la modification)
     
  • Rendre le tout plus joli, essayez de ne faire tous la même chose.
     
  • Hébergement sur Heroku.com obligatoire pour le front et pour le back

  • Le sujet est ouvert, vous pouvez ajouter ce qui vous semble amusant/pertinent:
    • (facile) Ajout de messages de notification (SnackBar Material)
    • (bcp de travail) Collection d'élèves et de profs pour faciliter l'association devoir/élève et matières/profs
    • Scrolling infini
    • Etc.