Giter Club home page Giter Club logo

tp-insa-zuul-eureka-spring's Introduction

Projet de Micro-Services pour E-Commerce

Description

Ce projet est une démonstration d'une architecture de micro-services pour une application de e-commerce. Il utilise Spring Boot pour le développement des services, Eureka pour la gestion de la découverte des services, et Zuul comme API Gateway pour router et filtrer les requêtes. Ce système est conçu pour être simple mais évolutif, permettant une séparation claire des responsabilités via différents micro-services.

Contributeurs

Auteurs : Robin JUAN & Maxime GUIOT

École : INSA Hauts-de-France

Architecture

Composants du Système

  • API Gateway (Zuul): Sert de point d'entrée unique pour toutes les requêtes externes. Il est responsable de router les requêtes vers les services appropriés et applique des politiques de sécurité pour l'authentification et la validation des requêtes.
  • Service de Découverte (Eureka): Permet à chaque micro-service de s'enregistrer et facilite la découverte dynamique des instances de service pour la communication inter-services.
  • Service d'Authentification: Gère l'authentification des utilisateurs et la génération de tokens de sécurité.
  • Service Client: Responsable de la gestion des informations clients, telles que les enregistrements et les mises à jour des profils.
  • Service Produit: Gère les opérations relatives aux produits de l'e-commerce, telles que l'ajout, la suppression et la mise à jour des produits.
  • Service Commande: Traite les commandes des clients, incluant la création, le suivi et la gestion des états des commandes.

Diagramme d'Architecture

graph TB
    A[Front-end] -->|requêtes| B[API Gateway Zuul]
    B -->|route & filtre| E[Eureka Server]
    B -->|authentifie & route| C[Service Client]
    B -->|authentifie & route| D[Service Produit]
    B -->|authentifie & route| F[Service Commande]
    B -->|authentifie & route| G[Service Authentification]
    C -->|registre| E
    D -->|registre| E
    F -->|registre| E
    G -->|registre| E

    class A,B,C,D,E,F,G default
Loading

Technologies Utilisées

  • Spring Boot: Framework de développement pour les micro-services.
  • Spring Security & JWT: Pour la sécurisation et l'authentification.
  • Netflix Zuul & Eureka: Pour la gestion des routes et la découverte des services.
  • PostgreSQL: Base de données pour la gestion des données des services.
  • Docker: Utilisé pour la conteneurisation des services pour faciliter le déploiement.

Méthode de Travail : Git Flow

Nous utilisons la méthode Git Flow pour gérer le développement de notre projet. Git Flow est une stratégie de gestion de branches qui aide à structurer et à organiser le développement de manière efficace et ordonnée. - Voici les principes clés et comment nous les appliquons :

Branches Principales

  • main: Cette branche contient le code de production, celui qui est actuellement en production.
  • develop: Tous les développements en cours (features, corrections, etc.) sont fusionnés dans cette branche avant d'être passés en production.

Workflow

  1. Démarrer une nouvelle fonctionnalité : git checkout -b feature/xyz develop
  2. Terminer une fonctionnalité : git checkout develop puis git merge feature/xyz
  3. Préparer une release : git checkout -b release/1.0 develop
  4. Terminer une release : git checkout main puis git merge release/1.0 et aussi git checkout develop puis git merge release/1.0
  5. Gérer un hotfix : git checkout -b hotfix/urgent-fix main

Installation

Instructions d'installation seront ajoutées ici une fois le projet prêt pour le déploiement.

Utilisation

Des exemples d'utilisation et des instructions détaillées seront fournis ici pour aider les utilisateurs à démarrer avec l'application une fois celle-ci déployée.

Licence

Informations sur la licence sous laquelle le projet est distribué seront ajoutées ici.

tp-insa-zuul-eureka-spring's People

Contributors

rob1juan avatar grand0x avatar

Watchers

Tondeur Herve avatar  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.