Amosse EDOUARD > MBDS HAITI 2014-2015 > Mini Projet JavaEE Master 2 MBDS Haiti 2014-2015

Mini Projet JavaEE Master 2 MBDS Haiti 2014-2015

De $1

Introduction

Le mini projet sera la continuation des TPs 3 et 4 avec quelques contraintes supplémentaires. La date limite est fixée au 4 septembre 2015 (avant minuit heure d'Haiti). Utilisez un gestionnaire de version et envoyez moi le lien du projet à la date limite, n'oubliez de me donner accès au dépot ainsi que de créer un fichier readme expliquant comment déployer et tester votre projet.

Sujet

Un gestionnaire de compte bancaire comme dans les TPs. L'objectif du mini projet est que vous terminiez l'application commencée dans les TPs, en y ajoutant les points suivants (obligatoires) ainsi que d'autres fonctionnalités à votre convenance.

  1. On aura un modèle de données qui dit "on a des clients, chaque client peut avoir un ou plusieurs comptes bancaires, chaque compte est relié à la liste des opérations qui ont eu lieu sur le compte: type (création, débit, crédit, transfert, montant).
     
  2. On aura au moins deux types de comptes bancaires, avec de l'héritage: compte courant, compte épargne qui rapporte de l'argent (avec un taux annuel et une méthode ajouteInterets() dans la classe entité CompteEpargne, autres (compte joint, facultatif...)
     
  3. La base de données doit être remplie dès le déploiement
    • On veut au moins 50 clients et 500 comptes au démarrage, et quelques opérations pour chaque compte. Les tableaux affichés au démarrage doit être plein sur au moins 10 pages !!!!! Vous pourrez générer des données de manière aléatoire ou à l'aide du site web http://www.generatedata.com/
       
  4. Facultatif mais très apprécié (des points en plus), on veut du Lazy Loading dans les datatables PrimeFaces
     
  5. L'application doit utiliser au moins un template avec un menu à gauche, un header en haut et le contenu principal au centre. Vous pouvez très bien utiliser plusieurs templates, ou des templates clients de templates, ou encore des templates de Primefaces, si vous en avez envie.
     
  6. Gestion de login/password. Lorsqu'on se connecte pour la première fois sur l'application, on ne peut rien faire à part s'identifier, dans la partie "header" du template on aura un message invitant à s'identifier par login/password. Vous utiliserez pour cela un jsf managed bean avec @SessionScoped pour maintenir une propriété "connected", comme dans l'exemple JSFLoginPassword donné dans la page principale du cours. On utilisera des attributs "rendered=..." à divers endroits des pages xhtml pour afficher ou ne pas afficher du contenu si on est pas connecté.
     
  7. Pour tranférer de l'argent ou retirer/déposer, on veut une solution ergonomique (on en veut pas taper l'id des comptes mais choisir dans le tableau ou dans une liste déroulante (l'utilisation de l'autocompletion sera un plus). Primefaces propose plusieurs solutions.
     
  8. Vous devrez utiliser au moins 5 composants primefaces non vus en cours, notamment ceux permettant d'afficher des messages de confirmation ou des messages d'erreur après chaque opération.
     
  9. On distinguera le compte administrateur des comptes de clients ordinaires de la banque
    • L'administrateur peut créer, modifier, supprimer des clients et des comptes, il peut tout faire, ajouter de l'argent à n'importe quel compte en retirer, transférer de l'argent entre deux comptes quelconques, ajouter un compte à un client existant, etc. Il ne pourra supprimer un compte que si le solde est égal à 0
    • Un client ordinaire ne peut voir que ses propres comptes, il peut transférer de l'argent entre ses comptes ou sur d'autres comptes (La gestion d'une liste de bénéficiaire sera un plus). Ce n'est pas réaliste, mais il peut aussi déposer ou retirer de l'argent de ses comptes.
       
  10. Web Services : Afin de faciliter le developpement des clients mobiles, vous devrez exposer les fonctionnalités developpées précédemment dans un web service.  Utilisez  l'utilitaire de génération de services web dans Netbeans pour générer les méthodes CRUD sur les entités puis ajoutez les fonctionnalités manquantes. 
    1. Toutes les méthodes du web service acceptent et\ou renvoient des données au format JSON 
    2. Gérer les erreurs 
    3. Ajouter de la sécurité sera un plus

Conseils

  • Faites toujours un mini proto qui teste la base de donnés, puis qui la remplit. C'est la première chose à faire, bien avant de penser au projet Web. Je déploie je regarde que mes tables sont là et mes données aussi. On travaille en "drop and create" et remplissage des tables au déploiement tant qu'on a pas fini le projet à 99%
     
  • Quand je rajoute une fonctionnalité je fais toujours dans cet ordre:
    1. Je modifie le modèle s'il y a besoin, et dans ce cas je modifie la génération des données de test s'il y a besoin. Je déploie et je vérifie que tout est ok.
    2. Je rajoute éventuellement des fonctionnalités dans les EJB sessions.
    3. Je modifie mes JSF backing beans ou j'en crée un nouveau, dans lequel je vais définir les propriétés/modèles qui serviront à l'affichage de valeurs ou à la saisie (je fais des getters/setters), j'écris les méthodes appelables par la vue.
    4. En dernier je fais la page XHTML. 
    5. Je teste au fur et à mesure, il ne faut surtout pas coder plein de trucs et tester un jour après.

Modalités de travail et de rendu

Ne vous y prenez pas au dernier moment pour avoir un proto qui marche meme avec 5% des fonctionnalités. Il faut au moins que la base de données soit remplie tant que vous n'avez pas oublié comment ça marche :-)

 IMPORTANT (rappel) : il est préférable de rendre une application qui fonctionne et qui est facile à utiliser, même si elle a peu de fonctionnalités, plutôt qu’une application qui a de nombreuses fonctionnalités mais qui n’est ni robuste, ni fiable, ni ergonomique.

Comment rendre le projet

  1. Formez des groupes de quatre 
  2. M'ajoutez comme participant sur votre dépot git (mon identificant github et bitbicket eamosse@gmail.com)
  3. Envoyez le lien de votre projet sur le serveur de versionning à eamosse@gmail.com
  4. Créez un fichier readme expliquant comment déployer le projet 
  5. Optionnellement vous pouvez fournir le dossier de conception de votre application (ce sera un plus). 

SI VOUS AVEZ UN SUPER PROJET, UNE VIDEO YOUTUBE EST UN GROS PLUS !!!!! 

Mots clés:
 
Images (0)
 
Commentaires (0)
Vous devez être connecté pour poster un commentaire.