Gaia Jovik

Jorvik è il nome in codice del progetto di ridisegno del software del Progetto Gaia Croce Rossa Italiana (GitHub, Web).

I punti chiave nella riprogettazione sono i seguenti:

Segnalazioni tecniche / Issues

Le segnalazioni sono state spostate da GitHub al nuovo sistema di tracciamento issues utilizzato dal Progetto Gaia (JIRA). Vedi l'articolo "Segnalazioni tecniche" sul wiki per maggiori informazioni sul come utilizzarlo.

Sviluppo

Sei interessato a partecipare allo sviluppo di Gaia/Jorvik? Contattaci all'indirizzo e-mail sviluppo@gaia.cri.it!

Integrazione continua

Jorvik viene installato e testato sulle recenti versioni di Python 3, in modo automatico, da Travis CI ad ogni push.

*: Il deployment non viene ancora effettuato automaticamente.

Ambienti di staging e test

Gli ambienti di staging e test sono orchestrati automaticamente da Wonderbot, e sono accessibili al seguente indirizzo:

http://wonderbot.gaia.cri.it/

Alcune note:

Documentazione

Puoi trovare la Documentazione sul Wiki del progetto.

Requisiti

Sviluppo

Per lo sviluppo di Jorvik, potrai utilizzare i container già pronti che ti permetteranno di lavorare su Gaia senza la necessità di configurare manualmente un sistema di produzione.

Produzione

Se vuoi configurare manualmente un sistema di produzione, puoi installare manualmente i requisiti necessari. A meno che tu abbia intenzione di mettere online un fork di Gaia su di un ambiente di produzione, questo è un metodo sconsigliato.

Ambiente di sviluppo

Per la configurazione automatica dell'ambiente di sviluppo su Linux, Mac OS X 10.9+ e Windows 10, è possibile usare Docker CE con Docker Compose. Docker Compose gestisce la creazione e la configurazione automatica (orchestration) di una insieme di container Docker.

  1. Scarica Docker CE (o EE) da docker.com,
  2. Scarica Docker Compose da docker.com,
  3. Scarica Jorvik usando Git (GitHub Desktop per Windows e Mac OS X, o da terminale come segue)
    $ git clone --recursive https://github.com/CroceRossaItaliana/jorvik
  4. Aprire un terminale (prompt dei Comandi su Windows) e accedere alla cartella dove risiede il codice appena scaricato.
    $ cd jorvik
  5. Installare PyCharm Professional da JetBrains. La licenza e' gratis per gli studenti. Contattaci se necessiti di una licenza per lavorare su Jorvik: abbiamo un numero limitato di licenze per i volontari, quindi approfitta del trial di 30 giorni per assicurarti di voler collaborare.
  6. Configurare PyCharm per usare l'interprete del container Docker:
    • Preferenze > Progetto > Interprete > Aggiungi interprete remoto (Vedi immagine)
    • Scegliere "Docker-Compose" e web come da immagine, e cliccare OK. (Vedi immagine)
    • Assicurarsi che l'interprete "Remote Python 3.x Docker..." sia ora selezionato come predefinito per il progetto, quindi cliccare OK
  7. Installa i dati di esempio, scegliendo la configurazione [jorvik] installa dati di esempio** su PyCharm e premendo il taso "Run" (Vedi immagine).
    • Questo creerà una utenza di esempio che può essere usata per coadivare lo sviluppo, con le seguenti informazioni (e credenziali)
      • Nome: Douglas Adams
      • Delega: Presidente presso il Comitato di Gaia
      • Email di accesso: supporto@gaia.cri.it
      • Password: 42
  8. Avvia Jorvik direttamente da PyCharm, scegliendo la configurazione [jorvik] runserver (Vedi immagine). Questo avvierà tutti i servizi necessari, utilizzando Docker Compose:
    • web: Un server di sviluppo Django (runserver), che rileverà automaticamente le modifiche al codice e si riavvierà automaticamente;
    • db: Un server di database PostgreSQL;
    • broker, celery: Un broker (Redis) e un server per lo smistamento della coda di task (ad es., task di smistamento della posta);
    • pdf: Un server per la generazione dei file PDF (Apache, PHP con DOMPDF);
    • selenium: Un server Selenium con Firefox e un server VNC, per l'esecuzione dei test funzionali.

Altri strumenti di sviluppo

Docker Compose

Se non utilizzi PyCharm, puoi utilizzare direttamente docker-compose da terminale per orchestrare i container dei vari servizi di Jorvik. Ecco un paio di comandi di esmepio.

Autenticazione a due fattori (2FA)

Attualmente la piattaforma supporta la 2FA con:

Per l'utilizzo di Yubikey, vedi la documentazione del modulo al seguente indirizzo: http://django-two-factor-auth.readthedocs.io/en/stable/installation.html#yubikey-setup

Attivare 2FA

  1. Installare Google Authenticator sul proprio dispositivo mobile
  2. Fare il login normalmente nel pannello admin (/admin)
  3. Selezionare la voce "Two factor auth" nel menù admin
  4. Seguire le istruzioni dello wizard
  5. Selezionare "Token generator" fra le opzioni
  6. Scansionare con Google Authenticator il codice QR mostrato
  7. Inserire il token generato da Google Authenticator
  8. Il dispositivo è adesso configurato.