# OpenCruise

## Descrizione
Il progetto OpenCruise è composto da due applicativi web che interagiscono tra di loro
con lo scopo di fornire una applicazione che offre all'utente la possibilità di creare/configurare 
dei report di consumo e poi visualizzarli in qualsiasi browser. 

## Installazione ed esecuzione del progetto in ambiente locale
#### Prerequisiti
- [ ] Installazione di GIT 
- [ ] Installazione di Docker
- [ ] Linea di commandi, cmd/poweshell per sistema operativo Windows e Shell per sistemi operativi Linux


#### Installazione
- [ ] Installare GIT da [qui](https://git-scm.com/download/win).
- [ ] Installare Docker da [qui](https://www.docker.com/products/docker-desktop/).
- [ ] Clonazione del progetto da GIT tramite linea di comandi 
    > git clone https://crossserv.bologna.enea.it/gitlab/open/opencruise


#### Esecuzione
  Per eseguire il progetto fare click sul file __start.bat__, presente nella cartella clonata da GIT  
> oppure 

aprire la linea di comandi posizionandosi  nella cartella clonata ed eseguire il commando:

  > docker-compose up

Se l'installazione finisce con successo sarà possibile ragiungere l'applicativo 
da questo [link](http://localhost:4200).

Per chiudere l'esecuzione clic-are sul file __stop.bat__ 

> oppure 

premere CTRL+C nella finestra
della linea di commando aperta precedentemente.

#### Accesso con utente registrato
  > __*Username*__: user@demo.com
  > 
  > __*Password*__: demo

#### Accesso con utente admin
> __*Username*__: admin@demo.com
>
> __*Password*__: demo

#### Esecuzione test
Dopo l'accesso al portale, è possibile visualizzare 2 report impostando la lingua del portale in Italiano.
I report presenti sono:
> Reporto consumo
>
> Consumo e produzione abitazione

La fonte dati dei 2 report si trova nel percorso __\<cartella progetto clonato\>/report-data__ e i file utilizzati sono __getData_10.json__
e __getData_35.json__.

Se si ha la necessità di utilizzare un insieme di dati diversi da quelli attuali bisogna seguire questi passi:
1. Eliminare i file __getData_10.json__ e __getData_35.json__ dalla cartella __\<cartella progetto clonato\>/report-data__.
2. Per avere dati gia preparati copiare il contenuto della cartella __\<cartella progetto clonato\>/report-data/examples/02__ in __\<cartella progetto clonato\>/report-data__
3. Per avere i dati eliminati nel passo 1 copiare il contenuto della cartella __\<cartella progetto clonato\>/report-data/examples/01__ in __\<cartella progetto clonato\>/report-data__
4. E' importante che il nome e la struttura dei file sia mantenuto uguale a quello indicato sopra.
6. Modificare il file json dei dati solo nella sezione __result: [{}...]__ a seconda delle esigenze.

> Non è necessario riavviare Docker per questa operazione

Se si desidare avere un altra cartella per i dati si puo aggionare la variabile __MOCK_DATA_FOLDER_LOCAL__ nel file __.env__, es: __C:/folder-data__.
> E' necessario riavviare Docker per questa operazione

#### Configurazione accesso Keycloak

###### Configurazione progetto Lec
Configurare il seguente parametro nel file environment.ts (Percorso: lec/src/environments)
  > authenticationType: 'oid'

###### Configurazione progetto Lecservice
Configurare il seguente parametro nel file Dockerfile (Percorso: lecsevice)
> ENV ACTIVE_PROFILE=oid

###### Configurazione progetto GecoRegistration
Configurare la seguente variabile globale nel file Dockerfile .ts (Percorso: gecoregistration)
> ENV ACTIVE_PROFILE=dev

#### Configurazione accesso locale

###### Configurazione progetto Lec
Configurare il seguente parametro nel file environment.ts (Percorso: lec/src/environments)
> authenticationType: ''

> ###### Configurazione progetto Lecservice
Configurare il seguente parametro nel file Dockerfile (Percorso: lecsevice)
> ENV ACTIVE_PROFILE=dev

###### Configurazione progetto Lecservice
Non viene utilizzato in questa modalità

#### Comandi utili 
> __*docker-compose up --build <service_name oppure vuoto> *__  - Commando per avviare Docker pulendo la cache per riflettere i cambiamenti in configurazione
>
> __*docker-compose stop*__  - Commando per stoppare i container
> 
> __*docker-compose start*__  - Commando per riavviare i container
> 
> __*docker-compose down*__  - Commando per terminare Docker e rimuovere tutti i container creati
> 
> __*docker build --no-cache --progress=plain -t geco .\gecoregistration*__  - Commando per eseguire un specifico servizio visualizzando i log 

