Skip to content

covoiturage-gouv-fr/mono

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8,464 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Registre de preuve de covoiturage

Le Registre de preuve de covoiturage est un produit beta.gouv.fr qui a pour but de certifier qu'un covoiturage a bien eu lieu. L'objectif de l'outil est d'agir en tant que tiers de confiance entre les différents acteurs du covoiturage (opérateurs, autorités organisatrices de mobilité, entreprises, régions, etc.) pour simplifier la mise en place d'incitations à destination des covoitureuses et covoitureurs. Cette Startup d'État a pour objectif d'aider à réduire l'auto-solisme et l'emprunte écologique des déplacements courts.

Sécurité

Politique de sécurité et contact : SECURITY.md

Prérequis

  • Nix avec la fonctionnalité flakes activée -- fournit l'environnement de dev partagé via nix develop (voir flake.nix).
  • direnv + nix-direnv installés au niveau utilisateur (recommandé : module home-manager programs.direnv.enable = true; programs.direnv.nix-direnv.enable = true;). direnv active automatiquement :
    • le devShell Nix à la racine (outils communs : deno, node, uv, python3.13, postgresql, just, gh...)
    • un venv Python dédié dans sqlmesh/, dbt/ et datalake/ à chaque cd.
  • Docker pour la stack applicative (API, base, Traefik...).

Pour activer les venvs Python à la première utilisation :

direnv allow .            # à la racine
direnv allow sqlmesh
direnv allow dbt
direnv allow datalake

uv crée et synchronise les .venv automatiquement à partir des pyproject.toml / requirements.txt.

Stack technique

  1. Cloner le repo et cd dedans
  2. cp api/.env.example api/.env
  3. Modifier api/.env
  4. just docker build

Note Sur NixOS, il faut ajouter DOCKER_SOCK=/run/user/1000/docker.sock dans api/.env pour faire fonctionner Traefik correctement

Migrations

# Préfixer avec `just dc run api` pour exécuter dans le container de l'API
just migrate    # Migrer les schemas de données
just source     # Migrer les données géographiques
just seed       # Remplir la base de données avec des données de test
just seed-local-users # Ajouter des utilisateurs pour les tests (NODE_ENV=local)

Contrôle des services

Les différents fichiers docker-compose.*.yml sont utilisés en overlay pour créer la stack de dev.

  • base: définition des services sur localhost. Pas de ports exposés
  • proxy: ajout d'un proxy Traefik pour exposer les services sur *.covoiturage.test
  • e2e: overlay utilisé pour les tests de bout en bout
  • dev: ouvre les ports pour le développement local

Examples de commandes

  • Lister les commandes disponibles: just
  • Lancer la stack de dev en localhost (sans l'API): just dev | just start | just up
  • Démarrer l'API en local: just serve
  • Lancer la stack sur les URL *.covoiturage.test (avec l'API): just proxy
  • Utiliser Docker dans l'environnement: just docker <docker_command>
  • Afficher les logs des services: just logs [<service>] [-f]
  • Stopper les services: just stop | just down

Misc

  • Se connecter à la DB avec pgcli: just db
  • Lancer un REPL avec le kernel de l'API: just debug
  • Ajouter la résolution des domaines *.covoiturage.test dans /etc/hosts: just add-hosts
  • Ajouter des utilisateurs pour les tests: just seed-local-users
  • Lister les variables d'environnement de l'application: just env
  • Lancer les tests de l'API en local: just test, just test-integration, just test-unit
  • Lancer la stack de tests d'intégration: just ci_test_integration
  • Lancer la stack de tests bout-en-bout: just ci_test_e2e

Note Les stacks de tests CI sont lancées sur des volumes Docker qui sont détruits à la fin des runs.

Flux de travail

Cycle de contribution recommandé avec Claude Code :

  1. Choisir une tâche sur Notion (suivi des tâches Data)
  2. Créer un worktree et une branche depuis main (gitflow)
  3. Coder en TDD
  4. /pr-prep -- commit, vérifications (CGU + sécurité), push et ouverture de la PR, avec confirmation
  5. /notion-debrief -- journaliser le travail réalisé dans le suivi des tâches
  6. Revue humaine, puis squash-merge de la PR

Note /pr-prep gère le commit, le push et l'ouverture de la PR : pas d'étape commit + push séparée.

Versions

Le code suit les spécifications semver.

License

DINUM / DGITM / ADEME, 2017-2026

The source code is published under Apache license 2.0.

About

covoiturage.beta.gouv est une Startup d'Etat du Ministère de la Transition Écologique qui développe le covoiturage du quotidien.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Contributors