Giter Site home page Giter Site logo

magicianred / io-sdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pagopa-archive/io-sdk

2.0 0.0 0.0 16.23 MB

SDK sperimentale per l'integrazione delle API di IO

License: Apache License 2.0

Makefile 2.19% CSS 24.93% HTML 1.13% JavaScript 17.32% Dockerfile 2.87% TypeScript 0.17% Go 18.10% Python 13.60% Shell 7.98% PowerShell 0.65% Svelte 11.08%

io-sdk's Introduction

IO-SDK

IO-SDK è uno strumento di sviluppo che serve a semplificare l'invio di messaggi all'app IO, facilitando l'integrazione con le molteplici fonti di dati esistenti nella Pubblica Amministrazione.

L'app IO è sviluppata dal Governo italiano come unico punto di accesso per interagire con i servizi pubblici locali e nazionali.

Tutti i servizi pubblici italiani possono integrarsi con l'app collegandosi tramite REST per l'invio di comunicazioni al cittadino.

Per facilitare queste operazioni il Software Development Kit per IO (IO-SDK) fornisce una serie di strumenti:

  • un server per l'esecuzione di micro-servizi;
  • un'interfaccia utente per la gestione dei messaggi;
  • un'interfaccia a riga di comando (CLI) per il controllo del server;
  • una serie di componenti aggiuntivi (PLUGIN) modificabili per connettersi alle varie fonti dati;
  • un ambiente di sviluppo integrato (IDE).

Per maggior informazioni potete consultare la documentazione in lingua italiana:

Il documento di sviluppo dell'SDK è invece scritto in lingua inglese, ed è rivolto a tutti coloro che desiderano contribuire allo sviluppo dell'SDK stesso.

Per incontrare la community di IO-SDK potete visitare il topic IO-SDK della Community NoiOpen che gestisce il progetto.

FAQ

Come lo installo?

Come lo uso?

Consiglio vivamente di leggere il manuale.

Perché non riesco a mandare messaggi alla mia app e al mio codice fiscale?

La chiave che crei nel backend ti permette di mandare messaggi email solo al codice fiscale mostrato nel backend.

Questo codice corrisponde all'indirizzo email con cui ti sei loggato al backend.

Per ottenere maggiori permessi devi contattare l'onboarding di IO.

Sono uno sviluppatore e voglio contribuire, che mi serve?

Prima di tutto un computer con almeno otto giga di memoria. Se ne hai meno, è dura...

Maggiori istruzioni dettagliate sono nel file DEVEL.md (in lingua inglese).

Come si sviluppa?

Prima di tutto dovrai clonare il repository, compilare il codice e testarlo, questi i comandi da eseguire:

git clone https://github.com/pagopa/io-sdk
cd io-sdk
./setup.sh
source source-me-first
make

Nel dettaglio ogni comando effettua, rispettivamente, queste attività:

  • scarica i sorgenti da github
  • accede alla cartella del repository appena scaricato
  • installa le dipendenze con ./setup.sh
  • attiva e verifica l'ambiente con source source-me-first
  • compila tutto con make

Se questa procedura non funziona in una delle configurazioni supportate è un bug, per favore riportalo.

A questo punto per sviluppare l'applicazione frontend accedi alla cartella admin\web, le action si trovano in admin\packages, mentre il launcher è sotto iosdk. Vedi dopo.

Che cosa devo conoscere per contribuire allo sviluppo di IO-SDK?

Come si sviluppa l'applicazione (frontend e action)?

Per sviluppare l'applicazione dovrai lanciare sia il frontend che il backend con i seguenti comandi, dalla root del repository:

cd admin
make start
make devel

Nel dettaglio i seguenti comandi svolgono le seguenti attività:

  • Entra nella cartella admin,
  • Lancia il server in modalità sviluppo con make start.
  • Lancia una build di sviluppo con make devel.

Se vuoi sviluppare il frontend

  • Editi il codice javascript/svelte sotto admin/web/src.

Se vuoi sviluppare le action backend

  • Editi il codice python delle azioni sotto admin/web/packages e le deploy con make deploy.

Per eseguire i test

  • Esegui i test con make test.

Compila e installa per l'uso

  • Una volta che tutto funziona, puoi tornare nella cartella principale del repository e lanciare il comando make che impacchetta il tutto ed esegue tutti i test automatici.

Aggiorna la documentazione

Effettua una PR per contribuire

  • Se tutto funziona, verifica di avere l'ultima versione del codice upstream se no recupera le modifiche ed effettua un rebase
git rebase master
git push origin feature --force

e quindi crea una Pull Request.

Come si fa una release?

Devi avere i permessi di accesso al repo per farlo. Anche se li hai, per favore non fare release alla leggera...

git tag <x>.<y>.<z>[<t>] ; git push --tags

e la build crea automaticamente una release (se passano tutti i test!).

Come si sviluppa il launcher?

  • entra nella cartella iosdk
  • make per compilare
  • make test per testare

Se un test fallisce c'è uno script che ti permette di capire quale output differisce dalle attese.

  • python3 difftest.py ti da una lista dei test falliti (0, 1, 2)
  • python3 difftest.py 2 ti mostra i dettagli del test fallito nr 2

Come si scrivono i test?

Il master non funziona!

Il master riceve le pull requests e può essere instabile. Se vuoi usare una versione stabile ma senza le ultime novità guarda i tag con git tag e usa:

git checkout v<tag>

Come vi contatto?

Usa in preferenza il forum Discourse di NoiOpen, Categoria IO-SDK.

io-sdk's People

Contributors

cloudify avatar deeper-x avatar dependabot[bot] avatar dilox avatar fabio-padovani89 avatar francescotimperi avatar giorgiozoppi avatar giux78 avatar kalosbonasia avatar magicianred avatar michele-sciabarra avatar morocarlo avatar mzzntn avatar nimmichele avatar sciabarra avatar sciabarracom avatar sf3ris avatar

Stargazers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.