Major Changes: - Moved legacy system to Legacy/ folder for archival - Built new modular architecture with strict separation of concerns - Created core system: Module, EventBus, ModuleLoader, Router - Added Application bootstrap with auto-start functionality - Implemented development server with ES6 modules support - Created comprehensive documentation and project context - Converted SBS-7-8 content to JSON format - Copied all legacy games and content to new structure New Architecture Features: - Sealed modules with WeakMap private data - Strict dependency injection system - Event-driven communication only - Inviolable responsibility patterns - Auto-initialization without commands - Component-based UI foundation ready Technical Stack: - Vanilla JS/HTML/CSS only - ES6 modules with proper imports/exports - HTTP development server (no file:// protocol) - Modular CSS with component scoping - Comprehensive error handling and debugging Ready for Phase 2: Converting legacy modules to new architecture 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
192 lines
7.2 KiB
Markdown
192 lines
7.2 KiB
Markdown
# TODO List - Class Generator
|
|
|
|
## 🔥 EN COURS
|
|
|
|
### ✅ NOUVEAU : Système de Compatibilité Content-Game TERMINÉ
|
|
- [x] **Système complet de vérification de compatibilité implémenté**
|
|
- Analyse automatique des capacités du contenu
|
|
- Calculs de compatibilité spécifiques par jeu
|
|
- Interface visuelle avec badges et séparation des jeux
|
|
- Modal d'aide avec suggestions d'amélioration
|
|
- Documentation complète dans `COMPATIBILITY-SYSTEM.md`
|
|
|
|
### Problèmes Actuels
|
|
- [ ] **Corriger le chargement des modules JSON distants dans ContentScanner**
|
|
- Les fichiers JSON distants sont trouvés mais ne se chargent pas comme modules
|
|
- Problème avec JsonContentLoader et la transformation en modules
|
|
- Fichiers concernés : `english-class-demo.json`, `sbs-level-7-8-new.json`
|
|
|
|
### Système de listing dynamique
|
|
- [ ] **Implémenter un système de listing dynamique des fichiers DigitalOcean**
|
|
- Actuellement bloqué par permissions ListBucket (403 Forbidden)
|
|
- Les clés actuelles ne permettent que GetObject, pas ListBucket
|
|
- [ ] **Remplacer la liste hardcodée par une découverte automatique**
|
|
- Actuellement : liste fixe dans `tryCommonFiles()`
|
|
- Objectif : scanner dynamiquement tous les fichiers
|
|
- [ ] **Obtenir des clés avec permissions ListBucket pour le listing S3**
|
|
|
|
## 📋 À FAIRE - URGENT
|
|
|
|
### Core Navigation System
|
|
- [x] ~~Create index.html with 3-level navigation~~ ✅ FAIT
|
|
- [x] ~~Implement URL routing with params~~ ✅ FAIT (`?page=games&game=whack&content=sbs8`)
|
|
- [x] ~~Build game-selector.html with clickable cards~~ ✅ FAIT (intégré dans index.html)
|
|
- [x] ~~Build level-selector.html with dynamic content loading~~ ✅ FAIT
|
|
- [x] ~~Create game.html generic page with dynamic module loading~~ ✅ FAIT
|
|
|
|
### Game Modules
|
|
- [x] ~~Refactor existing whack-a-mole.js into proper module format~~ ✅ FAIT
|
|
- [x] ~~Refactor existing fill-the-blank.js into proper module format~~ ✅ FAIT
|
|
- [x] ~~Implement game loader system~~ ✅ FAIT (`js/core/game-loader.js`)
|
|
- [x] ~~Create base GameEngine class for inheritance~~ ✅ FAIT (pattern établi)
|
|
|
|
### Content System
|
|
- [x] ~~Convert sbs-level-8.js to new unified format~~ ✅ FAIT (sbs-level-7-8-new.json)
|
|
- [x] ~~Implement content loader system~~ ✅ FAIT (content-scanner.js, json-content-loader.js)
|
|
- [x] ~~Create content validation functions~~ ✅ FAIT
|
|
- [x] ~~Add error handling for missing content~~ ✅ FAIT
|
|
|
|
### Jeux Existants
|
|
- [x] ~~whack-a-mole.js~~ ✅ FAIT
|
|
- [x] ~~whack-a-mole-hard.js~~ ✅ FAIT
|
|
- [x] ~~memory-match.js~~ ✅ FAIT
|
|
- [x] ~~quiz-game.js~~ ✅ FAIT
|
|
- [x] ~~fill-the-blank.js~~ ✅ FAIT
|
|
- [x] ~~text-reader.js~~ ✅ FAIT
|
|
- [x] ~~adventure-reader.js~~ ✅ FAIT
|
|
|
|
## 📚 CONTENT EXPANSION
|
|
|
|
### Contenu DigitalOcean
|
|
- [ ] **Ajouter plus de fichiers JSON sur DigitalOcean**
|
|
- Actuellement : `english-class-demo.json`, `sbs-level-7-8-new.json`
|
|
- À ajouter : animals.json, colors.json, family.json, etc.
|
|
|
|
### Lesson Introduction Module
|
|
- [ ] Create lesson-intro.js for vocabulary presentation
|
|
- [ ] Add context presentation before games
|
|
- [ ] Implement guided repetition system
|
|
- [ ] Add audio playback for pronunciation
|
|
|
|
## 🔧 TECHNICAL IMPROVEMENTS
|
|
|
|
### Core System (DÉJÀ FAIT)
|
|
- [x] ~~navigation.js - handle URL routing and back buttons~~ ✅ FAIT
|
|
- [x] ~~utils.js - shared utility functions~~ ✅ FAIT
|
|
- [x] ~~audio-manager.js~~ ✅ Intégré dans les jeux
|
|
- [x] ~~progress-tracker.js~~ ✅ Score tracking implémenté
|
|
|
|
### Performance & UX
|
|
- [x] ~~Lazy loading for game modules~~ ✅ FAIT (GameLoader)
|
|
- [x] ~~Add loading states and spinners~~ ✅ FAIT
|
|
- [x] ~~Implement keyboard shortcuts (ESC = back)~~ ✅ FAIT
|
|
|
|
### Réseau et Cloud
|
|
- [x] ~~Configuration DigitalOcean Spaces~~ ✅ FAIT
|
|
- [x] ~~Proxy HTTP sur port 8083~~ ✅ FAIT
|
|
- [x] ~~Authentification AWS Signature V4~~ ✅ FAIT
|
|
- [x] ~~Support HEAD et GET dans le proxy~~ ✅ FAIT
|
|
- [x] ~~WebSocket logger sur port 8082~~ ✅ FAIT
|
|
|
|
## 🎯 ARCHITECTURE ACTUELLE
|
|
|
|
### Structure Implémentée ✅
|
|
```
|
|
├── index.html ✅
|
|
├── css/
|
|
│ ├── styles.css ✅
|
|
│ └── components/ ✅
|
|
├── js/
|
|
│ ├── core/
|
|
│ │ ├── navigation.js ✅
|
|
│ │ ├── game-loader.js ✅
|
|
│ │ ├── content-scanner.js ✅
|
|
│ │ ├── content-engine.js ✅
|
|
│ │ ├── json-content-loader.js ✅
|
|
│ │ ├── env-config.js ✅
|
|
│ │ └── websocket-logger.js ✅
|
|
│ ├── games/
|
|
│ │ ├── whack-a-mole.js ✅
|
|
│ │ ├── whack-a-mole-hard.js ✅
|
|
│ │ ├── memory-match.js ✅
|
|
│ │ ├── quiz-game.js ✅
|
|
│ │ ├── fill-the-blank.js ✅
|
|
│ │ ├── text-reader.js ✅
|
|
│ │ └── adventure-reader.js ✅
|
|
│ └── content/
|
|
│ ├── sbs-level-7-8-new.js ✅
|
|
│ └── [fichiers JSON distants via proxy]
|
|
├── export_logger/
|
|
│ ├── websocket-server.js ✅
|
|
│ └── logs-viewer.html ✅
|
|
└── Start_Class_Generator.bat ✅
|
|
```
|
|
|
|
## 🌟 FUTURES AMÉLIORATIONS
|
|
|
|
### Nouveaux Types de Jeux
|
|
- [ ] simon-says.js - jeu "Touch the X" digital
|
|
- [ ] speed-categories.js - catégorisation rapide
|
|
- [ ] true-false.js - vrai/faux avec images
|
|
- [ ] sound-match.js - correspondance audio-image
|
|
- [ ] catch-words.js - mots volants à attraper
|
|
- [ ] drag-drop.js - construction de phrases
|
|
- [ ] story-builder.js - construction narrative
|
|
|
|
### Système de Contenu
|
|
- [ ] Schémas de validation JSON
|
|
- [ ] Générateurs de contenu dynamique
|
|
- [ ] Import/export de contenu
|
|
- [ ] Support multi-langue UI
|
|
|
|
### Extensions Système
|
|
- [ ] Architecture de plugins pour jeux tiers
|
|
- [ ] API pour sources de contenu externes
|
|
- [ ] Système de cache offline avancé
|
|
- [ ] PWA (Progressive Web App)
|
|
|
|
## 🚀 VERSION CHINOISE (FUTUR)
|
|
|
|
### Adaptations Architecture
|
|
- [ ] Format de contenu étendu pour le chinois
|
|
- [ ] Support des tons dans le système audio
|
|
- [ ] Ordre des traits des caractères
|
|
- [ ] Système d'affichage pinyin
|
|
|
|
### Jeux Spécifiques Chinois
|
|
- [ ] stroke-order.js - écriture de caractères
|
|
- [ ] tone-practice.js - reconnaissance des tons
|
|
- [ ] radical-builder.js - composition de caractères
|
|
- [ ] pinyin-typing.js - pratique de romanisation
|
|
|
|
## 🤖 INTÉGRATION IA (FUTUR)
|
|
|
|
### Points d'Intégration API
|
|
- [ ] content-generator.js - création de contenu IA
|
|
- [ ] response-validator.js - vérification de réponses IA
|
|
- [ ] difficulty-adapter.js - ajustement de difficulté IA
|
|
- [ ] feedback-generator.js - feedback personnalisé IA
|
|
|
|
### Collection de Données
|
|
- [ ] Logging des interactions utilisateur
|
|
- [ ] Collection de métriques de performance
|
|
- [ ] Tracking des patterns d'erreur
|
|
- [ ] Structure de données de progression
|
|
|
|
## 📝 Notes Importantes
|
|
|
|
### Configuration Actuelle
|
|
- **Proxy** : `http://localhost:8083/do-proxy/`
|
|
- **WebSocket** : `ws://localhost:8082`
|
|
- **App** : `http://localhost:8080`
|
|
|
|
### Fichiers Confirmés sur DigitalOcean
|
|
- `english-class-demo.json` (12,425 caractères)
|
|
- `sbs-level-7-8-new.json` (9,382 caractères)
|
|
|
|
### Clés DigitalOcean
|
|
- Access Key : `DO8018LC8QF7CFBF7E2K`
|
|
- Limitation : GetObject seulement, pas ListBucket
|
|
|
|
### Problème Principal Restant
|
|
Les fichiers JSON distants sont détectés mais ne se transforment pas en modules JavaScript utilisables par l'application. |