HumaViRon
Description du projet
Ce projet est un projet de web app leaderboard pour l'Humaviron. Il possède une partie accessible sans connexion : accueil, accès aux classements, objectifs, page partenaires, ... La partie administration est accessible via l'authentification avec l'auth ViaRézo.
Technologies utilisées
- Front : Le front utilise la librairie JavaScript React. Le routage est géré par React-routeur. Il communique au back grâces à des appels à l'api et axios.
- Back : Le back est en nodejs et utilise Express.
- Base de données : Le back communique avec une base de données mysql.
## Mise en production
-
Base de données : mysql est installé directement sur la machine et disponible sur le port 3306 (port par défaut). Les bases de données de production et de pré-production sont nommées respectivement
leaderboard
etleaderboard_preprod
. Les users des bases de données sont respectivementleaderboard
etleaderboard_preprod
. Les mots de passes sont définis dans les variables de la CI gitlab. -
Back : le back est lancé avec pm2 sous le nom
back-prod
(ouback-preprod
) pour le back de preprod. Le back de production écoute sur le port 8000 et le back de pré-production sur le port 5000. -
Front : le front est compilé et servi de manière statique par nginx qui est configuré de manière à servir les 2 versions du site (
leaderboard.viarezo.fr
etleaderboard-test.viarezo.fr
) et gérer le proxy du/api
vers les backs respectifs.
Déploiement avec CI/CD
Une pipeline est configurée sur le projet gitlab, les actions effectuées sont les suivantes:
- Dans le cas d'une branche quelconque : linter du back et du front.
- Dans le cas de la branche staging : linter et déploiement du site en version
preprod
leaderboard-test.viarezo.fr. - Dans le cas de la branche master : linter et déploiement du site en version
prod
leaderboard.viarezo.fr.