TP8 : gestion des relations, début du mini projet

De $1

Introduction

Supports de cours

  1. IntroAuxEntityPart1.ppt
  2. IntroAuxEntityPart2.ppt

Sujet du mini-projet

Vous allez commencer le mini projet tout en approfondissant les concepts vus lors du TP précédent. Le but du mini projet est de réaliser un magasin de vente de films DVDs/BlueRay. Vous pourrez vous inspirer des fonctionnalité du projet IGift qui vous a été donné à l'étude, mais pour ce projet, vous ne ferez qu'une application web (pas un projet en trois morceaux), vous n'utiliserez pas l'héritage pour typer les films à la vente, uniquement des relations similaires à celles vues en cours.

Vous ne ferez pas d'héritage, mais de la délégation !

Vous partirez des classes pour générer les modèles de données, pas le contraire !

  • Chaque film a une description d'une ligne (ex : les experts, Manhattan, vol 2),
  • La liste des Acteurs, RELATION
  • Le Réalisateur, RELATION
  • Un prix, 
  • Un résumé,
  • Une photo de jaquette,
  • Les films ont au moins un genre : série télé, film action, film aventure, film policier, spectacle, etc. RELATION ou ENUMERATION (cf IGift)
  • Une quantité en stock,

Les acteurs et le réalisateur ont un nom, une description de quelques lignes et la liste films dans lesquels ils jouent.

Facultatif :

Une fois que le minimum fonctionne :

  • Une description détaillée (à vous de voir : acteurs, réalisateur, année, format pal/ntsc, langues audio, langues sous-titre, durée, etc à vous de voir, mais démarrez très simplement, comme pour IGift)
  • Les films appartiennent à une ou plusieurs rubriques : nouveautés, actuellement au cinéma, sortis en 2010, coffret collector, etc

Inspirez vous de allocine.fr par exemple, mais simplifiez un max.

Fonctionnalités

Fonctionnalités attendues similaires à IGift, mais vous pouvez revoir l'ergonomie. (en particulier, avoir une interface user et une interface admin (facultative), qui se déclenchent en fonction du login/password dans un bandeau en haut).

  • Affichage des films, tous ou par catégories, plus si vous avancez bien (voir les nouveautés, etc),
  • Recherche de films par mot clé (recherche dans la description),
  • Gestion d'un panier et des commandes, penser à diminuer le stock,
  • Passage de la commande, ajout dans la liste des commandes.
  • Un utilisateur a une liste de commandes (relation 1-N), une commande correspond au contenu d'un panier + date et prix total.

Facultatif : interface admin :

L'admin peut créer des comptes utilisateurs, à moins que vous ne préfériez réaliser une interface d'inscription (simple si possible, ne faites pas aussi compliqué que IGift, sauf si vous le sentez). L'admin peut ajouter des films en base. 

Conseils pour le développement, travail à faire aujourd'hui !

Nous allons commencer cette semaine la partie métier et une partie basique de la partie serveur ensembles. La semaine prochaine nous continuerons ensembles pour la partie interface utilisateur...

Implémentez rapidement les fonctionnalités de base (ajout de films sans relations, affichage) puis ajoutez de la fonctionnalité, si votre persistence manager est en mode "supprimer et créer" il supprimera les tables et les recréera, ce qui permettra à vos modèles d'évoluer.

  1. Si vous l'avez bien compris, pourquoi ne pas repartir du TP précédent avec les Utilisateurs et la BD...
  2. Rajoutez un modèle pour les films, prenez un modèle très simple ! Sans relations !
  3. La première chose à écrire est une fonctionnalité qui permet PAR PROGRAMME de peupler la base avec un jeu de test. Dans la Servlet qui sera appelée au début, par exemple, implémentez une action qui appelle la méthode peupleLaBaseFilmsAvecJeuDeTest() dans un gestionnaireDeFilms, et peupleLaBaseUtilisateursAvecJeuDeTest() dans le gestionnaireDePersonnes. Croyez moi, vous en aurez besoin !!!
  4. Exécutez la servlet avec les actions du point précédent et vérifiez que la base est bien peuplée,
  5. Rajoutez une JSP pour afficher les personnes mais aussi les films (en gros, si vous êtes repartis du TP précédent, vous pouvez réutiliser index.jsp en la complétant)
  6. Rajoutez maintenant la REALISATEUR, pour cela crééz un modèle Realisateur (une entité) qui contiendra un Id et une description de type String et rajoutez dans le modèle Film un attribut de type Realisateur. Si la relation est bi-directionnelle rajoutez dans la classe Realisateur une collection de films.
  7. Complétez les méthodes qui peuplent le jeu de test pour créer maintenant des users, des films (avec réalisateur) et des réalisateurs (avec films). Testez, vérifiez que la base de données est correcte, modifiez la jsp pour qu'elle affiche par film les réalisateurs,
  8. etc.