Frontend pubblico dati del Lab, basato su Evidence.dev, DuckDB e clean parquet pubblici su GCS.
Bootstrap v0 locale completato con:
- catalogo minimo
- 3 dataset
explorer-ready - 2 temi attivi
- build statica Evidence verde
Dataset v0:
ispra_ru_basecivile_flussi_2014_2024terna_electricity_by_source
Node 20:
fnm use 20
node --versionInstall:
npm install --legacy-peer-depsVerifica sources:
npm run sourcesNota: prima di sources, il repo sincronizza in locale i parquet necessari dentro .evidence/gcs-cache/. Al momento il pattern copre ispra-ru e civile-flussi: il bucket GCS resta la fonte pubblica, ma i source SQL leggono dalla cache locale per ridurre dipendenza remota durante il refresh. La convenzione del repo e' documentata in docs/gcs-cache-convention.md.
Validazione catalogo:
npm run validate:catalogBuild:
npm run buildPreview locale:
npm run previewcatalog/= catalogo dataset e temidocs/= convenzioni editoriali e checklist operative del sitosources/= query SQL Evidence per i parquet pubblicipages/= homepage, temi e pagine dataset
Il catalogo vive in:
catalog/datasets.jsoncatalog/themes.json
I due file sono la fonte di verità minima per:
- navigazione pubblica
- relazione tra dataset e temi
- metadata leggibili del v0
Ogni dataset è un oggetto JSON.
Campi obbligatori:
slug- slug pubblico usato nelle route del sito
technical_slug- slug tecnico usato nel data lake e nei path GCS
name- nome leggibile del dataset
theme- slug del tema pubblico di riferimento
status- stato di readiness del dataset nel Data Explorer
years- lista degli anni disponibili nel v0
source- ente o fonte del dataset
Campi opzionali futuri:
- descrizione breve
- coverage territoriale
- note sullo schema
- query consigliate
- link pubblici aggiuntivi
Regole:
slugdeve essere unico nel repothemedeve esistere inthemes.jsontechnical_slugpuò differire dallo slug pubblicoyearsdeve riflettere gli anni realmente esposti nel sito, non necessariamente tutti quelli disponibili fuori dal v0
Ogni tema è un oggetto JSON.
Campi obbligatori:
slug- slug pubblico del tema
name- nome leggibile del tema
datasets- lista degli slug pubblici dei dataset inclusi nel tema
Regole:
slugdeve essere unico- ogni dataset elencato deve esistere in
datasets.json - un dataset del v0 deve comparire sia nel proprio
themeindatasets.json, sia nella listadatasetsdel tema corrispondente
Nel catalogo convivono due livelli diversi:
- metadata pubblici:
slugnamethemesource
- metadata tecnici:
technical_slugyearsstatus
Il principio è:
- lo slug pubblico guida le route e la navigazione
- lo slug tecnico collega il sito al data lake del Lab
- i temi sono l'identità pubblica
- i dataset restano l'unità tecnica di base
- il repo può partire privato per il bootstrap
- prima di GitHub Pages dovrà essere reso pubblico
- i dati letti dalle pagine arrivano dal bucket pubblico
dataciviclab-clean - la checklist di readiness sta in
docs/explorer-ready-checklist.md - lo standard minimo delle pagine dataset sta in
docs/dataset-page-standard.md