Code Monkey home page Code Monkey logo

biblios's Introduction

Le projet est composé de 4 applications et d'une base de données:

  • un web service connecté à la base de données, qui expose son API par un WSDL.
  • une application client, pour les utilisateurs permettant d'envoyer des requêtes aux web service pour la gestion des livres (consultation, emprunt, réservtion, prolongation ...).
  • un batch qui envoie des emails de notifications aux personnes n'ayant pas retourné l'emprunt avant la date limite.
  • un batch qui envoie des emails aux emprunteurs dont la date limite de fin d'emprunt est proche.

Il est possible de lancer les 4 applications :

soit en tapant depuis le dossier source biblios : ./launch.sh ( en ayant rendu préalablement le fichier exécutable (chmod +x launch.sh))

soit individuellement:

1. Build le webservice afin de créér l'image Docker:

Depuis le dossier source (biblios), saisir en ligne de commande:

  • cd biblioback
  • mvn clean install

2. Déployer

Déployer le web service biblioback et la base de données dans un container

  • cd docker
  • docker-compose up

L'application est alors déployée dans un container accessible depuis le port 1111 de la machine hôte

3. Build l'application client et créer l'image docker:

se rendre dans le dossier biblioweb

  • cd ../../biblioweb
  • mvn clean install

4. Déployer

Déployer biblioweb dans un container

  • cd docker
  • docker-compose up

L'application est alors déployée dans un container accessible depuis le port 1112 de la machine hôte

5. Build le premier batch et créer l'image docker:

se rendre dans le dossier bibliobatch

  • _cd ../../bibliobatch
  • mvn clean install

6. Déployer

Déployer le batch dans un container

  • cd docker
  • docker-compose up

Le batch est alors déployé

7. Build le second batch et créer l'image docker:

se rendre dans le dossier expiring-soon-batch

  • cd ../../expiring-soon-batch
  • mvn clean install

8. Déployer

Déployer le batch dans un container

  • cd docker
  • docker-compose up

Le batch est alors déployé

biblios's People

Contributors

juliencauwet avatar

Watchers

James Cloos avatar

biblios's Issues

Créer un batch de rappel des prêts arrivant bientôt à expiration

Nous aimerions, en parallèle de la correction de la gestion des prolongations de prêt (cf ticket #2), ajouter un mécanisme de rappel aux usagers des prêts arrivant bientôt à expiration. Les usagers qui le souhaitent pourront activer une option (dans leur profil sur l’application web) qui leur enverra un mail de rappel 5 jours calendaires avant la fin de leur prêt. Le mail contiendra la liste de leurs prêts en cours qui arrivent à expiration dans 5 jours ou moins avec la date d’expiration associée à chaque prêt.

Cette option sera à activer par défaut pour tous les utilisateurs lors de la mise en production.

Cette demande n’est pas urgente, vous livrerez cette évolution en même temps que celle demandé dans le ticket #1.

Ajout d’un système de réservation d’ouvrage

Bonjour,
Nous souhaiterions mettre en place un système de réservation de livre pour les usagers.
Le principe est le suivant :
L’usager peut vouloir emprunter un livre dont aucun exemplaire n’est actuellement disponible (ils sont tous en cours de prêt). Il a donc la possibilité de réserver l’ouvrage. Le premier à avoir réservé aura la priorité de la réservation dès le retour d’un exemplaire. Chaque ouvrage (titre, pas exemplaire) aura donc une liste d’attente de réservation. Dès qu’un exemplaire est de retour à la bibliothèque, un mail est envoyé au premier usager de la liste et il dispose de 48h pour venir le chercher. Passé ce délai, sa réservation est annulée et un mail est envoyé au suivant, etc.
Règles de gestions :
Tous les types d’ouvrages peuvent être réservés.
La liste de réservation ne peut comporter qu’un maximum de personnes correspondant à 2x le nombre d’exemplaires de l’ouvrage.
Il n’est pas possible pour un usager de réserver un ouvrage qu’il a déjà en cours d’emprunt
Quand un usager emprunte le livre réservé ou si le délai de 48h après la notification est dépassé, sa réservation est supprimée de la liste et le processus recommence pour l’usage suivant dans la liste
Sur l’application web :
Lors de la recherche d’ouvrage, pour ceux indisponibles, il doit y avoir la date de retour prévue la plus proche et le nombre de personnes ayant réservé l’ouvrage. Si la liste d’attente de l’ouvrage n’est pas complète, il doit pouvoir demander une réservation. Il sera alors ajouté à la liste d’attente
L’usager doit pouvoir avoir une liste des réservations qu’il a en cours avec pour chaque ouvrage la prochaine date de retour prévue et sa position dans la liste d’attente
L’usager doit pouvoir annuler une réservation
Avertissez-nous avant de livrer cette évolution afin que nous nous organisions. De plus cette demande n’est pas urgente et il est possible que nous vous demandions d’autres évolutions à embarquer en même temps dans la nouvelle version du système.

Bug dans la gestion des prolongations de prêt

Nous avons découvert un bug de la gestion des prolongations de prêt. En effet, un usager peut prolonger un prêt après la date butoir. Il ne doit pas être possible pour l’usager de prolonger un prêt si la date de fin de prêt est dépassée.

La correction de cette anomalie est urgente car elle nous pose de gros problèmes de gestion. Actuellement beaucoup trop de personnes attendent le mail de rappel pour prolonger leur prêt. Cela entraîne la plainte de certains usagers à qui nous avions communiqué une date de retour et qui se déplacent en bibliothèque pour rien car le prêt a été prolongé a posteriori.

Je vous demande de livrer une nouvelle version de l’application au plus vite afin de corriger ce bug mais sans inclure nos autres demandes en cours. Nous souhaiterions pouvoir mettre en production rapidement sans avoir à faire de recette sur les autres évolutions demandées.

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.