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

11 KiB

É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