**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
379 lines
11 KiB
Markdown
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
|