Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
Évolution du climat en Gironde, en France et dans le monde, à partir de données ouvertes.
Translation pending
DataPython · TypeScriptGitHub @gregfs21-blipOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Étude de l'évolution du climat à partir de données ouvertes, publiée sous forme de tableau de bord. Chaque chiffre affiché est traçable jusqu'à sa source et au script qui l'a produit.
Sources ouvertes ──► ETL Python (GitHub Actions, mensuel) ──► data/processed/*.json ──► Site Next.js (Vercel)
télécharge, contrôle, calcule contrat validé affiche, ne calcule rien
| Dossier | Rôle |
|---|---|
etl/ | Calcul scientifique. schema.py = contrat de données, pipeline.py = orchestrateur, config/indicators.yaml = registre des indicateurs |
data/processed/ | Résultats publiés (JSON + manifest.json, rapports validation-<phase>.json). Seule interface entre l'ETL et le site |
data/raw/ | Cache des téléchargements, hors Git |
web/ | Site Next.js (App Router, TypeScript, Tailwind, ECharts, zod) |
.github/workflows/ | ci.yml (tests à chaque push), etl.yml (exécution mensuelle) |
docs/ | Sources, méthode, journal des phases |
Le contrat de données existe en deux exemplaires qui doivent rester identiques :
etl/schema.py (pydantic) et web/lib/schema.ts (zod). Un JSON non conforme est refusé
par la CI côté Python, puis par le build côté site.
etl/sources/<source>.py exposant build(ctx) -> Indicator.etl/config/indicators.yaml.python -m etl.pipeline --only <id> puis python -m etl.validate.La page /<échelle>/<id> apparaît automatiquement au build suivant. Aucun code côté site. Un nouveau thème
ajoute de même son bouton et sa page /<échelle>/themes/<thème>, dans la famille « Autres » tant qu'il n'est pas
rattaché à une famille dans web/lib/family.ts.
Pour rattacher l'indicateur à une famille (matrice, superposition, carte, navigation entre lieux),
le constructeur renseigne variable (vocabulaire etl/config/variables.yaml) et place (station ou
composite). Une nouvelle variable s'ajoute au vocabulaire ; le site n'en connaît aucune à l'avance.
Couleurs dans web/app/globals.css. Les couleurs de données (échelles, chaud/froid, bandes) ne suivent pas le thème.
Photo de l'accueil : web/public/accueil/vallee-glaciaire.jpg, Unsplash.
pip install -r etl/requirements.txt
python -m etl.pipeline && python -m etl.validate
python -m pytest etl/tests
cd web && npm install && npm run dev # http://localhost:3000
Projet Vercel relié à ce dépôt, Root Directory = web, option « Include files outside the
root directory » activée (le build lit ../data/processed). Chaque commit sur main,
y compris ceux de l'ETL mensuel, redéploie le site.
docs/validation-p1.md.