Skip to content
Snippets Groups Projects
Select Git revision
  • master default
  • 2608-come-beneficiario-voglio-ricevere-delle-notifiche-in-fase-di-presentazione-ed-in-fase-di-esito
  • 2578-applicationlite-importazione-documenti
  • 2600-problemi-di-aggiornamento-e-gestione-delle-configurazioni-nei-pagamenti-multipli
  • patch-3-14
  • patch-3-13
  • 2489-esportare-su-kafka-anche-le-pratiche-in-bozza
  • 2515-non-e-possibile-inviare-a-un-email-diversa-rispetto-a-quella-presente-all-interno-dell
  • feature-formio-5
  • snyk-fix-6ecc67ce4ee1a0391e6594e127e4f0c9
  • patch-3-12
  • graphql-sdk-formio
  • 2518-sync-categorie
  • improve-logs-in-protocol-service
  • patch-3-11
  • profile-blocks-fixes
  • fix-maintenance-mode
  • feature-replica-db
  • fix-legacy
  • patch-3-10
  • 3.15.0-rc.2
  • 3.14.4
  • 3.13.10
  • 3.15.0-rc.1
  • 3.15.0-rc.0
  • 3.14.3
  • 3.13.9
  • 3.14.2
  • 3.13.8
  • 3.14.1
  • 3.13.7
  • 3.13.6
  • 3.14.0
  • 3.14.0-rc.8
  • 3.14.0-rc.7
  • 3.14.0-rc.6
  • 3.14.0-rc.5
  • 3.14.0-rc.4
  • 3.12.7
  • 3.13.5
40 results

