7.3 KiB
Rapport Exhaustif des Problèmes - Application Veza
Date: 2026-01-06
Environnement: Développement (localhost:5173)
Backend: http://127.0.0.1:8080
🔴 PRIORITÉ CRITIQUE (Bloquant)
1. ÉCHEC DE REDIRECTION APRÈS LOGIN
Sévérité: CRITIQUE
Impact: L'application ne peut pas être utilisée après connexion
Description:
- Le login API réussit (200 OK)
- Les tokens sont extraits correctement
- Mais l'utilisateur reste sur
/loginau lieu d'être redirigé vers/dashboard - Le store Zustand n'est pas correctement persisté dans localStorage après login
auth-storagedans localStorage montreuser: nulletisAuthenticated: falsemême après un login réussi
Fichiers concernés:
apps/web/src/features/auth/store/authStore.ts(ligne 44-76)apps/web/src/features/auth/hooks/useLogin.tsapps/web/src/features/auth/pages/LoginPage.tsx(ligne 91-95)
Cause identifiée:
- ✅ Les tokens SONT stockés dans localStorage (
veza_access_tokenprésent) - ❌ Le store Zustand (
auth-storage) n'est PAS mis à jour aprèsset() - Le store Zustand persist ne synchronise pas immédiatement après
set() - Le délai de 50ms n'est pas suffisant pour que la persistance se fasse
- La redirection dans
onSuccessse fait avant que le store soit persisté dans localStorage
Preuve:
localStorage.getItem('auth-storage')
// Retourne: {"state":{"user":null,"isAuthenticated":false},"version":0}
// Alors que veza_access_token est présent et valide
Logs observés:
[DEBUG] [API Response] POST /auth/login 200
[AUTH DEBUG] Login response.data structure: {hasToken: true...}
[DEBUG] [API Request] GET /auth/me 200
Solution nécessaire:
- Forcer la synchronisation du store Zustand après
set()avecgetState()et vérification - Ou utiliser
useAuthStore.persist.rehydrate()pour forcer la réhydratation - Ou attendre que le store soit réellement persisté avant de rediriger
🟠 PRIORITÉ HAUTE (Fonctionnalités importantes)
2. ENDPOINT /analytics MANQUANT (404)
Sévérité: HAUTE
Impact: La page Analytics ne fonctionne pas
Description:
- L'endpoint
/api/v1/analyticsretourne 404 - Le service utilise un fallback mais génère des erreurs dans la console
- Les utilisateurs voient des erreurs 404 répétées
Fichiers concernés:
apps/web/src/features/analytics/services/analyticsService.ts(ligne 66)- Backend: endpoint manquant
Solution appliquée:
- ✅ Gestion du 404 avec fallback automatique
- ⚠️ Nécessite l'implémentation de l'endpoint backend
3. SERVEUR WEBSOCKET NON DÉMARRÉ
Sévérité: MOYENNE
Impact: Le chat en temps réel ne fonctionne pas
Description:
- Tentatives de connexion à
ws://127.0.0.1:8081/wsqui échouent - Messages d'erreur répétés dans la console
- Le serveur WebSocket n'est pas démarré
Fichiers concernés:
apps/web/src/features/chat/hooks/useChat.ts- Configuration:
apps/web/src/config/env.ts
Solution appliquée:
- ✅ Réduction du spam console (max 2 erreurs)
- ⚠️ Nécessite le démarrage du serveur WebSocket sur le port 8081
4. ICÔNES PWA MANQUANTES
Sévérité: BASSE
Impact: Erreurs dans la console, PWA ne peut pas être installée correctement
Description:
- Erreur:
Error while trying to use the following icon from the Manifest: http://localhost:5173/icons/icon-144x144.png - Les icônes PWA ne sont pas présentes dans le dossier
public/icons/
Fichiers concernés:
apps/web/public/manifest.jsonou configuration PWA- Dossier
apps/web/public/icons/manquant
🟡 PRIORITÉ MOYENNE (Améliorations UX)
5. ATTRIBUTS AUTCOMPLETE MANQUANTS
Sévérité: BASSE
Impact: Mauvaise expérience utilisateur, gestionnaires de mots de passe ne fonctionnent pas bien
Description:
- Warning:
Input elements should have autocomplete attributes (suggested: "current-password") - Les champs de formulaire n'ont pas d'attributs
autocomplete
Fichiers concernés:
apps/web/src/features/auth/components/AuthInput.tsxapps/web/src/features/auth/pages/LoginPage.tsx
Solution recommandée:
- Ajouter
autocomplete="email"au champ email - Ajouter
autocomplete="current-password"au champ mot de passe
6. META TAG APPLE-MOBILE-WEB-APP-CAPABLE DÉPRÉCIÉ
Sévérité: BASSE
Impact: Warning dans la console
Description:
- Warning:
<meta name="apple-mobile-web-app-capable" content="yes"> is deprecated - Recommandation: utiliser
<meta name="mobile-web-app-capable" content="yes">
Fichiers concernés:
apps/web/index.htmlou template HTML
7. REDUX DEVTOOLS EXTENSION NON INSTALLÉE
Sévérité: TRÈS BASSE (Développement uniquement)
Impact: Warnings dans la console en développement
Description:
- Messages répétés:
[zustand devtools middleware] Please install/enable Redux devtools extension - C'est normal en développement si l'extension n'est pas installée
Solution:
- Optionnel: Installer l'extension Redux DevTools
- Ou désactiver le middleware devtools en production
🟢 PRIORITÉ BASSE (Optimisations)
8. APPELS MULTIPLES À /auth/me
Sévérité: TRÈS BASSE
Impact: Performance légèrement dégradée
Description:
- Plusieurs appels à
/auth/meau chargement de la page useStateHydrationetuseAuthappellent tous les deuxrefreshUser()
Fichiers concernés:
apps/web/src/utils/stateHydration.tsapps/web/src/features/auth/hooks/useAuth.tsapps/web/src/app/App.tsx
Solution recommandée:
- Dédupliquer les appels avec un système de cache ou de debounce
9. LOGS DEBUG TROP VERBOSES
Sévérité: TRÈS BASSE
Impact: Console encombrée en développement
Description:
- Beaucoup de logs
[DEBUG]dans la console - Utile pour le développement mais peut être réduit
Solution recommandée:
- Réduire le niveau de log en production
- Filtrer les logs moins importants
📊 RÉSUMÉ PAR PRIORITÉ
| Priorité | Nombre | Statut |
|---|---|---|
| 🔴 Critique | 1 | À CORRIGER IMMÉDIATEMENT |
| 🟠 Haute | 3 | À corriger rapidement |
| 🟡 Moyenne | 3 | Améliorations UX |
| 🟢 Basse | 2 | Optimisations |
🎯 ACTIONS RECOMMANDÉES
Immédiat (Aujourd'hui)
- ✅ Corriger la persistance du store après login - BLOQUANT
- ✅ Vérifier que la redirection fonctionne après correction du store
Court terme (Cette semaine)
- Implémenter l'endpoint
/analyticsdans le backend - Démarrer le serveur WebSocket ou désactiver le chat temporairement
- Ajouter les attributs
autocompleteaux formulaires
Moyen terme (Ce mois)
- Créer les icônes PWA manquantes
- Mettre à jour les meta tags dépréciés
- Optimiser les appels API multiples
🔍 MÉTHODOLOGIE DE TEST
Tests effectués via:
- Navigateur intégré Chrome
- Console du navigateur
- Inspection du localStorage
- Logs réseau
- Navigation manuelle dans l'application
Pages testées:
- ✅ Page de login
- ⚠️ Dashboard (non accessible à cause du problème #1)
- ⚠️ Autres pages (non testées à cause du problème #1)
Note: Ce rapport est généré automatiquement et peut nécessiter des ajustements après correction des problèmes critiques.