- 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
4.4 KiB
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
- Branche feature:
001-nom-court,002-autre-feature, etc. - Specs:
specs/001-nom-court/spec.md,plan.md,tasks.md - 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.mdpour 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 feature00X-nom/:spec.md,plan.md,tasks.md, optionnellementresearch.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
# Backend
cd unionflow-server-impl-quarkus && mvn clean verify
# Mobile
cd unionflow-mobile-apps && flutter pub get && flutter test