feat: Implémentation authentification NIST SP 800-63B v3.0.8
- Ajout du service PasswordSecurityService conforme NIST SP 800-63B - Vérification des mots de passe contre la base Have I Been Pwned - Validation : minimum 8 caractères, maximum 64 caractères - Pas d'exigences de composition obligatoires (conforme NIST) - Intégration dans LoginController et UserController - Génération de mots de passe sécurisés non compromis 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
295
app/tests-android.md
Normal file
295
app/tests-android.md
Normal file
@@ -0,0 +1,295 @@
|
||||
# 📱 Guide de Test Mobile - Geosector App
|
||||
|
||||
## 🚀 Configuration Rapide
|
||||
|
||||
### 1️⃣ Préparation du Mobile Android
|
||||
|
||||
#### Activer le Mode Développeur
|
||||
```
|
||||
Paramètres → À propos du téléphone → Tapoter 7 fois sur "Numéro de build"
|
||||
```
|
||||
|
||||
#### Activer les Options de Développement
|
||||
```
|
||||
Paramètres → Options pour les développeurs → Activer :
|
||||
✅ Options pour les développeurs
|
||||
✅ Débogage USB
|
||||
✅ Débogage sans fil (pour WiFi)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔌 Test via USB
|
||||
|
||||
### Connexion USB
|
||||
1. Brancher le téléphone en USB-C
|
||||
2. Accepter l'autorisation de débogage sur le téléphone
|
||||
|
||||
### Commandes Terminal
|
||||
```bash
|
||||
# Vérifier la connexion
|
||||
adb devices
|
||||
flutter devices
|
||||
|
||||
# Lancer l'app (mode debug avec hot reload)
|
||||
flutter run
|
||||
|
||||
# Lancer l'app sur un appareil spécifique
|
||||
flutter run -d [DEVICE_ID]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📶 Test via WiFi (Sans Fil)
|
||||
|
||||
### Configuration sur le Mobile
|
||||
1. **Activer le Débogage sans fil** dans Options pour les développeurs
|
||||
2. **Entrer dans "Débogage sans fil"** et noter :
|
||||
- Nom de l'appareil (ex: Pi25)
|
||||
- Adresse IP et port (ex: 192.168.1.103:33503)
|
||||
|
||||
### Première Connexion (avec code d'association)
|
||||
```bash
|
||||
# Si première connexion, associer avec code
|
||||
# Sur mobile : "Associer l'appareil avec un code d'association"
|
||||
adb pair [IP:PORT_ASSOCIATION] [CODE_6_CHIFFRES]
|
||||
# Exemple : adb pair 192.168.1.103:37953 123456
|
||||
```
|
||||
|
||||
### Connexion Standard
|
||||
```bash
|
||||
# Connecter via WiFi
|
||||
adb connect [IP:PORT]
|
||||
# Exemple : adb connect 192.168.1.103:33503
|
||||
|
||||
# Vérifier la connexion
|
||||
adb devices
|
||||
flutter devices
|
||||
|
||||
# Lancer l'app
|
||||
flutter run -d [IP:PORT]
|
||||
# Exemple : flutter run -d 192.168.1.103:33503
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Modes de Compilation
|
||||
|
||||
### Mode Debug (Développement)
|
||||
```bash
|
||||
# Avec hot reload, logs complets, banner DEBUG
|
||||
flutter run
|
||||
flutter run -d [DEVICE_ID]
|
||||
```
|
||||
|
||||
**Raccourcis pendant l'exécution :**
|
||||
- `r` : Hot reload (rechargement rapide)
|
||||
- `R` : Hot restart (redémarrage complet)
|
||||
- `p` : Afficher le widget tree
|
||||
- `o` : Basculer Android/iOS preview
|
||||
- `q` : Quitter
|
||||
|
||||
### Mode Release (Performance)
|
||||
```bash
|
||||
# Optimisé, rapide, sans debug
|
||||
flutter run --release
|
||||
flutter run -d [DEVICE_ID] --release
|
||||
```
|
||||
|
||||
### Mode Profile (Analyse)
|
||||
```bash
|
||||
# Pour profiler les performances
|
||||
flutter run --profile
|
||||
flutter run -d [DEVICE_ID] --profile
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 Build et Installation
|
||||
|
||||
### Créer l'APK
|
||||
```bash
|
||||
# APK standard
|
||||
flutter build apk
|
||||
|
||||
# APK optimisé pour release
|
||||
flutter build apk --release
|
||||
|
||||
# APK avec obfuscation
|
||||
flutter build apk --release --obfuscate --split-debug-info=debug_info
|
||||
|
||||
# APK split par architecture (plus petit)
|
||||
flutter build apk --split-per-abi
|
||||
```
|
||||
|
||||
### Installer l'APK
|
||||
```bash
|
||||
# Installer sur appareil connecté
|
||||
flutter install
|
||||
flutter install -d [DEVICE_ID]
|
||||
|
||||
# Installer un APK spécifique
|
||||
adb install build/app/outputs/flutter-apk/app-release.apk
|
||||
```
|
||||
|
||||
### Bundle pour Play Store
|
||||
```bash
|
||||
flutter build appbundle --release
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Commandes Utiles
|
||||
|
||||
### Gestion des Appareils
|
||||
```bash
|
||||
# Lister tous les appareils
|
||||
flutter devices
|
||||
|
||||
# Infos détaillées ADB
|
||||
adb devices -l
|
||||
|
||||
# Déconnecter un appareil WiFi
|
||||
adb disconnect [IP:PORT]
|
||||
|
||||
# Redémarrer ADB
|
||||
adb kill-server
|
||||
adb start-server
|
||||
```
|
||||
|
||||
### Nettoyage et Réparation
|
||||
```bash
|
||||
# Nettoyer le projet
|
||||
flutter clean
|
||||
|
||||
# Réinstaller les dépendances
|
||||
flutter pub get
|
||||
|
||||
# Régénérer les fichiers
|
||||
flutter pub run build_runner build --delete-conflicting-outputs
|
||||
|
||||
# Vérifier l'installation Flutter
|
||||
flutter doctor
|
||||
```
|
||||
|
||||
### Logs et Débogage
|
||||
```bash
|
||||
# Voir les logs du téléphone
|
||||
adb logcat
|
||||
|
||||
# Logs Flutter uniquement
|
||||
flutter logs
|
||||
|
||||
# Capturer une capture d'écran
|
||||
adb shell screencap -p /sdcard/screenshot.png
|
||||
adb pull /sdcard/screenshot.png
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📱 Tests sur le Mobile
|
||||
|
||||
### Vérifications Visuelles
|
||||
- [ ] **AppBar** : Logo Geosector + Logo Amicale (si disponible)
|
||||
- [ ] **Navigation** :
|
||||
- Admin : Bordure rouge, menu sélectionné en rouge/gras
|
||||
- User : Bordure verte, menu sélectionné en vert/gras
|
||||
- [ ] **Menu Mobile** : Icônes uniquement en bas (sans texte)
|
||||
- [ ] **Responsive** : Adaptation portrait/paysage
|
||||
|
||||
### Tests Fonctionnels
|
||||
- [ ] Connexion/Déconnexion
|
||||
- [ ] Navigation entre les pages
|
||||
- [ ] Formulaires et validations
|
||||
- [ ] Synchronisation des données
|
||||
- [ ] Mode hors-ligne
|
||||
|
||||
### Performance
|
||||
- [ ] Temps de chargement
|
||||
- [ ] Fluidité du scroll
|
||||
- [ ] Réactivité des boutons
|
||||
- [ ] Consommation mémoire
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Résolution de Problèmes
|
||||
|
||||
### Appareil Non Détecté
|
||||
```bash
|
||||
# Vérifier les drivers USB
|
||||
adb devices
|
||||
|
||||
# Relancer ADB
|
||||
adb kill-server
|
||||
adb start-server
|
||||
|
||||
# Vérifier Flutter
|
||||
flutter doctor -v
|
||||
```
|
||||
|
||||
### Erreur de Connexion WiFi
|
||||
```bash
|
||||
# Vérifier le réseau (même WiFi PC et mobile)
|
||||
ping [IP_MOBILE]
|
||||
|
||||
# Réassocier l'appareil
|
||||
adb pair [IP:PORT] [CODE]
|
||||
|
||||
# Forcer la reconnexion
|
||||
adb disconnect
|
||||
adb connect [IP:PORT]
|
||||
```
|
||||
|
||||
### Build Échoué
|
||||
```bash
|
||||
# Nettoyer et reconstruire
|
||||
flutter clean
|
||||
flutter pub get
|
||||
flutter run
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 Tips & Astuces
|
||||
|
||||
1. **Gardez le téléphone déverrouillé** pendant les tests
|
||||
2. **Désactivez l'économie d'énergie** pour éviter les déconnexions
|
||||
3. **Utilisez le mode Release** pour tester les vraies performances
|
||||
4. **Activez "Rester éveillé"** dans Options développeur
|
||||
5. **WiFi stable** : Préférez le 5GHz au 2.4GHz si disponible
|
||||
|
||||
---
|
||||
|
||||
## 📊 Exemple de Session Type
|
||||
|
||||
```bash
|
||||
# 1. Connexion WiFi
|
||||
adb connect 192.168.1.103:33503
|
||||
|
||||
# 2. Vérification
|
||||
flutter devices
|
||||
|
||||
# 3. Lancement en debug
|
||||
flutter run -d 192.168.1.103:33503
|
||||
|
||||
# 4. Tests et hot reload (touche r)
|
||||
|
||||
# 5. Test performance
|
||||
flutter run -d 192.168.1.103:33503 --release
|
||||
|
||||
# 6. Build final
|
||||
flutter build apk --release
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notes Spécifiques Geosector
|
||||
|
||||
- **Environnement** : L'app détecte automatiquement DEV/REC/PROD
|
||||
- **Logos** : Le logo amicale s'affiche si disponible en base64
|
||||
- **Rôles** : Admin (rouge) vs User (vert) dans l'interface
|
||||
- **Cache** : Utilise Hive pour le stockage local
|
||||
|
||||
---
|
||||
|
||||
*Guide créé pour Geosector v3.0.6 - Flutter 3.32+*
|
||||
Reference in New Issue
Block a user