3TE/missing_elements.md
Nicolas Cantu c7db6590f0 Initial commit: 4NK Waste & Water Simulator
**Motivations :**
* Create a complete simulator for 4NK Waste & Water modular waste treatment infrastructure
* Implement frontend-only application with client-side data persistence
* Provide seed data for wastes and natural regulators from specifications

**Root causes :**
* Need for a simulation tool to configure and manage waste treatment projects
* Requirement for localhost-only access with persistent client-side storage
* Need for initial seed data to bootstrap the application

**Correctifs :**
* Implemented authentication system with AuthContext
* Fixed login/logout functionality with proper state management
* Created placeholder pages for all routes

**Evolutions :**
* Complete application structure with React, TypeScript, and Vite
* Seed data for 9 waste types and 52 natural regulators
* Settings page with import/export and seed data loading functionality
* Configuration pages for wastes and regulators with CRUD operations
* Project management pages structure
* Business plan and yields pages placeholders
* Comprehensive UI/UX design system (dark mode only)
* Navigation system with sidebar and header

**Page affectées :**
* All pages: Login, Dashboard, Waste Configuration, Regulators Configuration, Services Configuration
* Project pages: Project List, Project Configuration, Treatment Sites, Waste Sites, Investors, Administrative Procedures
* Analysis pages: Yields, Business Plan
* Utility pages: Settings, Help
* Components: Layout, Sidebar, Header, base components (Button, Input, Select, Card, Badge, Table)
* Utils: Storage, seed data, formatters, validators, constants
* Types: Complete TypeScript definitions for all entities
2025-12-09 19:09:42 +01:00

379 lines
11 KiB
Markdown

