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.
- Structure du Projet
- Prérequis
- Installation
- Configuration de l'Environnement
- Démarrage des Conteneurs Docker
- Vérification du Bon Fonctionnement
- Contribution
- Licence
- Correction des Erreurs Courantes
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.
-
Clonez le dépôt :
git clone https://github.com/benoit-bremaud/happihub.git cd happihub
Avant de démarrer le projet, assurez-vous de configurer correctement les variables d'environnement pour le backend et le frontend.
-
Allez dans le répertoire
server/
. -
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
-
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
-
Allez dans le répertoire
client/
. -
Copiez le fichier
.env.example
et créez le fichier.env
:cp client/.env.example client/.env
-
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.
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.
docker-compose up --build
docker-compose --profile prod up --build
docker-compose --profile test up --build
Ces commandes démarrent les services avec les configurations appropriées pour chaque environnement.
Vérifiez que le backend fonctionne en accédant à http://localhost:5000
.
-
Utiliser un Navigateur Web :
- Ouvrez votre navigateur web.
- Accédez à
http://localhost:5000/test
. - Vous devriez voir la réponse "Hello HappiHub Server!".
-
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!".
Vérifiez que le frontend fonctionne en accédant à http://localhost:3000
.
-
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.
-
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.
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 :
-
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)
-
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.
-
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
-
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.
-
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)
-
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.
Les contributions sont les bienvenues. Pour commencer :
- Fork le dépôt.
- Créez une branche pour votre fonctionnalité ou correction de bug (
git checkout -b feature/fooBar
). - Commit vos modifications (
git commit -am 'Add some fooBar'
). - Push la branche (
git push origin feature/fooBar
). - Créez une nouvelle Pull Request.
Pour plus d'informations, veuillez lire le fichier CONTRIBUTING.
Nous avons adopté un code de conduite pour notre communauté. Pour en savoir plus, consultez le Code de Conduite.
Pour signaler une vulnérabilité de sécurité, veuillez lire notre Politique de Sécurité.
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.
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.
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.
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.
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.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
npm start
npm run start