**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
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)
- Stack technique complet
- Schémas de données JSON
- Relations entre entités
- Calculs manquants
- Paramètres par défaut et constantes
- Structure de projet
Priorité Moyenne (Important pour la qualité)
- Gestion d'état
- Routing
- Workflow utilisateur
- Validation métier
- Export/Import format
- Gestion des erreurs
Priorité Basse (Amélioration continue)
- Tests
- Documentation
- Accessibilité
- Internationalisation