Skip to content

Latest commit

 

History

History
137 lines (87 loc) · 4.82 KB

README.md

File metadata and controls

137 lines (87 loc) · 4.82 KB

Rendre Visible la Pollution de l'Eau Potable 💧

Contexte du Projet

Ce projet, développé par des bénévoles de Data For Good lors de la saison 13, vise à créer une carte interactive pour Générations Futures.

L'objectif est de consolider, analyser et cartographier les données sur la qualité de l'eau potable en France à partir de sources de données ouvertes.

Structure du Projet

  • pipelines/ : Consolidation et préparation des données
  • analytics/ : Analyse des données
  • webapp/ : Développement du site web interactif

Installation

Data Pipelines

Ce projet utilise uv pour la gestion des dépendances Python. Il est préréquis pour l'installation de ce projet.

Installation sur Windows

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

Installation sur Mac ou linux

curl -LsSf https://astral.sh/uv/install.sh | sh

Une fois installé, il suffit de lancer la commande suivante pour installer la version de Python adéquate, créer un environnement virtuel et installer les dépendances du projet.

uv sync

VSCode

A l'usage, si vous utilisez VSCode, l'environnement virtuel sera automatiquement activé lorsque vous ouvrirez le projet. Sinon, il suffit de l'activer manuellement avec la commande suivante :

source .venv/bin/activate

Ou alors, utilisez la commande uv run ... (au lieu de python ...) pour lancer un script Python. Par exemple:

uv run pipelines/run.py run build_database

Pycharm

Allez dans settings, python interpreter, add interpreter, puis selectionnez existing venv et allez chercher le path du python executable dans .venv (.venv/Scripts/Python.exe pour windows)

Terminal

utilisez les commandes uv run pour lancer un script Python depuis votre terminal

Pour le développement du site web et pour l'usage de Evidence, il est nécessaire d'installer Node.js. Pour cela, il suffit de suivre les instructions sur le site officiel.

Pour installer les dépendances du site web, il suffit de lancer les commandes suivantes :

cd webapp
npm install

Data Processing

Package installation

Tout le code dans pipelines sera installé en tant que package python automatiquement à chaque uv_sync

Comment construire la database

Une fois l'environnement python setup avec uv, vous pouvez lancer data_pipeline/run.py pour remplir la database Il suffit de lancer

uv run pipelines/run.py run build_database

Connection a Scaleway via boto3 pour stockage cloud

Un utils a été créé dans storage_client.py pour faciliter la connection au S3 hébergé sur Scaleway.

Il faut créer un fichier .env dans le dossier pipelines/config avec les secrets ci dessous dedans pour que la connection fonctionne.

SCW_ACCESS_KEY={ACCESS_KEY}
SCW_SECRET_KEY={SECRET_KEY}

Vous trouverez un example avec le fichier .env.example

Attention: Ne jamais commir les access key et secret key.

Un vaultwarden va être setup pour récupérer les secrets pour les personnes qui en ont besoin

Le notebook test_storage_utils.ipynb montre un example d'utilisation de l'utils pour charger et lire des csv sur le bucket S3 du projet

Data analysis

Les analyses ce font via jupyter notebook

uv run jupyter notebook

Pre Commit

Lancer la commande suivante pour s'assurer que le code satisfait bien tous les pre commit avant de créer votre pull request

pre-commit run --all-files

How to contribute

Pour contribuer, il est recommandé d'utiliser un fork du projet. Cela permet d'éviter la gestion des demandes d'accès au dépôt principal.

  • Dans un premier temps, cliquez sur Fork pour récupérer le projet dans votre espace GitHub.
  • Créez votre branche de travail à partir de la branche main, en respectant la nomenclature suivante :
    • feature/nom_de_la_feature pour une nouvelle fonctionnalité
    • hotfix/nom_du_hotfix pour une correction rapide
  • Poussez votre code vers votre dépôt distant.
  • Créez une pull request en spécifiant :
    • Base repository : dataforgood/13_pollution_eau/main
    • Head repository : YourGithubAccount/13_pollution_eau/your_branch
  • Pour faciliter la revue de la pull request :
    • Liez la pull request à un ticket NocoDB en ajoutant le lien du ticket dans la description.
    • Rédigez une description détaillée de la pull request afin de fournir un maximum d’informations sur les modifications apportées.