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

4.4 KiB
Raw Blame History

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

# Backend
cd unionflow-server-impl-quarkus && mvn clean verify

# Mobile
cd unionflow-mobile-apps && flutter pub get && flutter test