Sviluppo di software open source per il Team Digitale

Lo scorso anno, Cantiere Creativo si è aggiudicato un appalto per la realizzazione software open source in linguaggio Ruby su commissione del Team per lo Sviluppo Digitale.

Oltre ad essere entusiasti di lavorare su progetti ambiziosi come SPID e PagoPA, ci siamo impegnati a dimostrare che il connubio settore pubblico ed open source è sinomo di qualità.

Dopo quello per la realizzazione del nuovo sito web degli Uffizi, questo si è trattato del secondo appalto per un Ente Pubblico a cui Cantiere Creativo ha partecipato.

Tempo di lettura: 4 minuti

Progetti software virtuosi per la Pubblica Amministrazione

Il Piano Triennale del TD prevede un approccio moderno allo sviluppo di software e servizi pubblici, che si basa sulla realizzazione ed il riuso di componenti open source, nonchè di un modello collaborativo aperto ed incentrato sulle community tecnologiche.

I progetti più ambizioni rientrano in quelle che vengono chiamate "Piattaforme Abilitanti", ovvero una serie di strumenti che saranno alla base di numerosi servizi digitali per il cittadino, e che funzioneranno come fondamenta di siti ed applicazioni sviluppati dagli Enti Pubblici.

Va bene, ma in pratica di cosa parliamo?

Stiamo parlando di cose come SPID e PagoPA, strumenti che forse avete visto pubblicizzare in TV da qualche provider o che avete utilizzato per fare la dichiarazione dei redditi online, per registrarvi sul portale INPS, richiedere il Reddito di Cittadinanza o magari... pagare una multa!

Le linee guida sull’acquisizione e il riuso del software nella Pubblica Amministrazione, approvate in via definitiva solo recentemente, prevendono che la PA debba acquisire preferibilmente software open source e rilasciare con licenza open tutto il software che sviluppa.

Le librerie rilasciate da Cantiere

Una parte del lavoro svolto da Cantiere Creativo è consistito nello sviluppare delle librerie a corredo di questi servizi, che servono a facilitarne l'integrazione con programmi realizzati nel linguaggio di programmazione Ruby.

Questo significa che una qualsiasi software house o web agency, che sviluppi dei prodotti basati ad esempio sul framework Ruby on Rails, potrà avvalersi delle Gemme (il nome delle librerie Ruby) da noi realizzate per interfacciarsi con SPID o PagoPA.

Il codice sorgente di quanto realizzato è visibile sull'account Github di Developers Italia e le gemme sono disponibili su Rubygems, come ad esempio spid-ruby.

Per ribadire il nostro impegno a pubblicare software di qualità e rilasciare prodotti secondo le migliori best practices, abbiamo speso molto tempo a documentare tutto il lavoro con una dettagliata documentazione tecnica e ad implementare estensivi test automatici - alcuni componenti raggiungono un code coverage del 100%.

Agave CMS e Publiccode

Oltre ai componenti sopra menzionati, abbiamo realizzato due software stand-alone: il primo è un editor per realizzare in punta di click un file descrittivo secondo lo standard publiccode.yml.

Citando direttamente il repo:

Questo standard ha lo scopo di rendere il software sviluppato dalle Pubbliche Amministrazioni facile da individuare e, di conseguenza, riutilizzare. [...]  Molto software di qualità è stato sviluppato da diverse Pubbliche Amministrazioni ma i casi di riuso sono scarsi. Alcune tra le ragioni per la bassa adozione di tali progetti sono la difficoltà nel rilevarli così come la difficoltà nel capire se un dato progetto possa funzionare o meno nel contesto di una Pubblica Amministrazione differente. Lo standard publiccode.yml ha lo scopo di risolvere queste problematiche.

L'altro progetto realizzato è Agave CMS, un content management system per la creazione e la gestione di siti statici.

Come fa ad esserci un gestionale per un sito statico?

Agave in pratica consente di pubblicare un sito web a tutti gli effetti statico, poichè il backend amministrativo è completamente separato dal frontend (si parla infatti di CMS Headless).

La parte pubblica del sito viene generata sotto forma di file .html statici che sono prodotti e memorizzati al momento della pubblicazione, quindi non devono esse rigenerati ad ogni visita di un utente come accade per la maggior parte dei CMS. Le interazioni dinamiche avvengono tramite chiamate a delle API via Javascript.

Può sembrare un salto nel passato, ed invece è un nuovo trend molto all'avanguardia! Mai sentito parlare di JAMstack? I vantaggi sono numerosi, il sito risulta velocissimo e super sicuro.

Generatori di siti statici come Jekyll sono già adottati dal Team Digitale per buona parte dei propri siti web e documentazione, ma senza un backend amministrativo l'editing di tali contenuti non è alla portata di tutti. Agave è stato realizzato con l'idea di rendere accessibile questa tecnologia anche a scuole e comuni.

Come tutto ciò che abbiamo realizzato, il codice sorgente di Agave CMS è disponibile su Github ed installabile da chiunque sia un po' smaliziato con Docker.

[OT: si menziona che stiamo pensando di realizzare un "servizio" basato su Agave come www.pablico.it ?]

Il lavoro svolto, in dettaglio

Tutto quello che abbiamo realizzato è accessibile dal nostro porfolio, che contiene dettagli e link a tutte le risorse.

Un grazie speciale va al Team Digitale (Riccardo, Francesco, Alessandro, Giovanni e molti altri - si ci sono delle persone dietro, non è solo un'ente 😉), che sta combattendo (e vincendo!) delle difficili battaglie per ammodernare l'ecosistema ICT delle PA ed imporre standard qualitativi di altissimo livello.

Speriamo davvero di poter lavorare ancora con loro! 💚

Hai trovato questo post interessante?Scopri chi siamo