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).
database/: le modèle de données et les migrations qui structurent la base PostgreSQL | documentationgradio_app/: l'interface pour parcourir les contributions et les annoter | documentationtopic-builder/: l'utilitaire de découverte, structuration et annotation des thèmes abordés dans les contributions | documentation
Ce projet utilise uv pour la gestion des dépendances Python (prérequis). Une fois uv installé :
uv syncCela 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/activateOu 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'appLa 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.
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-filesrefuse 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 hookstox -vv