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
翻訳待ち
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.