Clean project: remove test files, debug logs, and add documentation
This commit is contained in:
221
README.md
Normal file
221
README.md
Normal file
@@ -0,0 +1,221 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user