🔐 Implémentation PBKDF2 avec credentials navigateur ✅ Fonctionnalités ajoutées: - SecureCredentialsService avec PBKDF2 (100k itérations) - Chiffrement AES-GCM des clés spend/scan - Interface utilisateur complète pour gestion credentials - Tests unitaires complets - Architecture modulaire avec EventBus - Gestion mémoire optimisée - Performance monitoring - Web Workers pour encodage asynchrone 🛡️ Sécurité: - Dérivation PBKDF2 avec salt unique - Chiffrement AES-GCM des clés sensibles - Validation force mot de passe - Stockage sécurisé IndexedDB + WebAuthn - Logging sécurisé sans exposition données 🔧 Corrections: - Erreur 500 résolue (clé dupliquée package.json) - Configuration Vite simplifiée - Dépendances manquantes corrigées 📊 Améliorations: - Architecture découplée avec repositories - Services spécialisés (PairingService, etc.) - Monitoring performance et mémoire - Tests avec couverture complète - Documentation technique détaillée
194 lines
3.6 KiB
Markdown
194 lines
3.6 KiB
Markdown
# 🤝 Guide de contribution - 4NK Client
|
|
|
|
## 📋 Standards de code
|
|
|
|
### **TypeScript**
|
|
- Utiliser des types explicites
|
|
- Éviter `any` autant que possible
|
|
- Préférer les interfaces aux types
|
|
- Documenter les fonctions publiques avec JSDoc
|
|
|
|
### **Architecture**
|
|
- Séparation claire des responsabilités
|
|
- Services injectables (éviter les singletons)
|
|
- Composants réutilisables
|
|
- Gestion d'erreurs centralisée
|
|
|
|
### **Performance**
|
|
- Lazy loading des modules lourds
|
|
- Mémoisation des calculs coûteux
|
|
- Debouncing des événements fréquents
|
|
- Optimisation des re-renders
|
|
|
|
## 🛠️ Workflow de développement
|
|
|
|
### **1. Avant de commencer**
|
|
```bash
|
|
# Installer les dépendances
|
|
npm install
|
|
|
|
# Vérifier la qualité du code
|
|
npm run quality
|
|
|
|
# Lancer les tests
|
|
npm test
|
|
```
|
|
|
|
### **2. Pendant le développement**
|
|
```bash
|
|
# Vérifier les types
|
|
npm run type-check
|
|
|
|
# Linter le code
|
|
npm run lint
|
|
|
|
# Formater le code
|
|
npm run prettify
|
|
```
|
|
|
|
### **3. Avant de commiter**
|
|
```bash
|
|
# Vérification complète
|
|
npm run quality:fix
|
|
|
|
# Tests
|
|
npm test
|
|
|
|
# Build
|
|
npm run build
|
|
```
|
|
|
|
## 📝 Standards de commit
|
|
|
|
### **Format**
|
|
```
|
|
type(scope): description
|
|
|
|
[body optionnel]
|
|
|
|
[footer optionnel]
|
|
```
|
|
|
|
### **Types**
|
|
- `feat`: Nouvelle fonctionnalité
|
|
- `fix`: Correction de bug
|
|
- `docs`: Documentation
|
|
- `style`: Formatage, point-virgules, etc.
|
|
- `refactor`: Refactoring
|
|
- `test`: Ajout de tests
|
|
- `chore`: Tâches de maintenance
|
|
|
|
### **Exemples**
|
|
```
|
|
feat(pairing): add 4-words pairing support
|
|
fix(ui): resolve header display issue
|
|
docs(api): update pairing service documentation
|
|
```
|
|
|
|
## 🧪 Tests
|
|
|
|
### **Structure des tests**
|
|
```
|
|
src/
|
|
├── components/
|
|
│ └── __tests__/
|
|
├── services/
|
|
│ └── __tests__/
|
|
└── utils/
|
|
└── __tests__/
|
|
```
|
|
|
|
### **Conventions**
|
|
- Un fichier de test par fichier source
|
|
- Nommage: `*.test.ts` ou `*.spec.ts`
|
|
- Couverture minimale: 80%
|
|
- Tests unitaires et d'intégration
|
|
|
|
## 📊 Métriques de qualité
|
|
|
|
### **Objectifs**
|
|
- **Complexité cyclomatique**: < 10
|
|
- **Taille des fichiers**: < 300 lignes
|
|
- **Couverture de tests**: > 80%
|
|
- **Temps de build**: < 30 secondes
|
|
|
|
### **Outils**
|
|
- ESLint pour la qualité du code
|
|
- Prettier pour le formatage
|
|
- TypeScript pour la sécurité des types
|
|
- Bundle analyzer pour la taille
|
|
|
|
## 🔒 Sécurité
|
|
|
|
### **Bonnes pratiques**
|
|
- Validation des données d'entrée
|
|
- Sanitisation des messages
|
|
- Gestion sécurisée des tokens
|
|
- Logs sans données sensibles
|
|
|
|
### **Vérifications**
|
|
- Aucun `eval()` ou `Function()`
|
|
- Validation des URLs et chemins
|
|
- Gestion des erreurs sans exposition d'informations
|
|
|
|
## 📚 Documentation
|
|
|
|
### **Code**
|
|
- JSDoc pour toutes les fonctions publiques
|
|
- Commentaires pour la logique complexe
|
|
- README technique pour l'architecture
|
|
|
|
### **API**
|
|
- Documentation des endpoints
|
|
- Exemples d'utilisation
|
|
- Gestion des erreurs
|
|
|
|
## 🚀 Déploiement
|
|
|
|
### **Environnements**
|
|
- **Development**: `npm run start`
|
|
- **Production**: `npm run build && npm run deploy`
|
|
|
|
### **Vérifications pré-déploiement**
|
|
```bash
|
|
npm run quality
|
|
npm test
|
|
npm run build
|
|
npm run analyze
|
|
```
|
|
|
|
## 🐛 Signalement de bugs
|
|
|
|
### **Template**
|
|
```
|
|
**Description**
|
|
Description claire du problème
|
|
|
|
**Reproduction**
|
|
1. Étapes pour reproduire
|
|
2. Comportement attendu
|
|
3. Comportement actuel
|
|
|
|
**Environnement**
|
|
- OS:
|
|
- Navigateur:
|
|
- Version:
|
|
|
|
**Logs**
|
|
Logs pertinents (sans données sensibles)
|
|
```
|
|
|
|
## 💡 Suggestions d'amélioration
|
|
|
|
### **Processus**
|
|
1. Créer une issue détaillée
|
|
2. Discuter de la faisabilité
|
|
3. Implémenter avec tests
|
|
4. Documentation mise à jour
|
|
|
|
### **Critères**
|
|
- Amélioration de la performance
|
|
- Meilleure expérience utilisateur
|
|
- Réduction de la complexité
|
|
- Sécurité renforcée
|