5ec5e538ccf3c0cd90a5591a297d58c09a201e8c
- Création de AuthResource avec tous les endpoints d'authentification
* POST /api/auth/login - Connexion utilisateur avec JWT
* POST /api/auth/logout - Déconnexion utilisateur
* POST /api/auth/refresh - Rafraîchissement de token
* GET /api/auth/validate - Validation de token
* POST /api/auth/forgot-password - Demande de réinitialisation
* POST /api/auth/reset-password - Réinitialisation avec token
* PUT /api/auth/change-password - Changement de mot de passe
- Création de UserResource avec tous les endpoints de gestion utilisateurs
* GET /api/users - Liste paginée avec filtres
* GET /api/users/{id} - Utilisateur par ID
* POST /api/users - Création d'utilisateur (ADMIN)
* PUT /api/users/{id} - Mise à jour utilisateur
* DELETE /api/users/{id} - Suppression utilisateur (ADMIN)
* PUT /api/users/{id}/status - Changement de statut
* GET /api/users/profile - Profil utilisateur courant
* PUT /api/users/profile - Mise à jour profil courant
* GET /api/users/search - Recherche d'utilisateurs
- Annotations OpenAPI complètes sur tous les endpoints
- Gestion d'erreurs avec try-catch et codes HTTP appropriés
- Logging SLF4J sur toutes les opérations
- Sécurité basée sur les rôles avec @RolesAllowed
- Correction des imports OpenAPI (Parameter, APIResponse, APIResponses)
- Correction de l'ordre des exceptions (AuthorizationException avant GBCMException)
- Correction des constructeurs ValidationException
- Compilation réussie de tous les endpoints
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
- Cloner le repository
git clone https://git.lions.dev/gbcm/gbcm-server-impl-quarkus.git
cd gbcm-server-impl-quarkus
- Installer les dépendances
mvn clean install
- 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;
- Configuration
Copier
application.properties.exampleversapplication.propertieset 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 :
- API: http://localhost:8081/api/v1
- Swagger UI: http://localhost:8081/swagger
- Health Check: http://localhost:8081/health
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- ConnexionPOST /api/v1/auth/logout- DéconnexionPOST /api/v1/auth/refresh- Rafraîchissement tokenGET /api/v1/auth/validate- Validation token
Utilisateurs
GET /api/v1/users- Liste des utilisateursGET /api/v1/users/{id}- Utilisateur par IDPOST /api/v1/users- Création utilisateurPUT /api/v1/users/{id}- Mise à jour utilisateur
Coaching
GET /api/v1/coaching/sessions- Sessions de coachingPOST /api/v1/coaching/sessions- Nouvelle sessionPUT /api/v1/coaching/sessions/{id}- Mise à jour session
Ateliers
GET /api/v1/workshops- Liste des ateliersPOST /api/v1/workshops- Nouvel atelierPOST /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 utilisateursV2__create_clients.sql- Table clientsV3__create_workshops.sql- Tables ateliers
Entités principales
User- Utilisateurs systèmeClient- Clients GBCMCoach- Coachs/consultantsWorkshop- Ateliers StrategicCoachingSession- Sessions de coachingInvoice- 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 completCOACH- Gestion clients et sessionsCLIENT- Accès services souscritsMANAGER- 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éesDB_USERNAME- Utilisateur DBDB_PASSWORD- Mot de passe DBSMTP_USERNAME- Utilisateur SMTPSMTP_PASSWORD- Mot de passe SMTPJWT_PRIVATE_KEY- Clé privée JWT
Configuration métier
gbcm.business.workshop.max-participants- Participants max par ateliergbcm.business.coaching.session-duration- Durée session coachinggbcm.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
- Email: support@gbcm.com
- Documentation: https://docs.gbcm.com
- API Docs: https://api.gbcm.com/swagger
Licence
Propriétaire - GBCM LLC © 2024
Description
Languages
Java
99.2%
PLpgSQL
0.8%