M1 miage application web - réaliser un site de vente en ligne de dvd/blurays

De $1

Sujet du mini-projet

 

Vous allez commencer le mini projet tout en approfondissant les concepts vus lors des TPs précédenst. Le but du mini projet est de réaliser un magasin de vente de films DVDs/BlueRay. 

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 2012, coffret collector, etc

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

Fonctionnalités

Présentation

  • Template sympa (menu à gauche, bandeau de login/password en haut).

Se ballader dans le catalogue des films :

 

  • Affichage des films, pagination obligatoire, plusieurs pages de films doivent être disponibles dès le déploiement (vous devrez pré remplir la BD avec une classe annotée par @WebListener comme vu lors du cours sur les Servlets)
  • Possiblilité de n'afficher que les films d'une catégorie (ou plusieurs, à vous de voir)
  • Recherche par mot clé sur le titre, acteur, réalisateur, année, description, 
  • Afficher si un produit n'est pas disponible.

Gestion de panier, passage de commande

 

  • Si on est pas loggué, on peut browser le catalogue, mais aussi remplir un panier avec les films que l'on veut acheter (le pannier sera dans la session HTTP, même si on est pas connecté).
  • Si on passe une commande, alors on doit être connecté, l'indiquer clairement dans la page qui sera affichée à ce moment là. Proposer aussi de s'inscrire à ce moment, si ce n'est pas déjà fait.
  • Penser à diminuer le stock, vider le panier et la session lors du passage de la commande. Si un panier est plein, ne pas vider le stock tant que la commande n'est pas passée.
  • Facultatif : gèrer l'historique des commandes, ajout de la dernière commande 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. L'admin peut ajouter des films en base, des photos, etc. Si vous êtes plus de 2 dans le projet, une telle interface est attendue.

Conseils pour le développement

Commencez par la partie métier, testez rapidement avec un main le remplissage de la base et les fonctionalités les plus simples, sans forcément faire d'interface graphique. Profitez des TPs qui nous restent pour aborder les points pouvant être bloquants.

Implémentez rapidement les fonctionnalités de base (ajout de films sans relations, affichage) puis ajoutez de la fonctionnalité au fur et à mesure, 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.