Class_generator/Legacy/TODO.md
StillHammer 38920cc858 Complete architectural rewrite with ultra-modular system
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>
2025-09-22 07:08:39 +08:00

7.2 KiB

TODO List - Class Generator

🔥 EN COURS

NOUVEAU : Système de Compatibilité Content-Game TERMINÉ

  • 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

  • Create index.html with 3-level navigation FAIT
  • Implement URL routing with params FAIT (?page=games&game=whack&content=sbs8)
  • Build game-selector.html with clickable cards FAIT (intégré dans index.html)
  • Build level-selector.html with dynamic content loading FAIT
  • Create game.html generic page with dynamic module loading FAIT

Game Modules

  • Refactor existing whack-a-mole.js into proper module format FAIT
  • Refactor existing fill-the-blank.js into proper module format FAIT
  • Implement game loader system FAIT (js/core/game-loader.js)
  • Create base GameEngine class for inheritance FAIT (pattern établi)

Content System

  • Convert sbs-level-8.js to new unified format FAIT (sbs-level-7-8-new.json)
  • Implement content loader system FAIT (content-scanner.js, json-content-loader.js)
  • Create content validation functions FAIT
  • Add error handling for missing content FAIT

Jeux Existants

  • whack-a-mole.js FAIT
  • whack-a-mole-hard.js FAIT
  • memory-match.js FAIT
  • quiz-game.js FAIT
  • fill-the-blank.js FAIT
  • text-reader.js FAIT
  • 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)

  • navigation.js - handle URL routing and back buttons FAIT
  • utils.js - shared utility functions FAIT
  • audio-manager.js Intégré dans les jeux
  • progress-tracker.js Score tracking implémenté

Performance & UX

  • Lazy loading for game modules FAIT (GameLoader)
  • Add loading states and spinners FAIT
  • Implement keyboard shortcuts (ESC = back) FAIT

Réseau et Cloud

  • Configuration DigitalOcean Spaces FAIT
  • Proxy HTTP sur port 8083 FAIT
  • Authentification AWS Signature V4 FAIT
  • Support HEAD et GET dans le proxy FAIT
  • 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.