core

  • Clone with SSH
  • Clone with HTTPS
  • La Stanza Del Cittadino

    La Stanza del Cittadino è una piattaforma per creare e gestire i servizi digitali e l'area personale del cittadino, progettati secondo i KIT di Designers Italia, il modello di sito e servizi digitali dei Comuni italiani e pubblicata su Developers Italia.

    Supporta il multilinguismo, per favorire l'effettivo accesso ai servizi digitali da parte dei cittadini europei, ed altre raccomandazioni indicate nell'eGovernment Benchmark Method Paper 2020-2023.

    E' una delle componenti della soluzione OpenCity Italia, che insieme al sito web istituzionale è disponibile anche in versione SaaS in cloud qualificato AgID.

    Descrizione

    Un’area personale con cui il cittadino può inviare istanze (es. iscrizioni asilo nido), verificare lo stato delle pratiche, ricevere comunicazioni da parte dell’ente (messaggi, scadenze, ...) ed effettuare pagamenti. Progettata con lo starter KIT per il sito di un comune insieme al Team per la Trasformazione Digitale, permette di creare nuovi servizi digitali secondo un flusso definito nelle Linee Guida di Design e integrato con le piattaforme abilitanti. Si integra facilmente con le applicazioni presenti presso l’ente (interoperabile, separando back end e front end); il profilo del cittadino si arricchisce ad ogni interazione e riduce la necessità di chiedere più volte le stesse informazioni (once only). Una soluzione pratica per gestire il processo di trasformazione digitale in linea col Piano Triennale. Nasce da un progetto condiviso con il Consorzio Comuni Trentini - ANCI Trentino, che accompagna i comuni nella revisione dei servizi al cittadino in un’ottica digitale (digital first).

    Funzionalità principali

    • Creazione dei moduli da backend, grazie all'integrazione con Form.IO un potente sistema di creazione di form dinamiche opensource.
    • Interfaccia responsive (Bootstrap Italia), conforme alle Linee Guida di design per i servizi web della PA.
    • Autenticazione con SPID tramite Shibboleth e sistemi basati su oAuth2 o CAS.
    • Integrazione con PagoPA attraverso MyPAY, PiemontePay, E-fil, IRIS e molti altri intermediari di pagamento.
    • Meccanismo di compilazione on-line dei moduli a step.
    • Gestione completa dell’iter di un’istanza: invio, presa in carico, risposta al cittadino, richiesta integrazioni.
    • Controllo automatico della validità di firme digitali e formati dei file, ai fini della conservazione sostitutiva.
    • Generazione automatica delle ricevuta di invio dell’istanza, in formato PDF.
    • Integrazione con Opencity Italia - Sito Comunale in particolare per l'erogazione dei servizi Prenotazione Appuntamenti, Richiesta Assistenza e Segnalazioni sul territorio.
    • Integrazione con alcuni dei sistemi di protocollazione più diffusi presso i comuni (tra cui, PiTre, Infor/Municipia, Maggioli/Sicraweb, Datagraph, Civilia, Halley, Dedagrop).

    Altri riferimenti

    Struttura del progetto

    Il software è realizzato da una componente monolitica sviluppata con Symfony e da vari microservizi al contorno:

    • symfony-core: costituisce l'interfaccia principale dell'applicativo, sia di front-end che di backend (utilizza postgresql come layer di persistenza) ed e' il software presente in questo repository
    • form-server: tutti i moduli presentati ai cittadini sono realizzati mediante Form.IO di cui questo componente è la parte server. Ci siamo basati sulla versione opensource del prodotto per creare una nostra versione del server, compatibile 1:1 con la versione ufficiale. Abbiamo esteso la versione opensource con funzionalità specifiche necessarie al nostro prodotto, in particolare abbiamo lavorato sul versionamento dei moduli e sul supporto multilingua.
    • apache+shibboleth: il webserver apache distribuito nel presente repository contiene anche shibboleth per l'autenticazione mediante SPID, questo componente può essere sostituito facilmente da un altro sistema utilizzabile per l'autenticazione. Per una demo funzionante non è necessario attivare anche apache, l'autenticazione può essere efficacemente simulato.
    • gotemberg: questo microservizio è necessario per creazione di PDF, il formato con cui vengono creati e protocollati i documenti durante l'esecuzione delle pratiche del cittadino,
    • per l'integrazione con sistemi di protocollo, di pagamento e di autenticazione ci sono poi una serie di componenti specifici che vengono attivati a seconda del territorio a cui appartiene l'Ente. Per maggiori dettagli consultare l'apposita sezione del manuale.

    Altre dipendenze:

    • Kafka
    • il database principale utilizzato è PostgreSQL, versione 10 (ma supporta fino alla 12): è richiesta la presenza dell'estensione PostGIS. E' compatibile anche con il servizio Aurora Serverless di AWS che usiamo con soddisfazione in produzione sulla nostra installazione principale.
    • secondariamente sono usati anche MongoDB (persistenza principale di form-server) e Redis (usato per la condivisione delle sessioni PHP, per la cache di diversi componenti.

    La distribuzione di questi componenti avviene mediante immagini Docker, non si tratta di un requisito, i singoli applicativi possono essere installati anche in assenza di esso, su un qualunque server Linux.

    Utilizzo

    Oltre al cittadino che accede mediante SPID, posso accedere all'applicativo

    • i professionisti che presentano pratiche all'Ente per conto del cittadino (es: pratiche edilizie)
    • i gestori delle pratiche, che ricevono notifica delle pratiche da elaborare e possono accettarle o rigettarle, allegando messagi o documenti
    • gli amministratori dell'Ente che possono impostare le informazioni generali dell'ente, configurare i dati relativi al protocollo usato e al sistema di pagamento. Inoltre gli amministratori possono creare a pubblicare servizi, progettando i moduli online che i cittadini dovranno compilare. gli amministratori hanno infine accesso anche ai log di sicurezza che consentono la verifica dei login effettuati da tutti gli utenti e del loro IP di provenienza

    Accesso alle API

    Per l'accesso alle API è necessario effettuare l'autenticazione, ottenere un token JWT e usarlo successivamente nell'header ~Authorization. Per maggiori dettagli consultare la pagina API-Rest del manuale tecnico.

    Build system, CI e test automatici

    Mediante il servizio di CI di GitLab vengono preparate le immagini docker di ogni componente. Durante la build vengono inoltre effettuati test di sicurezza e di conformità agli standard.

    Installazione

    Con l'ausilio di docker

    Dal repository stesso è possibile fare il deploy di un ambiente di sviluppo del servizio. Per farlo è sufficiente fare il clone del repository sul proprio computer e utilizzare questo docker-compose.yml del progetto.

    git clone git@gitlab.com:opencity-labs/area-personale/core.git
    cd stanzadelcittadino
    docker-compose up -d postgres
    sleep 10
    docker-compose up --build -d

    Al termine della build e dell'inizializzazione del database sarà possibile visitare l'indirizzo:

    http://stanzadelcittadino.localtest.me/

    Una volta fatto il primo setup, se si inizia a configurare il tenant di prova è consigliabile impostare a FALSE la variabile ENABLE_INSTANCE_CONFIG nel docker-compose.yml.

    In caso di problemi è possibile trovare maggiori infomazioni nel wiki.

    Integrazione con Kafka

    Il software è integrato in profondità con Kafka, per semplicità di configurazione è stato aggiunto un file già pronto all'abilitazione dell'integrazione con kafka docker-compose.kafka.yml.

    Aggiungendo questo file in fase di build del progetto partiranno in automatico tutti i microservizi necessari all'integrazione. Nel file sono già presenti le configurazioni minime per interfacciare i 2 servizi. Dopo aver avviato i servizi per l'integrazione con Kafka sarà possibile verificare i messaggi presenti nella coda all'indirizzo:

    Senza l'ausilio di docker

    I Dockerfile presenti nel repository principale e in quelli secondari possono essere utilizzati per dedurre quali sono i requisiti a livello di sistema operativo di ogni componente, per questo motivo non viene fornita documentazione in merito, ma in caso di necessità è possibile aprire una issue per richiedere chiarimenti. Si sconsiglia comunque il setup senza docker perché rende molto oneroso gli aggiornamenti, che ad oggi sono variabili da 1-2 al mese fino a 2-3 a settimana in caso di hotfix.

    Credenziali d'accesso

    Per accedere come admin usare le seguenti credenziali

    user: admin
    password: changeme

    Restrizioni di accesso ai servizi

    L'utilizzo completo della piattaforma è limitato di default per i seguenti browser:

    • Chrome <= 57
    • Edge <= 39
    • Safari <= 10
    • Mobile Safari <= 10
    • Firefox <= 50
    • Opera <= 50
    • Vivaldi <= 1
    • Yandex <= 10
    • Internet Explorer <= 11 (Nessuna versione)

    Gli utenti dotati di browser che rientrano nell'elenco precedente potranno navigare correttamente l'area personale ma saranno impossibilitati alla presentazione delle pratiche.

    Mediante la variabile d'ambiente BROWSERS_RESTRICTIONS è possibile sovrascrivere tale configurazione.

    La sintassi della variabile è cosi definita: nome browser,versione|nome browser,versione

    La configurazione di default è la seguente.

    Chrome,57|Edge,39|Safari,10|Mobile Safari,10|Firefox,50|Opera,50|Vivaldi,1|Yandex,10|Internet Explorer,11

    Passando il valore null alla variabile ambiente BROWSERS_RESTRICTIONS non verrà effettuato alcun controllo sui browser.

    Il componente utilizzato è Parser-PHP al quale si rimanda per uteriori informazioni.

    Project status

    Il progetto e' stabile e usato in produzione da oltre 500 amministrazioni pubbliche.

    Sebbene lo sviluppo sia stato orientato fin dall'inizio alla modularità e alla configurabilità delle feature, molti aspetti di dettaglio e le interfacce di comunicazione con i proxy non sono abbastanza maturi per essere sostituiti con una semplice configurazione, in alcuni casi può rendersi necessario la modifica del codice sorgente. Sono quindi graditi i contributi al codice per il supporto di altri sistemi di protocollo o di pagamento, purché siano fatte in modo modulare e configurabile, in modo da non pregiudicare la flessibilità del progetto.

    Altri limiti:

    • la gestione degli operatori è molto limitata al momento e non consente grande flessibilità o l'utilizzo di gruppi di operatori per la gestione delle pratiche: i profili di accesso sono tre rigidamente separati tra loro: il cittadino (user), l'operatore (il personale dell'Ente addetto a gestire le pratiche) e l'amministratore che configura l'istanza e i singoli servizi.
    • il security log è minimale e intellegibile solo da personale tecnico
    • le API coprono attualmente circa il 90% delle funzionalità dell'applicativo

    Copyright

    Copyright (C) 2016-2023 Opencontent SCARL

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.
    
    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.