FIASO – Federazione Italiana Aziende Sanitarie e Ospedaliere – è l’associazione che raggruppa professionisti impegnati in un processo continuo di confronto e condivisione, con l’obiettivo di dar vita a un circolo virtuoso di scambio di contenuti e idee. Da anni gestisce un portale web ricco di contenuti editoriali diffusi a livello nazionale.
Una nuova struttura del CMS
Per FIASO abbiamo realizzato il nuovo portale, uno strumento strategico di comunicazione per il corpo associativo della Federazione che consente la creazione di un network di soggetti che possono interagire tra loro, confrontarsi e condividere le tematiche oggetto delle attività dell’associazione.
Il progetto è stato suddiviso in tre sezioni logiche che costituiscono le aree di sviluppo:
- contenuti editoriali: il nostro obiettivo in questa sezione è stato fornire una migliore User Experience della piattaforma e una completa riorganizzazione dell’architettura dell’informazione al fine di consentire sia al corpo associativo sia all’utente finale di consultare in maniera semplice ed efficace i contenuti.
- gestione progetti: l’area di gestione progetti che abbiamo realizzato consente la creazione di vere e proprie stanze di lavoro accessibili ai soli partecipanti. Tali stanze consentono di lavorare in team ad un progetto e mettono a disposizione diversi strumenti di collaborazione per i partecipanti, tra cui gestione documenti, task manager e forum.
- archivio documentale: abbiamo fatto in modo che il portale potesse fornire ai soci FIASO un sistema di gestione documentale alimentato direttamente dagli amministratori o dagli associati. Il modello organizzativo è molto semplice in modo da facilitarne la gestione. Il sistema è suddiviso in aree tematiche, ogni area è coordinata da un responsabile. Chiunque abbia la facoltà di consultare, può anche proporre documenti per la pubblicazione: tali documenti saranno segnalati all’attenzione del responsabile di area che – tramite back office – provvede o meno ad accettare la pubblicazione sul sito completando le informazioni richieste dall’anagrafica del documento.
Mockup, interface design e creazione dei componenti
Lo sviluppo del frontend è iniziato con la realizzazione dei mockup.
Abbiamo in principio definito lo schema colori e la linea tipografica, poi l’information e l’interface design da cui sono scaturiti i visual di ogni principale sezione del portale. Sottoposti e accettati dal cliente siamo passati dai visual alla realizzazione del markup e dei css.
In questa fase due strumenti ci hanno reso il lavoro molto più agevole: Git e Frontsize.
Quando lavori in team da remoto – ma non solo – e condividi gli stessi file su cui scrivere codice, diventa indispensabile avere uno storico delle versioni fatte da ognuno degli sviluppatori. Lato frontend trasmettere i propri avanzamenti a chi prenderà il tuo codice solo attraverso commenti sparsi nel markup è una tecnica che consideriamo non sostenibile, ed in questo senso, Git ci ha dato una grande mano.
Parlando invece di mero sviluppo frontend il grosso aiuto è arrivato da un framework di casa Flowing: Frontsize.
Frontsize è un framework css scritto in LESS o SASS – esistono entrambe le versioni – e strutturato con una logica che permette di gestire interi blocchi di codice css, incapsulati come mixins o widgets, attraverso classi html. L’elevata configurabilità, personalizzazione e l’organizzazione dell’alberatura dei file al suo interno ci hanno permesso di velocizzare tutto il processo di sviluppo dei template semplicemente facendo una corretta configurazione iniziale del framework.
Lo studio dell’interface design ci ha portato ad utilizzare pochi ed essenziali componenti Javascript: Tab Navigation, Accordions, Dropdowns e Inline Modals. Anche in questo caso l’esigenza che ci ha spinto alla scelta di queste UI è stata quella di rendere accessibili e facilmente reperibili la moltitudine di contenuti che il portale offre.
eZ Publish incontra Symfony
Una delle esigenze principali di FIASO era quella di avere un’applicazione che gli consentisse di generare e modificare agevolmente i contenuti; lo strumento più adatto per questo progetto, quindi, era sicuramente un Content Management System (CMS). Data l’eterogeneità dei contenuti, la nostra scelta è ricaduta su eZ Publish.
eZ Publish è un content management system open source progettato per la realizzazione di portali web di grandi dimensioni attraverso strumenti di gestione e di collaborazione potenti e, allo stesso tempo, facili da usare. Nelle sue ultime versioni eZ Publish integra Symfony come full-stack framework consentendo, quindi, di sfruttare tutte le sue componenti all’interno del progetto. Nonostante l’integrazione, però, lo sviluppatore ha ancora a disposizione lo stack legacy con cui poter continuare l’utilizzo di eZ Publish nella sua versione originale.
Considerando la direzione presa dagli sviluppatori di eZ che, release dopo release, continuano a rilasciare sempre più estensioni e funzionalità che sfruttano la potenza di Symfony, abbiamo deciso di realizzare il progetto usufruendo del nuovo stack.
Questa scelta ha presentato diversi pro e contro. I vantaggi riguardano, ovviamente, la possibilità di sfruttare le potenzialità messe a disposizione dalle componenti di Symfony, tra cui:
- il sistema di cache;
- la gestione delle form;
- l’utilizzo di Twig come template engine;
- la possibilità di utilizzare subcontroller all’interno del template;
- la possibilità di sfruttare bundle sviluppati per Symfony2 (ad esempio Pagerfanta per la paginazione oppure TwitterBundle per l’integrazione con Twitter);
- test funzionali performanti attraverso la classe WebTestCase.
Dall’altro canto, però, la scelta di utilizzare eZ Publish con il nuovo stack ha portato con sé diversi problemi dovuti soprattutto al mancato porting di funzionalità native di eZ sullo stack di Symfony2. Alcuni esempi di funzionalità non ancora integrate nel nuovo stack sono:
- registrazione e gestione del profilo utente: nonostante il processo di login sia gestito attraverso Symfony, tutta la gestione del profilo utente, compresa la registrazione, è realizzata attraverso lo stack legacy;
- gestione Tag e Commenti: due estensioni molto famose delle vecchie versioni di eZ sono eZ Comments ed eZ Tags che ampliano le funzionalità del CMS fornendo una gestione avanzata di commenti e tags. Non esistono attualmente alternative ufficiali per lo stack di Symfony; tuttavia ci sono due bundle che integrano le funzionalità base: pvrEzCommentBundle e TagsBundle. Date le esigenze del progetto, abbiamo effettuato un fork dei due bundle estendendone le funzionalità;
- ricerca full-text non funzionante: una delle feature più importanti delle versioni precedenti di eZ erano gli strumenti di ricerca messi a disposizione. Nativamente molto potenti, attraverso l’estensione eZ Find, consentiva ricerche avanzate anche all’interno di file PDF. Il nuovo stack non prevede ancora il supporto a queste funzionalità; dalla roadmap sembra previsto nella 5.4.
Una piattaforma che abbraccia il cambiamento
Nel corso degli anni la piattaforma ha accolto un numero sempre maggiore di utenti e conseguentemente network di associati alla Federazione. FIASO continua a promuovere attività, contaminazione e scambio di conoscenze all’interno della propria rete, presente su tutto il territorio Italiano in maniera sempre più capillare.
Questa crescita costante e la volontà di offrire servizi sempre più diversificati ma integrati, ha spinto la Federazione a pianificare insieme a noi l’evoluzione della piattaforma, che nei prossimi mesi sarà rivoluzionata non solo con un nuovo design, ma anche con l’integrazione di un CRM, una piattaforma di eLearning, un marketplace e un forum dove gli associati potranno condividere le proprie esperienze e conoscenze, superando i confini della propria associazione ed entrando in contatto con tutte le realtà regionali e nazionali presenti all’interno di FIASO.
Quando un cliente abbraccia i nostri valori e il nostro metodo di lavoro, l’intero progetto prende una piega favorevole per tutti gli stakeholder. Valore al progetto, valore al lavoro, valore al metodo.
Il mio giudizio non può che essere positivo per la qualità del prodotto e la comunicazione con il team di Flowing, con particolare riferimento alla disponibilità a modificare e migliorare il prodotto con lo scopo di ottenere un risultato il più vicino possibile alle nostre aspettative.
Lucio Bondì, Product Owner @ FIASO