Projet composants entreprise M2 Miage Nice 2010-2011

De $1

Version de 22:26, 19 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Introduction

Il n'y a pas un mais plusieurs sujets de projet EJB cette année ! Vous choisirez en fonction de votre niveau, de vos envies, etc

1 - Réalisez le site d'une banque

Il s'agit du sujet le plus "bateau", du plus "scolaire". Il s'adresse soit à ceux qui se sentent un peu en difficulté dans cette matière, soit à ceux qui veulent vite se débarasser du projet de ce module pour faire quelque chose de différent dans le cours sur le web 2.0, qui va suivre.

Vous complèterez le TP que vous avez rendu sur les comptes bancaires, avec la contrainte de gérer les points suivants (vous pourrez vous aider pour certains, du projet IGift donné en exemple, qui est une mine d'informations).

  1. Vous devrez gérer des sessions utilisateurs, avec connexion par login/password. Regarder Igift ou les TPs de l'année dernière dans le module application web. Une fois loggué les champs pour entrer le login et le password ne sont plus affiché, puisqu'une session est ouverte.
  2. Vous appliquerez un "layout" aux pages, avec un menu sur la gauche et un bandeau au-dessus. Inspirez-vous de Igift si vous ne savez pas comment faire.
  3. Vous devrez gérer plusieurs types de comptes bancaires, avec de l'héritage entre entity beans. Vous devrez proposer d'afficher tous les comptes ou seulement un type de compte particulier.
  4. On pourra consulter ses propres comptes (en fonction du login/password), mais pas ceux des autres.
  5. On ne pourra transférer de l'argent qu'entre ses propres comptes bancaires.
  6. L'administrateur (repéré par son login/password, prenez admin/admin par ex) est le seul qui peut créer des clients, des comptes, les supprimer, etc.
  7. OPTIONEL/OPTIMISATION : vous gèrerez la liste des comptes d'un client (dans le cas où un client est loggué) à l'aide d'un stateful session bean (ComptesDuClient.java) qui contiendra la liste des comptes, ce bean sera placé dans la session HTTP de manière à ne pas avoir à faire de em.find ou de recherche chaque fois qu'on fera une manipulation sur un compte (transfert par ex).

2 - Réalisation d'un serveur de musique en streaming

Imaginez que vous vouliez écouter vos mp3 situés chez vous depuis une page web ou un téléphone. Un Itunes dans une page web ! On veut pouvoir parcourir les chansons, les artistes, les albums, les favoris, par années etc.. En gros, une navigation selon les tags ID3 (il existe plusieurs librairies qui savent les extraire en java). Mais comme certains préfèrent organiser leurs mp3 en répertoires et sous répertoires, on fera une double classification : par tags ID3 mais aussi par répertoires et noms de fichier.

On veut pouvoir aussi faire des playlists (des listes de lecture) pour jouer des morceaux dans un ordre pré-établi.

Plus tard dans la partie "amélioration à la web 2.0", dans le cadre du projet web 2.0 on voudra partager ces playlist avec des amis, il faudra donc gèrer des amis, des invitations, des listes de partage. Les amis voudront voir les derniers ajouts, etc. Cette partie est facultative pour le moment, à moins que vous ne souhaitiez en tenir compte dès maintenant pour le modèle de données et les services.

Ce projet sera rendu "en l'état" lors de la date limite de remise du projet EJB mais il est clair qu'il sera "ré-évalué" si à la fin du cours web 2, vous avez modifié la partie back end et qu'elle est nettement plus aboutie. En effet, ce projet est prévu pour être aussi le projet du cours web 2.0 (on y adjoindra des web services REST pour le rendre utilisable par des clients externes par ex sur téléphone). Les parties requises pour la partie web 2.0 seront précisées plus tard. Pour le moment concentrez-vous sur la partie back-end et proposez une interface web simple pour tester les fonctionnalités.

Si on utilise la méthode de conception agile, on peut déterminer l'ordre dans lequel les fonctionnalités de base devront être implémentées (vous devez les tester dans cet ordre au fur et à mesure de l'implémentation, on ne passe pas à la suite tant qu'une fonctionnalité ne marche pas).

Vous pourrez vous inspirer du logiciel open gratuit subsonic.org par exemple, pour trouver des idées.

Priorité Nom
10 En tant qu’utilisateur, je peux visualiser la liste des catégories
20 En tant qu’utilisateur, je peux visualiser la liste des artistes
30 En tant qu’utilisateur, je peux consulter la liste des albums d’une catégorie
40 En tant qu’utilisateur, je peux consulter la liste des albums d’un artiste
45 En tant qu’utilisateur, je peux consulter la liste des pistes d’un album
50 En tant qu’utilisateur, je peux rechercher un album
60 En tant qu’utilisateur, je peux consulter la liste des playlists enregistrées
70 En tant qu’utilisateur, je peux charger une playlist existante
80 En tant qu’utilisateur, je peux créer et enregistrer une nouvelle playlist
90 En tant qu’utilisateur, je peux ajouter des pistes à une playlist
95 En tant qu’utilisateur, je peux réordonner les pistes d’une playlist
97 En tant qu’utilisateur, je peux enlever des pistes à une playlist
100 En tant qu’utilisateur, je peux sauvegarder une playlist
110 En tant qu’utilisateur, je peux supprimer une playlist

 Projet No 3 : rien de tout cela, il s'agit soit d'un projet personnel, soit d'un Delicious-like

Le troisième sujet est ouvert à vos suggestions. Profitez de cette ouverture pour commencer le prototype de votre projet de création d'enteprise...

L'autre possibilité est de "booster aux EJBs" le serveur de type Delicious que nous allons manipuler dans le prochain cours sur le web 2.0 Delicious.com est un site permettant de stocker ses bookmarks sur le serveur de delicious.com, de partager ses bookmarks et de les "tagguer", c'est-à-dire leur associer des mots clés pour les retrouver plus facilement. Nous allons en TPs refaire un mini delicious. Vous pourrez dans le cadre du cours web 2 choisir d'en faire le projet final. Si vous utlisez des EJBs pour implémenter le back end (ce qui est relativement facile une fois qu'on a compris le modèle de données), ce projet pourra compter pour les deux modules. Posez moi des questions si vous ne connaissez pas delicious.com

Modalités de remise du projet

Date limite : le mardi 16/11. Vous me ferez des démos le mardi matin de 8h à 10h en salle 316. Comme pour le TP3 : vous me rendrez un zip portant votre nom.

Le zip (ou rar) devra contenir :

  1. Les sources du projet, faites un clean avant, pas la peine de me rendre des .class
  2. La base de données,
  3. Un readme d'explications, qui contient un résumé de ce que vous avez fait : points forts, points faibles, logins passwords, nom de la base, log et pass de la base, etc
  4. Des photos d'écrans.
  5. Si votre projet est particulièrement réussi, j'aimerais aussi avoir une petite vidéo sur youtube qui montre votre projet en train de fonctionner. Vous pouvez trouver des logiciels comme camtasia qui permettent de faire des captures d'écran et d'exporter des vidéos. Pas la peine si votre projet n'est pas très beau ou tout juste correct.