# 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 ```bash 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 ```bash 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 ```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 : ```dart static const String _baseUrl = 'http://192.168.1.11:8080'; ``` Modifier `lib/core/auth/keycloak_config.dart` pour Keycloak : ```dart 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) : 1. Modifier `application.properties` : ```properties quarkus.hibernate-orm.database.generation=drop-and-create ``` 2. Redémarrer Quarkus - Le fichier `import.sql` sera exécuté automatiquement 3. Remettre en mode production : ```properties 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 ```bash mvn test ``` ### Mobile ```bash 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