Coder Social home page Coder Social logo

benoit-bremaud / happihub Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 2.0 127.31 MB

HappiHub - A platform for organizing and discovering cultural and artistic events. Join the community and explore events happening around you!

Home Page: https://www.happihub.com

License: MIT License

Dockerfile 1.05% HTML 2.48% CSS 15.89% JavaScript 80.58%
api community event-management-platform expressjs mongodb reactjs cultural-events

happihub's Introduction

HappiHub - La culture, le partage, la communauté

HappiHub est une application web de réseau social pour les événements culturels et communautaires. Notre objectif est de connecter les personnes partageant les mêmes intérêts et de faciliter l'organisation et la participation à des événements.

Table des Matières

Structure du Projet

Le projet est organisé en plusieurs répertoires :

  • client/ : Contient le code source du frontend React.
  • server/ : Contient le code source du backend Node.js/Express.

Prérequis

Installation

  1. Clonez le dépôt :

    git clone https://github.com/benoit-bremaud/happihub.git
    cd happihub
    

Configuration de l'Environnement

Avant de démarrer le projet, assurez-vous de configurer correctement les variables d'environnement pour le backend et le frontend.

Backend

  1. Allez dans le répertoire server/.

  2. Copiez le fichier .env.example et créez les fichiers .env pour chaque environnement :

    cp server/.env.example server/.env.development
    cp server/.env.example server/.env.production
    cp server/.env.example server/.env.test
    
  3. Ouvrez les fichiers .env correspondants et configurez les variables d'environnement selon vos besoins pour chaque environnement :

    Exemple pour .env.development :

    NODE_ENV=development
    MONGO_URI=mongodb://localhost:27017/happihub_dev
    JWT_SECRET=your_jwt_secret
    PORT=5000
    

    Exemple pour .env.production :

    NODE_ENV=production
    MONGO_URI=mongodb://mongo:27017/happihub_prod
    JWT_SECRET=your_jwt_secret
    PORT=5000
    

    Exemple pour .env.test :

    NODE_ENV=test
    MONGO_URI=mongodb://localhost:27017/happihub_test
    JWT_SECRET=your_jwt_secret
    PORT=5000
    

Frontend

  1. Allez dans le répertoire client/.

  2. Copiez le fichier .env.example et créez le fichier .env :

    cp client/.env.example client/.env
    
  3. Ouvrez le fichier .env et configurez les variables d'environnement selon vos besoins.

    Voici un exemple :

    REACT_APP_API_URL=http://localhost:5000/api
    

Assurez-vous que les valeurs des variables d'environnement correspondent à la configuration de votre environnement de développement.

Démarrage des Conteneurs Docker

Utilisez les fichiers Dockerfile et docker-compose.yml fournis pour construire et démarrer les conteneurs Docker. Vous pouvez démarrer les conteneurs pour différents environnements à l'aide des profils.

Environnement de Développement (Défaut)

docker-compose up --build

Environnement de Production

docker-compose --profile prod up --build

Environnement de Test

docker-compose --profile test up --build

Ces commandes démarrent les services avec les configurations appropriées pour chaque environnement.

Vérification du Bon Fonctionnement

Backend

Vérifiez que le backend fonctionne en accédant à http://localhost:5000.

  1. Utiliser un Navigateur Web :

    • Ouvrez votre navigateur web.
    • Accédez à http://localhost:5000/test.
    • Vous devriez voir la réponse "Hello HappiHub Server!".
  2. Utiliser curl (ligne de commande) :

    • Ouvrez votre terminal.
    • Exécutez la commande suivante :
      curl http://localhost:5000/test
      
    • Vous devriez voir la réponse "Hello HappiHub Server!".

Frontend

Vérifiez que le frontend fonctionne en accédant à http://localhost:3000.

  1. Utiliser un Navigateur Web :

    • Ouvrez votre navigateur web.
    • Accédez à http://localhost:3000.
    • Vous devriez voir la page d'accueil par défaut de l'application React.
  2. Utiliser curl (ligne de commande) :

    • Ouvrez votre terminal.
    • Exécutez la commande suivante :
      curl http://localhost:3000
      
    • Vous devriez voir le code HTML de la page d'accueil par défaut de l'application React.

Correction des Erreurs Courantes

Erreur : Ports are not available

Si vous rencontrez l'erreur suivante lors du démarrage des conteneurs Docker :

Starting happihub_mongo_1 ... error

ERROR: for happihub_mongo_1  Cannot start service mongo: Ports are not available: exposing port TCP 0.0.0.0:27017 -> 0.0.0.0:0: listen tcp 0.0.0.0:27017: bind: address already in use

ERROR: for happihub_app_1  'ContainerConfig'

ERROR: for mongo  Cannot start service mongo: Ports are not available: exposing port TCP 0.0.0.0:27017 -> 0.0.0.0:0: listen tcp 0.0.0.0:27017: bind: address already in use

Cela signifie que le port 27017 est déjà utilisé par un autre processus. Pour résoudre ce problème, vous pouvez suivre les étapes suivantes :

Linux

  1. Trouver le processus utilisant le port 27017 :

    sudo lsof -i :27017
    

    Exemple de sortie :

    COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    mongod  2100 mongodb   11u  IPv4  24553      0t0  TCP localhost:27017 (LISTEN)
    
  2. Tuer le processus utilisant le port 27017 :

    sudo kill -9 2100
    

    Remplacez 2100 par le PID trouvé dans la sortie de la commande précédente.

Windows

  1. Trouver le processus utilisant le port 27017 :

    Get-NetTCPConnection -LocalPort 27017 | Select-Object -Property State, LocalAddress, LocalPort, RemoteAddress, RemotePort, OwningProcess
    Get-Process -Id (Get-NetTCPConnection -LocalPort 27017).OwningProcess

    Exemple de sortie :

    State        : Listen
    LocalAddress : 0.0.0.0
    LocalPort    : 27017
    RemoteAddress: 0.0.0.0
    RemotePort   : 0
    OwningProcess: 2100
    
  2. Tuer le processus utilisant le port 27017 :

    Stop-Process -Id 2100 -Force

    Remplacez 2100 par le PID trouvé dans la sortie de la commande précédente.

Mac

  1. Trouver le processus utilisant le port 27017 :

    lsof -i :27017

    Exemple de sortie :

    COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    mongod  2100 mongodb   11u  IPv4  24553      0t0  TCP localhost:27017 (LISTEN)
    
  2. Tuer le processus utilisant le port 27017 :

    kill -9 2100

    Remplacez 2100 par le PID trouvé dans la sortie de la commande précédente.

Contribution

Les contributions sont les bienvenues. Pour commencer :

  1. Fork le dépôt.
  2. Créez une branche pour votre fonctionnalité ou correction de bug (git checkout -b feature/fooBar).
  3. Commit vos modifications (git commit -am 'Add some fooBar').
  4. Push la branche (git push origin feature/fooBar).
  5. Créez une nouvelle Pull Request.

Pour plus d'informations, veuillez lire le fichier CONTRIBUTING.

Code de Conduite

Nous avons adopté un code de conduite pour notre communauté. Pour en savoir plus, consultez le [Code de Conduite

](docs/CODE_OF_CONDUCT.md).

Sécurité

Pour signaler une vulnérabilité de sécurité, veuillez lire notre Politique de Sécurité.

Changelog

Pour suivre les modifications, ajouts, corrections de bugs et améliorations apportées au projet HappiHub, consultez le fichier CHANGELOG.md. Ce fichier documente l'évolution du projet de manière chronologique et structurée, suivant les conventions de Keep a Changelog et Semantic Versioning.

Pour des instructions détaillées sur comment, quand et pourquoi mettre à jour le fichier CHANGELOG, veuillez consulter le fichier CHANGELOG_GUIDE.md.

Documentation de l'API

Pour une documentation détaillée de l'API de HappiHub, veuillez consulter le fichier API_DOCUMENTATION. Ce document inclut des descriptions des endpoints, des paramètres, et des exemples de requêtes et de réponses.

Documentation de la Gestion des Tokens JWT

