- 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 <noreply@anthropic.com>
188 lines
6.6 KiB
Markdown
188 lines
6.6 KiB
Markdown
# 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
|