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.
Après avoir cloné le projet :
docker-compose up -d # pour lancer les conteneurs de base de données
npm install # pour installer les dépendances
npm run dev # pour lancer en mode développement
Il suffit ensuite de se rendre sur http://127.0.0.1:3000/.
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 :
# Appliquer les migrations
npm run db:reset:local
# Explorer la base de données avec Drizzle Studio
npm run db:browse:local
L'application utilise une base de données des communes françaises. Vous pouvez importer ces données en utilisant les commandes suivantes :
# Importer les données de test (un petit ensemble de communes)
npm run db:seed:sample:local
# Générer les données complètes en JSON avec toutes les communes de France (nécessite une clé Grist)
npm run data:sync:local
# Puis importer ces données en local
npm run db:seed:local
# lancer tous les tests
npm test
# a refaire avant chaque commit
npm run lint
Il est possible de rentrer dans le conteneur data
et éxecuter des tâches. Par exemple :
npm run data:shell
# Puis, une fois dedans :
python3 -m tasks.check_website [SIRET]
python3 -m tasks.check_dns [SIRET]
python3 -m tasks.sync
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.
- Mapshaper installé sur votre système (https://github.com/mbloch/mapshaper)
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
mapshaper -i REGION.shp snap -proj wgs84 -simplify 5% weighted keep-shapes -filter-fields INSEE_REG,NOM -rename-fields CODE=INSEE_REG -o format=geojson precision=0.00001 france.json
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 CODE=INSEE_DEP -split INSEE_REG -o format=geojson precision=0.00001
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 CODE=INSEE_COM -split INSEE_DEP -o format=geojson precision=0.00001
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