The lions-user-manager-client-quarkus-primefaces-freya module is not available in any Maven repository, causing build failures. Commenting it out for now. This may require manual user management features implementation later.
UnionFlow
Système de gestion intégré pour les unions et associations Lions Club de Côte d'Ivoire.
📋 Description
UnionFlow est une plateforme complète de gestion pour les organisations Lions Club, comprenant :
- Gestion des membres et cotisations
- Organisation d'événements
- Système de solidarité
- Gestion des organisations
- Authentification sécurisée via Keycloak
🏗️ Architecture
Le projet est composé de deux applications principales :
Backend - Quarkus (Java)
- Framework : Quarkus 3.x
- Base de données : PostgreSQL
- Authentification : Keycloak (OIDC)
- API : REST (JAX-RS)
- ORM : Hibernate avec Panache
Mobile - Flutter
- Framework : Flutter 3.x
- Architecture : Clean Architecture + BLoC
- Authentification : Keycloak WebView
- HTTP Client : Dio
- State Management : flutter_bloc
🚀 Démarrage Rapide
Prérequis
- Java 17+
- Maven 3.8+
- PostgreSQL 14+
- Keycloak 23+
- Flutter 3.x
- Dart 3.x
Backend
cd unionflow-server-impl-quarkus
# Configuration de la base de données
# Créer une base PostgreSQL nommée 'unionflow'
# Modifier src/main/resources/application.properties si nécessaire
# Démarrage en mode développement
mvn clean quarkus:dev
# L'API sera disponible sur http://localhost:8080
Mobile
cd unionflow-mobile-apps
# Installation des dépendances
flutter pub get
# Génération du code (models, etc.)
flutter pub run build_runner build --delete-conflicting-outputs
# Lancement de l'application
flutter run
📦 Configuration
Backend - application.properties
# Base de données
quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/unionflow
quarkus.datasource.username=unionflow
quarkus.datasource.password=unionflow123
# Keycloak
quarkus.oidc.auth-server-url=http://localhost:8180/realms/unionflow
quarkus.oidc.client-id=unionflow-server
quarkus.oidc.credentials.secret=unionflow-secret-2025
Mobile - Configuration
Modifier lib/core/network/dio_client.dart pour l'URL du backend :
static const String _baseUrl = 'http://192.168.1.11:8080';
Modifier lib/core/auth/keycloak_config.dart pour Keycloak :
static const String authority = 'http://192.168.1.11:8180/realms/unionflow';
static const String clientId = 'unionflow-mobile';
🗄️ Base de Données
Mode Développement
Pour charger les données initiales (membres, cotisations, événements) :
- Modifier
application.properties:
quarkus.hibernate-orm.database.generation=drop-and-create
-
Redémarrer Quarkus - Le fichier
import.sqlsera exécuté automatiquement -
Remettre en mode production :
quarkus.hibernate-orm.database.generation=update
Mode Production
En production, utilisez toujours update pour préserver les données.
📱 Fonctionnalités
Gestion des Membres
- Inscription et profils des membres
- Gestion des statuts (actif, inactif, suspendu)
- Historique des adhésions
Cotisations
- Différents types : mensuelle, annuelle, adhésion, événement, formation, projet, solidarité
- Suivi des paiements (payée, en attente, en retard, partiellement payée)
- Rappels automatiques
Événements
- Types variés : assemblée générale, réunion, formation, conférence, atelier, séminaire, événement social, manifestation, célébration
- Gestion des inscriptions
- Capacité et tarification
- Statuts : planifié, confirmé, en cours, terminé, annulé, reporté
Organisations
- Gestion des clubs et unions
- Hiérarchie organisationnelle
- Statistiques et rapports
🔐 Sécurité
- Authentification via Keycloak (OAuth 2.0 / OIDC)
- Tokens JWT stockés de manière sécurisée (FlutterSecureStorage)
- Contrôle d'accès basé sur les rôles (RBAC)
- Refresh automatique des tokens
🛠️ Développement
Structure du Backend
unionflow-server-impl-quarkus/
├── src/main/java/dev/lions/unionflow/server/
│ ├── entity/ # Entités JPA
│ ├── resource/ # Endpoints REST
│ ├── service/ # Logique métier
│ ├── dto/ # Data Transfer Objects
│ └── repository/ # Repositories (si nécessaire)
└── src/main/resources/
├── application.properties
├── import.sql # Données initiales
└── db/migration/ # Migrations Flyway (si utilisé)
Structure du Mobile
unionflow-mobile-apps/
├── lib/
│ ├── core/ # Configuration, réseau, auth
│ ├── features/ # Modules par fonctionnalité
│ │ ├── auth/
│ │ ├── members/
│ │ ├── events/
│ │ ├── cotisations/
│ │ └── organisations/
│ └── main.dart
📝 API Documentation
Une fois le backend démarré, la documentation OpenAPI est disponible sur :
- Swagger UI : http://localhost:8080/q/swagger-ui
- OpenAPI JSON : http://localhost:8080/q/openapi
🧪 Tests
Backend
mvn test
Mobile
flutter test
📄 Licence
Propriétaire - Lions Club Côte d'Ivoire
👥 Équipe
UnionFlow Team - Lions Club Côte d'Ivoire
📞 Support
Pour toute question ou problème, contactez l'équipe de développement.
Version : 1.0.0
Dernière mise à jour : 2025-10-05