Giter VIP home page Giter VIP logo

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

Contributors

abdelhamidrouatbi avatar afefadou avatar akramhachamothman avatar bungeegumm avatar chihebbencheikh avatar farah-abid avatar firaskhemir avatar ganemchedli avatar habyyb avatar hazguiii avatar ihebkasraoui99 avatar jk123ichrak avatar kerfaiyass54 avatar lemjidahmed avatar oussema-ammar avatar raaan12 avatar ramzihaddad avatar touta09 avatar wassimabidi avatar yasminemakni-utm avatar

Stargazers

 avatar

Watchers

 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.