# Changelog - 13 Décembre 2025 Version : **1.1.0** (Backend 1.0.1 + Frontend 1.1.0) Date : 13 décembre 2025 --- ## 📋 Résumé des Changements Cette mise à jour apporte des **corrections de bugs critiques** dans le backend et des **améliorations majeures d'UX** dans le frontend. --- ## 🐛 Backend - Corrections de Bugs (v1.0.1) ### Bug #1 : Timestamp de mise à jour non fonctionnel ⚠️ **CRITIQUE** - **Fichier** : `backend/app/api/devices.py:270` - **Problème** : Le champ `updated_at` n'était jamais mis à jour lors de modifications - **Fix** : Utilisation de `datetime.utcnow()` au lieu de requête SQL inutile - **Impact** : Les timestamps sont maintenant correctement mis à jour ### Bug #2 : Gestion incorrecte des sessions DB ⚠️ **CRITIQUE** - **Fichier** : `backend/app/main.py:71` - **Problème** : L'endpoint `/api/stats` gérait manuellement la session DB - **Fix** : Utilisation du pattern FastAPI standard avec `Depends(get_db)` - **Impact** : Pas de fuites de connexions, meilleure cohérence du code ### Bug #3 : Gestion d'erreurs limitée dans l'API frontend - **Fichier** : `frontend/js/api.js:11` - **Problème** : Messages d'erreur génériques, pas de détection des erreurs réseau - **Fix** : Erreurs détaillées avec status, endpoint, et messages en français - **Impact** : Meilleur débogage et messages clairs pour l'utilisateur ### Bug #4 : Validation manquante des scores - **Fichier** : `backend/app/schemas/benchmark.py:10` - **Problème** : Aucune validation des plages de valeurs (scores négatifs possibles) - **Fix** : Ajout de validations Pydantic avec `Field(ge=0, le=100)` - **Impact** : Données plus fiables, rejet automatique des valeurs invalides 📄 **Documentation détaillée** : [BUGFIXES_2025-12-13.md](BUGFIXES_2025-12-13.md) --- ## ✨ Frontend - Améliorations UX (v1.1.0) ### Fonctionnalité #1 : Recherche en Temps Réel 🔍 - **Fichiers** : `frontend/index.html`, `frontend/js/dashboard.js` - Barre de recherche avec filtrage instantané (debounced 300ms) - Filtre sur hostname, description, et location - Bouton "Effacer" pour réinitialiser - **Bénéfice** : Trouve un device parmi des dizaines en quelques secondes ### Fonctionnalité #2 : Bouton d'Actualisation Manuelle 🔄 - **Fichiers** : `frontend/index.html`, `frontend/js/dashboard.js` - Bouton "🔄 Actualiser" avec état visuel pendant le chargement - Horodatage de dernière mise à jour - Désactivation automatique pendant le chargement - **Bénéfice** : Contrôle total sur le rafraîchissement des données ### Fonctionnalité #3 : Gestion d'Erreurs avec Retry 🔄 - **Fichier** : `frontend/js/dashboard.js:132` - Messages d'erreur clairs avec détails - Bouton "🔄 Réessayer" sur chaque erreur - Message spécifique pour erreurs réseau - **Bénéfice** : Résolution autonome des problèmes temporaires ### Fonctionnalité #4 : Skeleton Loaders 💫 - **Fichier** : `frontend/css/components.css:3` - Animations de chargement professionnelles - Styles réutilisables (`.skeleton`, `.skeleton-text`, `.skeleton-card`) - Transitions fluides avec `.fade-in` - **Bénéfice** : Perception de chargement plus rapide ### Fonctionnalité #5 : Protection Anti-Spam ⛔ - **Fichier** : `frontend/js/dashboard.js:11` - Flag `isLoading` pour éviter les requêtes multiples - Désactivation du bouton pendant le chargement - **Bénéfice** : Meilleure performance, pas de concurrence de données 📄 **Documentation détaillée** : [FRONTEND_IMPROVEMENTS_2025-12-13.md](FRONTEND_IMPROVEMENTS_2025-12-13.md) --- ## 📊 Statistiques ### Code modifié - **Backend** : 4 fichiers, ~60 lignes - **Frontend** : 3 fichiers, ~160 lignes - **Total** : ~220 lignes de code ajoutées/modifiées ### Tests effectués - ✅ Endpoint `/api/stats` - Fonctionne - ✅ Endpoint `/api/health` - Fonctionne - ✅ Endpoint `/api/devices` - Fonctionne - ✅ Recherche frontend - Fonctionne - ✅ Bouton actualiser - Fonctionne - ✅ Gestion d'erreurs - Fonctionne --- ## 🚀 Migration ### Pour appliquer cette mise à jour : ```bash cd /home/gilles/Documents/vscode/serv_benchmark # 1. Rebuild backend (pour les corrections de bugs) docker compose build backend # 2. Redémarrer les services docker compose restart backend frontend # 3. Vérifier que tout fonctionne curl http://localhost:8007/api/health curl http://localhost:8087/ | grep searchInput # 4. Tester dans le navigateur # Ouvrir http://localhost:8087/ ``` ### Aucune migration de base de données requise ✅ --- ## 📝 Fichiers Modifiés ### Backend (v1.0.1) | Fichier | Type | Description | |---------|------|-------------| | `backend/app/api/devices.py` | Bug fix | Correction timestamp update | | `backend/app/main.py` | Bug fix | Fix session DB management | | `frontend/js/api.js` | Amélioration | Meilleure gestion d'erreurs | | `backend/app/schemas/benchmark.py` | Validation | Ajout validations Pydantic | ### Frontend (v1.1.0) | Fichier | Type | Description | |---------|------|-------------| | `frontend/index.html` | Feature | Ajout toolbar avec recherche | | `frontend/js/dashboard.js` | Feature | Recherche, refresh, retry | | `frontend/css/components.css` | UI | Skeleton loaders, animations | --- ## 🎯 Prochaines Étapes Recommandées ### Priorité Haute - [ ] Tests sur navigateurs différents (Chrome, Firefox, Safari) - [ ] Tests sur mobile/tablet - [ ] Ajouter des tests unitaires backend (pytest) ### Priorité Moyenne - [ ] Graphiques d'évolution des scores (Chart.js) - [ ] Filtres avancés (par score, date, type) - [ ] Mode sombre/clair ### Priorité Basse - [ ] Export CSV/JSON - [ ] Dashboard temps réel (WebSockets) - [ ] Notifications push --- ## 🔗 Liens Utiles - [BUGFIXES_2025-12-13.md](BUGFIXES_2025-12-13.md) - Détails des bugs corrigés - [FRONTEND_IMPROVEMENTS_2025-12-13.md](FRONTEND_IMPROVEMENTS_2025-12-13.md) - Détails des améliorations frontend - [README.md](README.md) - Documentation principale - [PROJECT_SUMMARY.md](PROJECT_SUMMARY.md) - Vue d'ensemble du projet --- ## ✅ Validation - [x] Tous les bugs backend corrigés - [x] Toutes les features frontend implémentées - [x] Tests manuels effectués - [x] Documentation mise à jour - [x] Services Docker redémarrés - [x] Changelog créé --- **Status** : ✅ **PRODUCTION READY** **Versions** : - Backend : 1.0.0 → **1.0.1** - Frontend : 1.0.0 → **1.1.0** - Global : 1.0.0 → **1.1.0** **Date de release** : 13 décembre 2025 **Auteurs** : Assistant AI + Gilles @ maison43 --- *Linux BenchTools - Benchmarking simplifié pour votre infrastructure Linux* 🚀