# 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** : l’inventaire détaillé du code (packages API, migrations, features mobile, routes) est dans `.specify/memory/inventaire-code.md`. Toute spécification ou implémentation doit s’y 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 l’inventaire ; 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 d’ensemble), `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 l’inventaire 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 ```