Skip to content

medialab/website

Repository files navigation

Site web du médialab

Ce dépôt de code contient tout le code source lié au site web du laboratoire et à son CMS custom utilisé pour en administrer les données.

Installation

Pour installer les dépendances du projet:

npm install

Pour ré-installer toutes les dépendances de zéro:

npm run reinstall

Archictecture des dossiers

Dossiers du repo

  • admin: dossier contenant les sources du client statique du CMS.
  • api: dossier contenant les sources du serveur d'API du CMS.
  • config: dossier contenant les fichiers de configuration du serveur.
  • docs: divers fichiers de documentation liés au projet.
  • prototyping: dossier contenant le prototype de design du site et gardé pour raisons historiques.
  • scripts: scripts divers de gestion de données et/ou de maintenance du serveur.
  • site: dossier contenant le templating du site statique.
  • specs: dossier contenant de nombreux fichiers de configuration et schémas utilisés par toutes les composantes du site (statique et CMS).

Dossiers techniques

  • .cache: dossier créé automatiquement et contenant des caches de requêtes HTTP pour l'API Github pour éviter de saturer leur API lorsque l'on développe.
  • build: le serveur créé ce dossier automatiquement pour builder le site statique à interval régulier et pour être capable de versionner les données convenablement.
  • data: dossier contenant, par défaut, les données JSON du site, ainsi que les différents assets (images, pdfs etc.).

Comment développer?

TL;DR

npm install
npm run load -- /path/to/dump
npm run dev

Récapitulatif des ports utilisés en développement

Commandes

# Lancer l'intégralité de la stack (serveur + admin + site statique):
npm run dev

# Lancer uniquement le serveur d'api avec des options utiles au dev:
  # 1. En désactivant le cron qui builde le site régulièrement:
  node api/server.js --no-cron
  # 2. En désactivant l'authentification pour prototyper rapidement:
  node api/server.js --bypass-auth
  # 3/ En désactivant le précalcul des covers, pour démarrer plus vite:
  node api/server.js --no-precompute-covers

# Dumper la base de données:
npm run dump

# Charger une base de données dumpée:
npm run load -- /path/to/dump

# Rafraîchir les données de flux (github/twitter):
npm run flux

# Linter l'intégralité du code:
npm run lint

# Synchroniser les branches de préprod et de prod:
npm run upgrade:prod

Configuration de développement

Les fichiers de configuration se trouvent dans config et dans admin/config respectivement.

Il est possible d'overrider des variables de configuration localement en créant un fichier config/local.json qui ne sera pas commité.

Serveur d'API du CMS

Le serveur d'API maintient une base de données très simple, représentée par des fichiers JSON existant dans le dossier data.

Les données sont ensuite servies via un serveur express se basant sur json-server.

Client du CMS

Documentation dédiée

Site statique

Documentation dédiée