• Stars
    star
    121
  • Rank 286,178 (Top 6 %)
  • Language
  • License
    European Union Pu...
  • Created about 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Repository principale di IO: offre una mappa di informazioni e risorse per orientarsi nel progetto

Read in english 🇬🇧

IO

💡 Questo è il punto d'inizio dedicato a chiunque voglia approfondire come funziona IO, la sua tecnologia, le logiche di dominio e le scelte implementative. Qui troverai la descrizione ad alto livello dell'architettura, dei componenti e dei flussi principali; senza pretendere di essere esaustivi in questo repository, speriamo ti aiuti ad orientarti nell'ecosistema di applicazioni e librerie che compongono la piattaforma IO.
Per informazioni sul progetto, sull'utilizzo e sul trattamento dei dati, per favore consulta il sito web del progetto.

Indice dei contenuti generato con markdown-toc


Descrizione del progetto

Il progetto IO:

  • permette agli enti pubblici di entrare in contatto con il cittadino attraverso un app mobile ribaltando il tradizionale paradigma di comunicazione
    • la pubblica amministrazione contatta il cittadino quando ha qualcosa da comunicargli
  • è un vettore attraverso il quale le istituzioni governative veicolano iniziative sociali, economiche e sanitarie
    • esempio: bonus vacanze, cashback, certificato covid europeo, etc.

Leggi di più

Overview architetturale

IO è una piattaforma composta da un ecosistema di applicazioni rete.

Il touch point per i Cittadini è l'App IO, applicazione mobile per iOS e Android, attraverso la quale essi possono accedere ai servizi offerti sulla piattaforma IO dagli Enti della Pubblica Amministrazione. L'identificazione dei Cittadini è delegata a Identity Provider terzi quali i provider SPID e l'apposito servizio CIE (Carta d'identità elettronica) fornito da Istituto Poligrafico e Zecca dello Stato.

Gli Enti e le Organizzazioni possono integrare i loro sistemi informativi utilizzando sia i portali messi a disposizione da IO che le API esposte.
Se sei un Ente o Organizzazione e vuoi maggiori informazioni su come integrare i tuoi servizi su IO, per favore consulta il nostro sito web.

architecture overview

La piattaforma IO è progettata ispirandosi ai seguenti principi:

  • architettura a microservizi: il sistema si compone di molteplici applicazioni di rete che collaborano alla realizzazione dei flussi di dominio;
  • everything as code: cerchiamo di descrivere tutto tramite il codice, incluso l'infrastruttura, le logiche di code-review e le scelte di code design;
  • open by design: il codice sorgente è pubblico e aperto così come le discussioni tecniche che si sviluppano sulle pull-request di ogni repository.

Per approfondire come questi principi vengono implementati si rimanda alle repositories relative ai singoli progetti riportate di seguito.

Repositories

Di seguito le repositories dove trovare le implementazioni in codice delle funzionalità di IO.

Repositories principali

App

io-app
app IO per dispositivi mobili iOS e Android

io-services-metadata
Contenuti statici usati dall'app. Questa repository permette di gestire i contenuti che l'app consuma (immagini, configurazioni, banners, anagrafica comuni etc) come se fossero codice: versionati e con processo di code review. Una volta che una PR che propone dei contenuti viene mergiata sul ramo principale, una pipeline dedicata sposta i contenuti sulla CDN di app IO

Infra

io-infra
Le definizioni Terraform delle risorse cloud utilizzate da IO.

io-infrastructure-live-new
TBD

gitops
Definizione delle CI/CD utilizzate dai repository IO per code-review e deploy

Backend

io-backend
Application gateway che espone le API della piattaforma IO verso l'app. Si occupa gestire la sessione utente dei Cittadini e aggregare le chiamate verso i diversi microservizi che implementano le business logic. E' il punto unico di integrazione con gli Identity Provider.

io-functions-app
Function app che implementa le business logic delle interazioni del Cittadino con la piattaforma.

io-functions-admin
Function app che implementa attività di amministrazione piuttosto che processi batch.

io-functions-services
Function app che implementa le business logic delle interazioni degli Enti e delle Organizzazioni con la piattaforma.

io-functions-public-event-dispatcher
Permette di registrare dei webhook che reagiscono agli eventi di dominio che vengono emessi nei vari flussi.

io-functions-pushnotifications
Gestisce l'integrazione con i servizi di push notification.

io-functions-assets
Proxy verso gli asset statici usati dall'app.

Web

io.italia.it Sito istituzionale del progetto, privacy policy, termini e condizioni.

Utilità

ts-commons

pagopa-commons

codegen-openapi-ts

io-spid-commons

