projet-soa-ecommerce-enit-2023-3ainfo2's Introduction
# projet-soa-ecommerce-enit-v1 # Liste des microservices - catalog: responsable des produits exposés et de leurs caractéristiques + prix de référence - pricing: responsable de déterminer le prix d'un produit ou d'un ensemble de produits (idProduit+quantité). utiliser pour déterminer le prix d'un panier ou d'une commande. - gère la liste des prix des produits - gère les promotions (idProduit+pourcentage de réduction) - inventory : responsable de - la gestion des quantités de produits dans le stock (idProduit+quantité totale + quantité reservée) - enregistrer une reception d'un produit - enregistrer la sortie d'une commande. - la réservation de produits d'une commande en attente de paiement. - la libération des produits d'une commande annulée - search : - indexer la description d'un produit (idProduit+description) - recherche d'un produit via texte libre - recherche des produits similaires à un produit (idProduit) - cart : gestion du panier - order : gère le processus de commande depuis la validation du panier, à la reservation, au paiement jusqu'au déclenchement de la livraison. - payment : gère les cartes des clients et les transactions avec la banque - gère un ensemble de cartes bancaires associées aux clients (idUser,codeCarte,CodeSecret). - reçoit l'ordre de paiement depuis le microservice command et tente de le faire chez la banque. - shipping : responsable de la livraison d'une commande payée - gère un ensemble de d'adresses associées aux clients (idUser,adresse). - reçoit l'ordre de livraison du microservice order après paiement. - permet de gérer le cycle d'une livraison (livraison en attente, livraison en cours, livraison effectuée) - review : responsable des avis (commentaires) sur les produits: - donner un avis - récupérer les avis sur un produit - rating : responsable des notes que donnent les utilisateurs aux produits - donner une note à un produit - récupérer les notes d'un utilisateur - récupérer les notes d'un produit - mailing : (voir [le service mailtrap](https://mailtrap.io/) et [l'exemple](https://quarkus.io/guides/mailer)) - gère les templates des emails dans la BD - gère les emails des clients - envoie les emails de confirmation de paiement et de livraison en cours -bank : service externe fourni tel quel (non fiable) - un paramètre permet d'augmenter le temps de traitement et tester ainsi les timeouts - un paramètre permet de simuler une non fiabilité avec une probabilité d'erreur pour tester la résilience des autres microservices. # ports vérifier les ports de chaque microservice - cart : 8081 - catalog : 8082 - inventory : 8083 - order : 8084 - payment : 8085 - pricing : 8086 - recommendation: 8087 - review : 8088 - search : 8089 - shipping : 8090 - mailing: 8091 - -bank: 8099 # Technologies - données transactionnelles : postgresql (base par microservice déjà configurée dans docker-compose) - index externe pour le texte (solr) : s'inspirer du [tutoriel suivant](https://www.baeldung.com/apache-solrj). possibilité de remplacer par elasticsearch si besoin. - base de données en mémoire : utiliser une map java en mémoire dans la première version. # Prérequis: - java 17 ou plus (variable JAVA_HOME configurée) - - Git - [SDKman](https://sdkman.io/) et [quarkus CLI](https://quarkus.io/guides/cli-tooling) facilitent la [création](https://quarkus.io/guides/cli-tooling#project-creation) d'applications quarkus. - maven récent (variable MAVEN_HOME configurée) - docker (avec WSL sur windows) - VS code avec les extensions java quarkus docker redhat - démarrer dans le terminal (interne à vscode) en mode developpement avec la commande mvn clean compile quarkus:dev - la configuration est dans le fichier application.properties - par defaut l'application tourne sur localhost:PORT (l'interface qui s'affiche contient un lien vers dev-ui qui liste les extensions/modules installés) - dev-ui donne l'accès à swagger pour tester les APIs - pour lancer l'infrastructure sur docker click droit dans le fichier docker-compose et faire docker compose up pour voir d'autres exemples avec la doc aller sur [la documentation](https://quarkus.io/guides/)
projet-soa-ecommerce-enit-2023-3ainfo2's People
Forkers
abdelhamidrouatbiRecommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.