Nous avons ajouté une documentation complète pour la gestion des tokens JWT dans le projet HappiHub. Cette documentation couvre les aspects suivants :

  • Introduction à JWT et son utilisation dans HappiHub
  • Étapes détaillées pour générer des tokens JWT avec des exemples de codes
  • Méthodes pour valider des tokens JWT avec des exemples de code
  • Procédures pour rafraîchir des tokens JWT avec des exemples de code
  • Bonnes pratiques de sécurité pour la gestion des tokens JWT

Pour consulter la documentation complète, veuillez suivre ce JWT_DOCUMENTATION.

Guide Général

Pour des directives supplémentaires et des informations spécifiques sur le projet HappiHub, veuillez consulter le fichier GUIDE.md. Ce guide fournit des conseils sur les bonnes pratiques de développement, l'utilisation des fonctionnalités avancées, ainsi que des astuces et des ressources utiles.

FAQ

Pour répondre aux questions fréquemment posées, nous avons créé un fichier FAQ.md. Vous y trouverez des réponses détaillées sur l'installation, l'utilisation et la contribution au projet HappiHub. Si vous avez des questions supplémentaires, n'hésitez pas à consulter ce fichier avant de nous contacter.

Licence

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.

Start Manually Server

npm start

Start Manually Client

npm run start

happihub's People

Contributors

benoit-bremaud avatar clement-machtelinckx avatar viktor-argirov avatar

Stargazers

 avatar

Watchers

Lucian avatar  avatar

happihub's Issues

deploy: Déployer l'application backend

Résumé

Déployer l'application backend sur le serveur de production pour rendre l'API accessible en ligne.

Objectifs

  • Déployer l'application backend sur le serveur de production.
  • Configurer le serveur pour exécuter l'application en arrière-plan.

Tâches

  • Copier le code backend sur le serveur de production.
  • Installer les dépendances backend sur le serveur.
  • Configurer un processus pour exécuter l'application en arrière-plan (e.g., PM2).

Ressources

Diagrammes UML Référents

  • Diagramme de Déploiement : Pour comprendre l'architecture de déploiement de l'application backend.

Nom de la Branche

deploy/backend

docs: Créer le fichier USER_GUIDE.md

Résumé

Rédiger un fichier USER_GUIDE.md pour fournir un manuel utilisateur détaillé pour l'application HappiHub.

Contexte

Un guide utilisateur bien documenté aide les utilisateurs à comprendre et à utiliser efficacement toutes les fonctionnalités de l'application HappiHub.

Objectifs

  • Créer un fichier USER_GUIDE.md dans le dossier docs/user/.
  • Documenter les principales fonctionnalités de l'application.
  • Inclure des captures d'écran et des exemples pour illustrer les fonctionnalités.

Critères d'Acceptation

  • Le fichier USER_GUIDE.md doit être présent dans le dossier docs/user/.
  • Le fichier USER_GUIDE.md doit inclure des descriptions détaillées des fonctionnalités.
  • Le fichier doit inclure des captures d'écran et des exemples pour aider à l'illustration.

Tâches

  • Rédiger le fichier USER_GUIDE.md.
  • Documenter les fonctionnalités d'inscription, de connexion, de création d'événements, etc.
  • Ajouter des captures d'écran et des exemples.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système.

Nom de la Branche

docs/user-guide

feat: Créer la route POST /api/events

Résumé

Créer une route POST /api/events pour permettre aux utilisateurs authentifiés de créer de nouveaux événements.

Contexte

Les utilisateurs doivent pouvoir créer de nouveaux événements sur la plateforme HappiHub.

Objectifs

  • Créer une route POST /api/events.
  • Vérifier l'authentification de l'utilisateur.
  • Valider les données de l'événement.
  • Enregistrer le nouvel événement dans la base de données.

Livrables

  • Route de création d'événements fonctionnelle.

Critères d'Acceptation

  • La route doit vérifier que l'utilisateur est authentifié.
  • Les données de l'événement doivent être validées avant l'enregistrement.
  • Le nouvel événement doit être enregistré dans la base de données.

Tâches

  • Créer la route POST /api/events dans le contrôleur événement.
  • Vérifier l'authentification de l'utilisateur.
  • Valider les données de l'événement.
  • Enregistrer le nouvel événement dans la base de données MongoDB.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système lors de la création d'événements.
  • Diagramme de Séquence : Pour visualiser le flux des opérations depuis la requête de création d'événement jusqu'à la réponse du serveur.
  • Diagramme de Classe : Pour voir la structure du modèle événement et ses relations.

Nom de la Branche

feature/create-event

Étiquettes

  • backend : Related to server-side code
  • feature : New functionality to be added
  • security : Related to authentication and authorization

Milestone Suggestion

Milestone 2: Event Management

docs: Mettre à jour les chemins des fichiers dans le README.md et autres documents

Résumé

Mettre à jour les chemins des fichiers dans le README.md et autres documents pour refléter la nouvelle arborescence des dossiers du projet HappiHub.

Contexte

Après la réorganisation de l'arborescence des dossiers et la création de nouveaux fichiers de documentation, il est essentiel de mettre à jour les chemins des fichiers dans le README.md et autres documents pour garantir que les liens sont corrects et fonctionnels.

Objectifs

  • Mettre à jour les chemins des fichiers dans le README.md.
  • Vérifier et mettre à jour les chemins dans les autres documents de documentation.

Critères d'Acceptation

  • Les chemins des fichiers dans le README.md doivent être à jour et pointer vers les bons emplacements.
  • Les chemins dans les autres documents de documentation doivent être vérifiés et mis à jour si nécessaire.

Tâches

  • Revoir le README.md et mettre à jour les chemins des fichiers.
  • Revoir les autres documents de documentation (GUIDE.md, CONTRIBUTING.md, etc.) et mettre à jour les chemins si nécessaire.
  • Vérifier que tous les liens fonctionnent correctement après la mise à jour.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

docs/update-paths

docs: Créer le fichier API_DOCUMENTATION.md

Résumé

Rédiger un fichier API_DOCUMENTATION.md pour fournir une documentation détaillée de l'API de l'application HappiHub.

Contexte

Une documentation API claire et complète est essentielle pour que les développeurs puissent comprendre comment interagir avec l'API HappiHub.

Objectifs

  • Créer un fichier API_DOCUMENTATION.md dans le dossier docs/API/.
  • Documenter chaque endpoint de l'API avec des descriptions, des paramètres, et des exemples de requêtes et réponses.

Critères d'Acceptation

  • Le fichier API_DOCUMENTATION.md doit être présent dans le dossier docs/API/.
  • Le fichier API_DOCUMENTATION.md doit inclure des descriptions détaillées de chaque endpoint de l'API.
  • Le fichier doit inclure des exemples de requêtes et de réponses.

Tâches

  • Rédiger le fichier API_DOCUMENTATION.md.
  • Documenter les endpoints de l'API.
  • Inclure des descriptions des paramètres et des exemples de requêtes et réponses.

Ressources

Diagrammes UML Référents

  • Diagramme de Séquence : Pour visualiser le flux des opérations et l'interaction avec les endpoints.

Nom de la Branche

docs/api-documentation

feat: Développer la Page de Profil Utilisateur

Résumé

Développer la page de profil utilisateur pour permettre aux utilisateurs de voir et de mettre à jour leurs informations.

Objectifs

  • Créer le composant UserProfile.
  • Afficher les informations de l'utilisateur.
  • Permettre la mise à jour des informations de l'utilisateur.

Tâches

  • Créer le composant UserProfile.
  • Afficher les informations de l'utilisateur.
  • Ajouter un formulaire pour mettre à jour les informations de l'utilisateur.

Ressources

Nom de la Branche

feature/user-profile

feat: Développer la Page de Création d'Événements

Résumé

Développer la page de création d'événements pour permettre aux utilisateurs de créer de nouveaux événements sur HappiHub.

Objectifs

  • Créer le composant CreateEventPage.
  • Ajouter un formulaire de création d'événements.
  • Gérer la création d'événements avec le backend.

