veza/RAPPORT_PROBLEMES.md
2026-01-07 19:39:21 +01:00

236 lines
7.3 KiB
Markdown

# 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 `/login` au lieu d'être redirigé vers `/dashboard`
- Le store Zustand n'est pas correctement persisté dans localStorage après login
- `auth-storage` dans localStorage montre `user: null` et `isAuthenticated: false` mê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.ts`
- `apps/web/src/features/auth/pages/LoginPage.tsx` (ligne 91-95)
**Cause identifiée**:
- ✅ Les tokens SONT stockés dans localStorage (`veza_access_token` présent)
- ❌ Le store Zustand (`auth-storage`) n'est PAS mis à jour après `set()`
- 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 `onSuccess` se fait avant que le store soit persisté dans localStorage
**Preuve**:
```javascript
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()` avec `getState()` 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/analytics` retourne 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/ws` qui é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.json` ou 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.tsx`
- `apps/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.html` ou 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/me` au chargement de la page
- `useStateHydration` et `useAuth` appellent tous les deux `refreshUser()`
**Fichiers concernés**:
- `apps/web/src/utils/stateHydration.ts`
- `apps/web/src/features/auth/hooks/useAuth.ts`
- `apps/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)
1.**Corriger la persistance du store après login** - BLOQUANT
2.**Vérifier que la redirection fonctionne après correction du store**
### Court terme (Cette semaine)
3. Implémenter l'endpoint `/analytics` dans le backend
4. Démarrer le serveur WebSocket ou désactiver le chat temporairement
5. Ajouter les attributs `autocomplete` aux formulaires
### Moyen terme (Ce mois)
6. Créer les icônes PWA manquantes
7. Mettre à jour les meta tags dépréciés
8. 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.