← Back to desktop ← Return to Blog

Open Data in una Web App: il Caso sagre.cornelcaba.com

Ogni estate e ogni autunno milioni di persone cercano la stessa cosa: “che sagre ci sono questo weekend vicino a me?”. Le informazioni esistono già, ma sono sparse su centinaia di siti comunali, portali regionali e pagine social. Con sagre.cornelcaba.com ho voluto dimostrare una cosa concreta: una web app con open data ben progettata può trasformare dati pubblici frammentati in un servizio utile, veloce e affidabile. In questo articolo racconto come l’ho costruita, quale stack ho scelto e perché lo stesso approccio può servire alla tua azienda.

Il problema: dati pubblici ovunque, servizio da nessuna parte

In Italia le pubbliche amministrazioni pubblicano moltissimi dati aperti sugli eventi: regioni, enti turistici e comuni espongono calendari, API e dataset con licenze CC0 o CC-BY. Il problema è che ognuno lo fa a modo suo: formati diversi, campi diversi, nomi dei comuni scritti in modi differenti, date a volte incomplete.

Il risultato è che chi cerca una sagra finisce su aggregatori pieni di pubblicità, con date copiate male o eventi di tre anni fa. Io volevo l’opposto: ogni voce collegata al programma ufficiale pubblicato dal comune o dalla regione, niente informazioni di seconda mano, niente date inventate.

Cosa fa sagre.cornelcaba.com

Oggi la piattaforma raccoglie oltre 5.900 sagre, fiere e feste gastronomiche in tutta Italia, ciascuna con date, indirizzo, orari e link alla fonte ufficiale. Dal punto di vista dell’utente è semplice:

  • Ricerca per nome o per paese, con filtri per regione, provincia, mese e tipologia di evento.
  • “Vicino a me”: un tocco e vedi cosa succede intorno a te stasera.
  • Mappa interattiva con clustering, sempre sincronizzata con i filtri: clicchi un segnaposto e ottieni indirizzo, date, orari e indicazioni stradali.
  • Filtri rapidi per ciò che conta davvero: in corso adesso, questo weekend, con cucina, solo sagre.

Niente registrazione, niente app da installare: funziona dal browser del telefono in pochi istanti.

Integrare open data in una web app: la pipeline

Il cuore del progetto non è l’interfaccia, ma la pipeline che la alimenta. Ho scritto un importer in Python che unisce nove fonti aperte: Regione Lombardia, l’Open Data Hub dell’Alto Adige, Puglia, Calabria, Umbria, Emilia-Romagna Turismo, il Comune di Bologna e una scansione nazionale dei 712 municipi che espongono un’API eventi aperta (piattaforme come OpenCity/ComunWeb, Plone io-Comune e WordPress Design Comuni).

Ogni fonte ha il suo adattatore, che normalizza i dati in un formato unico. Poi entrano in gioco due passaggi fondamentali:

  • Riconciliazione dei comuni: ogni evento viene associato a uno dei 7.904 comuni ISTAT, così “S. Giovanni” e “San Giovanni” non diventano due posti diversi.
  • Geocodifica self-hosted: le coordinate vengono calcolate da un indice OpenStreetMap che gira sui miei server, con zero chiamate a servizi di geocoding esterni. Nessun costo a consumo, nessun dato inviato a terzi.

Accanto ai dati aperti c’è anche un lavoro di curatela: eventi aggiunti a mano solo dopo averli verificati su una fonte ufficiale, con controllo dei duplicati. L’automazione fa il grosso del lavoro, ma la qualità del dato resta la priorità.

Lo stack tecnico: semplice di proposito

Quando progetto una web app parto sempre da una domanda: di cosa ha davvero bisogno? Per un catalogo di eventi che cambia una volta al mese, un database e un backend sempre accesi sarebbero solo complessità e superficie d’attacco in più. Per questo ho scelto un’architettura statica:

  • Frontend: un singolo file HTML con JavaScript leggero e Leaflet per la mappa, tema chiaro/scuro automatico.
  • Dati: un unico file JSON generato dalla pipeline, niente database da mantenere o proteggere.
  • Hosting: Nginx in un container Docker, dietro Nginx Proxy Manager con certificato Let’s Encrypt.
  • Performance: caricamento sotto i 100 ms, perché non c’è nulla da calcolare lato server.

Nessun backend significa nessun backend da attaccare. È la stessa filosofia che applico ai progetti per i clienti: la soluzione più semplice che risolve il problema è quasi sempre anche la più sicura e la più economica da gestire nel tempo.

Aggiornamento automatico e integrazione con altri sistemi

Un agente schedulato ricostruisce il dataset ogni mese, scarta gli eventi già conclusi e pubblica quelli futuri anche sulla mia mappa personale maps.cornelcaba.com. Al termine scrive un resoconto nella mia knowledge base, così so sempre cosa è cambiato senza aprire un terminale. Il sistema si gestisce da solo, e io intervengo solo quando serve davvero.

Cosa significa per la tua azienda

Sagre.cornelcaba.com è un progetto personale, ma i problemi che risolve sono gli stessi che vedo ogni giorno nelle aziende:

  • Dati sparsi su più sistemi (gestionali, fogli Excel, portali di fornitori, API pubbliche) da unificare in un’unica vista.
  • Dati sporchi o incoerenti da normalizzare e deduplicare prima di poterli usare.
  • Servizi esterni costosi che si possono sostituire con componenti self-hosted, mantenendo il controllo sui dati.
  • Processi manuali ripetitivi che un’automazione schedulata può eseguire ogni giorno o ogni mese senza errori.

Che si tratti di un catalogo prodotti alimentato dai listini dei fornitori, di una mappa dei punti vendita, di un portale che integra open data territoriali o di una dashboard interna, l’approccio è lo stesso: capire le fonti, costruire una pipeline robusta, scegliere lo stack più snello possibile e mettere tutto in produzione con infrastruttura curata, SSL e monitoraggio.

Come lavoro: dall’idea al prodotto online

Da sistemista che gestisce infrastrutture cloud e on-premise per diverse aziende, non mi fermo al codice. Mi occupo dell’intero ciclo:

  • analisi delle fonti dati e dei requisiti reali;
  • sviluppo del frontend e delle pipeline di importazione;
  • deploy su server gestiti (Docker, Portainer, HestiaCP, Nginx) con certificati SSL;
  • automazioni di aggiornamento e manutenzione nel tempo.

Il risultato è un prodotto che funziona, resta aggiornato e non richiede un team dedicato per restare in piedi.

Vuoi trasformare i tuoi dati in una web app utile?

Se la tua azienda ha dati sparsi, processi da automatizzare o un’idea di servizio online che aspetta solo di essere costruita, parliamone. Sviluppo web app su misura per aziende in Italia e in Europa, dalla progettazione alla messa in produzione.

Guarda il progetto dal vivo su sagre.cornelcaba.com, esplora gli altri lavori su cornelcaba.com e contattami per una prima consulenza: raccontami il tuo progetto e ti dirò come realizzarlo nel modo più semplice, sicuro ed efficace.

Cornel Caba — signature