Tâches

  • Créer le composant CreateEventPage.
  • Ajouter un formulaire de création d'événements.
  • Gérer la création d'événements avec le backend.

Ressources

Nom de la Branche

feature/create-event-page

feature/user-logout

Résumé

Créer une route POST /api/users/logout pour permettre aux utilisateurs de se déconnecter de la plateforme HappiHub.

Contexte

La déconnexion permet aux utilisateurs de terminer leur session de manière sécurisée et de revenir sur la page d'accueil en tant que visiteurs.

Objectifs

  • Créer une route POST /api/users/logout.
  • Invalider le token JWT de l'utilisateur.
  • Renvoyer une réponse appropriée après déconnexion.

Livrables

  • Route de déconnexion des utilisateurs fonctionnelle.

Critères d'Acceptation

  • La route doit invalider le token JWT de l'utilisateur.
  • Une réponse JSON doit être renvoyée indiquant le succès ou l'échec de la déconnexion.

Tâches

  • Créer la route POST /api/users/logout dans le contrôleur utilisateur.
  • Invalider le token JWT de l'utilisateur.
  • Renvoyer une réponse appropriée après déconnexion.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système lors de la déconnexion.
  • Diagramme de Séquence : Pour visualiser le flux des opérations depuis l'envoi de la requête de déconnexion jusqu'à la réponse du serveur.

Nom de la Branche

feature/user-logout

Étiquettes

  • backend : Related to server-side code
  • feature : New functionality to be added
  • security : Related to authentication and authorization

Milestone Suggestion

Milestone 1: User Authentication

test: Effectuer des tests d'acceptation utilisateur

Résumé

Effectuer des tests d'acceptation utilisateur pour s'assurer que le système répond aux exigences et attentes des utilisateurs finaux.

Objectifs

  • Définir des scénarios de tests d'acceptation basés sur les exigences fonctionnelles.
  • Effectuer des tests avec des utilisateurs finaux pour valider les fonctionnalités clés.

Tâches

  • Définir des scénarios de tests d'acceptation.
  • Sélectionner un groupe d'utilisateurs finaux pour les tests.
  • Effectuer les tests d'acceptation avec les utilisateurs finaux.
  • Recueillir et analyser les retours des utilisateurs.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système.

Nom de la Branche

test/user-acceptance-tests

docs: Créer le fichier TESTING_GUIDE.md

Résumé

Rédiger un fichier TESTING_GUIDE.md pour fournir des instructions détaillées et des meilleures pratiques sur les tests de l'application HappiHub.

Contexte

Un guide de test bien documenté aide les développeurs à écrire et à exécuter des tests efficaces, assurant ainsi la qualité et la fiabilité de l'application.

Objectifs

  • Créer un fichier TESTING_GUIDE.md dans le dossier docs/.
  • Fournir des instructions détaillées et des meilleures pratiques pour les tests de l'application.

Critères d'Acceptation

  • Le fichier TESTING_GUIDE.md doit être présent dans le dossier docs/.
  • Le fichier TESTING_GUIDE.md doit inclure des instructions détaillées et des meilleures pratiques pour les tests de l'application.
  • Le fichier doit décrire les différents types de tests et comment les exécuter.

Tâches

  • Rédiger le fichier TESTING_GUIDE.md.
  • Inclure des instructions pour écrire des tests unitaires, d'intégration et end-to-end.
  • Fournir des exemples de tests pour chaque type.
  • Ajouter des directives sur l'utilisation des frameworks et outils de test (par exemple, Jest, Mocha, Cypress).

Ressources

Diagrammes UML Référents

  • Diagramme de Séquence : Pour visualiser les interactions et les scénarios de test.

Nom de la Branche

docs/testing-guide

docs: Créer le fichier GUIDE.md

Résumé

Rédiger un fichier GUIDE.md pour fournir un guide général sur le projet HappiHub, incluant des directives supplémentaires et des informations spécifiques.

Contexte

Un guide général est utile pour offrir des informations additionnelles et des directives spécifiques qui ne sont pas couvertes par d'autres documents de documentation.

Objectifs

  • Créer un fichier GUIDE.md dans le dossier docs/.
  • Fournir des directives supplémentaires et des informations spécifiques sur le projet HappiHub.

Critères d'Acceptation

  • Le fichier GUIDE.md doit être présent dans le dossier docs/.
  • Le fichier GUIDE.md doit inclure des directives supplémentaires et des informations spécifiques utiles pour les contributeurs et les utilisateurs.

Tâches

  • Rédiger le fichier GUIDE.md.
  • Inclure des directives supplémentaires sur les bonnes pratiques de développement.
  • Fournir des informations spécifiques sur l'utilisation de certaines fonctionnalités avancées du projet.
  • Ajouter des sections pour des conseils et astuces utiles pour les contributeurs et les utilisateurs.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

docs/guide

docs: Créer le fichier CHANGELOG.md

Résumé

Rédiger un fichier CHANGELOG.md pour suivre les modifications, les ajouts, les corrections de bugs et les améliorations du projet HappiHub au fil du temps.

Contexte

Un fichier CHANGELOG permet de documenter les évolutions du projet, facilitant la compréhension des changements entre les versions et aidant les utilisateurs et les contributeurs à se tenir informés des mises à jour.

Objectifs

  • Créer un fichier CHANGELOG.md dans le dossier docs/.
  • Documenter les modifications, les ajouts, les corrections de bugs et les améliorations pour chaque version du projet.

Critères d'Acceptation

  • Le fichier CHANGELOG.md doit être présent dans le dossier docs/.
  • Le fichier CHANGELOG.md doit inclure des entrées détaillant les modifications pour chaque version du projet.
  • Les entrées doivent être organisées de manière chronologique et structurée.

Tâches

  • Rédiger le fichier CHANGELOG.md.
  • Documenter les modifications, les ajouts, les corrections de bugs et les améliorations pour chaque version.
  • Organiser les entrées de manière chronologique et structurée.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

docs/changelog

chore: Créer le fichier .gitignore

Résumé

Créer un fichier .gitignore pour spécifier quels fichiers et répertoires doivent être ignorés par Git dans le projet HappiHub.

Contexte

Un fichier .gitignore bien configuré est essentiel pour éviter de commettre des fichiers indésirables, tels que les fichiers de configuration locaux, les dépendances et les artefacts de build, dans le dépôt Git.

Objectifs

  • Créer un fichier .gitignore à la racine du projet.
  • Inclure des règles pour ignorer les fichiers et répertoires couramment générés par les outils de développement.

Critères d'Acceptation

  • Le fichier .gitignore doit être présent à la racine du projet.
  • Le fichier .gitignore doit inclure des règles pour ignorer les fichiers et répertoires appropriés.

Tâches

  • Rechercher et compiler une liste des fichiers et répertoires à ignorer pour les projets Node.js, Docker et autres outils utilisés.
  • Créer un fichier .gitignore à la racine du projet.
  • Ajouter les règles de .gitignore pour ignorer les fichiers de configuration locaux, les dépendances, les artefacts de build, etc.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

chore/gitignore

feat: Implémenter l'authentification avec JWT

Résumé

Implémenter l'authentification avec JSON Web Tokens (JWT) pour sécuriser l'accès des utilisateurs aux fonctionnalités de la plateforme HappiHub.

Contexte

L'utilisation des JWT permet de sécuriser les routes nécessitant une authentification et d'assurer que seules les personnes autorisées peuvent accéder à certaines fonctionnalités.

Objectifs

  • Installer les dépendances nécessaires (jsonwebtoken et dotenv).
  • Créer une fonction utilitaire pour générer des tokens JWT.
  • Mettre à jour les routes signup et login pour générer et retourner des tokens JWT.
  • Créer un middleware pour vérifier les tokens JWT sur les routes nécessitant une authentification.

Livrables

  • Fonction utilitaire pour générer des tokens JWT.
  • Routes signup et login mises à jour pour générer et retourner des tokens JWT.
  • Middleware d'authentification pour vérifier les tokens JWT.

