# Guide de Contribution - ihm_client Merci de votre intérêt pour contribuer au projet ihm_client ! Ce guide vous aidera à comprendre comment participer au développement de cette interface utilisateur pour les Silent Payments. ## 📋 Table des Matières - [🎯 Comment Contribuer](#-comment-contribuer) - [🚀 Premiers Pas](#-premiers-pas) - [🔧 Environnement de Développement](#️-environnement-de-développement) - [📝 Processus de Contribution](#-processus-de-contribution) - [🧪 Tests](#-tests) - [📚 Documentation](#-documentation) - [🐛 Signaler un Bug](#-signaler-un-bug) - [💡 Proposer une Fonctionnalité](#-proposer-une-fonctionnalité) - [🔍 Code Review](#-code-review) - [📦 Release](#-release) ## 🎯 Comment Contribuer ### Types de Contributions Nous accueillons différents types de contributions : - **🐛 Bug fixes** - Correction de bugs et problèmes - **✨ Nouvelles fonctionnalités** - Ajout de nouvelles capacités - **📚 Documentation** - Amélioration de la documentation - **🧪 Tests** - Ajout ou amélioration des tests - **🔧 Outils** - Amélioration des scripts et outils - **🌐 Traductions** - Traduction de la documentation - **📊 Performance** - Optimisations de performance - **🔒 Sécurité** - Améliorations de sécurité ### Niveaux de Contribution - **Débutant** - Documentation, tests, petits bugs - **Intermédiaire** - Nouvelles fonctionnalités, améliorations UI - **Avancé** - Architecture WASM, optimisations majeures ## 🚀 Premiers Pas ### Prérequis - **Node.js 18+** et **npm** - **Git** configuré - **Rust** (pour le développement WASM) - **Docker** (pour l'intégration 4NK_node) - **Connexion Internet** stable ### Fork et Clone ```bash # 1. Fork le repository sur Gitea # 2. Clone votre fork git clone https://git.4nkweb.com/votre-username/ihm_client.git cd ihm_client # 3. Ajouter le repository original comme upstream git remote add upstream https://git.4nkweb.com/4nk/ihm_client.git ``` ### Branches ```bash # Créer une branche pour votre contribution git checkout -b feature/nom-de-votre-feature # ou git checkout -b fix/nom-du-bug ``` ## 🔧 Environnement de Développement ### Installation Locale ```bash # 1. Cloner le repository git clone https://git.4nkweb.com/4nk/ihm_client.git cd ihm_client # 2. Installer les dépendances npm install # 3. Configurer les dépendances WASM ./scripts/setup-remote-deps.sh # 4. Démarrer le serveur de développement npm run dev ``` ### Configuration de Développement ```bash # Variables d'environnement pour le développement export NODE_ENV=development export VITE_DEV_SERVER_PORT=3000 export VITE_API_URL=http://localhost:8091 ``` ### Outils de Développement ```bash # Tests npm run test # Build de production npm run build # Linting npm run lint # Type checking npm run type-check ``` ## 📝 Processus de Contribution ### 1. Préparation ```bash # Mettre à jour votre branche git checkout main git pull upstream main # Créer votre branche de feature git checkout -b feature/votre-feature ``` ### 2. Développement - Suivez les conventions de code - Écrivez des tests pour les nouvelles fonctionnalités - Mettez à jour la documentation si nécessaire - Vérifiez que les tests passent ### 3. Commit ```bash # Ajouter vos changements git add . # Créer un commit descriptif git commit -m "feat: ajout de la fonctionnalité X - Description détaillée des changements - Impact sur l'interface utilisateur - Tests ajoutés" ``` ### 4. Push et Pull Request ```bash # Pousser votre branche git push origin feature/votre-feature # Créer une Pull Request sur Gitea ``` ## 🧪 Tests ### Types de Tests - **Unit Tests** - Tests des composants individuels - **Integration Tests** - Tests d'intégration WASM - **E2E Tests** - Tests end-to-end de l'interface - **Performance Tests** - Tests de performance ### Exécution des Tests ```bash # Tous les tests npm run test # Tests unitaires uniquement npm run test:unit # Tests d'intégration npm run test:integration # Tests avec couverture npm run test:coverage ``` ## 📚 Documentation ### Mise à Jour de la Documentation - **README.md** - Documentation principale - **docs/** - Documentation technique détaillée - **CHANGELOG.md** - Historique des changements - **API.md** - Documentation des APIs ### Standards de Documentation - Écrire en français - Utiliser des exemples concrets - Inclure des captures d'écran pour l'UI - Maintenir la cohérence du style ## 🐛 Signaler un Bug ### Template de Bug Report ```markdown **Description du bug** Description claire et concise du problème. **Étapes pour reproduire** 1. Aller à '...' 2. Cliquer sur '...' 3. Voir l'erreur **Comportement attendu** Description de ce qui devrait se passer. **Captures d'écran** Si applicable, ajouter des captures d'écran. **Environnement** - OS: [ex: Windows 10, macOS, Linux] - Navigateur: [ex: Chrome, Firefox, Safari] - Version: [ex: 1.0.0] **Informations supplémentaires** Contexte supplémentaire sur le problème. ``` ## 💡 Proposer une Fonctionnalité ### Template de Feature Request ```markdown **Problème à résoudre** Description claire du problème que cette fonctionnalité résoudrait. **Solution proposée** Description de la solution souhaitée. **Alternatives considérées** Autres solutions envisagées. **Contexte supplémentaire** Informations supplémentaires, captures d'écran, etc. ``` ## 🔍 Code Review ### Critères de Review - **Fonctionnalité** - Le code fait-il ce qu'il doit faire ? - **Qualité** - Le code est-il propre et maintenable ? - **Tests** - Y a-t-il des tests appropriés ? - **Documentation** - La documentation est-elle mise à jour ? - **Performance** - L'impact sur les performances est-il acceptable ? ### Processus de Review 1. **Automatique** - Tests et linting 2. **Review** - Review par un mainteneur 3. **Approbation** - Approbation requise pour merge 4. **Merge** - Intégration dans la branche principale ## 📦 Release ### Processus de Release 1. **Préparation** - Mise à jour du CHANGELOG 2. **Versioning** - Incrémentation de la version 3. **Build** - Build de production 4. **Tests** - Tests de validation 5. **Tag** - Création du tag de release 6. **Déploiement** - Déploiement en production ### Versioning Nous suivons le [Semantic Versioning](https://semver.org/) : - **MAJOR** - Changements incompatibles - **MINOR** - Nouvelles fonctionnalités compatibles - **PATCH** - Corrections de bugs compatibles ## 🤝 Code de Conduite ### Nos Standards - Être respectueux et inclusif - Utiliser un langage accueillant - Accepter les critiques constructives - Se concentrer sur ce qui est le mieux pour la communauté ### Nos Responsabilités - Clarifier les standards de comportement acceptable - Prendre des mesures correctives appropriées - Supprimer, éditer ou rejeter les commentaires inappropriés ## 📞 Support ### Obtenir de l'Aide - **Issues** - [Git.4nkweb.com](https://git.4nkweb.com/4nk/ihm_client/issues) - **Documentation** - [docs/](docs/) - **Discussions** - [Git.4nkweb.com](https://git.4nkweb.com/4nk/ihm_client) ### Ressources - [Documentation Vue.js](https://vuejs.org/guide/) - [Documentation TypeScript](https://www.typescriptlang.org/docs/) - [Documentation WASM](https://webassembly.org/docs/) --- Merci de contribuer à ihm_client ! 🚀