Base de données Google Sheets chez Droit Pluriel
↓
Cron qui tourne du mardi au samedi à 1 heure du matin chez Scalingo
↓
Base de données PostgreSQL (1 seule table lieu) chez Scalingo
↓
Backend NextJs
↓
Frontend React → API Adresse du gouvernement
----------------------------------------------------------
Repository sur GitHub (deploy lors du merge d'une branche)
↓
PaaS : Scalingo
yarn
touch .env.local
et y mettre les variables d'environnements pour développer
Vous trouverez toutes ces commandes dans le fichier package.json.
yarn dev
Cette application fonctionne avec la dernière version LTS de node.
yarn build
yarn start
yarn test
yarn test:coverage
yarn test:mutation:backend
yarn test:mutation:frontend
yarn typecheck
yarn lint:typescript
yarn lint:css
yarn lighthouse
yarn deadcode
yarn depcheck
yarn bash:production
yarn psql:production
yarn psql:local
yarn maj_lieux
yarn migration:create
yarn migration:up
yarn migration:down
Pour pouvoir travailler en local correctement, il faut créer un fichier .env.local et y mettre les variables d'environnement vide du fichier .env.
- Utilisation de l'API Adresse du gouvernement : 50 requêtes par IP et par seconde ;
- Utilisation de l'API Google Sheets : 300 requêtes par minute.
Un cron tourne à 1 heure du matin du mardi au samedi pour récupérer les données de Google Sheets pour alimenter le PostgreSQL de Scalingo.
Justicie a la note de A.
- Changer la
version
danstarteaucitron.js
à la date du jour pour que la nouvelle version soit prise en compte par les navigateurs ; - Rechercher les variables CSS dans l'ancien
tarteaucitron.css
pour les remettre dans le nouveau pour améliorer le contrast ; - Vérifier en dark et light mode l'affichage.
- Rien n'empêche le contraire
- On peut utiliser des outils gratuits d'observabilité
- C'est nul d'être fermé
- Facile d'utilisation
- Connu par une grosse majorité des développeurs
- Beaucoup de ressource sur Internet
- Peu être déployé en statique
- Hébergeur Français
- Facile d'utilisation
- Payement à la minute utilisée
- Architecture très simple
- Connu de tous
- Facile d'utilisation
- CI gratuite
- Métier en Français
- N'a pas vocation à s'exporter à l'étranger
- Diminutation de la charge cognitive
- Installation comme une application native
- Avoir du offline
- Avoir du cache
- Facile d'utilisation et Droit Pluriel avait déjà une feuille Excel
- Gratuit
- Partageable avec n'importe qui donc open data
- Facile d'utilisation
- Un grand nombre de développeur la connaisse
- Scalingo nous l'offre gratuitement avec leur premier plan
- L'API de Google map étant payante, il faut une alternative gratuite : Leaflet + Open Street map
- Pourra être remplacé par Google map si besoin par la suite si Droit Pluriel obtient des réductions auprès de Google
- React-leaflet provoque des erreurs étranges et est mal documenté
- À part la gestion du Client Side Rendering, leaflet n'est pas très compliqué à intégrer
- Quand l'utilisateur active le mode sombre, on stocke une valeur
themeDark
dans le local storage pour conserver son choix - Idéalement, il faudrait lire cette valeur dans le local storage avant le premier rendu de la page pour appliquer directement le bon thème. Malheureusement, React ne permet pas de lancer une fonction avant le premier rendu de la page. Dans notre cas, cela provoque un "flash" au chargement de la page, puisque le thème light est utilisé par défaut au premier rendu avant même que l'on ait lu la valeur dans le local storage
- Pour éviter ce flash, on cache le body par défaut dans global.css pour masquer le premier rendu et n'afficher la page que lorsqu'on a chargé le bon thème
Tarte Au Citron pour le bandeau de cookies (06/02/23)
- Facile à utiliser et à configurer avec Google Analytics
- Permet d'être 100% en règle avec le RGPD
- Gratuit
- Communauté assez large, donc outil assez fiable