Gestion d'un club d'escalade
Introduction
Le but de cette page est de présenter le projet qui va servir de base à votre évaluation dans cette unité d'enseignement. Ce projet est à rendre en groupe de deux étudiant(e)s (les monômes sont exceptionnellement acceptés).
Le club d'escalade : Cahier des charges
L'objectif du mini projet est simple : gérer à l'aide de la technologie JEE un catalogue des sorties proposées par un club d'escalade. Plus précisément,
- Un membre du club est défini par un identifiant, un nom, un prénom, une adresse électronique et un mot de passe.
- Une sortie est représentée par un ensemble d'informations : identifiant, nom, description, site WEB, date de la sortie et le membre créateur de cette sortie.
- Chaque sortie est associée à une catégorie (par exemple, Alpinisme de roche, Alpinisme de neige, Alpinisme mixte, Escalade sportive, Randonnée du vertige, Terrain d'aventure). Une catégorie a donc un nom et un identifiant.
- Initialement, l'application va créer un jeu de données de test (membres, catégories et sorties).
- Un visiteur (non authentifié) doit avoir accès à une liste des catégories, une liste de sorties de chaque catégorie et une vue détaillée de chaque sortie (sauf site WEB et créateur). Une fonction de recherche doit être offerte.
- L'application doit être fonctionnelle si nous avons plusieurs milliers de sorties, plusieurs dizaines de catégories et plusieurs centaines de membres (il faut le montrer).
- Chaque membre doit pouvoir s'authentifier.
- Les membres authentifiés peuvent faire la même chose que les visiteurs mais ils ont accès à toutes les informations (y compris les sites WEB et les créateurs et les sorties proposées par chaque membre).
- Chaque membre authentifié peut créer, détruire et modifier ses sorties.
- Il faut prévoir un mécanisme de récupération du mot de passe.
- Si vous avez besoin d'envoyer
un mail pour le mécanisme de récupération d'un mot de
passe, je vous conseille :
- d'utiliser Spring Mail pour envoyer le mail,
- d'utiliser le serveur Java Fake SMTP (aussi disponible ici) pour lancer un faux serveur SMTP qui vous permet facilement de suivre les messages envoyés,
- de configurer Spring Mail et Fake SMTP pour utiliser la machine locale (localhost) et le port 10025.
Étape 1 : Stockage (DAO/Spring/JPA) : Lots 1 et 2
- Conception et création des JavaBeans permettants de représenter les données de l'application.
- Utilisation de la technologie Spring-data/JPA pour gérer la persistance des JavaBeans.
- Les fonctions attendues de la
DAO pourraient être :
- Obtenir la liste des catégories,
- Obtenir une catégorie avec ses sorties,
- Créer une catégorie,
- Obtenir les détails d'une sortie,
- Chercher des sorties en fonction de critères,
- Obtenir la liste des membres,
- Obtenir un membre particulier,
- Obtenir un membre particulier avec ses sorties,
- Créer, modifier et supprimer une sortie,
- Créer et modifier un membre
- Vous devez absolument prévoir une classe de test unitaire Junit afin de valider les méthodes offertes par votre implantation.
- Vos composants (DAO, DataSource, tests JUnit) doivent absolument être connectés et paramétrés par une couche Spring-boot.
Étape 2 : Métier (Spring)
Cette étape consiste à mettre en place une couche métier basée sur Spring. Cette couche devra prendre en charge l'accès et la modification des données métier. Elle assure
- l'authentification des membres (attendre de découvrir les fonctionnalités de Spring-Security,
- la modification des données,
- l'accès aux données.
Étape 3 : Présentation (JSP/SpringMVC)
Cette étape consiste à mettre en place une application WEB basée sur la technologie Spring MVC/JSP qui respecte les contraintes suivantes :
- Votre application WEB sera construite autour du framework Spring MVC.
- Les réponses seront construites par des pages JSP. Dans la mesure du possible utilisez les balises de contrôle de la JSTL (boucles, tests et affichage).
- Les aspects de sécurité seront traités par Spring-Security.
- Faites en sorte que votre application produise des pages HTML 5 valides accompagnées d'un framework CSS.
- Votre application WEB doit vérifier toutes les requêtes utilisateur avant de les exécuter.
Échéances
Bientôt.