Gestion de CVs

Introduction

Le but de cette page est de présenter le projet qui va servir de base à votre évaluation dans l'unité d'enseignement Architecture des applications.

Cahier des charges

L'objectif du mini projet est simple : gérer à l'aide de la technologie JEE une liste de CVs. Plus précisément,

  • Chaque personne est représentée par un ensemble d'informations : nom, prénom, adresse électronique, site WEB, date de naissance et mot de passe.
  • Chaque personne peut renseigner un curriculum vitae. Pour notre application, un CV est une liste d'activités. Chaque activité est décrite par
    • une année (obligatoire),
    • une nature (expérience professionnelle, formation, projets, autre) (obligatoire),
    • un titre (obligatoire) ,
    • un texte descriptif (facultatif),
    • une adresse WEB (facultatif),
  • La liste des personnes et les CV sont librement consultables. La modification implique une phase d'authentification afin que chaque personne ne puisse modifier que son CV.
  • Chaque personne connue (après authentification) peut créer de nouvelles personnes (cooptation).
  • Le logiciel doit être capable de gérer environ 100.000 CV.

Étape 1 : Couche données

Travail à faire :
  • Préparer les entités pour représenter les données métier.
  • Construire les repositories Spring-Data.
  • Construire les tests unitaires sur les opérations CRUD.

Partie à rendre sur AMETICE avant le dimanche 27 octobre 2024, 23:59.

Étape 2 : Métier (Spring/API-Rest/Junit)

Travail à faire :
  • Réaliser d'une couche métier accompagnée de ses tests unitaires.
  • Prévoir une API Rest (à la main sans Spring Data Rest) pour les actions CRUD (create/read/update/delete) sur les personnes et les activités.
  • Prévoir les fonctions de recherche d'une personne sur une partie du nom, du prénom ou le titre d'une activité.

Étape 3 : Authentification

Travail à faire :
  • Prévoir un système d'authentification par jeton JWT pour les opérations de modification.

Étape 4 : Présentation (VueJS/Bootstrap)

Travail à faire : Mettre en place une application WEB basée sur la technologie VueJS/Bootstrap qui respecte les contraintes suivantes :
  • Organisation de l'application en quatre parties (parcours des CV, authentification, modification d'un CV, création d'une personne).
  • Utilisation de routes multiples pour chaque partie.

Échéances

Ce projet est à rendre, par équipe de deux personnes, pour le dimanche 24 novembre 2024 23h58.

Travail à faire : Une archive ZIP (de la forme NOM1_prenom1-NOM2_prenom2.zip) qui regroupe
  • un cahier des charges et un rapport technique (fichier rapport.pdf de moins de 10 pages),
  • votre projet maven (répertoire projet dans lequel les commandes mvn clean, mvn package doivent fonctionner),
  • le package de votre application (fichier myapp.war obtenu par mvn package dans le répertoire de votre projet). Attention : vous devez utiliser une BD en mémoire afin que je puisse tester votre application sans difficulté (il faut donc prévoir une opération de peuplement).
La forme du rendu doit ABSOLUMENT être respectée. Des soutenances seront organisées. Les travaux sont à rendre sur la plateforme AMETICE.