- VOUVOU Brandon
- KEITA Lansana
- NDONG Erica
- FAUVET Laura
Ce projet contient plusieurs microservices indépendants, réalisés en utilisant le framework NestJS avec Prisma comme ORM et l'architecture gRPC pour la communication inter-services.
Ce service s'occupe principalement de la gestion d'un utilisateur, mise en place du modele, la configuration de la base de donnée
L'authentification permet de gérer les différetes actions de connexion, déconnexion à l'aide d'un système de token.
Réprense le service qui s'occupe de la gestion d'un produit notamment la création, modification, suppression et lister.
Le service s'occupe de la gestion de la commande en créant :
- Table order: pour stocker uniquement id de la commade
- Table orderProduct : qui stock l'id de la commande, id du produit commandé et sa quantité
Pour renforcer la sécurité des échanges entre les microservices, nous avons mis en place la communication sécurisée via SSL (Secure Sockets Layer).
Pour chaque microservice, un système de journalisation a été mis en place avec winston
ainsi qu'un systèpme de suivi de performance avec l'utilisation de @openTelemetry
- Exécutez
yarn install
ou simplementyarn
à la racine de chaque microservice s'il n'y a pas de dossier node_modules
- Executez dans les microservices
user-api
,product-api
etorder-api
la commandedocker-compose up --build
pour créer la base de données de chaque microservice - Allez à la racine de chaque microservuce dans l'espace de travail et exécutez la commande
yarn start
. - Le serive User sera lancé à l'adresse suivante : http://localhost:3001
- Le serive Authentification sera lancé à l'adresse suivante : http://localhost:3002
- Le serive Product sera lancé à l'adresse suivante : http://localhost:3003
- Le serive Order sera lancé à l'adresse suivante : http://localhost:3004
-
Interconnecté
User
etOrder
afin de pouvoir utiliser une relation pour vérifier si l'utilisateur existe et s'il est connecté avant de valider la commande. -
Interconnecté
Product
etOrder
afin de pouvoir utiliser une relation pour si le produit existe avant de valider la commande. -
Eventuellement mettre en place un service pour gérer le stock des produits en fonction des commandes