6.8 KiB
6.8 KiB
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 linguistiquemorphology/: Analyse morphologique des motsnumbers/: 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)
// 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/
// Vers numbers
require('../numbers/numberConverter')
require('../numbers/numberPreprocessor')
// Vers morphology
require('../morphology/radicalMatcher')
require('../morphology/morphologicalDecomposer')
Depuis src/core/morphology/ ou src/core/numbers/
// Vers data
require('../../data/lexique.json')
Démarrage
Le point d'entrée est server.js à la racine qui importe src/api/server.js :
node server.js
ou
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