# 🚀 Guide de Démarrage Rapide - Lions User Manager

## 📋 Vue d'ensemble

L'application **Lions User Manager** comprend deux modules à démarrer :

1. **Backend API** (`lions-user-manager-server-impl-quarkus`) - Port **8081**
2. **Client Web** (`lions-user-manager-client-quarkus-primefaces-freya`) - Port **8080**

## ✅ Prérequis

1. **Java 17+** installé
2. **Maven 3.8+** installé
3. **Keycloak** démarré sur `http://localhost:8180`
   - Username: `admin`
   - Password: `admin`
   - Realm: `master`

## 🚀 Démarrage en 2 étapes

### Étape 1 : Démarrer le Backend (OBLIGATOIRE)

Ouvrir un **premier terminal** et exécuter :

```bash
cd lions-user-manager/lions-user-manager-server-impl-quarkus
mvn clean compile quarkus:dev
```

**Vérification** :
- Le serveur démarre sur `http://localhost:8081`
- Vous devriez voir dans les logs : `✅ Connexion à Keycloak réussie!`
- Swagger UI disponible : `http://localhost:8081/q/swagger-ui`
- Health Check : `http://localhost:8081/health`

### Étape 2 : Démarrer le Client

Ouvrir un **deuxième terminal** et exécuter :

```bash
cd lions-user-manager/lions-user-manager-client-quarkus-primefaces-freya
mvn clean compile quarkus:dev
```

**Vérification** :
- Le client démarre sur `http://localhost:8080`
- Accéder à : `http://localhost:8080/pages/user-manager/users/list.xhtml`

## 🔍 Vérifications

### Vérifier que Keycloak est accessible
```bash
curl http://localhost:8180/realms/master/.well-known/openid-configuration
```

### Vérifier que le Backend est démarré
```bash
curl http://localhost:8081/health
```

### Vérifier que le Client est démarré
```bash
curl http://localhost:8080
```

## ⚠️ Erreurs courantes

### Erreur : `Connection refused: localhost:8081`
**Cause** : Le serveur backend n'est pas démarré  
**Solution** : Démarrer le backend en premier (Étape 1)

### Erreur : `Impossible de se connecter à Keycloak`
**Cause** : Keycloak n'est pas démarré ou les identifiants sont incorrects  
**Solution** : 
- Vérifier que Keycloak est démarré sur `http://localhost:8180`
- Vérifier les identifiants dans `application-dev.properties` :
  ```
  lions.keycloak.server-url=http://localhost:8180
  lions.keycloak.admin-username=admin
  lions.keycloak.admin-password=admin
  ```

### Erreur : `Port 8080 already in use`
**Cause** : Un autre service utilise le port 8080  
**Solution** : Arrêter le service ou changer le port dans `application-dev.properties`

## 📝 Ordre de démarrage recommandé

1. ✅ Démarrer **Keycloak** (si pas déjà démarré)
2. ✅ Démarrer le **Backend** (port 8081)
3. ✅ Démarrer le **Client** (port 8080)

## 🔄 Hot Reload

Les deux modules supportent le **hot reload** :
- Modifier le code Java → Sauvegarder → Recompilation automatique
- Modifier les fichiers XHTML → Rafraîchir le navigateur

## 📚 URLs utiles

### Backend
- API Base : `http://localhost:8081/api`
- Swagger UI : `http://localhost:8081/q/swagger-ui`
- Health Check : `http://localhost:8081/health`
- Metrics : `http://localhost:8081/metrics`

### Client
- Application : `http://localhost:8080`
- Dashboard : `http://localhost:8080/pages/user-manager/dashboard.xhtml`
- Liste Utilisateurs : `http://localhost:8080/pages/user-manager/users/list.xhtml`
- Liste Rôles : `http://localhost:8080/pages/user-manager/roles/list.xhtml`

## 🛠️ Commandes utiles

### Arrêter les serveurs
- Appuyer sur `Ctrl+C` dans chaque terminal

### Recompiler sans redémarrer
```bash
mvn compile
```

### Nettoyer et recompiler
```bash
mvn clean compile
```

### Voir les logs détaillés
Les logs sont déjà en mode DEBUG dans `application-dev.properties`

