From 4b0f916d1c90d41288b94e718fecad5559c628fb Mon Sep 17 00:00:00 2001 From: StillHammer Date: Tue, 2 Dec 2025 23:28:12 +0800 Subject: [PATCH] =?UTF-8?q?Restructuration=20compl=C3=A8te=20du=20projet?= =?UTF-8?q?=20ConfluentTranslator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Nouvelle architecture modulaire avec src/api, src/core, src/utils - Séparation claire docs/ (admin, changelog, dev, security) et tests/ (unit, integration, scripts) - server.js devient un simple point d'entrée - Ajout de STRUCTURE.md documentant l'architecture - Archivage ancien-confluent/ avec générateur de lexique complet 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- ConfluentTranslator/STRUCTURE.md | 187 + ConfluentTranslator/data/tokens.json | 18 +- .../{ => docs/admin}/ADMIN_GUIDE.md | 0 .../{ => docs/admin}/QUICKSTART_ADMIN.md | 0 .../{ => docs/changelog}/COMMIT_SUMMARY.md | 0 .../changelog}/TESTS_NOMBRES_RESULTAT.md | 0 .../{ => docs/changelog}/TESTS_SUMMARY.md | 0 .../changelog}/test-results-radical-system.md | 0 .../analysis}/ANALYSE_MOTS_PROBLEMATIQUES.md | 0 .../dev/numbers}/NUMBER_PREPROCESSING.md | 0 .../{ => docs/security}/CHANGELOG_SECURITY.md | 0 .../{ => docs/security}/README_SECURITY.md | 0 .../{ => docs/security}/SECURITY_TEST.md | 0 ConfluentTranslator/public/index.html | 37 +- ConfluentTranslator/server.js | 875 +- .../{ => src/api}/adminRoutes.js | 10 +- ConfluentTranslator/src/api/server.js | 872 ++ .../morphology}/morphologicalDecomposer.js | 2 +- .../core/morphology}/radicalMatcher.js | 2 +- .../core/morphology}/reverseIndexBuilder.js | 0 .../{ => src/core/numbers}/numberConverter.js | 0 .../core/numbers}/numberPreprocessor.js | 0 .../core/translation}/confluentToFrench.js | 4 +- .../core/translation}/contextAnalyzer.js | 2 +- .../core/translation}/promptBuilder.js | 2 +- ConfluentTranslator/{ => src/utils}/auth.js | 36 +- .../{ => src/utils}/lexiqueLoader.js | 0 ConfluentTranslator/{ => src/utils}/logger.js | 0 .../{ => src/utils}/rateLimiter.js | 0 .../integration/api}/INDEX.md | 0 .../integration/api}/QUICKSTART.md | 0 .../integration/api}/README.md | 0 .../integration/api}/STRUCTURE.txt | 0 .../integration/api}/get-token.bat | 0 .../integration/api}/quick-check.bat | 0 .../integration/api}/test-all.bat | 0 .../integration/api}/test-authorized.bat | 0 .../integration/api}/test-health.bat | 0 .../integration/api}/test-unauthorized.bat | 0 .../{ => tests/scripts}/test-coverage.bat | 0 .../{ => tests/scripts}/test-coverage.sh | 0 .../scripts}/test-llm-refinement.bat | 0 .../{ => tests/scripts}/test-reverse.bat | 0 .../{ => tests/scripts}/test-security.sh | 0 .../{ => tests/unit}/debug-lemmatization.js | 0 .../unit}/test-abstract-concepts.js | 0 .../{ => tests/unit}/test-accents.json | 0 .../{ => tests/unit}/test-api-accents.js | 0 .../{ => tests/unit}/test-apostrophe-fix.js | 0 .../{ => tests/unit}/test-complexe.txt | 0 .../{ => tests/unit}/test-context-skimming.js | 0 .../{ => tests/unit}/test-contextAnalyzer.js | 0 .../{ => tests/unit}/test-cultural-text.js | 0 .../{ => tests/unit}/test-decomposition.js | 0 .../{ => tests/unit}/test-find-roots.js | 0 .../{ => tests/unit}/test-lemma-new.js | 0 .../{ => tests/unit}/test-lemmatize.json | 0 .../{ => tests/unit}/test-long-coverage.js | 0 .../{ => tests/unit}/test-marcher.json | 0 .../{ => tests/unit}/test-new-vocabulary.js | 0 .../{ => tests/unit}/test-nombres.js | 0 .../unit}/test-number-preprocessor.js | 0 .../{ => tests/unit}/test-observe.json | 0 .../{ => tests/unit}/test-observent-seul.json | 0 .../{ => tests/unit}/test-prep.json | 0 .../{ => tests/unit}/test-prompt-nombres.js | 0 .../{ => tests/unit}/test-promptBuilder.js | 0 .../{ => tests/unit}/test-pronoun-system.js | 0 .../{ => tests/unit}/test-pronouns.js | 0 .../{ => tests/unit}/test-simple-nombre.js | 0 .../{ => tests/unit}/test-voient-seul.json | 0 .../{ => tests/unit}/test-voit.json | 0 ancien-confluent/README.md | 119 + ancien-confluent/docs/LEXIQUE-COMPLET.md | 8456 +++++++++++++++++ ancien-confluent/generer-lexique-complet.bat | 25 + ancien-confluent/generer-lexique-complet.js | 191 + 76 files changed, 9885 insertions(+), 953 deletions(-) create mode 100644 ConfluentTranslator/STRUCTURE.md rename ConfluentTranslator/{ => docs/admin}/ADMIN_GUIDE.md (100%) rename ConfluentTranslator/{ => docs/admin}/QUICKSTART_ADMIN.md (100%) rename ConfluentTranslator/{ => docs/changelog}/COMMIT_SUMMARY.md (100%) rename ConfluentTranslator/{ => docs/changelog}/TESTS_NOMBRES_RESULTAT.md (100%) rename ConfluentTranslator/{ => docs/changelog}/TESTS_SUMMARY.md (100%) rename ConfluentTranslator/{ => docs/changelog}/test-results-radical-system.md (100%) rename ConfluentTranslator/{ => docs/dev/analysis}/ANALYSE_MOTS_PROBLEMATIQUES.md (100%) rename ConfluentTranslator/{ => docs/dev/numbers}/NUMBER_PREPROCESSING.md (100%) rename ConfluentTranslator/{ => docs/security}/CHANGELOG_SECURITY.md (100%) rename ConfluentTranslator/{ => docs/security}/README_SECURITY.md (100%) rename ConfluentTranslator/{ => docs/security}/SECURITY_TEST.md (100%) rename ConfluentTranslator/{ => src/api}/adminRoutes.js (88%) create mode 100644 ConfluentTranslator/src/api/server.js rename ConfluentTranslator/{ => src/core/morphology}/morphologicalDecomposer.js (99%) rename ConfluentTranslator/{ => src/core/morphology}/radicalMatcher.js (98%) rename ConfluentTranslator/{ => src/core/morphology}/reverseIndexBuilder.js (100%) rename ConfluentTranslator/{ => src/core/numbers}/numberConverter.js (100%) rename ConfluentTranslator/{ => src/core/numbers}/numberPreprocessor.js (100%) rename ConfluentTranslator/{ => src/core/translation}/confluentToFrench.js (98%) rename ConfluentTranslator/{ => src/core/translation}/contextAnalyzer.js (99%) rename ConfluentTranslator/{ => src/core/translation}/promptBuilder.js (99%) rename ConfluentTranslator/{ => src/utils}/auth.js (87%) rename ConfluentTranslator/{ => src/utils}/lexiqueLoader.js (100%) rename ConfluentTranslator/{ => src/utils}/logger.js (100%) rename ConfluentTranslator/{ => src/utils}/rateLimiter.js (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/INDEX.md (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/QUICKSTART.md (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/README.md (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/STRUCTURE.txt (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/get-token.bat (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/quick-check.bat (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/test-all.bat (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/test-authorized.bat (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/test-health.bat (100%) rename ConfluentTranslator/{testsAPI => tests/integration/api}/test-unauthorized.bat (100%) rename ConfluentTranslator/{ => tests/scripts}/test-coverage.bat (100%) rename ConfluentTranslator/{ => tests/scripts}/test-coverage.sh (100%) rename ConfluentTranslator/{ => tests/scripts}/test-llm-refinement.bat (100%) rename ConfluentTranslator/{ => tests/scripts}/test-reverse.bat (100%) rename ConfluentTranslator/{ => tests/scripts}/test-security.sh (100%) rename ConfluentTranslator/{ => tests/unit}/debug-lemmatization.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-abstract-concepts.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-accents.json (100%) rename ConfluentTranslator/{ => tests/unit}/test-api-accents.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-apostrophe-fix.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-complexe.txt (100%) rename ConfluentTranslator/{ => tests/unit}/test-context-skimming.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-contextAnalyzer.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-cultural-text.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-decomposition.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-find-roots.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-lemma-new.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-lemmatize.json (100%) rename ConfluentTranslator/{ => tests/unit}/test-long-coverage.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-marcher.json (100%) rename ConfluentTranslator/{ => tests/unit}/test-new-vocabulary.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-nombres.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-number-preprocessor.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-observe.json (100%) rename ConfluentTranslator/{ => tests/unit}/test-observent-seul.json (100%) rename ConfluentTranslator/{ => tests/unit}/test-prep.json (100%) rename ConfluentTranslator/{ => tests/unit}/test-prompt-nombres.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-promptBuilder.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-pronoun-system.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-pronouns.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-simple-nombre.js (100%) rename ConfluentTranslator/{ => tests/unit}/test-voient-seul.json (100%) rename ConfluentTranslator/{ => tests/unit}/test-voit.json (100%) create mode 100644 ancien-confluent/README.md create mode 100644 ancien-confluent/docs/LEXIQUE-COMPLET.md create mode 100644 ancien-confluent/generer-lexique-complet.bat create mode 100644 ancien-confluent/generer-lexique-complet.js diff --git a/ConfluentTranslator/STRUCTURE.md b/ConfluentTranslator/STRUCTURE.md new file mode 100644 index 0000000..ba753d4 --- /dev/null +++ b/ConfluentTranslator/STRUCTURE.md @@ -0,0 +1,187 @@ +# Structure du projet ConfluentTranslator + +Ce document décrit l'organisation du projet après la réorganisation. + +## Arborescence + +``` +ConfluentTranslator/ +├── server.js # Point d'entrée principal (lance src/api/server.js) +├── package.json # Dépendances et scripts npm +├── .env / .env.example # Configuration environnement +├── README.md # Documentation utilisateur +│ +├── src/ # Code source organisé +│ ├── api/ # Serveur et routes HTTP +│ │ ├── server.js # Serveur Express principal +│ │ └── adminRoutes.js # Routes d'administration +│ ├── core/ # Logique métier +│ │ ├── translation/ # Modules de traduction +│ │ │ ├── confluentToFrench.js # Traduction Confluent → FR +│ │ │ ├── contextAnalyzer.js # Analyse contextuelle +│ │ │ └── promptBuilder.js # Construction des prompts LLM +│ │ ├── morphology/ # Morphologie et décomposition +│ │ │ ├── morphologicalDecomposer.js # Décomposition morphologique +│ │ │ ├── radicalMatcher.js # Recherche par radicaux +│ │ │ └── reverseIndexBuilder.js # Construction d'index inversés +│ │ └── numbers/ # Traitement des nombres +│ │ ├── numberConverter.js # Conversion FR → Confluent +│ │ └── numberPreprocessor.js # Prétraitement des nombres +│ └── utils/ # Utilitaires +│ ├── auth.js # Authentification et tokens +│ ├── lexiqueLoader.js # Chargement des lexiques +│ ├── logger.js # Système de logs +│ └── rateLimiter.js # Rate limiting +│ +├── docs/ # Documentation +│ ├── admin/ # Documentation admin +│ │ ├── ADMIN_GUIDE.md +│ │ └── QUICKSTART_ADMIN.md +│ ├── security/ # Documentation sécurité +│ │ ├── README_SECURITY.md +│ │ ├── SECURITY_TEST.md +│ │ └── CHANGELOG_SECURITY.md +│ ├── dev/ # Documentation développeur +│ │ ├── analysis/ # Analyses techniques +│ │ │ └── ANALYSE_MOTS_PROBLEMATIQUES.md +│ │ └── numbers/ # Documentation nombres +│ │ └── NUMBER_PREPROCESSING.md +│ └── changelog/ # Historique et résultats +│ ├── COMMIT_SUMMARY.md +│ ├── TESTS_SUMMARY.md +│ ├── TESTS_NOMBRES_RESULTAT.md +│ └── test-results-radical-system.md +│ +├── tests/ # Tests +│ ├── unit/ # Tests unitaires (.js, .json, .txt) +│ ├── integration/ # Tests d'intégration +│ │ └── api/ # Tests API (ex: testsAPI/) +│ └── scripts/ # Scripts de test (.sh, .bat) +│ +├── data/ # Données du projet +│ ├── lexique.json # Lexique principal +│ ├── tokens.json # Tokens d'authentification +│ └── (autres fichiers JSON de lexique) +│ +├── prompts/ # Prompts système pour LLM +│ ├── proto-system.txt +│ └── ancien-system.txt +│ +├── public/ # Fichiers statiques +│ ├── index.html +│ ├── admin.html +│ └── (autres fichiers statiques) +│ +├── logs/ # Logs applicatifs +│ └── (fichiers de logs générés) +│ +├── plans/ # Plans et documentation de travail +│ └── (documents de planification) +│ +└── node_modules/ # Dépendances npm (généré) +``` + +## Principes d'organisation + +### src/ - Code source + +Le dossier `src/` contient tout le code applicatif organisé par fonction : + +- **api/** : Tout ce qui concerne le serveur HTTP et les routes +- **core/** : La logique métier, subdivisée par domaine + - `translation/` : Traduction et analyse linguistique + - `morphology/` : Analyse morphologique des mots + - `numbers/` : Gestion spécifique des nombres +- **utils/** : Fonctions utilitaires transverses + +### docs/ - Documentation + +Documentation organisée par audience et type : + +- **admin/** : Guides pour les administrateurs +- **security/** : Documentation sécurité +- **dev/** : Documentation technique pour développeurs +- **changelog/** : Historique des changements et résultats de tests + +### tests/ - Tests + +Tests organisés par type : + +- **unit/** : Tests unitaires des modules individuels +- **integration/** : Tests d'intégration entre modules +- **scripts/** : Scripts shell/batch pour lancer les tests + +## Imports et chemins + +### Depuis src/api/ (server.js, adminRoutes.js) + +```javascript +// Utilitaires +require('../utils/auth') +require('../utils/logger') +require('../utils/lexiqueLoader') +require('../utils/rateLimiter') + +// Translation +require('../core/translation/contextAnalyzer') +require('../core/translation/promptBuilder') +require('../core/translation/confluentToFrench') + +// Morphology +require('../core/morphology/reverseIndexBuilder') + +// Chemins vers ressources +path.join(__dirname, '..', '..', 'public') +path.join(__dirname, '..', '..', 'prompts') +path.join(__dirname, '..', '..', 'data') +``` + +### Depuis src/core/translation/ + +```javascript +// Vers numbers +require('../numbers/numberConverter') +require('../numbers/numberPreprocessor') + +// Vers morphology +require('../morphology/radicalMatcher') +require('../morphology/morphologicalDecomposer') +``` + +### Depuis src/core/morphology/ ou src/core/numbers/ + +```javascript +// Vers data +require('../../data/lexique.json') +``` + +## Démarrage + +Le point d'entrée est `server.js` à la racine qui importe `src/api/server.js` : + +```bash +node server.js +``` + +ou + +```bash +npm start +``` + +## Migrations futures + +Si nécessaire, cette structure permet facilement : + +- D'ajouter de nouveaux modules dans `src/core/` +- De créer des sous-modules dans `src/api/` (ex: routes métier) +- D'ajouter des catégories de tests +- D'organiser la documentation par projets + +## Avantages + +- **Clarté** : Chaque fichier a sa place logique +- **Maintenabilité** : Structure modulaire et organisée +- **Scalabilité** : Facile d'ajouter de nouveaux modules +- **Découvrabilité** : On trouve rapidement ce qu'on cherche +- **Séparation des préoccupations** : Code / Docs / Tests séparés diff --git a/ConfluentTranslator/data/tokens.json b/ConfluentTranslator/data/tokens.json index 8f1c36e..95b245c 100644 --- a/ConfluentTranslator/data/tokens.json +++ b/ConfluentTranslator/data/tokens.json @@ -6,9 +6,7 @@ "apiKey": "d9be0765-c454-47e9-883c-bcd93dd19eae", "createdAt": "2025-12-02T06:57:35.077Z", "active": true, - "requestsToday": 35, - "dailyLimit": -1, - "lastUsed": "2025-12-02T08:02:37.203Z", + "lastUsed": "2025-12-02T12:54:49.316Z", "llmTokens": { "totalInput": 0, "totalOutput": 0, @@ -28,19 +26,17 @@ "apiKey": "008d38c2-e6ed-4852-9b8b-a433e197719a", "createdAt": "2025-12-02T07:06:17.791Z", "active": true, - "requestsToday": 100, - "dailyLimit": 100, - "lastUsed": "2025-12-02T08:09:45.029Z", + "lastUsed": "2025-12-02T12:51:17.345Z", "llmTokens": { - "totalInput": 0, - "totalOutput": 0, + "totalInput": 40852, + "totalOutput": 596, "today": { - "input": 0, - "output": 0, + "input": 40852, + "output": 596, "date": "2025-12-02" } }, - "llmRequestsToday": 0, + "llmRequestsToday": 20, "llmDailyLimit": 20 } } \ No newline at end of file diff --git a/ConfluentTranslator/ADMIN_GUIDE.md b/ConfluentTranslator/docs/admin/ADMIN_GUIDE.md similarity index 100% rename from ConfluentTranslator/ADMIN_GUIDE.md rename to ConfluentTranslator/docs/admin/ADMIN_GUIDE.md diff --git a/ConfluentTranslator/QUICKSTART_ADMIN.md b/ConfluentTranslator/docs/admin/QUICKSTART_ADMIN.md similarity index 100% rename from ConfluentTranslator/QUICKSTART_ADMIN.md rename to ConfluentTranslator/docs/admin/QUICKSTART_ADMIN.md diff --git a/ConfluentTranslator/COMMIT_SUMMARY.md b/ConfluentTranslator/docs/changelog/COMMIT_SUMMARY.md similarity index 100% rename from ConfluentTranslator/COMMIT_SUMMARY.md rename to ConfluentTranslator/docs/changelog/COMMIT_SUMMARY.md diff --git a/ConfluentTranslator/TESTS_NOMBRES_RESULTAT.md b/ConfluentTranslator/docs/changelog/TESTS_NOMBRES_RESULTAT.md similarity index 100% rename from ConfluentTranslator/TESTS_NOMBRES_RESULTAT.md rename to ConfluentTranslator/docs/changelog/TESTS_NOMBRES_RESULTAT.md diff --git a/ConfluentTranslator/TESTS_SUMMARY.md b/ConfluentTranslator/docs/changelog/TESTS_SUMMARY.md similarity index 100% rename from ConfluentTranslator/TESTS_SUMMARY.md rename to ConfluentTranslator/docs/changelog/TESTS_SUMMARY.md diff --git a/ConfluentTranslator/test-results-radical-system.md b/ConfluentTranslator/docs/changelog/test-results-radical-system.md similarity index 100% rename from ConfluentTranslator/test-results-radical-system.md rename to ConfluentTranslator/docs/changelog/test-results-radical-system.md diff --git a/ConfluentTranslator/ANALYSE_MOTS_PROBLEMATIQUES.md b/ConfluentTranslator/docs/dev/analysis/ANALYSE_MOTS_PROBLEMATIQUES.md similarity index 100% rename from ConfluentTranslator/ANALYSE_MOTS_PROBLEMATIQUES.md rename to ConfluentTranslator/docs/dev/analysis/ANALYSE_MOTS_PROBLEMATIQUES.md diff --git a/ConfluentTranslator/NUMBER_PREPROCESSING.md b/ConfluentTranslator/docs/dev/numbers/NUMBER_PREPROCESSING.md similarity index 100% rename from ConfluentTranslator/NUMBER_PREPROCESSING.md rename to ConfluentTranslator/docs/dev/numbers/NUMBER_PREPROCESSING.md diff --git a/ConfluentTranslator/CHANGELOG_SECURITY.md b/ConfluentTranslator/docs/security/CHANGELOG_SECURITY.md similarity index 100% rename from ConfluentTranslator/CHANGELOG_SECURITY.md rename to ConfluentTranslator/docs/security/CHANGELOG_SECURITY.md diff --git a/ConfluentTranslator/README_SECURITY.md b/ConfluentTranslator/docs/security/README_SECURITY.md similarity index 100% rename from ConfluentTranslator/README_SECURITY.md rename to ConfluentTranslator/docs/security/README_SECURITY.md diff --git a/ConfluentTranslator/SECURITY_TEST.md b/ConfluentTranslator/docs/security/SECURITY_TEST.md similarity index 100% rename from ConfluentTranslator/SECURITY_TEST.md rename to ConfluentTranslator/docs/security/SECURITY_TEST.md diff --git a/ConfluentTranslator/public/index.html b/ConfluentTranslator/public/index.html index 5cca0e2..079e8b1 100644 --- a/ConfluentTranslator/public/index.html +++ b/ConfluentTranslator/public/index.html @@ -536,7 +536,7 @@ border-radius: 6px; display: none; "> - Requêtes LLM: 20/20 + Requêtes LLM: 0/20
@@ -810,24 +810,6 @@
-

🔑 API Keys (optionnel)

- -
- - - - Laisser vide pour utiliser la clé du serveur - -
- -
- - - - Laisser vide pour utiliser la clé du serveur - -
-