Critères d'Acceptation

  • Les tokens JWT doivent être générés et retournés lors de l'inscription et de la connexion.
  • Le middleware doit vérifier les tokens JWT et protéger les routes nécessitant une authentification.
  • Les tokens JWT doivent être valides pendant 30 jours.

Tâches

  • Installer les dépendances jsonwebtoken et dotenv.
  • Créer une fonction utilitaire pour générer des tokens JWT.
  • Mettre à jour la route signup pour générer et retourner un token JWT.
  • Mettre à jour la route login pour générer et retourner un token JWT.
  • Créer un middleware pour vérifier les tokens JWT.
  • Documenter l'utilisation des tokens JWT dans le fichier README.md.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système lors de l'authentification.
  • Diagramme de Séquence : Pour visualiser le flux des opérations depuis la génération du token jusqu'à la vérification lors des requêtes authentifiées.
  • Diagramme de Classe : Pour voir la structure du modèle utilisateur et ses relations, notamment pour l'authentification.

Nom de la Branche

feature/jwt-authentication

feat: Créer la route de connexion des Hubbers (Login)

Résumé

Créer une route POST /api/users/login pour permettre aux utilisateurs de se connecter à la plateforme HappiHub.

Contexte

La connexion des utilisateurs est essentielle pour l'authentification et l'accès aux fonctionnalités de la plateforme pour les Hubbers.

Objectifs

  • Créer une route POST /api/users/login.
  • Valider les données de connexion.
  • Authentifier l'utilisateur.
  • Générer un token JWT pour les utilisateurs authentifiés.
  • Renvoyer une réponse appropriée après connexion.

Livrables

  • Route de connexion des utilisateurs fonctionnelle.

Critères d'Acceptation

  • La route doit accepter les données de connexion (email, mot de passe).
  • Les données doivent être validées avant l'authentification.
  • Un token JWT doit être généré pour les utilisateurs authentifiés.
  • Une réponse JSON doit être renvoyée indiquant le succès ou l'échec de la connexion.

Tâches

  • Créer la route POST /api/users/login dans le contrôleur utilisateur.
  • Valider les données de connexion.
  • Authentifier l'utilisateur.
  • Générer un token JWT pour les utilisateurs authentifiés.
  • Renvoyer une réponse appropriée après connexion.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système lors de la connexion.
  • Diagramme de Séquence : Pour visualiser le flux des opérations depuis l'envoi des données de connexion jusqu'à la réponse du serveur.
  • Diagramme de Classe : Pour voir la structure du modèle utilisateur et ses relations, notamment pour l'authentification.

Nom de la Branche

feature/user-login

Étiquettes

  • backend
  • feature
  • security

docs: Créer le fichier DEPLOYMENT.md

Résumé

Rédiger un fichier DEPLOYMENT.md pour fournir des instructions détaillées sur le processus de déploiement de l'application HappiHub.

Contexte

Un fichier DEPLOYMENT.md bien documenté est essentiel pour faciliter le déploiement de l'application dans différents environnements, en fournissant des instructions claires et précises.

Objectifs

  • Créer un fichier DEPLOYMENT.md dans le dossier docs/deployment/.
  • Décrire les étapes nécessaires pour déployer l'application en production.
  • Inclure des instructions pour configurer les environnements et les variables d'environnement.

Critères d'Acceptation

  • Le fichier DEPLOYMENT.md doit être présent dans le dossier docs/deployment/.
  • Le fichier DEPLOYMENT.md doit inclure des instructions détaillées sur le déploiement de l'application.
  • Les instructions doivent couvrir la configuration des environnements et des variables d'environnement.

Tâches

  • Rédiger le fichier DEPLOYMENT.md.
  • Décrire les étapes nécessaires pour déployer l'application en production.
  • Inclure des instructions pour configurer les environnements et les variables d'environnement.

Ressources

Diagrammes UML Référents

  • Diagramme de Déploiement : Pour visualiser l'architecture de déploiement de l'application.

Nom de la Branche

docs/deployment

docs: Créer le fichier DEVELOPMENT_GUIDE.md

Résumé

Rédiger un fichier DEVELOPMENT_GUIDE.md pour fournir des instructions détaillées et des bonnes pratiques pour le développement du projet HappiHub.

Contexte

Un guide de développement bien documenté aide les contributeurs à comprendre les processus de développement, les outils et les technologies utilisés, et les meilleures pratiques pour écrire et maintenir le code.

Objectifs

  • Créer un fichier DEVELOPMENT_GUIDE.md dans le dossier docs/.
  • Fournir des instructions détaillées et des bonnes pratiques pour le développement du projet.

Critères d'Acceptation

  • Le fichier DEVELOPMENT_GUIDE.md doit être présent dans le dossier docs/.
  • Le fichier DEVELOPMENT_GUIDE.md doit inclure des instructions détaillées sur les processus de développement.
  • Le fichier doit décrire les outils et les technologies utilisés, ainsi que les meilleures pratiques de développement.

Tâches

  • Rédiger le fichier DEVELOPMENT_GUIDE.md.
  • Décrire les processus de développement et les workflows.
  • Inclure des instructions sur l'utilisation des outils et des technologies.
  • Fournir des exemples de bonnes pratiques de développement.

Ressources

Diagrammes UML Référents

  • Diagramme de Séquence : Pour visualiser le flux des opérations de développement.
  • Diagramme de Classe : Pour comprendre la structure des composants de l'application.

Nom de la Branche

docs/development-guide

feat: Développer la Page de Liste des Événements

Résumé

Développer la page de liste des événements pour permettre aux utilisateurs de consulter les événements disponibles sur HappiHub.

Objectifs

  • Créer le composant EventListPage.
  • Afficher une liste des événements disponibles.
  • Permettre le filtrage et la recherche d'événements.

Tâches

  • Créer le composant EventListPage.
  • Afficher une liste des événements disponibles.
  • Ajouter des fonctionnalités de filtrage et de recherche.

Ressources

Nom de la Branche

feature/event-list-page

chore: Configurer l'intégration continue (CI)

Résumé

Mettre en place l'intégration continue pour automatiser le processus de déploiement et de test de l'application.

Objectifs

  • Configurer un service d'intégration continue (e.g., GitHub Actions).
  • Automatiser les tests et les déploiements sur chaque push vers les branches de développement et de production.

Tâches

  • Configurer GitHub Actions pour les tests unitaires et d'intégration.
  • Configurer GitHub Actions pour le déploiement automatique.

Ressources

Diagrammes UML Référents

  • Diagramme de Déploiement : Pour comprendre l'architecture de déploiement de l'application.

Nom de la Branche

chore/setup-ci

chore: Configurer le serveur de production

Résumé

Préparer et configurer le serveur de production pour déployer l'application HappiHub.

Objectifs

  • Configurer un serveur de production.
  • Installer les dépendances nécessaires pour exécuter l'application.
  • Configurer les variables d'environnement pour la production.

Tâches

  • Choisir un fournisseur de serveur (e.g., AWS, DigitalOcean).
  • Configurer le serveur (e.g., créer une instance, configurer le réseau).
  • Installer Node.js et MongoDB sur le serveur.
  • Configurer les variables d'environnement pour la production.

Ressources

Diagrammes UML Référents

  • Diagramme de Déploiement : Pour comprendre l'architecture de déploiement de l'application.

Nom de la Branche

chore/setup-production-server

feat: Développer la Page d'Accueil

Résumé

Développer la page d'accueil pour afficher les événements en cours et les informations de base sur HappiHub.

Objectifs

  • Créer le composant HomePage.
  • Ajouter une liste d'événements en cours.
  • Afficher des informations de base sur HappiHub.

Tâches

  • Créer le composant HomePage.
  • Ajouter une liste d'événements en cours.
  • Afficher des informations de base sur HappiHub.

Ressources

Nom de la Branche

feature/home-page

feat: Créer la route POST /api/events/:id/participate

Résumé

Créer une route PATCH /api/events pour permettre aux utilisateurs authentifiés de participer à des événements.

Contexte

