Files
unionflow-server-api/unionflow/.specify/templates/plan-template.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

3.5 KiB
Raw Blame History

Plan d'implémentation : [FONCTIONNALITÉ]

Branche : [###-nom-court] | Date : [DATE] | Spec : [lien] Entrée : Spécification dans /specs/[###-nom-court]/spec.md

Note : Ce template est rempli par la commande /speckit.plan. Voir .specify/templates/plan-template.md pour le déroulé.

Résumé

[Extraire de la spec : exigence principale + approche technique issue de la recherche]

Contexte technique

Langage/Version : [ex. Java 17, Dart 3, ou À PRÉCISER]
Dépendances principales : [ex. Quarkus, Flutter, ou À PRÉCISER]
Stockage : [ex. PostgreSQL, CoreData, fichiers ou N/A]
Tests : [ex. JUnit, pytest, ou À PRÉCISER]
Plateforme cible : [ex. serveur Linux, iOS 15+, ou À PRÉCISER]
Type de projet : [ex. lib/cli/service-web/app-mobile ou À PRÉCISER]
Objectifs de performance : [ex. 1000 req/s, 60 fps ou À PRÉCISER]
Contraintes : [ex. p95 < 200 ms, mémoire < 100 Mo, hors-ligne ou À PRÉCISER]
Échelle / périmètre : [ex. 10k utilisateurs, 50 écrans ou À PRÉCISER]

Contrôle constitution

JALON : Doit être validé avant la phase 0 (recherche). Re-vérifier après la phase 1 (conception).

[Critères déterminés à partir du fichier constitution]

Structure du projet

Documentation (cette feature)

specs/[###-feature]/
├── plan.md              # Ce fichier (sortie /speckit.plan)
├── research.md          # Phase 0 (/speckit.plan)
├── data-model.md        # Phase 1 (/speckit.plan)
├── quickstart.md        # Phase 1 (/speckit.plan)
├── contracts/           # Phase 1 (/speckit.plan)
└── tasks.md             # Phase 2 (/speckit.tasks — NON créé par /speckit.plan)

Code source (racine du dépôt)

# [SUPPRIMER SI INUTILISÉ] Option 1 : Projet unique (DÉFAUT)
src/
├── models/
├── services/
├── cli/
└── lib/

tests/
├── contract/
├── integration/
└── unit/

# [SUPPRIMER SI INUTILISÉ] Option 2 : Application web (backend + frontend)
backend/
├── src/
│   ├── models/
│   ├── services/
│   └── api/
└── tests/

frontend/
├── src/
│   ├── components/
│   ├── pages/
│   └── services/
└── tests/

# [SUPPRIMER SI INUTILISÉ] Option 3 : Mobile + API (iOS/Android)
api/
└── [idem backend ci-dessus]

ios/ ou android/
└── [structure plateforme : modules feature, flux UI, tests]

# [SUPPRIMER SI INUTILISÉ] Option 4 : Monorepo UnionFlow (backend + mobile)
unionflow-server-api/          # DTOs, enums
unionflow-server-impl-quarkus/ # Migrations, services, resources
unionflow-mobile-apps/lib/     # app/, core/, features/<nom>/, shared/

Décision de structure : [Documenter la structure retenue et les répertoires réels. Pour UnionFlow, sappuyer sur .specify/memory/inventaire-code.md.]

Suivi des écarts à la constitution

À remplir UNIQUEMENT si le Contrôle constitution a des violations à justifier

Écart Pourquoi nécessaire Alternative plus simple refusée car
[ex. 4e projet] [besoin actuel] [pourquoi 3 projets ne suffisent pas]
[ex. pattern Repository] [problème précis] [pourquoi l'accès direct DB ne suffit pas]