Skip to content

suitenumerique/st-home

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

La Suite territoriale - Site vitrine

https://suiteterritoriale.anct.gouv.fr/

Cette application implémente la page d'accueil de la Suite territoriale, ainsi que le chemin de raccordement pour les collectivités.

Son code est basé sur Next.js, et a été initié à partir du template Next.js de betagouv.

Lancer le code

Après avoir cloné le projet :

Développement

make bootstrap

Il suffit ensuite de se rendre sur http://localhost:8950/.

Pour voir toutes les commandes disponibles, il est possible de lancer :

make help

Services de développement

Les services suivants sont disponibles :

Service URL / Port Description Identifiants
Frontend http://localhost:8950 Site vitrine en développement Aucun
PostgreSQL 8951 Serveur de base de données usr / pwd
Redis 8952 Cache et courtier de messages Aucun
Celery UI http://localhost:8953 Supervision de la file de tâches Aucun
Drizzle Studio http://localhost:8954 Interface de gestion de la base de données Aucun

Production de données

Production des données RPNT

Un conteneur Python utilisant le code de data/ est lançable avec :

make data-shell

Une fois dedans, il est possible de lancer les tâches de synchronisation des données :

# Tout synchroniser
python -m tasks.sync

# Lancer une tâche de vérification manuellement
python -m tasks.check_website [SIRET]
python -m tasks.check_dns [SIRET]

Cela peut permettre de débugguer des problèmes liés à certains SIRETs en particulier.

Il est recommandé d'ajouter des tests unitaires à chaque nouveau cas pour rendre les vérifications plus robustes.

Mise à jour des dépendances

Après avoir modifié une dépendance Python dans data/pyproject.toml, il est nécessaire de recréer le lockfile :

make data-freeze-deps

Idem pour le frontend. Après avoir modifié une dépendance dans package.json, il est nécessaire de recréer le lockfile :

make front-freeze-deps

Une autre méthode est de lancer make front-shell et de faire un npm install _package_ depuis le conteneur.

Base de données

L'application utilise Drizzle ORM pour gérer la base de données PostgreSQL.

Pour réinitialiser la base de données avec des données de test :

# Réinitialiser la base de données avec des données de test
make db-reset-sample

# Explorer la base de données avec Drizzle Studio
make db-browse

Ajout de colonnes dans la base de données

En cas d'ajout de colonnes gérées par Drizzle dans la base de données Postgres, voici la procédure à suivre :

  • Modifier src/lib/schema.ts
  • Executer make db-push pour modifier la table
  • Executer make db-seed pour importer les nouvelles données
  • Si besoin, ajouter ces colonnes aux tables *_history manuellement

Ces étapes sont à répéter en staging puis en prod.

Tests

# lancer tous les tests
make test

# a refaire avant chaque commit
make lint

Mise à jour des fichiers geoJSON

Prérequis

Procédure

1. Téléchargement des données

Télécharger la dernière version des données ADMIN EXPRESS de l'IGN, version France Entière, depuis : https://geoservices.ign.fr/adminexpress

2. Génération du geoJSON des régions

mapshaper -i REGION.shp snap -proj wgs84 -simplify 5% weighted keep-shapes -filter-fields INSEE_REG,NOM -rename-fields INSEE_GEO=INSEE_REG,NAME=NOM -o format=geojson precision=0.00001 regions.json

3. Génération des geoJSON des départements par région

mapshaper -i REGION.shp name=regions -i DEPARTEMENT.shp name=depts -clip target=depts source=regions -proj wgs84 -simplify 5% weighted keep-shapes -filter-fields INSEE_DEP,INSEE_REG,NOM -rename-fields INSEE_GEO=INSEE_DEP,NAME=NOM -split INSEE_REG -o format=geojson precision=0.00001

4. Génération des geoJSON des communes par département

mapshaper -i DEPARTEMENT.shp name=depts -i COMMUNE.shp name=communes -clip target=communes source=depts -proj wgs84 -simplify 5% weighted keep-shapes -filter-fields INSEE_COM,INSEE_DEP,NOM -rename-fields INSEE_GEO=INSEE_COM,NAME=NOM -split INSEE_DEP -o format=geojson precision=0.00001

Résultats

Cette procédure générera :

  • Un fichier france.json contenant les données des régions
  • Des fichiers séparés pour chaque région, contenant l'ensemble des départements de cette région
  • Des fichiers séparés pour département, contenant l'ensemble des communes de ce département

About

Homepage of la Suite territoriale

Resources

License

Stars

Watchers

Forks

Contributors 6