react-native-cie
E' la libreria inclusa in app IO per effettuare l'autenticazione tramite CIE (Carta di Identità Elettronica). In particolare contiene l'implementazione Android che è un adattamento dell'SDK sviluppato da IPZS. Per quanto riguarda iOS la repository contiene solo il framework compilato e non i sorgenti che invece sono disponibili qui. Maggiori dettagli su come l'app usa questa liberia sono disponibili in questo documento

io-react-native-zendesk
E' la libreria inclusa in app IO che permette agli utenti di richiedere assistenza. In particolare è una personalizzazione della libreria react-native-zendesk-v2 modificata opportunamente per le esigenze di IO. Include l'uso degli SDK ufficiali di Zendesk e il layer di comunicazione tra il nativo e React Native

push-notificator
Semplice app desktop per l'invio di push notification verso emulatori iOS

io-functions-express

io-functions-commons

codegen-openapi-ts

Strumenti per lo sviluppo

io-app-dev-server
Server per lo sviluppo di app IO: usando questo strumento, che può essere eseguito in locale, non è necessario interfacciarsi ai servizi di produzione. Realizza tutti i servizi e gli endpoints che l'app di produzione utilizza: API del backend di IO, assets della CDN, API di pagoPA, API delle iniziative (cashback, bonus vacanze, green pass etc). Il server è configurabile a livello di risposte e contenuti oltre a supportare, per quasi tutti i servizi, un layer di generazione casuale dei contenuti delle risposte.

Iniziative

Carta Giovani Nazionale

TBD

Sicilia Vola

TBD

Green Pass

TBD

Come contribuire

TBD

Licenze

TBD

More Repositories

1

io-app

IO, l'app dei servizi pubblici
TypeScript
516
star
2

io-backend

App IO (backend)
TypeScript
94
star
3

openapi-codegen-ts

App IO - Utils
TypeScript
34
star
4

io-sdk

SDK sperimentale per l'integrazione delle API di IO
CSS
32
star
5

io.italia.it

Landing page for io.italia.it
Rich Text Format
24
star
6

io-ts-commons

IO - Common code
TypeScript
21
star
7

pagopa-api

Tutti gli schemi XSD e WSDL che seguono release diverse dalle SANP
Shell
18
star
8

mui-italia

Material-UI theme inspired by BootstrapItalia.
TypeScript
16
star
9

codemotion-workshop-fest-2022--fpts

Support material for a workshop at Codemotion Workshop Fest 2022
TypeScript
15
star
10

io-functions

Digital Citizenship APIs
TypeScript
15
star
11

io-handbook

Handbook of IO
14
star
12

io-infrastructure-modules-new

HCL
13
star
13

azure-pipeline-templates

A collection of common Azure Pipeline tasks to be used across out projects
TypeScript
12
star
14

io-infrastructure-live-new

HCL
11
star
15

io-dev-api-server

A mock server to help io-app development https://io.italia.it/
TypeScript
11
star
16

pn-frontend

TypeScript
9
star
17

lg-pagopa-docs

pagoPA, linee guida pagamenti elettronici a favore delle Pubbliche Amministrazioni e dei gestori di pubblici servizi
Python
9
star
18

nteract-on-ckan

It contains a set of analyses and tutorials developed using nteract-on-ckan
Jupyter Notebook
9
star
19

pdnd-interop-frontend

Frontend per la piattaforma PDND Interoperabilità
TypeScript
9
star
20

io-services-metadata

Metadata for services used by the IO app
JavaScript
8
star
21

pagopa-android-example

Example PagoPA application for Android
Java
8
star
22

io-infrastructure-live

Terragrunt live scripts to provision the IO infrastructure
HCL
7
star
23

io-app-design-system

TypeScript
7
star
24

azurerm

Terraform modules for Azure cloud
HCL
7
star
25

terraform-azurerm-v3

Terraform modules for Azure cloud
HCL
6
star
26

io-infra

IO platform infrastructure
HCL
6
star
27

io-wallet

EUDI Wallet and Italian Wallet implementation for App IO
TypeScript
6
star
28

cstar-infrastructure

Code infrastructure CSTAR project
Smarty
6
star
29

io-infrastructure-modules

Terragrunt modules to provision the IO infrastructure
HCL
6
star
30

pagopa-infra

pagoPA platform infrastructure
Smarty
6
star
31

atm-layer-wf-process

Java
6
star
32

io-functions-admin

IO platform APIs for the Admin
TypeScript
5
star
33

io-gateway

IO-Gateway
Shell
5
star
34

site-pagopa.gov.it

Rich Text Format
5
star
35

graphql-publisher

PDND Datalake - Graphql Publisher
Scala
5
star
36

atm-layer-wf-task

Java
5
star
37

atm-layer-model

HTML
5
star
38

io-developer-portal-frontend

