- 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
101 lines
3.5 KiB
Markdown
101 lines
3.5 KiB
Markdown
# 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, s’appuyer 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] |
|