Files
unionflow-mobile-apps/README.md

222 lines
5.3 KiB
Markdown

# 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