Les utilisateurs doivent pouvoir participer aux événements disponibles sur la plateforme HappiHub.

Objectifs

  • Créer une route PATCH /api/events.
  • Vérifier l'authentification de l'utilisateur.
  • Ajouter l'utilisateur à la liste des participants de l'événement.
  • Renvoyer une réponse appropriée après participation.

Livrables

  • Route de participation à un événement fonctionnelle.

Critères d'Acceptation

  • La route doit vérifier que l'utilisateur est authentifié.
  • L'utilisateur doit être ajouté à la liste des participants de l'événement.
  • Une réponse JSON doit être renvoyée indiquant le succès ou l'échec de la participation.

Tâches

  • Créer la route PATCH /api/events/:id/attendees dans le contrôleur événement.
  • Vérifier l'authentification de l'utilisateur.
  • Ajouter l'utilisateur à la liste des participants de l'événement.
  • Renvoyer une réponse appropriée après participation.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système lors de la participation à des événements.
  • Diagramme de Séquence : Pour visualiser le flux des opérations depuis la requête de participation jusqu'à la réponse du serveur.
  • Diagramme de Classe : Pour voir la structure du modèle événement et ses relations avec les utilisateurs.

Nom de la Branche

feature/participate-event

docs: Créer le fichier FAQ.md

Résumé

Rédiger un fichier FAQ.md pour répondre aux questions fréquemment posées concernant le projet HappiHub.

Contexte

Un fichier FAQ aide à fournir des réponses rapides et claires aux questions courantes des utilisateurs et des contributeurs, améliorant ainsi l'expérience globale et réduisant le besoin de support direct.

Objectifs

  • Créer un fichier FAQ.md dans le dossier docs/.
  • Répondre aux questions courantes concernant l'installation, l'utilisation, et la contribution au projet.

Critères d'Acceptation

  • Le fichier FAQ.md doit être présent dans le dossier docs/.
  • Le fichier FAQ.md doit inclure des réponses claires et détaillées aux questions courantes.
  • Les questions doivent couvrir divers aspects du projet, y compris l'installation, l'utilisation, et la contribution.

Tâches

  • Rédiger le fichier FAQ.md.
  • Inclure des questions et réponses sur l'installation et la configuration.
  • Inclure des questions et réponses sur l'utilisation de l'application.
  • Inclure des questions et réponses sur la contribution au projet.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

docs/faq

docs: Créer le fichier STYLE_GUIDE.md

Résumé

Rédiger un fichier STYLE_GUIDE.md pour définir les conventions de style de code et les bonnes pratiques pour le projet HappiHub.

Contexte

Un guide de style de code aide à maintenir la cohérence du code, ce qui facilite la lecture, la maintenance et la collaboration entre les développeurs.

Objectifs

  • Créer un fichier STYLE_GUIDE.md dans le dossier docs/.
  • Définir les conventions de style de code et les bonnes pratiques pour le projet.

Critères d'Acceptation

  • Le fichier STYLE_GUIDE.md doit être présent dans le dossier docs/.
  • Le fichier STYLE_GUIDE.md doit inclure des conventions de style de code et des bonnes pratiques claires et détaillées.

Tâches

  • Rédiger le fichier STYLE_GUIDE.md.
  • Définir les conventions de style de code pour JavaScript/TypeScript, CSS, et HTML.
  • Inclure des exemples de code pour illustrer les conventions et les bonnes pratiques.
  • Fournir des directives sur l'utilisation des linters et des formatters.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

docs/style-guide

test: Écrire des tests unitaires pour les routes backend

Résumé

Écrire des tests unitaires pour vérifier que les routes backend fonctionnent correctement et répondent avec les données attendues.

Objectifs

  • Configurer un environnement de test avec Jest et Supertest.
  • Écrire des tests unitaires pour les routes d'inscription, de connexion et de profil utilisateur.

Tâches

Ressources

Diagrammes UML Référents

  • Diagramme de Séquence : Pour comprendre le flux des opérations et les interactions entre les composants backend lors des tests.

Nom de la Branche

test/unit-tests-backend

test: Écrire des tests d'intégration pour les API

Résumé

Écrire des tests d'intégration pour vérifier que les API fonctionnent correctement et que les différentes parties du système interagissent comme prévu.

Objectifs

  • Configurer des tests d'intégration pour les API principales.
  • Tester les interactions entre le frontend et le backend.

Tâches

  • Configurer des tests d'intégration pour les API.
  • Écrire des tests d'intégration pour l'API d'inscription.
  • Écrire des tests d'intégration pour l'API de connexion.
  • Écrire des tests d'intégration pour l'API de profil utilisateur.

Ressources

Diagrammes UML Référents

  • Diagramme de Composants : Pour comprendre les interactions entre les composants frontend et backend.

Nom de la Branche

test/integration-tests-api

docs: Créer le fichier SECURITY.md

Résumé

Rédiger un fichier SECURITY.md pour fournir des informations sur les pratiques de sécurité et les processus de signalement des vulnérabilités pour le projet HappiHub.

Contexte

Un fichier SECURITY.md est important pour informer les contributeurs et les utilisateurs sur la manière de signaler les problèmes de sécurité et sur les pratiques de sécurité adoptées par le projet.

Objectifs

  • Créer un fichier SECURITY.md dans le dossier docs/.
  • Décrire les pratiques de sécurité suivies par le projet.
  • Fournir des instructions pour signaler les vulnérabilités de sécurité.

Critères d'Acceptation

  • Le fichier SECURITY.md doit être présent dans le dossier docs/.
  • Le fichier SECURITY.md doit inclure des informations sur les pratiques de sécurité du projet.
  • Le fichier doit fournir des instructions claires pour signaler les vulnérabilités.

Tâches

  • Rédiger le fichier SECURITY.md.
  • Décrire les pratiques de sécurité suivies par le projet.
  • Inclure des instructions pour signaler les vulnérabilités de sécurité.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

docs/security

docs: Créer le guide de contribution (CONTRIBUTING.md)

Résumé

Rédiger un guide de contribution pour aider les nouveaux contributeurs à se familiariser avec le projet et les bonnes pratiques de développement.

Contexte

Un guide de contribution clair aide à maintenir la qualité du code et à faciliter l'intégration de nouveaux contributeurs.

Objectifs

  • Créer un fichier CONTRIBUTING.md dans le dossier docs/.
  • Décrire le processus de contribution, y compris les conventions de commit, de branchement, et de pull request.
  • Inclure des instructions pour configurer l'environnement de développement.

Critères d'Acceptation

  • Le fichier CONTRIBUTING.md doit être présent dans le dossier docs/.
  • Le fichier CONTRIBUTING.md doit inclure des instructions claires sur la manière de contribuer.
  • Le fichier doit décrire les conventions de commit et de branchement.
  • Le fichier doit inclure des instructions pour configurer l'environnement de développement.

Tâches

  • Rédiger le fichier CONTRIBUTING.md.
  • Inclure des exemples de conventions de commit et de branchement.
  • Décrire le processus de pull request.
  • Inclure des instructions pour configurer l'environnement de développement.

Ressources

Diagrammes UML Référents

  • Diagramme de Classe : Pour comprendre la structure du projet et les relations entre les composants.

Nom de la Branche

docs/contributing-guide

docs: Créer le guide de conduite (CODE_OF_CONDUCT.md)

Résumé

Rédiger un guide de conduite pour établir les attentes en matière de comportement des contributeurs et maintenir un environnement de collaboration respectueux et inclusif.

Contexte

Un guide de conduite aide à créer une communauté accueillante et respectueuse, où les contributeurs peuvent collaborer efficacement.

Objectifs

  • Créer un fichier CODE_OF_CONDUCT.md dans le dossier docs/.
  • Définir les attentes en matière de comportement des contributeurs.
  • Fournir des instructions sur la manière de signaler les comportements inappropriés.

Critères d'Acceptation

  • Le fichier CODE_OF_CONDUCT.md doit être présent dans le dossier docs/.
  • Le fichier CODE_OF_CONDUCT.md doit inclure des attentes claires en matière de comportement.
  • Le fichier doit fournir des instructions sur la manière de signaler les comportements inappropriés.

