Civic Tech · PA · 2026

Elezioni Sicilia

ruolo Progettazione & sviluppo completo
dominio Pubblica amministrazione · dati elettorali
stack principale Next.js 15 · TypeScript · Python · Bootstrap Italia
tipo Prototipo standalone · non commissionato
demo navigabile Apri il prototipo del portale
Apri demo
01 Contesto

Il portale elezioni.regione.sicilia.it, gestito dal Servizio Elettorale dell'Assessorato Regionale delle Autonomie Locali e della Funzione Pubblica, pubblica i dati delle tornate elettorali siciliane dal 2009. Le pagine HTML hanno uno schema invariato da 17 anni: stabile, machine-readable in teoria, ma servito con encoding ISO-8859-15, JS bloccante, zero standard di accessibilità moderna e nessuna API.

Elezioni Sicilia è un prototipo standalone, non commissionato, che rispecchia quel portale con un livello di servizio conforme alle linee guida AgID, Bootstrap Italia, font Designers Italia, WCAG 2.1 AA, mappa SVG accessibile, dati machine-readable, senza sostituire nulla del sistema esistente. È pensato per essere mostrato a Regione, AgID e comuni come prova di concetto di "come potrebbe essere".

02 Pipeline dati

L'ingest è un modulo Python che scarica le pagine Report*.html del portale ufficiale, ne caca una copia in ingest/raw/ e produce JSON normalizzati. Idempotente: i dati grezzi sono cachati, basta cancellare la cartella per forzare il refresh.

sorgente, portale ufficiale
ReportTabellaAffluenza.html [PROV]/ReportRisultati[PROV].html [PROV]/ReportCandidati[PROV].html regionali2022/riepilogoRegionale.html
↓ HTTP · cache locale
ingest, Python 3.13
BeautifulSoup (parser HTML/ISO-8859-15) Normalizzazione schema Tracciabilità, campo source.url per record Output JSON in public/data/
↓ npm run build
web, Next.js 15 (SSG)
App Router · TypeScript 5 86 pagine HTML pre-renderizzate First Load JS < 110 KB per rotta trailingSlash, link relativi portabili
deploy, qualsiasi web server
Apache/Nginx interno Regione CDN (Vercel / Cloudflare Pages / Netlify) ZIP autosufficiente da aprire in browser
03 Cosa contiene il prototipo
Pagine pubbliche
HomeDashboard editoriale tornata corrente
AffluenzaTabella completa, 4 rilevamenti
ComuneScheda per ognuno dei 71 comuni
Provincia9 schede provinciali
StoricoArchivio Regionali 2022
MetodologiaFonti, mapping, integrabilità
Conformità & standard
UIBootstrap Italia 2.x
FontTitillium · Lora · Roboto Mono
A11yWCAG 2.1 AA · skip-link · ARIA
MappaSVG inline da GeoJSON ISTAT
RenderingSSG puro · zero fetch runtime
Open dataJSON pubblici con source.url
04 Due modalità di integrazione

Il prototipo è pensato per affiancarsi al sistema esistente, non sostituirlo. È configurabile in due modi al deploy:

A · Standalone (zero impatto)
SorgenteScrape del portale ufficiale
RefreshIngest periodico (es. ogni 5 min)
RuoloMirror accessibile / cache CDN
Impatto ITNessuna modifica al backend CED
B · API nativa (integrato)
SorgenteBackend CED → REST/JSON
RenderingSSG/ISR di Next.js
SchemaGià definito nei JSON del prototipo
Endpoint tipo/api/v1/comuni/{slug}/affluenza

Perché conta la modalità B. Oggi dati.gov.it pubblica i risultati elettorali solo post-scrutinio; le API real-time esistenti (Eleweb e simili) sono B2B/B2G chiuse, riservate a partner contrattualizzati; Eligendo (Min. Interno) serve solo file scaricabili in formato compresso. Adottando la modalità B, il portale della Regione Sicilia diventerebbe la prima API REST pubblica e real-time per le elezioni regionali italiane, conforme alle linee guida AgID 547/2021, pubblicabile su PDND, riusabile come standard di fatto dalle altre Regioni. Un primato facilmente difendibile in conferenze AgID / FORUM PA.

05 Roadmap strategica

Idee successive al prototipo, ordinate per impatto-su-effort. Pensate per la conversazione con Regione / AgID / comuni.

Open data & trasparenza. Pubblicazione dei JSON normalizzati su dati.gov.it con licenza CC-BY. Endpoint OpenAPI documentato. Audit trail con hash SHA-256 + timestamp per ogni snapshot, anti fake-news.

Sala stampa. Widget embed (iframe/JS) integrabile da testate (Repubblica, Giornale di Sicilia, TGR Sicilia). Open Graph dinamici 1200×630 con dati reali per comune. Export CSV/JSON/PDF in un click.

Cittadini. PWA installabile con notifiche push ("affluenza del tuo comune aggiornata"). Integrazione IO/SPID per esperienza personalizzata. "Trova il tuo seggio" con dataset ISTAT delle sezioni elettorali. Telegram bot ufficiale.

Strumenti PA. Dashboard riservata SPID per Prefetti e Sindaci con KPI sezione per sezione. PDF AgID-compliant auto-generato a chiusura scrutinio (sostituisce il "Download Report" attuale). Widget embeddabile su comune.{nome}.it.

06 Stack completo
Next.js 15 TypeScript 5 React Python 3.13 BeautifulSoup Bootstrap Italia 2.x Titillium Web SSG / ISR GeoJSON · ISTAT SVG inline WCAG 2.1 AA App Router