Introduzione

K-Pax si compone di 5 componenti distinte:

  • La componente di Frontend è stato sviluppato in Angular 9
  • La componente di Backend è stato sviluppato con il Web Framework Django3 basato sul linguaggio python3
  • Il motore di ricerca utilizzato è Elasticsearch
  • Il motore di prerendering è prerender.io
  • La componente per effettuare il deploy è stata sviluppata in python3

Prerequisti

  • python3
  • database (mysqllite, mysql, postgres, oracle)
  • node
  • nginx
  • elasticsearch

K-Pax si compone di 5 progetti distinti, un progetto di Backend, un progetto di Frontend, ElasticSearch e prerender.io e Deploy.

  • Il progetto di Frontend è stato sviluppato in Angular 9
  • Il progetto di Backend è stato sviluppato con il Web Framework Django3 basato sul linguaggio python3
  • Il motore di ricerca utilizzato è Elasticsearch

Frontend: è interamente sviluppato con Angular 9 e il deploy in produzione prevede il solo rilascio della sorgente Angular e i json staticizzati dei vari contenuti. Con questa metodologia il rendering avviene lato browser e non è necessario richiamare il backend ed effettuare query per ottenere la pagina. Il server si limita quindi a restituire dei file statici non richiedendo tempo computazionale per il calcolo della pagina.

Backend: è sviluppato con il framwork web Django3, basato sul linguaggio Python3. Il framework utilizza nativamente un ORM che permette di collegarsi a diversi database tra i quali MySql, Postgres, Oracle. Il backend è basato sul framework django-rest-api e gestisce la comunicazione con il database interamente a webapi. Questo approccio permette di fornire servizi non solo al frontend, ma anche ad app di terze parti.

Deploy: è sviluppato con python e sfruttando le Api REST del backend crea i file di config di ngnix per il deploy di un nuovo sito.

Elasticsearch: è un potente motore di ricerca altamente customizzabile che è stato nativamente integrato con K-Pax. Il sistema è già configurato per gestire anche ricerche non solo puntuali ma anche semantiche. Infatti, se un utente ricercherà la parola finestra gli verranno restituiti i risultati contenenti anche la parola infissi, termine utilizzato dalla pubblica amministrazione, ma non dal cittadino.

Prerender.io: è un sistema open source che tramite l’utilizzo di node e chromium permettere il render lato backend delle applicazioni angular per un’indicizzazione ottimale

Il sistema inoltre permette una facile integrazione con tool di terze parti per l’import e la sincronizzazione dei dati grazie alle api già sviluppate e alla documentazione automatica con swagger. Il sistema prevede la possibilità di prepopolare i siti in automatico. In questo modo è possibile creare con poche azioni un nuovo fruitore del servizio) K-Pax è multilingua. L’aggiunta di nuove lingue non prevede ulteriori costi di sviluppo ma solo la traduzione dei testi. È accessibile anche agli utenti con disabilità e segue le regole AGID in termine di accessibilità sia tecnica che di usabilità, come previsto da AGID e dalle linee guida di livello AAA del W3C. Il sistema viene sottoposto periodicamente a VAPT (vulnerability assessment & penetration test) sia automatici sia manuali, sia da personale interno a Prodigys sia da aziende indipendenti esterne. Questi test ne garantiscono la sicurezza e l’affidabilità. Inoltre, le azioni amministrative vengono salvate e loggate secondo le logiche prescritte da audit.