Tâches

  • Rédiger le fichier CODE_OF_CONDUCT.md.
  • Définir les attentes en matière de comportement des contributeurs.
  • Inclure des instructions sur la manière de signaler les comportements inappropriés.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

docs/code-of-conduct

docs: Créer le fichier PERFORMANCE_GUIDE.md

Résumé

Rédiger un fichier PERFORMANCE_GUIDE.md pour fournir des conseils et des meilleures pratiques sur l'optimisation des performances de l'application HappiHub.

Contexte

Un guide de performance aide les développeurs à optimiser l'application pour améliorer sa rapidité, sa réactivité et son efficacité, ce qui est crucial pour offrir une expérience utilisateur de qualité.

Objectifs

  • Créer un fichier PERFORMANCE_GUIDE.md dans le dossier docs/.
  • Fournir des conseils et des meilleures pratiques pour l'optimisation des performances de l'application.

Critères d'Acceptation

  • Le fichier PERFORMANCE_GUIDE.md doit être présent dans le dossier docs/.
  • Le fichier PERFORMANCE_GUIDE.md doit inclure des conseils et des meilleures pratiques claires et détaillées pour l'optimisation des performances.

Tâches

  • Rédiger le fichier PERFORMANCE_GUIDE.md.
  • Inclure des conseils sur l'optimisation des performances du frontend et du backend.
  • Fournir des exemples et des techniques spécifiques pour améliorer la performance.
  • Ajouter des directives sur l'utilisation des outils de profilage et de surveillance des performances.

Ressources

Diagrammes UML Référents

  • Diagramme de Séquence : Pour visualiser les interactions et identifier les goulots d'étranglement potentiels.

Nom de la Branche

docs/performance-guide

feat: Créer la route d'inscription des Hubbers (Signup/Register)

Résumé

Créer une route POST /api/users/signup pour permettre aux visiteurs de s'inscrire sur la plateforme HappiHub.

Contexte

L'inscription des visiteurs est essentielle pour permettre aux nouveaux membres de rejoindre la communauté HappiHub et de devenir Hubbers.

Objectifs

  • Créer une route POST /api/users/signup.
  • Valider les données d'inscription.
  • Hacher le mot de passe de l'utilisateur.
  • Enregistrer l'utilisateur dans la base de données.
  • Renvoyer une réponse appropriée après inscription.

Livrables

  • Route d'inscription des utilisateurs fonctionnelle.

Critères d'Acceptation

  • La route doit accepter les données d'inscription (nom, email, mot de passe).
  • Les données doivent être validées avant l'enregistrement.
  • Le mot de passe doit être haché avant l'enregistrement.
  • Les informations de l'utilisateur doivent être enregistrées dans MongoDB.
  • Une réponse JSON doit être renvoyée indiquant le succès ou l'échec de l'inscription.

Tâches

  • Créer la route POST /api/users/signup dans le contrôleur utilisateur.
  • Valider les données d'inscription.
  • Hacher le mot de passe de l'utilisateur avant l'enregistrement.
  • Enregistrer l'utilisateur dans la base de données MongoDB.
  • Renvoyer une réponse appropriée après inscription.

Gestion des Erreurs

  • Traiter les erreurs de validation et renvoyer des messages d'erreur appropriés.
  • Traiter les erreurs lors du hachage du mot de passe.
  • Traiter les erreurs lors de l'enregistrement dans la base de données.
  • Assurer que les erreurs serveur renvoient une réponse JSON adéquate.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système lors de l'inscription.
  • Diagramme de Séquence : Pour visualiser le flux des opérations depuis l'envoi des données d'inscription jusqu'à la réponse du serveur.
  • Diagramme de Classe : Pour voir la structure du modèle utilisateur et ses relations.

Nom de la Branche

feature/user-signup

chore: Créer le fichier docker-compose.yml

Résumé

Créer un fichier docker-compose.yml pour définir et gérer les services Docker nécessaires pour l'application HappiHub.

Contexte

Un fichier docker-compose.yml bien configuré permet de gérer facilement plusieurs conteneurs Docker, facilitant le déploiement et le développement local de l'application HappiHub.

Objectifs

  • Créer un fichier docker-compose.yml à la racine du projet.
  • Définir les services Docker nécessaires, tels que l'application Node.js, la base de données MongoDB, etc.

Critères d'Acceptation

  • Le fichier docker-compose.yml doit être présent à la racine du projet.
  • Le fichier docker-compose.yml doit définir les services Docker nécessaires pour l'application.

Tâches

  • Rechercher les bonnes pratiques pour la création d'un fichier docker-compose.yml pour une application Node.js avec MongoDB.
  • Créer un fichier docker-compose.yml à la racine du projet.
  • Ajouter des services pour l'application Node.js, MongoDB, et autres services nécessaires.
  • Configurer les réseaux et volumes Docker si nécessaire.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

chore/docker-compose

docs: Rédiger le document README.md

Résumé

Créer un fichier README.md complet et informatif pour le projet HappiHub.

Contexte

Le fichier README.md est la première introduction à notre projet pour les développeurs et les utilisateurs. Il doit fournir une vue d'ensemble claire, des instructions d'installation et d'utilisation, ainsi que des liens vers des ressources importantes.

Objectifs

  • Fournir une vue d'ensemble du projet HappiHub.
  • Inclure des instructions claires pour l'installation et la configuration.
  • Décrire comment utiliser l'application.
  • Fournir des informations sur la contribution au projet.
  • Ajouter des liens vers des documents et des ressources importantes.

Critères d'Acceptation

  • Le README.md doit inclure une description du projet.
  • Le README.md doit inclure des instructions d'installation détaillées.
  • Le README.md doit expliquer comment utiliser l'application.
  • Le README.md doit fournir des informations sur la contribution.
  • Le README.md doit inclure des liens vers la documentation et les ressources pertinentes.

Tâches

  • Rédiger une description du projet.
  • Inclure des instructions d'installation et de configuration.
  • Décrire comment utiliser l'application.
  • Fournir des informations sur la contribution.
  • Ajouter des liens vers les documents et ressources importantes (CONTRIBUTING.md, LICENSE, etc.).

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les principales fonctionnalités de l'application.

Nom de la Branche

docs/readme

feat: Développer la Page de Connexion

Résumé

Développer la page de connexion pour permettre aux utilisateurs de se connecter à HappiHub.

Objectifs

  • Créer le composant LoginPage.
  • Ajouter un formulaire de connexion.
  • Gérer l'authentification avec le backend.

Tâches

  • Créer le composant LoginPage.
  • Ajouter un formulaire de connexion.
  • Gérer l'authentification avec le backend.

Ressources

Nom de la Branche

feature/login-page

docs: Créer le fichier UML_GUIDE.md

Résumé

Rédiger un fichier UML_GUIDE.md pour fournir des explications et des instructions sur la lecture et la création des différents diagrammes UML utilisés dans le projet HappiHub.

Contexte

Un guide UML aide les développeurs à comprendre les diagrammes UML et à en créer de nouveaux pour documenter les composants et les interactions de l'application.

Objectifs

  • Créer un fichier UML_GUIDE.md dans le dossier docs/.
  • Fournir des explications sur les différents types de diagrammes UML utilisés dans le projet.
  • Inclure des instructions sur la manière de lire et de créer ces diagrammes.

Critères d'Acceptation

  • Le fichier UML_GUIDE.md doit être présent dans le dossier docs/.
  • Le fichier UML_GUIDE.md doit inclure des explications sur les différents types de diagrammes UML.
  • Le fichier doit inclure des instructions sur la lecture et la création de ces diagrammes.

Tâches

  • Rédiger le fichier UML_GUIDE.md.
  • Expliquer les différents types de diagrammes UML (classe, séquence, activité, état).
  • Inclure des instructions sur la lecture de chaque type de diagramme.
  • Fournir des exemples de création de diagrammes UML.

Ressources

