Skip to content

Jorvik è la seconda e ultima versione del software del Progetto Gaia di Croce Rossa Italiana. GAIA è l'acronimo di "Gestione Avanzata ed Integrata dell'Anagrafica", nonché il nome di un pianeta dalla fantasia di Isaac Asimov.

License

AlfioEmanueleFresta/jorvik

 
 

Repository files navigation

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.

About

Jorvik è la seconda e ultima versione del software del Progetto Gaia di Croce Rossa Italiana. GAIA è l'acronimo di "Gestione Avanzata ed Integrata dell'Anagrafica", nonché il nome di un pianeta dalla fantasia di Isaac Asimov.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 46.2%
  • Python 45.4%
  • CSS 6.8%
  • JavaScript 1.5%
  • Other 0.1%