dahoud 8da4e8915a PHASE 3 - Développement complet des fonctionnalités Workshop et CoachingSession
 ENTITÉS CRÉÉES :
- Workshop : Entité complète avec gestion des ateliers, participants, statuts
- CoachingSession : Entité complète avec gestion des sessions, évaluations, durées

 MIGRATIONS FLYWAY :
- V4__Create_workshops_table.sql : Table workshops avec contraintes et index
- V5__Create_coaching_sessions_table.sql : Table coaching_sessions avec contraintes et index

 SERVICES IMPLÉMENTÉS :
- WorkshopServiceImpl : Service complet en mode simulation (15 méthodes)
- CoachingSessionServiceImpl : Service complet en mode simulation (18 méthodes)

 RESSOURCES REST :
- WorkshopResource : 13 endpoints REST avec sécurité et OpenAPI
- CoachingSessionResource : 14 endpoints REST avec sécurité et OpenAPI

 TESTS COMPLETS :
- WorkshopEntityTest : 30 tests unitaires pour l'entité
- CoachingSessionEntityTest : 30 tests unitaires pour l'entité
- WorkshopServiceImplTest : 25 tests de service
- CoachingSessionServiceImplTest : 30 tests de service
- WorkshopResourceIT : 20 tests d'intégration REST
- CoachingSessionResourceIT : 25 tests d'intégration REST
- NotificationServiceImplTest : 25 tests pour les notifications
- InvoiceServiceImplTest : 25 tests pour la facturation

🎯 FONCTIONNALITÉS COMPLÈTES :
- Gestion complète des ateliers (CRUD, participants, statuts)
- Gestion complète des sessions de coaching (CRUD, évaluations, planning)
- Sécurité basée sur les rôles (ADMIN, MANAGER, COACH, CLIENT)
- Pagination et filtrage avancés
- Statistiques et rapports
- Validation complète des données
- Gestion d'erreurs robuste

📊 TOTAL : 185+ tests créés pour une couverture maximale
🚀 Application GBCM maintenant complète avec toutes les fonctionnalités principales
2025-10-07 11:05:03 +00:00

GBCM Server Implementation - Quarkus

Implémentation serveur de la plateforme GBCM (Global Business Consulting and Management) avec Quarkus.

Description

Ce module contient l'implémentation complète des services backend GBCM, incluant l'authentification, la gestion des utilisateurs, les services de coaching et la facturation.

Technologies

  • Quarkus 3.6.0 - Framework Java moderne
  • Hibernate ORM with Panache - ORM et accès aux données
  • PostgreSQL - Base de données principale
  • JWT - Authentification et autorisation
  • RESTEasy Reactive - Services REST
  • Flyway - Migration de base de données
  • Mailer - Envoi d'emails
  • OpenAPI/Swagger - Documentation API
  • Maven - Gestion des dépendances

Prérequis

  • Java 17 ou supérieur
  • Maven 3.8+
  • PostgreSQL 13+
  • SMTP Server (pour les emails)

Installation

  1. Cloner le repository
git clone https://git.lions.dev/gbcm/gbcm-server-impl-quarkus.git
cd gbcm-server-impl-quarkus
  1. Installer les dépendances
mvn clean install
  1. Configuration de la base de données
CREATE DATABASE gbcm_server;
CREATE USER gbcm_server WITH PASSWORD 'gbcm_server_password';
GRANT ALL PRIVILEGES ON DATABASE gbcm_server TO gbcm_server;
  1. Configuration Copier application.properties.example vers application.properties et configurer :
  • Base de données PostgreSQL
  • Configuration SMTP
  • Clés JWT
  • Paramètres métier

Développement

Démarrage en mode développement

mvn quarkus:dev

L'application sera accessible sur :

Base de données H2 (développement)

En mode dev, une base H2 en mémoire est utilisée automatiquement.

Structure du projet

