Skip to content

LearnToCode180/Microservices-Projet

Repository files navigation

Microservices-Project

Conception et implementation d'une application qui fait la gestion des ressources matérielles des différents départements d’une faculté en respectant l'architecture des microservices avec le framework Spring Boot.

Problématique

Le travail commence lorsqu’un département a un budget pour l’achat de ressources, le chef du département doit demander aux enseignants du département d’envoyer leurs besoins en termes de matériels. Après, le chef envoie ces besoins au responsable pour qu’il fasse un appel d’offre. Après les soumissions des fournisseurs. Le responsable doit pouvoir éliminer les mauvais fournisseurs, ceux qui n’ont pas respecté scrupuleusement leurs engagements auparavant, et leur envoyer le motif de leur élimination. Le chef du département doit aussi envoyer au responsable, la liste prévue des affectations des ressources en fonction des personnes du département. Les personnes des départements peuvent signaler au service de maintenance toute panne qui survient dans leurs ressources. Le service de maintenance peut alors intervenir auprès du département, son constat sera envoyé automatiquement au responsable qui doit l’envoyer par email au fournisseur de cette ressource lorsqu’il s’agit d’un défaut matériel et que la durée de garantie n’est pas encore terminée.

Acteurs

Voici les différents acteurs de l’application :

  • Employé (appartient à un département)
  • Chef de département
  • Responsable de ressources
  • Service de maintenance
  • Fournisseur

Microservices

Il y a dix microservices :

  • Microservice d'Authentification
  • Microservice des Fournisseurs
  • Microservice des Besoins
  • Microservice des Appels d'offres
  • Microservice des Affectations
  • Microservice des Ressources
  • Microservice des Maintenances
  • Microservice des Constats
  • Microservice des Motifs
  • Microservice des Soumissions

Le travail est divisé par cinq, chacun prend deux microservices et moi j'ai pris les deux microservices des Affectations et de ressources.

Design Patterns utilisés

  • Service per team
  • Discovery Server (Eureka Server)
  • Database per Sevice
  • Load Balancing
  • Api Gateway (Zuul Server)
  • Database per service (MongoDB, MySQL...)
  • Timeout
  • Circuit Breaker (Hystrix)
  • Distibuted Tracing (Spring Sleuth et Zipkin)

Travail realisé

  • Pour le Service des Ressources, il y aura une seule communication avec le service des Fournisseurs (Affichage de la liste des Fournisseurs).
  • Et pour le Service Affectations, il y aura deux communications, la première avec le service des Ressources (Affichage de la liste des Ressources), et la deuxième avec le service des Besoins (Affichage de la liste des Besoins).

(Pour cela, j'ai fait le upload des quatres microservices et non pas seulement les miens)

Et on va pouvoir ajouter, supprimer et afficher les ressources pour le Microservice des Ressources et les affectations pour le Microservice des Affectations.

Technologies utilisées

  • Java 11
  • Spring Boot
  • MongoDB

Packages

 
 
 

Contributors