Projet : Développement du Frontend d’une application
REST (JEE / JAX-RS)
Deadline le 30 Décembre
Contexte pédagogique :
Dans les TPs précédents, vous avez développé un backend RESTful en JEE en utilisant :
• JAX-RS avec JDBC et requêtes SQL
• JAX-RS avec JPA (Hibernate)
Ce backend expose des services REST permettant la gestion des personnes (Person) :
• Ajouter une personne
• Supprimer une personne
• Modifier une personne
• Consulter une personne par ID ou par nom
• Afficher la liste des personnes
L’objectif de ce projet est de concevoir et développer le frontend qui consomme ces services
REST.
Objectif du projet :
Réaliser une interface web frontend permettant d’interagir avec le backend REST déjà
développé, en respectant l’architecture Client / Serveur.
Vous devrez :
• Comprendre les endpoints REST existants
• Consommer les services via des requêtes HTTP (GET, POST, PUT, DELETE)
• Afficher dynamiquement les données côté client
• Mettre le projet en ligne sur GitHub
• Présenter le travail sous forme d’une vidéo explicative
Fonctionnalités attendues :
1. Interface utilisateur (UI)
Le frontend doit proposer au minimum les interfaces suivantes :
• Liste des personnes
• Affichage de toutes les personnes récupérées depuis le backend
1
• Tableau ou cartes (au choix)
• Ajouter une personne
• Formulaire avec validation des champs
• Envoi des données au backend via REST
• Modifier une personne
• Pré-remplissage des données
• Mise à jour via service REST
• Supprimer une personne
• Bouton de suppression avec confirmation
• Recherche
• Recherche par ID ou par nom (selon les services disponibles)
Technologies Frontend (au choix) :
Les étudiants peuvent utiliser une seule des technologies suivantes :
• HTML5 / CSS3 / JavaScript
• Bootstrap ou autre framework CSS
• React / Angular / [Link] (optionnel – bonus)
• JSP (JAVA Server Page)
• Fetch API ou Axios pour les appels REST
Le frontend doit consommer exclusivement le backend JAX-RS (aucun accès direct à la
base de données).
Contraintes techniques :
• Le backend doit être exécuté sur Tomcat
• Le frontend doit communiquer avec le backend via :
• [Link]
• Gestion correcte du format JSON
• Code structuré et lisible
• Commentaires recommandés
Livrables attendus :
1. Dépôt GitHub (obligatoire)
Le dépôt GitHub doit contenir :
• Le code source du frontend
2
• Un fichier [Link] incluant :
o Description du projet
o Technologies utilisées
o Instructions pour exécuter le projet
o Captures d’écran (optionnel)
o Lien vers la vidéo de démonstration
Chaque étudiant / binôme doit avoir son propre dépôt.
2. Vidéo de démonstration (5 à 8 minutes)
La vidéo doit montrer :
1. Présentation rapide du projet
2. Architecture globale (Frontend / Backend REST)
3. Démonstration des fonctionnalités :
• Liste
• Ajout
• Modification
• Suppression
• Recherche
4. Brève explication du code frontend
5. Lien avec les services REST développés en TP
Modalités de dépôt du projet :
Un espace de dépôt sera créé sur Google Classroom intitulé : Projet + Numéro du Groupe
(exemple : Projet Groupe 3 )
• Ce que vous devez déposer dans cet espace :
1. La vidéo de démonstration du projet
o Format libre (MP4 recommandé)
o Durée : 5 à 8 minutes
o La vidéo doit présenter :
▪ le fonctionnement de l’application
▪ les fonctionnalités réalisées
▪ la communication avec le backend REST
2. Le lien vers le dépôt GitHub
3
o Le dépôt doit contenir :
▪ le code source du frontend
▪ un fichier [Link]
o Le lien GitHub doit être :
▪ ajouté dans le commentaire du devoir Classroom
▪ également présent dans le [Link]
➢ Important
• Aucun fichier source ne doit être déposé sur Classroom :
Le code doit être uniquement sur GitHub.
• Le projet peut être réalisé individuellement ou en binôme
• Un seul dépôt par groupe est suffisant
➢ Attention
Tout projet :
• sans vidéo
• sans lien GitHub
• ou déposé dans un mauvais espace
• hors delais
sera considéré comme incomplet.
Critères d’évaluation (indicatifs) :
Critères Points
Fonctionnalités complètes 40%
Qualité de l’interface 20%
Consommation correcte des services REST 20%
Organisation du code & GitHub 10%
Qualité de la vidéo 10%