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,
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.
Sei interessato a partecipare allo sviluppo di Gaia/Jorvik? Contattaci all'indirizzo e-mail sviluppo@gaia.cri.it!
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.
Gli ambienti di staging e test sono orchestrati automaticamente da Wonderbot, e sono accessibili al seguente indirizzo:
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.
Puoi trovare la Documentazione sul Wiki del progetto.
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.
- Docker CE (o EE)
- Python 3.4 e superiore
- Docker Compose
- Linux, OS X o Windows 10, ovvero qualunque OS che supporta i requisiti sopra elencati.
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.
- Python 3.4 e superiore (es.
python3
) - PIP 3 (es.
pip3
)- Usa quindi PIP per installare tutti i requisiti Python, che sono specificati requirements.txt.
- PostgreSQL 9.4+ con PostGIS)
- GEOS (Geometry Engine Open Source)
- Redis, o un altro broker supportato da Celery.
- Linux.
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.
- Scarica Docker CE (o EE) da docker.com,
- Scarica Docker Compose da docker.com,
- 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
- Aprire un terminale (prompt dei Comandi su Windows) e accedere alla cartella dove risiede il codice appena scaricato.
$ cd jorvik
- 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.
- 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
- 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
- Questo creerà una utenza di esempio che può essere usata per coadivare lo sviluppo, con le seguenti informazioni (e credenziali)
- 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.
- 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 e5432
come porta, - Utilizza
postgres
come username, senza alcuna password.
- Crea una nuove sorgente dati di tipo
- 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 porta5900
. - Se richiesto, utilizza
secret
come password.
- Utilizza il tuo client VNC preferito. Per esempio, su Linux, puoi usare
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
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
- Installare Google Authenticator sul proprio dispositivo mobile
- Fare il login normalmente nel pannello admin (
/admin
) - Selezionare la voce "Two factor auth" nel menù admin
- Seguire le istruzioni dello wizard
- Selezionare "Token generator" fra le opzioni
- Scansionare con Google Authenticator il codice QR mostrato
- Inserire il token generato da Google Authenticator
- Il dispositivo è adesso configurato.