The developer portal frontend
TypeScript
5
star
39

rtd-ms-transaction-filter

Component that defines the batch process for filtering the input transaction records, based on a list of pan, recovered from a local directory or through a remote service.
Java
5
star
40

pm-infra

HCL
5
star
41

atm-layer-mil-adapter

Java
5
star
42

pn-local-emulator

A system that emulates a subset of HTTP API provided by Piattaforma Notifiche, driven by well-defined use cases, and produces a report describing their coverage and correctness.
TypeScript
5
star
43

pagopa-specifichepagamenti-docs

pagoPA, Specifiche Attuative del Nodo dei Pagamenti-SPC
Python
4
star
44

aks-microservice-chart-blueprint

PagoPA AKS microservice chart blueprint
Shell
4
star
45

io-template-typescript

Template repository for Typescript based projects
JavaScript
4
star
46

pdnd-uservice-rest-template

Scala
4
star
47

codemotion-webinar-2022-iac-tls

HCL
4
star
48

atm-layer-infra

HCL
4
star
49

io-react-native-wallet

A package for React Native to provide data structures, helpers and API to IO Wallet to obtain and manage Wallet Instance Attestations
TypeScript
4
star
50

atm-layer

HTML
4
star
51

io-react-native-jwt

TypeScript
4
star
52

io-functions-commons

Common functionality shared among the functions of project IO
TypeScript
4
star
53

git-hooks

A collection of useful git hooks to automate part of our workflow
Shell
4
star
54

pagopa-api-config

Api per configurare la piattaforma pagoPa
Java
4
star
55

atm-layer-wf-engine

YAML
4
star
56

io-sign

IO platform feature that allows the signing of PDF documents
TypeScript
4
star
57

github-actions-template

All the templates for GitHub Actions
4
star
58

io-cie-sdk

C
4
star
59

terraform-infrastructure-template

Terraform template repository for infrastructures projects
HCL
4
star
60

template-aws-infrastructure

Template useful to create a AWS terraform project
HCL
4
star
61

io-functions-services

TypeScript
4
star
62

pagopa-wallet-fe

new wallet frontend
TypeScript
4
star
63

pn-ss

Java
3
star
64

azuredevops-tf-modules

Terraform modules for Azure DevOps
HCL
3
star
65

pn-downtime-logs

Java
3
star
66

pagopa-checkout-fe

New FE for Checkout project
TypeScript
3
star
67

pn-ec

Java
3
star
68

io-mock

Docker files to replicate the whole IO backend platform locally for development purposes and integration tests
Dockerfile
3
star
69

interop-be-api-gateway

Scala
3
star
70

io-functions-app

IO platform APIs for the app
TypeScript
3
star
71

pagopa-debt-position

PagoPA service to manage Creditor Institution debtor positions
Java
3
star
72

si-team

Strategic Innovation Team, updates and documents
3
star
73

io-docs

Docs for IO project
JavaScript
3
star
74

io-pagopa-proxy

A proxy for interacting with pagoPA backend
TypeScript
3
star
75

pn-radd-fsu

Java
3
star
76

io-developer-portal-backend

Backend of the IO developer portal
TypeScript
3
star
77

eng-azure-governance

scripts to manage azure: subscription, policy, policy initiatives
HCL
3
star
78

danger-plugin

This module provides custom rules over Danger CI automation.
TypeScript
3
star
79

pdv-user-registry-infra

Code to build the Private Data Vault project infrastructure
HCL
3
star
80

pn-commons

Java
3
star
81

pagopa-azure-devops

HCL
3
star
82

io-infrastructure

Infrastructure of IO
HCL
3
star
83

atm-layer-schema

Smarty
3
star
84

interop-fe-probing

CSS
2
star
85

cgn_load_tests

JavaScript
2
star
86

tfcloudvars

Simple script to manage terraform cloud variables
Go
2
star
87

cra-template-typescript

TypeScript
2
star
88

corporate-site-fe

Corporate site FE
TypeScript
2
star
89

pn-model

Codice che rappresenta le entità "reali" di PN
Java
2
star
90

gitops

HCL
2
star
91

io-functions-template

Typescript template - IO Azure functions
TypeScript
2
star
92

io-functions-eucovidcerts

A set of Azure functions that handle the integration with DGC api.
TypeScript
2
star
93

io-cie-ios-sdk

C
2
star
94

io-bulkops

TypeScript
2
star
95

pn-cicd

Repository del sistema di CI/CD
Shell
2
star
96

atm-layer-console-service

HTML
2
star
97

atm-layer-emulator

TypeScript
2
star
98

cgn-onboarding-portal-backend

Java
2
star
99

aws-terraform-eks-template

HCL
2
star
100

pagopa-selfcare-frontend

TypeScript
2
star