Skip to content

dataforgoodfr/cahier_doleances

Repository files navigation

Cahiers de doléances

Projet Data For Good : Outil de découverte, visualisation et annotation des thèmes abordés dans des cahiers de doléances. Les contributions extraites des PDF sont stockées en base PostgreSQL ; une app Gradio permet de les parcourir commune par commune et de les annoter (anonymisé, contribution d'intérêt).

Organisation

  • database/ : le modèle de données et les migrations qui structurent la base PostgreSQL | documentation
  • gradio_app/ : l'interface pour parcourir les contributions et les annoter | documentation
  • topic-builder/ : l'utilitaire de découverte, structuration et annotation des thèmes abordés dans les contributions | documentation

Installation

Ce projet utilise uv pour la gestion des dépendances Python (prérequis). Une fois uv installé :

uv sync

Cela installe la bonne version de Python, crée l'environnement virtuel et installe les dépendances. Sous VSCode l'environnement s'active automatiquement ; sinon :

source .venv/bin/activate

Ou préfixez vos commandes par uv run :

uv run python -m database.seed_mock # remplit la base avec le seed de démo
uv run python gradio_app/app.py # lance l'app

Base de données

La connexion PostgreSQL est lue depuis .env (DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME). Voir database/README.md pour le modèle, les migrations Alembic et le seed.

Qualité et sécurité du code (pre-commit)

Les hooks pre-commit tournent à chaque commit, et la CI les rejoue sur chaque PR (.github/workflows/pre-commit.yaml). Trois familles :

  • hygiène : espaces/fins de ligne, newline final, syntaxe YAML, résidus de merge ;
  • lint Python : ruff avec autofix ;
  • sécurité : gitleaks bloque tout secret (mot de passe, clé API, token) avant qu'il parte dans un repo public, et check-added-large-files refuse les fichiers > 500 Ko (dump, PDF égaré).
uv run pre-commit install # une fois : active les hooks à chaque commit
uv run pre-commit run --all-files # lancer manuellement sur tout le repo
uv run pre-commit autoupdate # mettre à jour les versions des hooks

Tester avec Tox

tox -vv

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages