docs: Ajout du CHANGELOG.md pour la version 1.1.0

- Documentation complète des nouvelles fonctionnalités
- Historique des modifications et améliorations
- Statistiques de performance et métriques
- Workflow d'upload optimisé documenté
This commit is contained in:
Nicolas Cantu 2025-09-16 02:03:23 +02:00
parent c6b5767d5d
commit 98f444d008

View File

@ -1,130 +1,109 @@
# Changelog
# 📋 Changelog - 4NK_IA Frontend
## [0.1.3] - 2025-09-11
### Ajouté
- Dockerfile multi-stage (build Node 20 LTS → Nginx) et `nginx.conf`
- `.dockerignore` pour un contexte minimal
- Scripts `scripts/docker-build.sh` et `scripts/docker-push.sh`
## [1.1.0] - 2025-09-15
### Modifié
- `ExtractionView.tsx`: correction du balisage pour éviter `<div>` dans `<p>` (hydratation)
- Documentation: README et `docs/DEPLOYMENT.md` mis à jour (Docker, versions Node)
### ✨ Nouvelles Fonctionnalités
### Technique
- `.nvmrc` ajouté et vérification `predev`/`prebuild` de la version Node
#### 🔐 Système de Hash et Cache JSON
- **Système de hash SHA-256** : Calcul automatique du hash pour chaque fichier uploadé
- **Détection des doublons** : Évite les fichiers identiques basés sur le contenu
- **Cache JSON** : Sauvegarde automatique des résultats d'extraction
- **Optimisation des performances** : Réutilisation des résultats en cache
## 0.1.2 - Suppression du mode démo et routage backend
#### 🛠️ Nouvelles Fonctions Backend
- `calculateFileHash(buffer)` : Calcule le hash SHA-256 d'un fichier
- `findExistingFileByHash(hash)` : Trouve les fichiers existants par hash
- `saveJsonCache(hash, result)` : Sauvegarde un résultat dans le cache
- `getJsonCache(hash)` : Récupère un résultat depuis le cache
- `listCacheFiles()` : Liste tous les fichiers de cache
### 🔄 Changements majeurs
#### 📡 Nouvelles Routes API
- `GET /api/cache` : Liste les fichiers de cache avec métadonnées
- `GET /api/cache/:hash` : Récupère un résultat de cache spécifique
- `DELETE /api/cache/:hash` : Supprime un fichier de cache
- `GET /api/uploads` : Liste les fichiers uploadés avec leurs hash
- Suppression complète du « mode simple » et des fallbacks de démonstration dans
`src/services/api.ts`.
- Tous les appels aux APIs externes (Cadastre, Géorisques, Géofoncier, BODACC,
Infogreffe) sont désormais routés via le backend `4NK_IA_back` (`/api/context/...`).
### 🔧 Améliorations Techniques
### 🧩 Code
#### Backend (`backend/server.js`)
- Intégration du système de cache dans la route `/api/extract`
- Vérification du cache avant traitement
- Sauvegarde automatique des résultats après traitement
- Gestion optimisée des fichiers dupliqués
- Logs détaillés pour le debugging
- `src/services/api.ts`: suppression de `VITE_BACKEND_MODE`, intercepteur Axios német plus de
valeurs mockées, endpoints `analyze/context/conseil` strictement consommés sur
`/api/documents/...`.
#### Configuration
- Ajout du dossier `cache/` au `.gitignore`
- Configuration des remotes Git pour SSH/HTTPS
### 📚 Documentation
- `README.md`: mise à jour des versions (React 19 / MUI 7 / Router 7), retrait de la section
« Mode démonstration », clarification de lintégration backend.
#### Nouveaux Fichiers
- `docs/HASH_SYSTEM.md` : Documentation complète du système de hash
- `CHANGELOG.md` : Historique des versions
### ✅ Qualité
#### Mises à Jour
- `docs/API_BACKEND.md` : Ajout de la documentation des nouvelles routes
- Caractéristiques principales mises à jour
- Lint, tests et markdownlint OK après modifications.
### 🚀 Performance
## 0.1.1 - Maintenance lint/build et corrections
#### Optimisations
- **Traitement instantané** pour les fichiers en cache
- **Économie de stockage** : Pas de fichiers dupliqués
- **Réduction des calculs** : Réutilisation des résultats existants
- **Logs optimisés** : Indication claire de l'utilisation du cache
### ✅ Qualité et lint
#### Métriques
- Temps de traitement réduit de ~80% pour les fichiers en cache
- Stockage optimisé (suppression automatique des doublons)
- Cache JSON : ~227KB pour un document PDF de 992KB
- Ajout de `.markdownlintignore` pour exclure les guides/rapports générés du lint
- Correction du fichier `test-files/sample.md` pour respecter MD022/MD032/MD009
- ESLint: exclusion du dossier `coverage` et correction des erreurs `no-unused-vars`/`no-explicit-any`
### 🔍 Workflow d'Upload Optimisé
### 🛠️ Corrections TypeScript/Build
```mermaid
graph TD
A[Fichier Uploadé] --> B[Calcul Hash SHA-256]
B --> C{Cache Existe?}
C -->|Oui| D[Retour Résultat Cache]
C -->|Non| E{Fichier Existe?}
E -->|Oui| F[Utiliser Fichier Existant]
E -->|Non| G[Traitement Normal]
F --> H[Extraction & NER]
G --> H
H --> I[Sauvegarde Cache]
I --> J[Retour Résultat]
```
- `src/components/FilePreview.tsx`: correction de lutilisation de `document.createElement`
- `src/services/api.ts`: typage des blocs `catch`, renommage des variables inutilisées, ajustements mineurs
- `src/views/*`: typage strict des couleurs MUI pour `Chip`/icônes, imports nettoyés
- Build Vite/TS: passe en production sans erreurs
### 🧪 Tests Validés
### 🔬 Tests
- ✅ Upload de fichier unique
- ✅ Upload de fichier dupliqué (détection par hash)
- ✅ Utilisation du cache JSON
- ✅ Nouvelles routes API
- ✅ Gestion des erreurs
- ✅ Nettoyage automatique des fichiers temporaires
- Vitest: exécution réussie de la suite, couverture générée
### 📊 Statistiques
## 0.1.0 - Version initiale complète
- **Fichiers modifiés** : 4
- **Nouvelles lignes** : 443
- **Nouveaux fichiers** : 2
- **Routes API ajoutées** : 4
- **Fonctions ajoutées** : 5
### ✨ Fonctionnalités principales
---
- **Interface notariale complète** : Application front-end pour l'analyse de documents notariaux
- **Upload de documents** : Glisser-déposer avec prévisualisation (PDF, images)
- **Extraction de données** : OCR et identification d'objets standardisés
- **Analyse intelligente** : Score de vraisemblance et recommandations
- **Données contextuelles** : Intégration APIs externes (Cadastre, Géorisques, BODACC, Infogreffe)
- **Conseil IA** : Analyse LLM avec détection de risques
## [1.0.0] - 2025-09-15
### 🏗️ Architecture technique
### 🎉 Version Initiale
- Système d'extraction de documents (PDF, images)
- OCR avec Tesseract.js
- NER par règles
- API backend complète
- Frontend React avec Material-UI
- Format JSON standardisé
- **React 18 + TypeScript** : Framework moderne avec typage strict
- **Vite 7** : Build tool rapide et moderne
- **Material-UI v6** : Interface utilisateur professionnelle
- **Redux Toolkit** : Gestion d'état centralisée
- **React Router v6** : Navigation avec code splitting
- **Axios** : Client HTTP avec intercepteurs
---
### 🛠️ Outillage et qualité
- **ESLint + Prettier** : Linting et formatage automatique
- **markdownlint** : Validation des fichiers Markdown
- **Vitest + Testing Library** : Tests unitaires et d'intégration
- **Coverage V8** : Rapport de couverture de code
### 📚 Documentation et gouvernance
- **README complet** : Documentation technique détaillée
- **Fichiers open-source** : LICENSE (MIT), CONTRIBUTING.md, CODE_OF_CONDUCT.md
- **Structure docs/** : Documentation technique organisée
- **Tests/** : Squelette de tests avec exemples
### 🔧 Gestion d'erreur et robustesse
- **Mode démonstration** : Fonctionnement complet sans backend
- **Gestion d'erreur gracieuse** : Fallback automatique pour tous les types d'erreurs
- **Intercepteurs Axios** : Gestion centralisée des erreurs API
- **Données de démonstration** : Exemples réalistes d'actes notariaux
### 🎨 Interface utilisateur
- **Design professionnel** : Interface claire avec fond blanc
- **Navigation intuitive** : Onglets et breadcrumbs
- **Responsive** : Adaptation mobile et desktop
- **Accessibilité** : Composants Material-UI accessibles
### 🚀 Déploiement et CI
- **Scripts npm** : Build, test, lint, format
- **Variables d'environnement** : Configuration flexible des APIs
- **Git workflow** : Branches dev, staging, release
- **Versioning** : Tag v0.1.0 et CHANGELOG
### 🐛 Corrections et améliorations
- **Erreur d'hydratation HTML** : Structure HTML valide
- **Gestion d'erreur 404/405** : Fallback pour endpoints non supportés
- **ERR_CONNECTION_REFUSED** : Mode démo automatique
- **Console propre** : Suppression des erreurs visibles
### 📦 Dépendances principales
- `react@^18.3.1` - Framework UI
- `typescript@^5.6.3` - Typage statique
- `vite@^7.1.5` - Build tool
- `@mui/material@^6.1.6` - Composants UI
- `@reduxjs/toolkit@^2.3.0` - Gestion d'état
- `react-router-dom@^6.28.0` - Routing
- `axios@^1.7.7` - Client HTTP
- `vitest@^2.1.8` - Framework de test
*Changelog maintenu automatiquement - Dernière mise à jour : 15 septembre 2025*