La rete Banco Alimentare da 25 anni recupera cibo buono ma non più commercializzabile (proveniente dalla filiera agroalimentare) e lo ridistribuisce a quasi 9.000 strutture caritative di tutto il territorio italiano, contribuendo così a dare un pasto a chi ne ha più bisogno.

Le principali attività implementate

Porting da Drupal 5 a Drupal 7

Il sito di Banco Alimentare lavorava già con la versione 5 del CMS Drupal, e presentava oltre 5.000 contenuti e 40.000 files.

La principale sfida della migrazione è stata quella di mantenere intatti gli “id” delle varie entità, come nodi, users, termini di tassonomia e files: data la mancata implementazione degli “alias url” sul vecchio Drupal 5, infatti, i vecchi url - già referenziati sul web - dovevano necessariamente riportare alle stesse risorse sul nuovo sito.

Per effettuare il porting dalla vecchia release abbiamo usato i moduli migrate (https://www.drupal.org/project/migrate) e migrate d2d (https://www.drupal.org/project/migrate_d2d) mentre è stato necessario realizzare un modulo ad hoc per gestire i files pubblici e privati, oltre che gli attributi “alt” e “title”.

Infine abbiamo mantenuto per alcuni mesi il vecchio sito su un sottodominio (old.bancoalimentare.it), al fine di monitorare ed eventualmente recuperare alcune situazioni nel caso fossero andate perdute durante la migrazione.

Organic groups

Data l’articolazione di Banco Alimentare, abbiamo dovuto implementare una soluzione per la gestione ed il caricamento di contenuti, file, immagini e news da parte di tutti gli editor delle varie OBA, prevenendo al contempo la possibilità di interferire con le pagine di altre OBA o della Fondazione stessa.

La situazione è stata gestita ricorrendo al modulo Organic Groups, combinato con Context e con altre funzionalità custom. 

Queste soluzioni hanno permesso alle singole OBA di avere:

  • un OBA Admin che gestisce il sito dell’Organizzazione;
  • un OBA Editor che può pubblicare nel flusso di news della singola OBA e della Fondazione;
  • un menu di navigazione in parte standard (nome OBA - News - Chi siamo) ed in parte custom in base alle specifiche esigenze della singola organizzazione.

Questa funzionalità avanzata permette di organizzare tutti i contenuti e le pagine di ogni sito senza discostarsi dalle strategie di comunicazione delineate dalla Fondazione, quindi mantenendo un’armonia visiva generale.

Single Sign On

Sono centinaia gli stakeholders che orbitano attorno alla Fondazione nel ruolo di dipendenti, singole OBA, volontari, uffici stampa e sponsor. Per questo motivo, un altro requisito funzionale molto importante riguardava la possibilità di utilizzare un sistema unico per l’autenticazione e l’accesso alle funzionalità previste per ciascun livello di utenza.

Il Single Sign On è stato realizzato con l'implementazione di oauth2_server e oauth2_client, seguendo il modello già usato da Commerce Guys per le loro piattaforme ed ispirato - ad esempio - alla metodologia già implementata con successo da colossi come Google.

La nostra soluzione ha portato alla creazione del sito im.bancoalimentare.it, che funge da server OAuth e ospita la gestione di tutte le identità in questione. Il sito funge da database per la gestione degli utenti e dei relativi login sui vari siti del network, per cui effettivamente la gestione del login su un sito come collettaalimentare.it avviene in realtà su im.bancoalimentare.it.

La complicazione principale ha riguardato l’usabilità del complesso sistema di redirect con token di autorizzazioni. Una volta impostato il server OAuth, una buona prassi che abbiamo introdotto per ogni nuovo client è stata di creare dei redirect per le pagine di registrazione, login, gestione del profilo e recupero password: qualsiasi attività (a parte l'assegnazione dei ruoli sul client) relativa alla gestione di un utente avviene quindi sul server.

News publishing flow

La sezione delle News doveva ospitare sia le notizie provenienti dalla Fondazione che dare spazio a quelle provenienti dalle singole OBA: per permettere una gestione agevole di entrambe le parti è stato implementato un sistema di permessi.

All’interno del sistema sono presenti 3 tipi di utenti. Gli editor delle singole organizzazioni territoriali possono pubblicare articoli che compaiono nel news feed del loro organic group (qui un esempio). 

A questo punto, un network editor con permessi più avanzati può “promuovere” nel news feed generale della rete o in altre landing pages uno o più contenuti provenienti dalle singole organizzazioni (con una logica di pick-up).

In questa maniera il news feed è costantemente aggiornato e si raggiunge l’obiettivo di valorizzare la diversità di ciascuna organizzazione territoriale, pur mantenendo una uniformità nella comunicazione.

Visual builder per landing pages

Una novità assoluta rispetto alla precedente versione del sito è stata quella di poter creare delle landing pages senza bisogno di scrivere codice html, utilizzando il nostro potente Elicos Visual Builder ed il modulo Shortcode (https://www.drupal.org/project/shortcode).

Grazie a questa funzionalità l’associazione può creare rapidamente campagne che richiedono la disponibilità di landing page attraverso cui generare diversi tipi di conversioni.

Il Visual Builder mette a disposizione degli editor numerose librerie e template per soddisfare molteplici esigenze creative, attraverso un’interfaccia drag & drop, assicurando al tempo stesso la compatibilità delle pagine create con i più svariati dispositivi. Infatti, gli elementi inseriti tramite il Visual Builder sono basati sul popolare framework responsive Bootstrap.

Tra gli elementi a disposizione troviamo: Bootstrap Rows e Columns per gestire i layout, background con effetti come parallax, slideshow e carousel, link, title, images, embed di blocchi e views, tabs, modal, circles, Google Maps.

Ogni elemento è configurabile e dispone di un template che può essere adattato ad ogni esigenza e a qualsiasi tema. Per la Fondazione Banco Alimentare, sono stati anche creati specifici elementi grazie all’implementazione della Shortcode API: infatti, Visual Builder recepisce tutti gli shortcodes di sistema e li compila automaticamente grazie a una comoda form dove inserire i parametri di personalizzazione.

Conclusioni

Banco Alimentare rappresenta ad oggi uno dei progetti più complessi mai realizzati da Elicos.

In questo processo di digital transformation, basato su Drupal, siamo riusciti a rendere semplice la grande complessità organizzativa di una rete di migliaia di volontari distribuiti su tutto il territorio nazionale.