Projet JavaEE pour MBDS Haïti 2012-1013

De $1

Sujet :un gestionnaire de compte bancaires en ligne

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

 

Modifier la sectionVous complèterez le TP 4  sur les comptes bancaires, avec la contrainte de gérer les points suivants :

  1. Vous devrez gérer des sessions utilisateurs, avec connexion par login/password. 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. Si on se loggue admin on a accès à toutes les fonctionnalités, à tous les comptes, à tous les utilisateurs. Si on se loggue en tant que client de la banque on a accès qu'à ses comptes, on peut déposer/retirer/transférer mais que sur ses comptes. On ne peut pas créer/supprimer de compte.
  2. Vous appliquerez un "layout" aux pages, avec un menu sur la gauche et un bandeau au-dessus, en utilisant les templates (cf tp2) ou bien des composants de layout de la librairie PrimeFaces (comme dans les démos en ligne sur primefaces.org)
  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. 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. Pour le compte courant, vous simulerez à l'aide d'un EJBTimer le fait que toutes les 10 secondes le compte rapporte de l'arge
  4. 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".
  5. 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 les ids des comptes.
  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. Lui seul peut tout voir, tout faire.
  7. BONUS : l'affichage de la liste des comptes devra utiliser un système de "Lazy Loading" pour afficher les comptes dans une datatable, voir les exemples de datatables primefaces sur leur site. 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. Dans la correction du TP3 de Goulby ou la correction du projet attachée à cette page, vous avez des exemples.
  8. J'aimerais au moins 4 pages de données: 40 comptes, 10 utilisateurs...
  9. BONUS : au moins 500 comptes bancaires et 50 utilisateurs, vous pourrez utiliser le site http://www.generatedata.com/ pour générer un .csv avec des comptes ou mieux, transformer le .csv en code Java pour inclure dans un EJB @SIngleton @Startup comme on a fait en TP. 

A propos des corrections attachées à cette page

La correction du projet de Scoffier correspond à tout ce qui vous est demandé. Vous pouvez étudier le code, vous en inspirer et intégrer à votre propre projet ce que vous trouvez dans les corrections. Simplement indiquez-le dans un petit rapport.

Je donne aussi des corrections des TPs, vous les avez eues sur la clé USB que je vous avais disrtribuée en cours.

Modalités de rendu

Le projet est à faire en binôme. Les archives du projet seront déposées dans un dossier dropbox que vous me communiquerez par email. La date limite est le 20 Août 2013. 

Chaque archive devra avoir un nom comme ceci : M2_MBDS_HAITI_NOM1_NOM2.zip et contiendra :

  • Le projet netbeans. Faites un "clean" avant de le compresser, il sera moins gros. 
  • Un rapport en .txt, .doc ou .pdf expliquant ce que vous avez fait, les logins, passwords, les points forts, les points faibles, etc. ce que vous avez trouvé sur le net, réutilisé d'un autre projet, etc.

Je me débrouillerai pour créer la base, je sais trouver le nom, login, password, etc. Le projet doit impérativement créer des données de test soit lors du déploiement, soit en cliquant sur un bouton. Comme en TP.