ihm_client/CONTRIBUTING.md
NicolasCantu bf680ab6dd ci: docker_tag=pbkdf2-credentials
🔐 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
2025-10-23 12:51:49 +02:00

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