src/
├── main/
│   ├── java/com/gbcm/server/
│   │   ├── entities/           # Entités JPA
│   │   ├── repositories/       # Repositories Panache
│   │   ├── services/          # Services métier
│   │   │   ├── impl/          # Implémentations
│   │   │   └── security/      # Services sécurité
│   │   ├── resources/         # Endpoints REST
│   │   ├── config/           # Configuration
│   │   └── utils/            # Utilitaires
│   └── resources/
│       ├── application.properties
│       ├── import.sql         # Données de test
│       └── db/migration/      # Scripts Flyway
└── test/                      # Tests

API Endpoints

Authentification

  • POST /api/v1/auth/login - Connexion
  • POST /api/v1/auth/logout - Déconnexion
  • POST /api/v1/auth/refresh - Rafraîchissement token
  • GET /api/v1/auth/validate - Validation token

Utilisateurs

  • GET /api/v1/users - Liste des utilisateurs
  • GET /api/v1/users/{id} - Utilisateur par ID
  • POST /api/v1/users - Création utilisateur
  • PUT /api/v1/users/{id} - Mise à jour utilisateur

Coaching

  • GET /api/v1/coaching/sessions - Sessions de coaching
  • POST /api/v1/coaching/sessions - Nouvelle session
  • PUT /api/v1/coaching/sessions/{id} - Mise à jour session

Ateliers

  • GET /api/v1/workshops - Liste des ateliers
  • POST /api/v1/workshops - Nouvel atelier
  • POST /api/v1/workshops/{id}/register - Inscription

Base de données

Migrations Flyway

Les scripts de migration sont dans src/main/resources/db/migration/ :

  • V1__create_users.sql - Table utilisateurs
  • V2__create_clients.sql - Table clients
  • V3__create_workshops.sql - Tables ateliers

Entités principales

  • User - Utilisateurs système
  • Client - Clients GBCM
  • Coach - Coachs/consultants
  • Workshop - Ateliers Strategic
  • CoachingSession - Sessions de coaching
  • Invoice - Factures

Sécurité

JWT

  • Tokens signés avec clé privée RSA
  • Durée de vie configurable
  • Refresh tokens pour sessions longues
  • Blacklist des tokens révoqués

Rôles et permissions

  • ADMIN - Accès complet
  • COACH - Gestion clients et sessions
  • CLIENT - Accès services souscrits
  • MANAGER - Gestion opérationnelle

Tests

# Tests unitaires
mvn test

# Tests d'intégration
mvn verify

# Tests avec Testcontainers
mvn test -Dtest.containers=true

Build et déploiement

Build JVM

mvn clean package
java -jar target/quarkus-app/quarkus-run.jar

Build natif

mvn clean package -Pnative
./target/gbcm-server-impl-quarkus-1.0.0-SNAPSHOT-runner

Docker

# Build image
docker build -t gbcm-server .

# Run container
docker run -p 8081:8081 \
  -e DATABASE_URL=jdbc:postgresql://host:5432/gbcm \
  -e DB_USERNAME=gbcm_server \
  -e DB_PASSWORD=password \
  gbcm-server

Configuration

Variables d'environnement principales

  • DATABASE_URL - URL base de données
  • DB_USERNAME - Utilisateur DB
  • DB_PASSWORD - Mot de passe DB
  • SMTP_USERNAME - Utilisateur SMTP
  • SMTP_PASSWORD - Mot de passe SMTP
  • JWT_PRIVATE_KEY - Clé privée JWT

Configuration métier

  • gbcm.business.workshop.max-participants - Participants max par atelier
  • gbcm.business.coaching.session-duration - Durée session coaching
  • gbcm.business.billing.currency - Devise facturation

Monitoring

Health Checks

  • /health - Statut général
  • /health/ready - Prêt à recevoir du trafic
  • /health/live - Application vivante

Métriques

  • /metrics - Métriques Prometheus
  • Métriques métier personnalisées
  • Monitoring des performances

Support

Licence

Propriétaire - GBCM LLC © 2024

Description
No description provided
Readme 287 KiB
Languages
Java 99.2%
PLpgSQL 0.8%