# Éléments Manquants pour le Développement - Analyse
## 1. Stack Technique et Architecture
### 1.1 Framework et Technologies
**Manquant** :
- Version précise de React (ou autre framework si différent)
- TypeScript ou JavaScript pur ?
- Build tool (Vite, Create React App, Webpack ?)
- Package manager (npm, yarn, pnpm ?)
- Version de Node.js requise
**Recommandation** : Spécifier la stack technique complète
### 1.2 Routing
**Manquant** :
- Bibliothèque de routing (React Router ?)
- Structure des routes
- Gestion des routes protégées (authentification)
- Gestion des 404
**Recommandation** : Définir le système de routing
### 1.3 Gestion d'État
**Manquant** :
- Solution de state management (Context API, Zustand, Redux ?)
- Structure des stores/contexts
- Comment gérer l'état global vs local
- Persistance de l'état dans localStorage
**Recommandation** : Choisir et documenter la solution de state management
## 2. Structure de Données Détaillée
### 2.1 Schémas de Données JSON
**Manquant** :
- Schémas JSON complets pour chaque entité
- Structure exacte des objets stockés
- Relations entre entités (comment un projet référence un site)
- Versioning des données
- Migration de données
**Recommandation** : Créer des schémas JSON détaillés avec exemples
### 2.2 Relations entre Entités
**Manquant** :
- Comment un projet est lié à un site de traitement
- Comment un projet est lié à des sites de déchets
- Comment les déchets sont associés aux projets
- Comment les services sont liés aux projets
- Gestion des références (IDs, noms ?)
**Recommandation** : Définir le modèle de relations et les clés étrangères
### 2.3 Données Initiales (Seed Data)
**Manquant** :
- Données de démonstration initiales
- Valeurs par défaut pour les configurations
- Exemples de projets, sites, déchets
- Templates de configuration
**Recommandation** : Créer des données initiales pour faciliter le développement
## 3. Logique Métier Détaillée
### 3.1 Calculs Manquants
**Manquant** :
- Comment calculer la matière sèche (VS) à partir du % d'eau
- Comment calculer le CO₂ à partir du méthane (ratio précis)
- Comment calculer la consommation électrique des modules
- Comment calculer l'évaporation d'eau
- Comment calculer le rendement d'engrais à partir du compost
- Facteurs d'efficacité précis pour chaque processus
- Comment gérer les cycles de spiruline (retour en méthanisation)
**Recommandation** : Compléter les formules manquantes dans formulas_reference.md
### 3.2 Dépendances entre Calculs
**Manquant** :
- Ordre d'exécution des calculs
- Quels calculs dépendent de quels autres
- Comment mettre à jour les calculs quand une donnée change
- Gestion des calculs en cascade
**Recommandation** : Créer un graphe de dépendances des calculs
### 3.3 Validation Métier
**Manquant** :
- Règles de validation spécifiques (ex: BMP doit être entre X et Y)
- Contraintes entre champs (ex: si STEP sludge, alors pas de mélange)
- Validation des configurations de projet
- Validation des calculs (vérifier que les résultats sont cohérents)
**Recommandation** : Documenter toutes les règles de validation métier
## 4. Interface Utilisateur
### 4.1 Workflow Utilisateur
**Manquant** :
- Parcours utilisateur complet (user journey)
- Ordre recommandé de configuration (déchets → régulateurs → services → projets ?)
- Workflow de création d'un projet
- Workflow de calcul des rendements
- Gestion des erreurs dans les formulaires
**Recommandation** : Créer des diagrammes de workflow
### 4.2 États de l'Interface
**Manquant** :
- États de chargement (skeleton, spinners)
- États d'erreur (messages, retry)
- États vides (pas de projets, pas de données)
- États de succès (confirmations)
**Recommandation** : Définir tous les états UI possibles
### 4.3 Interactions
**Manquant** :
- Comportement des formulaires (sauvegarde auto, validation en temps réel ?)
- Comportement des tableaux (tri, filtres, pagination ?)
- Comportement des modales (fermeture, annulation)
- Gestion du clavier (raccourcis, navigation)
**Recommandation** : Spécifier les interactions détaillées
## 5. Gestion des Données
### 5.1 Export/Import
**Manquant** :
- Format exact d'export (JSON structure)
- Format d'import (validation, migration)
- Que faire en cas de conflit lors de l'import
- Export partiel (un projet, tous les projets ?)
- Versioning des exports
**Recommandation** : Définir le format d'export/import complet
### 5.2 Sauvegarde
**Manquant** :
- Fréquence de sauvegarde automatique
- Quand sauvegarder (à chaque modification, sur blur, sur submit ?)
- Gestion des conflits (si plusieurs onglets ouverts)
- Limite de taille des données
- Gestion du quota de stockage
**Recommandation** : Spécifier la stratégie de sauvegarde
### 5.3 Migration de Données
**Manquant** :
- Comment migrer les données si le schéma change
- Versioning des données
- Scripts de migration
- Rétrocompatibilité
**Recommandation** : Prévoir un système de versioning et migration
## 6. Authentification
### 6.1 Détails d'Implémentation
**Manquant** :
- Où stocker les credentials (localStorage ?)
- Format de stockage (hashé ? en clair ?)
- Gestion de la session (timeout ?)
- Gestion du logout
- Gestion de la reconnexion
**Recommandation** : Spécifier l'implémentation de l'authentification
### 6.2 Sécurité
**Manquant** :
- Comment empêcher l'accès depuis un autre host que localhost
- Validation côté client (mais pas de backend)
- Protection des données sensibles
**Recommandation** : Documenter les mesures de sécurité
## 7. Calculs et Rendements
### 7.1 Paramètres par Défaut
**Manquant** :
- Valeurs par défaut pour tous les paramètres
- Facteurs d'efficacité par défaut
- Ratios par défaut (CO₂/CH₄, etc.)
- Paramètres de conversion par défaut
**Recommandation** : Créer un fichier de constantes avec toutes les valeurs par défaut
### 7.2 Calculs Temporels
**Manquant** :
- Comment calculer les rendements sur différentes périodes (jour, semaine, mois, année)
- Comment agréger les données sur 10 ans pour le business plan
- Gestion des années bissextiles
- Calculs cumulatifs
**Recommandation** : Spécifier les calculs temporels
### 7.3 Calculs Multi-Modules
**Manquant** :
- Comment agréger les calculs de plusieurs modules
- Comment gérer les modules avec des configurations différentes
- Calculs par site de traitement (plusieurs modules)
**Recommandation** : Définir les règles d'agrégation
## 8. Business Plan
### 8.1 Calculs Financiers Détaillés
**Manquant** :
- Comment calculer les ajustements non-cash pour le cash flow
- Comment calculer les changements de fonds de roulement
- Calculs de dépréciation/amortissement
- Calculs d'impôts (si applicable)
- Calculs de remboursement de dette (si applicable)
**Recommandation** : Compléter les formules financières
### 8.2 Projections sur 10 Ans
**Manquant** :
- Comment projeter les revenus sur 10 ans (croissance ?)
- Comment projeter les coûts sur 10 ans (inflation ?)
- Facteurs de croissance/diminution
- Scénarios (optimiste, réaliste, pessimiste ?)
**Recommandation** : Définir les règles de projection
## 9. Configuration et Paramètres
### 9.1 Paramètres Configurables
**Manquant** :
- Liste complète des paramètres configurables
- Paramètres globaux vs paramètres par projet
- Paramètres par site
- Hiérarchie des paramètres (global → site → projet)
**Recommandation** : Créer une liste exhaustive des paramètres
### 9.2 Constantes
**Manquant** :
- Toutes les constantes physiques (énergie du méthane, etc.)
- Constantes de conversion
- Limites et contraintes (min/max)
- Unités de mesure standardisées
**Recommandation** : Créer un fichier de constantes complet
## 10. Gestion des Erreurs
### 10.1 Types d'Erreurs
**Manquant** :
- Erreurs de validation
- Erreurs de calcul (division par zéro, valeurs négatives)
- Erreurs de stockage (quota dépassé)
- Erreurs d'import/export
- Messages d'erreur utilisateur
**Recommandation** : Documenter tous les types d'erreurs et leurs messages
### 10.2 Gestion des Erreurs
**Manquant** :
- Comment afficher les erreurs
- Comment récupérer d'une erreur
- Logging des erreurs (console ?)
- Validation en temps réel vs à la soumission
**Recommandation** : Définir la stratégie de gestion d'erreurs
## 11. Tests
### 11.1 Stratégie de Tests
**Manquant** :
- Framework de tests (Jest, Vitest ?)
- Tests unitaires (quelles fonctions tester)
- Tests d'intégration
- Tests E2E (si applicable)
- Couverture de code attendue
**Recommandation** : Définir la stratégie de tests
### 11.2 Données de Test
**Manquant** :
- Jeux de données de test
- Cas limites à tester
- Scénarios de test
**Recommandation** : Créer des données de test
## 12. Documentation Technique
### 12.1 Documentation Développeur
**Manquant** :
- Guide de démarrage
- Architecture technique détaillée
- Guide de contribution
- Conventions de code
- Structure des dossiers
**Recommandation** : Créer une documentation technique
### 12.2 Documentation Utilisateur
**Manquant** :
- Guide utilisateur
- Tutoriels
- FAQ
- Aide contextuelle
**Recommandation** : Prévoir une documentation utilisateur
## 13. Déploiement et Distribution
### 13.1 Build et Distribution
**Manquant** :
- Processus de build
- Comment distribuer l'application (fichiers statiques ?)
- Comment l'utilisateur installe/lance l'application
- Serveur local nécessaire ?
**Recommandation** : Spécifier le processus de déploiement
### 13.2 Configuration d'Environnement
**Manquant** :
- Variables d'environnement
- Configuration de développement vs production
- Fichiers de configuration
**Recommandation** : Définir la configuration d'environnement
## 14. Accessibilité et Internationalisation
### 14.1 Accessibilité
**Manquant** :
- Niveau d'accessibilité requis (WCAG AA ?)
- Tests d'accessibilité
- Support des lecteurs d'écran
**Recommandation** : Spécifier les exigences d'accessibilité
### 14.2 Internationalisation
**Manquant** :
- Langues supportées (français uniquement ?)
- Format des dates/nombres
- Format des devises
**Recommandation** : Définir les besoins d'internationalisation
## 15. Performance
### 15.1 Contraintes de Performance
**Manquant** :
- Temps de chargement acceptable
- Temps de calcul acceptable
- Taille maximale des données
- Nombre maximum de projets/modules
**Recommandation** : Définir les objectifs de performance (même sans optimisation)
## Priorités Recommandées
### Priorité Haute (Blocant pour le développement)
1. Stack technique complet
2. Schémas de données JSON
3. Relations entre entités
4. Calculs manquants
5. Paramètres par défaut et constantes
6. Structure de projet
### Priorité Moyenne (Important pour la qualité)
1. Gestion d'état
2. Routing
3. Workflow utilisateur
4. Validation métier
5. Export/Import format
6. Gestion des erreurs
### Priorité Basse (Amélioration continue)
1. Tests
2. Documentation
3. Accessibilité
4. Internationalisation