Diagrammes UML Référents

  • Diagramme de Classe : Pour illustrer la structure des classes.
  • Diagramme de Séquence : Pour montrer les interactions entre les composants.
  • Diagramme d'Activité : Pour décrire les flux de travail.
  • Diagramme d'État : Pour visualiser les états et transitions.

Nom de la Branche

docs/uml-guide

feature/get-events

Résumé

Créer une route GET /api/events pour permettre aux utilisateurs de récupérer la liste des événements.

Contexte

Les utilisateurs doivent pouvoir consulter la liste des événements disponibles sur la plateforme HappiHub.

Objectifs

  • Créer une route GET /api/events.
  • Récupérer la liste des événements depuis la base de données.
  • Renvoyer la liste des événements sous forme de JSON.

Livrables

  • Route de récupération des événements fonctionnelle.

Critères d'Acceptation

  • La route doit renvoyer la liste des événements sous forme de JSON.

Tâches

  • Créer la route GET /api/events dans le contrôleur événement.
  • Récupérer la liste des événements depuis la base de données MongoDB.
  • Renvoyer la liste des événements sous forme de JSON.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système lors de la consultation des événements.
  • Diagramme de Séquence : Pour visualiser le flux des opérations depuis la requête de récupération des événements jusqu'à la réponse du serveur.
  • Diagramme de Classe : Pour voir la structure du modèle événement et ses relations.

Nom de la Branche

feature/get-events

Étiquettes

  • backend : Related to server-side code
  • feature : New functionality to be added

Milestone Suggestion

Milestone 2: Event Management

docs: Créer les diagrammes UML

Résumé

Créer une série de diagrammes UML pour visualiser différentes aspects de l'application HappiHub, y compris la structure des classes, les séquences d'interactions, et plus encore.

Contexte

Les diagrammes UML aident à comprendre et à documenter la conception et les interactions au sein de l'application HappiHub, ce qui est essentiel pour la planification, la communication et la maintenance du projet.

Objectifs

  • Créer plusieurs types de diagrammes UML pour l'application HappiHub.
  • Inclure les diagrammes de classe, de séquence, d'activité et d'état.

Critères d'Acceptation

  • Les diagrammes UML doivent être présents dans le dossier docs/UML/.
  • Les diagrammes doivent inclure les informations pertinentes et être bien organisés.

Tâches

  • Utiliser un outil UML pour créer les diagrammes suivants :
    • Diagramme de classe (class-diagram.png)
    • Diagramme de séquence (sequence-diagram.png)
    • Diagramme d'activité (activity-diagram.png)
    • Diagramme d'état (state-diagram.png)
  • Inclure les principales classes et leurs relations dans le diagramme de classe.
  • Documenter les interactions importantes dans le diagramme de séquence.
  • Décrire les flux de travail majeurs dans le diagramme d'activité.
  • Montrer les états possibles et les transitions dans le diagramme d'état.
  • Exporter les diagrammes en format PNG et les placer dans le dossier docs/UML/.

Ressources

Nom de la Branche

docs/uml-diagrams

chore: Créer le Dockerfile

Résumé

Créer un fichier Dockerfile pour définir comment construire l'image Docker de l'application HappiHub.

Contexte

Un Dockerfile bien configuré est essentiel pour conteneuriser l'application HappiHub et faciliter le déploiement dans des environnements cohérents et reproductibles.

Objectifs

  • Créer un fichier Dockerfile à la racine du projet.
  • Définir les étapes nécessaires pour construire l'image Docker de l'application.

Critères d'Acceptation

  • Le Dockerfile doit être présent à la racine du projet.
  • Le Dockerfile doit contenir des instructions pour installer les dépendances, copier le code source, et démarrer l'application.

Tâches

  • Rechercher les bonnes pratiques pour la création d'un Dockerfile pour une application Node.js.
  • Créer un fichier Dockerfile à la racine du projet.
  • Ajouter des instructions pour installer les dépendances, copier le code source, et démarrer l'application.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

chore/dockerfile

chore: Configurer la base de données MongoDB en production

Résumé

Configurer la base de données MongoDB pour l'environnement de production.

Objectifs

  • Configurer une instance MongoDB pour la production.
  • Sécuriser l'accès à la base de données.
  • Configurer les sauvegardes régulières de la base de données.

Tâches

  • Créer une instance MongoDB pour la production.
  • Configurer les utilisateurs et les permissions.
  • Mettre en place des sauvegardes automatiques de la base de données.

Ressources

Diagrammes UML Référents

  • Diagramme de Déploiement : Pour comprendre l'architecture de déploiement de la base de données.

Nom de la Branche

chore/setup-production-db

feat: Créer la route GET /api/users/profile

Résumé

Créer une route GET /api/users/profile pour permettre aux utilisateurs authentifiés de récupérer les informations de leur profil.

Contexte

Les utilisateurs doivent pouvoir consulter les informations de leur profil après s'être connectés.

Objectifs

  • Créer une route GET /api/users/profile.
  • Vérifier l'authentification de l'utilisateur.
  • Récupérer et renvoyer les informations du profil utilisateur.

Livrables

  • Route de récupération du profil utilisateur fonctionnelle.

Critères d'Acceptation

  • La route doit vérifier que l'utilisateur est authentifié.
  • Les informations du profil utilisateur doivent être renvoyées sous forme de JSON.

Tâches

  • Créer la route GET /api/users/profile dans le contrôleur utilisateur.
  • Vérifier l'authentification de l'utilisateur.
  • Récupérer et renvoyer les informations du profil utilisateur.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système lors de la consultation du profil.
  • Diagramme de Séquence : Pour visualiser le flux des opérations depuis la requête de récupération du profil jusqu'à la réponse du serveur.
  • Diagramme de Classe : Pour voir la structure du modèle utilisateur et ses relations.

Nom de la Branche

feature/get-user-profile

Étiquettes

  • backend : Related to server-side code
  • feature : New functionality to be added
  • security : Related to authentication and authorization

Milestone Suggestion

Milestone 1: User Authentication

docs: Créer le fichier CONTRIBUTING_GUIDE.md

Résumé

Rédiger un fichier CONTRIBUTING_GUIDE.md pour fournir des instructions détaillées et des bonnes pratiques pour les contributeurs du projet HappiHub.

Contexte

Un guide de contribution bien documenté aide les nouveaux contributeurs à se familiariser avec les processus de développement, les conventions de codage, et les meilleures pratiques, assurant ainsi une collaboration efficace et harmonieuse.

Objectifs

  • Créer un fichier CONTRIBUTING_GUIDE.md dans le dossier docs/.
  • Décrire les processus de contribution, y compris la création de branches, les conventions de commit, et les pull requests.
  • Fournir des instructions pour configurer l'environnement de développement.

Critères d'Acceptation

  • Le fichier CONTRIBUTING_GUIDE.md doit être présent dans le dossier docs/.
  • Le fichier CONTRIBUTING_GUIDE.md doit inclure des instructions détaillées sur les processus de contribution.
  • Le fichier doit décrire les conventions de codage et les meilleures pratiques.

Tâches

  • Rédiger le fichier CONTRIBUTING_GUIDE.md.
  • Décrire le processus de création de branches et de commits.
  • Inclure des instructions pour soumettre des pull requests.
  • Fournir des instructions pour configurer l'environnement de développement.

Ressources

Diagrammes UML Référents

  • Diagramme de Séquence : Pour visualiser le flux des opérations et l'interaction avec les processus de contribution.

Nom de la Branche

docs/contributing-guide

feat: Créer les composants Header et Footer

Résumé

Développer les composants Header et Footer pour la structure de base de l'application.

Objectifs

  • Créer le composant Header.
  • Créer le composant Footer.
  • Ajouter le style de base pour ces composants.

Tâches

  • Créer le composant Header.
  • Créer le composant Footer.
  • Ajouter le style de base pour le Header et le Footer.

Ressources

Nom de la Branche

feature/header-footer

test: Effectuer des tests post-déploiement

Résumé

Effectuer des tests post-déploiement pour s'assurer que l'application fonctionne correctement en production.

