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.
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 :
http://localhost:5000/test
.Utiliser curl
(ligne de commande) :
curl http://localhost:5000/test
Vérifiez que le frontend fonctionne en accédant à http://localhost:3000
.
Utiliser un Navigateur Web :
http://localhost:3000
.Utiliser curl
(ligne de commande) :
curl http://localhost:3000
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 :
git checkout -b feature/fooBar
).git commit -am 'Add some fooBar'
).git push origin feature/fooBar
).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 :
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