OpenAssembly e la gestione del voto elettronico
OpenAssembly è un prodotto da noi sviluppato per conto di Write System S.r.l. che permette di gestire le assemblee decisionali. In particolare offre la possibilità di pianificare le sedute assembleari, effettuare votazioni da remoto, gestire i documenti digitalmente e renderli disponibili a tutti i partecipanti velocemente. Il punto focale di tutto il sistema è però la votazione da remoto, che presenta sfide funzionali e tecniche non indifferenti.
Write System S.r.l. si è rivolta a noi al fine di riprogettare il prodotto, sia da un punto di vista tecnologico che di user experience. Per questo motivo sin da subito abbiamo affrontato il lavoro favorendo al massimo l’integrazione tra le esigenze di design e quelle tecnologiche di sviluppo.
Progettazione del nuovo servizio
Esaminando gli aspetti tecnologici di OpenAssembly, per rendere altamente performante, usabile ed accessibile il software, abbiamo optato per la creazione di una web app sviluppata in Angular.
Per progettare l’interfaccia siamo partiti dall’individuazione degli attori principali e dal processo di attraversamento del sistema: il gestore (colui che organizza e gestisce in live le sedute) e il partecipante (colui che può votare e chiedere di intervenire nel corso di una seduta).
Oltre alla versione Web responsive, il servizio è accessibile anche tramite app mobile per dispositivi Android e iOS, allo scopo di favorire una ancora maggiore libertà di partecipazione agli eventi.
Schermata principale
L’interfaccia attuale di OpenAssembly è stata totalmente rivista per migliorare la user experience. In particolare, tutte le azioni principali che un utente partecipante può svolgere durante una seduta sono state raggruppate e rese disponibili nella schermata sottostante.
Seduta e modalità di voto
Durante una seduta, un partecipante può:
- rispondere all’appello
- prenotarsi per effettuare un intervento rispetto ad un punto in discussione
- consultare i documenti allegati alla seduta o caricarne di nuovi
- votare in sicurezza
- consultare i risultati delle votazioni (sia durante che al termine delle stesse).
Il punto cruciale di questo software è la votazione elettronica da remoto. In fase di creazione di una seduta è possibile scegliere se un punto all’Ordine del Giorno è da votare e con quale modalità. Esistono tre tipologie di votazione:
- la votazione in cui si esprime il proprio giudizio a favore o contro un dato punto all'Ordine del Giorno
- l’elezione che prevede una scelta tra un elenco di candidati
- l’elezione nominale in cui l’elettore è tenuto a scrivere il nome di un candidato.
Nell’immagine seguente è possibile vedere la prima tipologia di votazione.
Le votazioni sono segrete tranne per la prima tipologia citata, che potrebbe essere eseguita anche in modalità palese. Per tutte le votazioni segrete, attraverso un sistema di occultamento dei dati, non sarà in alcun modo possibile risalire all’espressione di voto dei singoli individui.
Per ogni votazione è possibile stabilire una durata temporale che, a votazione aperta, è mostrata agli utenti attraverso un timer, allo scadere del quale il voto viene registrato e notarizzato dal gestore.
Un altro aspetto importante del sistema è la gestione degli utenti. Infatti, ad ogni utente è associato un ruolo preciso e alla login il sistema mostra all’utente solo le funzionalità di OpenAssembly a lui disponibili.
Conferma della presenza
OpenAssembly si propone come sostituto della gestione cartacea delle assemblee delle pubbliche amministrazioni e per questo motivo, una delle funzioni principali è la procedura di appello. Ogni volta che in OpenAssembly l’utente è chiamato ad eseguire operazioni cruciali come rispondere ad un appello o votare, la sua presenza e identità sono verificate attraverso l’app Google Authenticator.
Al primo accesso gli utenti devono associare l’app Google Authenticator, che hanno precedentemente scaricato nel loro device, ad OpenAssembly. In questo modo ogni qualvolta gli verrà chiesto di verificare la propria presenza, dovranno inserire il codice OTP proposto dall’app Google Authenticator nell’apposito spazio all’interno di OpenAssembly.