Bienvenue dans le guide général du projet HappiHub. Ce document fournit des directives supplémentaires et des informations spécifiques pour vous aider à contribuer efficacement au projet et à utiliser ses fonctionnalités avancées.
- Prérequis
- Installation et Configuration
- Bonnes Pratiques de Développement
- Fonctionnalités Avancées
- Gestion des Rôles et Rangs
- Conseils et Astuces
- Ressources Utiles
Avant de commencer, assurez-vous d'avoir les outils suivants installés sur votre machine :
- Git
- Node.js
- Docker et Docker Compose
Pour installer et configurer HappiHub, suivez les étapes détaillées dans le README. Assurez-vous de configurer correctement les fichiers .env
pour le frontend et le backend.
- Branches : Utilisez des noms de branches descriptifs, par exemple
feature/ajout-inscription-utilisateur
. - Commits : Suivez la convention des commits Angular. Exemples :
feat: ajouter la fonctionnalité d'inscription
oufix: corriger le bug d'affichage
.
- Assurez-vous que chaque pull request est revue par au moins un autre développeur.
- Utilisez les commentaires pour expliquer le pourquoi des changements, pas seulement le quoi.
- Écrivez des tests unitaires et d'intégration pour chaque nouvelle fonctionnalité.
- Utilisez Jest pour les tests unitaires et Cypress pour les tests end-to-end.
Les tests unitaires sont essentiels pour garantir la qualité et la fiabilité de votre code. Voici quelques bonnes pratiques :
- Coverage : Assurez-vous que votre code a une couverture de tests élevée. Utilisez des outils comme Jest pour mesurer la couverture.
- Mocking : Utilisez le mocking pour isoler les tests des dépendances externes.
- Structure : Organisez vos tests de manière cohérente en suivant la même structure que votre code source.
Les webhooks peuvent être configurés pour intégrer HappiHub avec d'autres services comme Slack ou Discord pour les notifications. Consultez la documentation de l'API de GitHub pour plus d'informations sur la configuration des webhooks.
HappiHub utilise JSON Web Tokens (JWT) pour l'authentification. Assurez-vous de stocker les tokens de manière sécurisée et de les inclure dans les en-têtes des requêtes pour les routes protégées.
Les rôles définissent les niveaux d'autorité et les permissions des utilisateurs sur la plateforme HappiHub. Voici les rôles disponibles :
- Visiteur : Utilisateurs non inscrits qui peuvent consulter les événements publics.
- Ami : Utilisateurs inscrits qui commencent à s'impliquer et à participer.
- Compagnon : Participants réguliers et actifs dans la communauté.
- Organisateur : Utilisateurs qui créent et dirigent des événements.
- Unificateur : Leaders influents avec des contributions majeures.
- Ambassadeur : Figures emblématiques inspirant la communauté.
- Gardien : Membres de l'équipe supervisant et veillant au bon fonctionnement de la plateforme.
Les rangs permettent de différencier les niveaux d'implication des utilisateurs. Voici les rangs disponibles pour les utilisateurs :
- Niveau 1 : Nouveau membre.
- Niveau 2 : Membre actif.
- Niveau 3 : Membre régulier.
- Niveau 4 : Membre engagé.
- Niveau 5 : Membre influent.
Les rôles et rangs sont définis et stockés dans la base de données. Chaque utilisateur a un champ role
et un champ rank
associé.
Des middlewares sont implémentés pour vérifier les rôles et permissions des utilisateurs avant l'accès à certaines routes. Voici quelques exemples de middlewares :
- authMiddleware : Vérifie si l'utilisateur est authentifié.
- roleMiddleware : Vérifie le rôle de l'utilisateur.
- rankMiddleware : Vérifie le rang de l'utilisateur.
- Utilisez des volumes Docker pour persister les données de la base de données MongoDB.
- Redémarrez les conteneurs avec
docker-compose down && docker-compose up --build
après des modifications majeures de configuration.
- Utilisez les outils de débogage intégrés de votre IDE (comme Visual Studio Code) pour déboguer le backend Node.js.
- Pour le frontend React, utilisez les extensions de débogage du navigateur comme React Developer Tools.
- Documentation de Docker
- Documentation de Node.js
- Documentation de React
- Documentation de MongoDB
- Documentation de GitHub
Merci de votre contribution à HappiHub ! Si vous avez des questions supplémentaires, n'hésitez pas à ouvrir une issue ou à nous contacter à contact@happihub.com.
HappiHub Team