-
Wilson JALLET authoredWilson JALLET authored
Introduction
Ce dépôt contient le backend de Sigma, le successeur de Frankiz, un site étudiant permettant de gérer les groupes et les étudiants du plateau de Saclay.
Pour obtenir une copie de ce dépôt, clonez-le avec
git clone git@gitlab.binets.fr:br/sigma-backend.git
ou git clone https://gitlab.binets.fr/br/sigma-backend.git
, puis installez les dépendances JavaScript avec npm install
.
À terme, ce projet doit tourner sur un serveur du BR et servir d'API à un frontend React au code séparé et documenté séparément toute les données nécessaires à son bon fonctionnement (authentification, appartenance à un groupe, droits de visibilité...). Le dépôt pour le serveur front se trouve ici : https://gitlab.binets.fr/br/sigma-frontend (on l'appellera indifféremment serveur front, front ou frontend...)
Ce document détaille les différentes dépendances du projet, sa structure générale, détaille un peu plus des éléments sur la base de données et la documentation ; le code est également commenté en détail.
Image Docker
L'image Docker est définie dans Dockerfile
. Il s'agit d'une distro Alpine avec Node.js et libstdc++. Lors du build les dépendances runtime dont dépend le bundle.js
sont installées.
Compiler l'image :
docker build -t sigma-api .
Faire tourner le conteneur :
docker run sigma-api
avec un LDAP custom :
docker run -e LDAP_URI=ldap://172.17.0.1:8389 sigma-api
Dépendances
Une dépendance, c'est un librairie JavaScript dont dépend le code source, soit pour le faire tourner soit pour faire tourner les outils dévs. Les dépendances développeur servent à tester par exemple. On trouve la liste des dépendances dans package.json
. Express est un exemple de dépendance normale, nodemon et ESLint (voir infra) sont des dépendances dev (devDependencies
).
Les dépendances s'installent avec npm install
. Par défaut, toutes les dépendances sont installées. Si la variable NODE_ENV
est configurée (vérifier avec la commande echo "$NODE_ENV"
),
- la valeur
development
installe tout - la valeur
production
n'installe pas les dépendances développeur