Objectifs

  • Vérifier que toutes les fonctionnalités principales de l'application fonctionnent en production.
  • Identifier et corriger les éventuels problèmes rencontrés.

Tâches

  • Effectuer des tests manuels sur les fonctionnalités principales.
  • Vérifier les logs du serveur pour identifier les erreurs.
  • Corriger les problèmes rencontrés lors des tests.

Ressources

Diagrammes UML Référents

  • Diagramme de Séquence : Pour comprendre les flux de travail et interactions lors des tests.

Nom de la Branche

test/post-deployment

docs: Créer le document LICENSE

Résumé

Créer un fichier LICENSE pour définir les termes sous lesquels le projet HappiHub est distribué.

Contexte

Un fichier LICENSE est essentiel pour clarifier les droits et les restrictions liés à l'utilisation, la modification et la distribution du code source du projet. Il protège les développeurs et les utilisateurs.

Objectifs

  • Sélectionner une licence appropriée pour le projet HappiHub.
  • Créer un fichier LICENSE à la racine du projet.
  • Inclure le texte complet de la licence sélectionnée.

Critères d'Acceptation

  • Le fichier LICENSE doit être présent à la racine du projet.
  • Le fichier LICENSE doit contenir le texte complet de la licence sélectionnée.
  • La licence doit être appropriée pour le projet et alignée avec ses objectifs.

Tâches

  • Rechercher et sélectionner une licence appropriée (par exemple, MIT, GPL, Apache).
  • Créer un fichier LICENSE à la racine du projet.
  • Inclure le texte complet de la licence sélectionnée dans le fichier LICENSE.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

docs/license

test: Tester l'interface utilisateur

Résumé

Écrire des tests pour vérifier que l'interface utilisateur fonctionne comme prévu et que les utilisateurs peuvent interagir correctement avec les composants frontend.

Objectifs

  • Configurer un environnement de test pour l'interface utilisateur avec React Testing Library.
  • Écrire des tests pour les composants principaux (Header, Footer, HomePage, UserProfile).

Tâches

  • Configurer React Testing Library pour les tests frontend.
  • Écrire des tests pour le composant Header.
  • Écrire des tests pour le composant Footer.
  • Écrire des tests pour le composant HomePage.
  • Écrire des tests pour le composant UserProfile.

Ressources

Diagrammes UML Référents

  • Diagramme de Classe : Pour comprendre la structure et les relations entre les composants frontend.

Nom de la Branche

test/ui-tests

feat: Créer la route PUT /api/users/profile

Résumé

Créer une route PUT /api/users/profile pour permettre aux utilisateurs authentifiés de mettre à jour les informations de leur profil.

Contexte

Les utilisateurs doivent pouvoir mettre à jour les informations de leur profil après s'être connectés.

Objectifs

  • Créer une route PUT /api/users/profile.
  • Vérifier l'authentification de l'utilisateur.
  • Valider les nouvelles données du profil.
  • Mettre à jour les informations du profil utilisateur dans la base de données.

Livrables

  • Route de mise à jour du profil utilisateur fonctionnelle.

Critères d'Acceptation

  • La route doit vérifier que l'utilisateur est authentifié.
  • Les nouvelles données doivent être validées.
  • Les informations du profil utilisateur doivent être mises à jour dans la base de données.

Tâches

  • Créer la route PUT /api/users/profile dans le contrôleur utilisateur.
  • Vérifier l'authentification de l'utilisateur.
  • Valider les nouvelles données du profil.
  • Mettre à jour les informations du profil utilisateur dans la base de données.

Ressources

Diagrammes UML Référents

  • Diagramme de Cas d'Utilisation : Pour comprendre les interactions de l'utilisateur avec le système lors de la mise à jour du profil.
  • Diagramme de Séquence : Pour visualiser le flux des opérations depuis la requête de mise à jour du profil jusqu'à la réponse du serveur.
  • Diagramme de Classe : Pour voir la structure du modèle utilisateur et ses relations.

Nom de la Branche

feature/update-user-profile

Étiquettes

  • backend : Related to server-side code
  • feature : New functionality to be added
  • security : Related to authentication and authorization

Milestone Suggestion

Milestone 1: User Authentication

deploy: Déployer l'application frontend

Résumé

Déployer l'application frontend sur le serveur de production pour rendre l'interface utilisateur accessible en ligne.

Objectifs

  • Déployer l'application frontend sur le serveur de production.
  • Configurer un serveur web pour servir l'application frontend.

Tâches

  • Copier le code frontend sur le serveur de production.
  • Construire l'application frontend pour la production.
  • Configurer un serveur web (e.g., Nginx) pour servir l'application.

Ressources

Diagrammes UML Référents

  • Diagramme de Déploiement : Pour comprendre l'architecture de déploiement de l'application frontend.

Nom de la Branche

deploy/frontend

feat: Développer la Page d'Inscription

Résumé

Développer la page d'inscription pour permettre aux nouveaux utilisateurs de créer un compte sur HappiHub.

Objectifs

  • Créer le composant SignupPage.
  • Ajouter un formulaire d'inscription.
  • Gérer l'inscription avec le backend.

Tâches

  • Créer le composant SignupPage.
  • Ajouter un formulaire d'inscription.
  • Gérer l'inscription avec le backend.

Ressources

Nom de la Branche

feature/signup-page

docs: Créer le fichier MAINTAINERS_GUIDE.md

Résumé

Rédiger un fichier MAINTAINERS_GUIDE.md pour fournir des directives et des meilleures pratiques aux mainteneurs du projet HappiHub.

Contexte

Un guide des mainteneurs bien documenté aide à assurer la continuité et la qualité du projet en fournissant des directives claires sur la gestion des contributions, des versions et des processus de développement.

Objectifs

  • Créer un fichier MAINTAINERS_GUIDE.md dans le dossier docs/.
  • Fournir des directives sur la gestion des contributions, des versions, et des processus de développement.

Critères d'Acceptation

  • Le fichier MAINTAINERS_GUIDE.md doit être présent dans le dossier docs/.
  • Le fichier MAINTAINERS_GUIDE.md doit inclure des directives claires sur la gestion des contributions, des versions, et des processus de développement.

Tâches

  • Rédiger le fichier MAINTAINERS_GUIDE.md.
  • Décrire le processus de revue des pull requests et de gestion des issues.
  • Inclure des directives sur la gestion des versions et des releases.
  • Fournir des conseils sur la maintenance et l'amélioration continue du projet.

Ressources

Diagrammes UML Référents

  • N/A

Nom de la Branche

docs/maintainers-guide

docs: Mettre à jour les chemins et référencer les documents UML

Résumé

Mettre à jour les chemins et ajouter des références vers les documents UML créés dans les autres fichiers de documentation pour assurer une cohérence et une accessibilité dans le projet HappiHub.

Contexte

Après avoir créé les documents UML, il est essentiel de les référencer dans les autres fichiers de documentation pour fournir un contexte et une compréhension clairs des différents composants et interactions de l'application.

Objectifs

  • Mettre à jour les chemins des fichiers UML dans les documents de documentation.
  • Ajouter des références aux documents UML dans les fichiers README.md, GUIDE.md, et autres documents pertinents.

Critères d'Acceptation

  • Les chemins des fichiers UML dans les documents de documentation doivent être à jour.
  • Les documents UML doivent être référencés dans les fichiers README.md, GUIDE.md, et autres documents pertinents.

Tâches

  • Mettre à jour les chemins des fichiers UML dans les documents de documentation.
  • Ajouter des références aux documents UML dans le README.md.
  • Ajouter des références aux documents UML dans le GUIDE.md et autres documents pertinents.
  • Vérifier que tous les liens fonctionnent correctement après la mise à jour.

Ressources

Diagrammes UML Référents

  • Diagramme de Classe : Pour illustrer la structure des classes.
  • Diagramme de Séquence : Pour montrer les interactions entre les composants.
  • Diagramme d'Activité : Pour décrire les flux de travail.
  • Diagramme d'État : Pour visualiser les états et transitions.

Nom de la Branche

docs/update-uml-references

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.