README.md 2.03 KB
Newer Older
Fabien Zucchet's avatar
Fabien Zucchet committed
1
 # HumaViRon
2

Fabien Zucchet's avatar
Fabien Zucchet committed
3
 ## Description du projet
4

Fabien Zucchet's avatar
Fabien Zucchet committed
5
6
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](https://auth.viarezo.fr).
7

Fabien Zucchet's avatar
Fabien Zucchet committed
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 ## 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` et `leaderboard_preprod`. Les users des bases de données sont respectivement `leaderboard` et `leaderboard_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` (ou `back-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` et `leaderboard-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](https://leaderboard-test.viarezo.fr).
 - Dans le cas de la branche master : linter et déploiement du site en version `prod` [leaderboard.viarezo.fr](https://leaderboard.viarezo.fr).