# đŸ€ 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