'Jorvik' is the codename for the second and latest version of the Gaia Project, used by Italian Red Cross. ISSUES: https://jira.gaia.cri.it/browse/JO
Clone or download
Latest commit c011223 Nov 5, 2018
Permalink
Failed to load latest commit information.
.github JO-666: Creato template per nuove Pull Request Jul 23, 2017
.idea/runConfigurations JO-722: typo in SKIP_DJANGO_COLLECTSTATIC che permette di saltare omo… May 1, 2018
anagrafica Merge pull request #743 from vittoriodargenio/issue-JO-806 Nov 5, 2018
api aggiunta data di nascita e codice fiscale Oct 25, 2018
articoli Boolean per includere sedi sottostanti e filtro coerente Jun 10, 2018
attivita mute_contact parameter alle altre viste Sep 14, 2018
autenticazione Test utils' crea_sede now adds sede details Jan 20, 2018
base fix script roma capitale Oct 24, 2018
centrale_operativa Fix #178, cron che rimuove coturni rimasti e risolve bug di S. Agata Jun 14, 2017
config JO-722: typo in SKIP_DJANGO_COLLECTSTATIC che permette di saltare omo… May 1, 2018
curriculum FIXED: JO-732 (autocomplete, curriculum migration 0007, jscript in an… Oct 22, 2018
formazione hotfix mute contact Sep 14, 2018
gestione_file Boolean per includere sedi sottostanti e filtro coerente Jun 10, 2018
gruppi io come referente gruppo creato da attivita Aug 8, 2018
jorvik Uncommented line (/o/) in jorvik.urls Oct 24, 2018
log Aggiungi log verboso. Di defaul attivo per il momento Oct 19, 2016
posta Merge pull request #725 from karlkvist/issues/JO-732 Oct 23, 2018
sangue Trasferimenti massivi Jun 18, 2017
segmenti Boolean per includere sedi sottostanti e filtro coerente Jun 10, 2018
social Readonly model admin aggiornato Sep 6, 2016
templates Trasferimenti massivi Jun 18, 2017
ufficio_soci includo giovani se delega adeguata Oct 28, 2018
veicoli aggiunge notifica revisioni Jun 5, 2017
.gitignore UPDATED: .gitignore (added venv folder) Oct 22, 2018
.travis.yml Add Google API key Jan 12, 2018
CONTRIBUTING.md CONTRIBUTING.md: Aggiunto link alle linee guida Mar 30, 2018
Dockerfile docker-compose.yml: configurazione per docker-compose applicata da en… Apr 17, 2018
LICENSE.txt ref #6 Nov 18, 2015
README.md JO-722: cambiata password di utenza di esempio creata da scramble.py Apr 30, 2018
docker-compose.yml JO-722: modificate configurazioni (runserver, migrate, makemigrations… Apr 30, 2018
manage.py Python3 manage.py Nov 6, 2015
requirements.txt api: semplice bozza per informazioni utente identificato May 5, 2018
scramble.py JO-722: cambiata password di utenza di esempio creata da scramble.py Apr 30, 2018
script.py Aggiunta provincia breve Mar 18, 2016

README.md

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:

  • Raccogliere il feedback ottenuto tramite feedback@gaia.cri.it,
  • Raccogliere le necessità espresse dagli utenti tramite il Supporto,
  • Raccogliere le nuove necessità dell'Associazione,

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.

  • Stato attuale di master (sviluppo): Build Status
  • Stato attuale di produzione (online*): Build Status

*: 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:

  • Gli ambienti di sviluppo e staging sono ospitati presso la macchina dedicata per la squadra di supporto e sviluppo,
  • Le installazioni su questa macchina si aggiornano automaticamente col codice del relativo branch di staging,
  • Il database viene scaricato settimanalmente dalla installazione in produzione, e tutte le modifiche effettuate nella settimana precedente vengono distrutte,
  • Le installazioni di staging non sono in grado di inoltrare i messaggi di posta -nonostante si illudano di farlo correttamente-,
  • Inoltre, le procedure programmate e periodiche (cron jobs) non vengono eseguite su queste installazioni,
  • Le installazioni sono da considerarsi condivise e, nel caso di utilizzo, l'utente non deve aspettarsi alcuna forma di privacy relativamente ai dati inseriti, garanzia sul servizio, o alcuna forma di affetto da parte degli sviluppatori,
  • L'accesso agli ambienti di sviluppo/test è riservato al personale tecnico.

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

  • Avvia i task periodici (cronjob) direttamente da Pycharm, scegliendo la configurazione [jorvik] runcrons.
  • Esegui i test (unitari e funzionali), scegliendo la configurazione [jorvik] test (Vedi imagine).
  • Connettiti al database PostgreSQL utilizzando gli strumenti di PyCharm (Vedi immagine):
    • Crea una nuove sorgente dati di tipo PostgreSQL,
    • Scegli localhost come host e 5432 come porta,
    • Utilizza postgres come username, senza alcuna password.
  • Connettiti in desktop remoto per osservare l'esecuzione dei test funzionali con Selenium, che vengono eseguiti in una istanza di Firefox.
    • Utilizza il tuo client VNC preferito. Per esempio, su Linux, puoi usare remmina.
    • Crea una connessione VNC, usando localhost come host, e porta 5900.
    • Se richiesto, utilizza secret come password.

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.

  • Configurare (primo avvio) e avviare i container di Gaia

    $ docker-compose up
  • Arrestare Gaia

    $ docker-compose stop
  • Cancellare e riconfigurare i container da zero

    $ docker-compose stop && docker-compose rm && docker-compose up --build
  • Eseguire comandi sulla macchina Web (Django)

    # Shell di Django
    $ docker-compose exec web python manage.py shell
    
    # Bash
    $ docker-compose exec web bash

Autenticazione a due fattori (2FA)

Attualmente la piattaforma supporta la 2FA con:

  • Google Authenticator (e sistemi simili di OTP via QR Code)
  • Yubikey

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.