Introduction
Vous allez réaliser un gestionnaire de comptes bancaires qui est la suite des TPs. Mais avec des relations clients-comptes-opérations bancaires, + gestion de connexion, beaucoup de données (plusieurs pages de comptes, de clients, etc) et aussi que ce soit joli !
Réalisez le site d'une banque
Vous complèterez le TP 4 sur les comptes bancaires, avec la contrainte de gérer les points suivants :
- Vous devrez gérer des sessions utilisateurs, avec connexion par login/password (voir http://fr.w3support.net/index.php?db=so&id=257941 par ex). Une fois loggé, les champs pour entrer le login et le password ne sont plus affichés, puisqu'une session est ouverte. Voir le projet d'exemple qui est sur la page du cours. Voir aussi le cours JSF2 sur les SessionScoped.
- Vous appliquerez un "layout" aux pages, avec un menu sur la gauche et un bandeau au-dessus, en utilisant les templates (cf tp2),
- 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. Ex : compte courant, compte épargne avec un taux d'intérêt, compte joint qui a deux propriétaires, etc. Bien entendu, faire de l'héritage signifie que vous ne devez pas avoir une variable String type !!!! Ou une énumération quelconque avec écrit en dur le type de compte.
- On pourra consulter ses propres comptes (en fonction du login/password), mais pas ceux des autres, lorsqu'on est connecté en tant qu'utilisateur "normal".
- On ne pourra transférer de l'argent qu'entre ses propres comptes bancaires. Vous utiliserez des listes pré-remplies ou des champs avec auto-complétion ou un autre système ergonomique. On ne veut pas ici de champs où on doit saisir la clé primaire des clés primaires.
- 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. Lui seul peut tout voir, tout faire.
- L'affichage de la liste des comptes devra utiliser un système de "Lazy Loading" pour afficher les comptes dans une datatable, comme dans certains des TPs faits par les étudiants. Si on a 500 comptes bancaires, on veut les afficher par exemple 10 par 10, chaque fois qu'on change de page on doit lancer une nouvelle requête. Voir par exemple les composants datatable de PrimeFaces (utilisés aussi par les tps qu'on vous a donné, faits par les étudiants de Nice).
- OBLIGATOIRE : au moins 200 comptes bancaires et utilisateurs, vous pourrez utiliser le site generatedata.com pour générer un .csv avec des comptes. Vous écrirez un petit parser qui lira ce fichier et créera des comptes et des utilisateurs. Technique : eh bien la méthode qui créée les comptes de test va lire ce fichier et faire des new Comptes... persist, etc.
Modalités de remise du projet
Date limite :début janvier lors de la prochaine mission de Michel Buffa pour le cours web 2.0/HTML5. Vous lui ferez des démos et lui remettrez le projet en mains propres. Vous devrez fournir un zip ou un rar portant votre nom, par exemple projetJavaEEMiageCasa-nom1-nom2.zip. Le projet est à faire en binome ou seul éventuellement. Si vous récupérez du code de certains de vos collègues ou sur le net, vous devez l'indiquer. Sinon ce sera assimilé à de la triche et vous serez sanctionnés. Vous avez parfaitement le droit de partager des bouts de code ou de réutiliser du code du net, il faut juste le dire.
Le zip (ou rar) devra contenir :
- Les sources du projet, faites un clean avant, pas la peine de me rendre des .class
- La base de données, (située dans user/nom du user/.netbeans-derby sous windows)
- 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
- Des photos d'écrans.
- 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.
Notes et archives des projets rendus (accès restreint)