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

101 lines
3.5 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.

# 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
<!-- Remplacer le contenu par les détails techniques du projet -->
**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)
```text
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)
<!-- Remplacer l'arbre ci-dessous par la structure réelle de cette feature. Supprimer les options inutilisées. -->
```text
# [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] |