Retour aux projets

Plateforme d'événements Ing-web-pro

Prototype académique de plateforme d'événements avec Angular, des microservices Spring Boot, la découverte Eureka, une protection JWT à la passerelle, une base PostgreSQL par service, Redis, des téléversements de médias et des notifications.

PrototypeCode source disponiblePlateforme académique de microservices / 2025

Problème

Une plateforme d'événements a besoin d'une authentification, d'une publication d'événements, d'inscriptions, de parcours de participants, de notifications, de médias et de statistiques gérés séparément.

Solution

Découper le système en une application Angular plus Eureka, Spring Cloud Gateway et des services utilisateurs/inscriptions, événements et notifications, le tout relié par Docker Compose.

Fonctionnalités clés

Routes Angular par rôle pour les organisateurs et les participants, avec gardes d'authentification et de rôle
Parcours d'inscription et de connexion JWT avec validation à la passerelle et en-têtes utilisateur transmis aux services en aval
Routes Spring Cloud Gateway pour l'authentification, les événements, les inscriptions, les utilisateurs et les notifications
Service utilisateurs pour l'authentification, les inscriptions des participants et les workflows de confirmation, de rejet et d'annulation
Service événements pour le CRUD des événements, la recherche, la publication, l'annulation, les statistiques, les compteurs de vues et le téléversement optionnel d'images/vidéos via Cloudinary
Service de notifications pour les notifications par e-mail, les compteurs de non lus, le marquage comme lu, la recherche d'événements et la suppression
Recherche d'événements via OpenFeign depuis le service utilisateurs, plus des replis du client de notifications via les URL du service, locale et de la passerelle
Configuration Docker Compose pour la découverte de services, la passerelle, trois services Spring Boot, trois bases PostgreSQL, Redis, les contrôles de santé et un réseau partagé

Rôle

Projet académique d'Ing-web en M2 couvrant Angular, des services Spring Boot, la découverte de services, la sécurité de la passerelle, la persistance, le cache, les notifications et l'orchestration Docker.

Stack

Java 17Spring Boot 3.2Spring Cloud GatewayEurekaSpring SecurityJWT / JJWTOpenFeignPostgreSQLRedisCloudinarySpring MailDocker ComposeAngular 20TypeScriptAngular MaterialBootstrapngx-toastr

Liens

Schéma d'architecture

Mermaid
flowchart TB
  Actor["Organisateur ou participant"] --> Angular["Angular event-management-ui"]
  Angular --> Gateway["Spring Cloud Gateway"]
  Gateway --> Auth["Routes d'authentification publiques"]
  Gateway --> Jwt["Routes d'API protégées avec filtre JWT"]
  Jwt --> UserSvc["Service utilisateurs"]
  Jwt --> EventSvc["Service événements"]
  Jwt --> NotificationSvc["Service notifications"]
  Gateway --> Eureka["Découverte de services Eureka"]
  UserSvc --> Eureka
  EventSvc --> Eureka
  NotificationSvc --> Eureka
  UserSvc --> UserDb[("PostgreSQL user_db")]
  UserSvc --> Feign["Recherche d'événements via OpenFeign"]
  Feign --> EventSvc
  UserSvc --> NotifyClient["Cibles de repli du client de notifications"]
  NotifyClient --> NotificationSvc
  EventSvc --> EventDb[("PostgreSQL event_db")]
  EventSvc --> Redis[("Cache Redis")]
  EventSvc --> Cloudinary["Téléversements de médias Cloudinary"]
  NotificationSvc --> NotificationDb[("PostgreSQL notification_db")]
  NotificationSvc --> Mail["Envoi d'e-mails SMTP"]
  Docker["Réseau Docker Compose et contrôles de santé"] --> Gateway
  Docker --> UserSvc
  Docker --> EventSvc
  Docker --> NotificationSvc