Projet EMSI Marrakech 2010-2011

De $1

Version de 18:17, 24 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Sujet du projet

Vous devrez rendre une version améliorée du gestionnaire de compte bancaires que nous avons développé en TPs.

Dans ce projet, vous devrez compléter le TP en ajoutant les fonctionnalités suivantes :

  1. Ajoutez une table des clients de la banque
    1. Nous allons créer un entity bean Client qui va modéliser un client de la banque, avec son id, son nom, son prénom, son adresse, son téléphone.
    2. Des relations uniront un client et son (ses) compte(s).
    3. On veut pouvoir lister tous les clients, faire des recherches par client, et bien sûr, pour chaque client, voir ses comptes, et pour chaque compte, voir l'historique !
       
  2. Gérer une connexion/deconnexion par login/password et ne pas redemander de s'identifier à chaque fois. Vous devrez donc gérer dans la session utilisateur le fait que l'on est loggué ou pas (voir session HTTP dans vos cours web ou sur google).
     
  3. Selon que l'on est identifié comme administrateur ou comme utilisateur classique, on aura accès à des fonctionnalités différentes :
    1. l'administrateur peut créer des comptes, en supprimer, créer des clients, en supprimer, ajouter ou enlever de l'argent sur les comptes, transférer, etc... et ce sur tous les comptes. C'est en gros ce que l'on a fait dans le TP.
    2. Un utilisateur ne peut gérer que ses propres comptes : les consulter, transférer de l'argent.
       
  4. On devra gérer plusieurs types de comptes avec de l'héritage : la classe CompteBancaire du TP deviendra abstraite, et vous ferez des sous classes pour un compte courant, un compte épargne, (le montant augmente comme un compte épargne) un compte joint, (plusieurs utilisateurs propriétaire)
    1. Vous devrez utiliser l'héritage et le polymorphisme ! Et une requête polymorphe permettant de voir tous les comptes d'un client, quel que soit le type de compte !
    2. On devra pouvoir afficher tous les comptes ou seulement les comptes d'un certain type.
    3. Vous utiliserez pour la génération des tables une des stratégies vue en cours, qui supporte le polymorphisme.

Obligatoire : remplir la base de données dès le lancement (ou fournir un lien dans la page principale) : au moins 20 comptes, 5 clients, des opérations, etc etc.... pas  juste 4 comptes....

Facultatif :

  1. +++ effectuer l'opération de transfert bancaire par envoi de message JMS à un message driven bean qui est client du gestionnaire de compte bancaires. Comme dans le TP4.
  2. ++ vous pouvez vous inspirer des projets et exemples donnés en cours pour proposer une présentation plus agréable (avec templating : menu sur la gauche ou en haut, etc).
  3. + gérer les alertes (+ demande de confirmation) si un transfert risque de rendre le montant d'un compte négatif
  4. + simulez de manière simplifiée le fonctionnement des agios sur le compte courant et de l'épargne sur le compte épargne.
     

Conseils pour le développement

Implémentez rapidement les fonctionnalités de base 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.
Pour la fonctionnalité qui permet PAR PROGRAMME de peupler la base avec un jeu de test conséquent. Dans la Servlet qui sera appelée au début, par exemple, implémentez une action qui appelle la méthode peupleLaBaseXXXAvecJeuDeTest() dans un gestionnaireDeXXX,

Modalités de rendu

  • Vous travaillerez en binome (+ 1trinome),
  • Vous rendrez un répertoire intitulé Projet_EMSI_Marrakech_nom1_nom2_nom3 qui contient :
    1. Votre projet netbeans (faites un clean project avant, cela réduira sa taille),
    2. La base de données (prenez-là dans netbeans-derby, voir tp2 pour créer une base de données), donnez lui un nom qui contient vos noms de binome afin que tout le monde n'ait pas les memes noms,
    3. Un fichier word avec explications, les noms du binôme, description de l'architecture du projet netbeans, le nom de la base de données sur laquelle vous travaillez, comment il faut l'utiliser, logins, passwords pour tester, photos d'écrans, etc.
  • Date limite : le 28 mars
  • Ce répertoire doit être rendu au responsable de la collecte des projets. C'est lui qui le mettra dans un gros répertoire qui compressé (en rar ou  en zip) et déposé quelque part où je puisse le récupérer (serveur ftp, page web, répertoire partagé dropbox, à vous de choisir)

Je récapitule : à la fin, le responsable m'envoie un mail avec un lien, je récupère le lien, le dezippe, et dedans  j'ai tout ce qu'il faut pour corriger le projet. Si le 28 mars 20h00 je n'ai pas le fichier je mets zéro à tout le monde !