Git Product home page Git Product logo

deveoir-tp-gi4's Introduction

Aspects fonctionnelles (15 points)

TLDR; Une application de gestion d'allocation et de restitution de matériel.

Il doit y exister 2 types d'utilisateurs : Administrateur et Employée

  • Un administrateur a tous les privilèges sur les matériels : Ajout, Suppression, Modification, Listing ...
  • Un Employée peut seulement allouer un matériel pour une durée donnée, et le rendre par la suite.

L'application contiendra donc une table User qui comprend les informations : username, password, role ... (Pour but de simplification, insérer les utilisateurs par script sql lors du lancement de l'application, )

Chaque type de matériel se voit avoir une quantité de stock : 5 tables toutes allouées veut dire que la prochaine allocation ne sera pas possible.

Scénario nominal 1:

Un utilisateur ayant le rôle employée se connecte à l'application en fournissant le couple (username, password). Si la connexion est réussie, alors on lui affiche le menu :

  1. Chercher un matériel;
  2. Allouer un matériel;
  3. Rendre un matériel;
  4. Afficher la liste des matériels alloués par lui même
  5. Afficher la liste de tous les matériels

et d'après son choix on effectue les traitements nécessaires;

Scénario nominal 2 :

Un utilisateur ayant le rôle administrateur se connecte à l'application en fournissant le couple (username, password). Si la connexion est réussie, alors on lui affiche le menu :

  1. Chercher un matériel;
  2. Créer un nouveau matériel;
  3. Supprimer un matériel;
  4. Modifier les informations d'un matériel
  5. Marquer un matériel indisponible
  6. Allouer un matériel;
  7. Rendre un matériel;
  8. Afficher la liste des matériels alloués par lui même
  9. Afficher la liste des matériels alloués par chaque utilisateur
  10. Afficher la liste de tous les matériels et d'après son choix on effectue les traitements nécessaires;

Scénario non-nominal 1 :

Un utilisateur fournit un couple (username, password) qui est erroné

  1. Lui afficher un message d'erreur convenable;
  2. Lui proposer de ressaisir ses informations ou bien quitter l'application.

Scénario non-nominal 2 :

Un utilisateur veut allouer un matériel non disponible ou épuisé

  1. Lui afficher un message d'erreur convenable;
  2. Lui réafficher le menu initial correspondant;

Aspects techniques (15 points)

  1. Foker le repo suivant, https://github.com/BelmoMusta/DEVEOIR-TP-GI4 pour soumission de travail, créer un PR sur github dont le titre sera votre nom complet;
  2. Créer les tables nécessaires, et aussi les relations entre elles;
  3. Respecter la décomposition des couches : dao, service, controller ....;
  4. Prévoir les beans spring nécessaire, et les injecter aux bons endroits;
  5. Utiliser JdbcTemplate avec les mappers nécessaires;
  6. Externaliser, à la limite du possible, les messages en dur sur des fichiers properties et les charger au démarrage;
  7. Prévoir un schéma d'héritage entre les entités;
  8. Utiliser le pattern publisher-listener uniquement pour la création et la modification des entités;
  9. Un point pour un code réfactoré x
  10. un point pour un code clean ( nommage, structure, SOLID, ...etc)

Bonus : 10 points

  1. Hasher les mots de passes des utilisateurs en utilisant un algorithme asymétrique (bCrypt par exemple)
  2. Utilser l'AOP pour gérer l'authentification;
  3. Utiliser une table de rôles : un utilisateur peut avoir plusieurs rôles à la fois;
  4. créer des test unitaires avec Junit.

deveoir-tp-gi4's People

Contributors

khattalamohammed avatar belmomusta avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.