Files
unionflow-server-api/unionflow/specs/000-unionflow-baseline/spec.md
dahoud e8ad874015 feat: WebSocket temps réel + Finance Workflow + corrections
- Task #6: WebSocket /ws/dashboard + Kafka events (5 topics)
  * Backend: KafkaEventProducer, KafkaEventConsumer
  * Mobile: WebSocketService (reconnection, heartbeat, typed events)
  * DashboardBloc: Auto-refresh depuis WebSocket events

- Finance Workflow: approbations + budgets (backend + mobile)
  * Backend: entities, services, resources, migrations Flyway V6
  * Mobile: features finance_workflow complète avec BLoC

- Corrections DI: interfaces IRepository partout
  * IProfileRepository, IOrganizationRepository, IMembreRepository
  * GetIt configuré avec @injectable

- Spec-Kit: constitution + templates mis à jour
  * .specify/memory/constitution.md enrichie
  * Templates agent, plan, spec, tasks, checklist

- Nettoyage: fichiers temporaires supprimés

Signed-off-by: lions dev Team
2026-03-15 02:12:17 +00:00

81 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Spécification de base: UnionFlow - Projet existant (Brownfield)
**Feature Branch**: `000-unionflow-baseline`
**Created**: 2026-02-27
**Updated**: 2026-03-08
**Status**: Baseline documentant l'état actuel
**Type**: Brownfield / Documentation
## Contexte
Ce document capture l'état actuel du projet UnionFlow pour le Spec-Driven Development. UnionFlow est une plateforme de gestion d'associations, clubs et organisations à but non lucratif, et de **gestion des mutuelles d'épargne et de financement**.
**Référence anti-hallucination** : linventaire détaillé du code (packages API, migrations, features mobile, routes) est dans `.specify/memory/inventaire-code.md`. Toute spécification ou implémentation doit sy aligner ; ne pas inventer de packages, endpoints ou fichiers non listés.
## Architecture actuelle
### Modules
| Module | Technologie | Rôle |
|--------|-------------|------|
| **unionflow-server-api** | Java 17, Maven | DTOs, enums, contrats API (sans dépendances runtime) |
| **unionflow-server-impl-quarkus** | Quarkus 3.15.1, Panache | Backend REST, JPA, Keycloak |
| **unionflow-client-quarkus-primefaces-freya** | Quarkus, PrimeFaces | Client web admin |
| **unionflow-mobile-apps** | Flutter 3.x | Application mobile (Android/iOS) |
### Principes clés (cf. CONSTITUTION.md)
- **DDD strict**: Resources → Services → Repositories
- **API/Impl separation**: unionflow-server-api pur, sans Quarkus/JPA
- **Keycloak**: Authentification OAuth2/OIDC
- **PostgreSQL** (prod), **H2** (dev/test)
- **100% JaCoCo** sur le backend
- **Flyway** pour les migrations
### Répertoires importants
```
unionflow/
├── unionflow-server-api/ # API pure
├── unionflow-server-impl-quarkus/ # Implémentation
├── unionflow-client-quarkus-primefaces-freya/
├── unionflow-mobile-apps/ # Flutter
├── .specify/ # Spec-Kit
├── specs/ # Spécifications features
└── CONSTITUTION.md # Principes projet
```
## Workflow Spec-Kit pour nouvelles features
1. **Branche feature**: `001-nom-court`, `002-autre-feature`, etc.
2. **Specs**: `specs/001-nom-court/spec.md`, `plan.md`, `tasks.md`
3. **Commandes Cursor**: `/speckit.specify`, `/speckit.plan`, `/speckit.tasks`, `/speckit.implement`
## Inventaire consolidé
- **API** : ~210 fichiers Java en `unionflow-server-api/src/main/java` (dto.*, enums.*, service.dashboard, validation). Voir `.specify/memory/inventaire-code.md` pour la liste des packages et conventions.
- **Impl** : Migrations Flyway V1.2 à V3.4 listées dans linventaire ; code métier (entity, service, resource, mapper) selon CONSTITUTION.
- **Mobile** : Routes `/`, `/login`, `/dashboard` ; navigation par onglets (Dashboard, Membres, Événements, Plus) ; features about, adhesions, admin, authentication, backup, contributions, dashboard, epargne, events, explore, feed, help, logs, members, notifications, organizations, profile, reports, settings, solidarity. Détail à jour dans `.specify/memory/inventaire-code.md`.
## Artefacts Spec-Kit (référence complète)
- **Racine** : `SPEC-KIT.md` (vue densemble), `CONSTITUTION.md` (principes).
- **.specify/memory/** : `constitution.md`, `inventaire-code.md` (référence anti-hallucination).
- **.specify/scripts/powershell/** : `common.ps1`, `check-prerequisites.ps1`, `setup-plan.ps1`, `create-new-feature.ps1`, `update-agent-context.ps1`. Aucun script Bash.
- **.specify/templates/** : `spec-template.md`, `plan-template.md`, `tasks-template.md`, `checklist-template.md`, `constitution-template.md`, `agent-file-template.md`.
- **.cursor/commands/** : `speckit.constitution.md`, `speckit.specify.md`, `speckit.plan.md`, `speckit.tasks.md`, `speckit.implement.md`, `speckit.clarify.md`, `speckit.checklist.md`, `speckit.analyze.md`, `speckit.taskstoissues.md`.
- **.cursor/rules/** : `unionflow-spec-kit.mdc` (always), `unionflow-backend.mdc`, `unionflow-mobile.mdc`.
- **specs/** : `000-unionflow-baseline/spec.md` (ce fichier) ; par feature `00X-nom/` : `spec.md`, `plan.md`, `tasks.md`, optionnellement `research.md`, `data-model.md`, `quickstart.md`, `contracts/`, `checklists/`.
En cas de divergence entre documentation et code, **le code fait foi** ; mettre à jour linventaire en conséquence.
## Commandes utiles
```powershell
# Backend
cd unionflow-server-impl-quarkus && mvn clean verify
# Mobile
cd unionflow-mobile-apps && flutter pub get && flutter test
```