Sviluppare una piattaforma che consenta agli utenti autenticati di simulare l'acquisto di dollari in cambio di euro e viceversa. La piattaforma dovrà prevedere una registrazione degli utenti, la visualizzazione del proprio saldo e dello storico delle transazioni, e la possibilità di eseguire versamenti acquisti e ritiri di denaro. L'intero applicativo potrà essere testato localmente grazie a docker, ma viene anche hostato online grazie ad AWS.
L'infrastruttura si divide in 3 componenti principali:
- RDS
- mysql
- EC2
- exchange microservice
- users microservice
- api microservice
- S3
- react webapp
Ognuna di queste tre parti è realizzata su un servizio differente offerto da AWS
Localmente invece per ogni servizio viene creata un immagine docker diversa, le 6 immagini create comunicano grazie al file docker-compose.yml
- Per poter scaricare l'applicativo e testarlo localmente basta aver installato docker e aver docker in funzione sulla macchina
- Clona la repository
- Nella cartella troverai un file
.env.template
, rinomina il file in.env
e compilane il contenuto con i dati richiesti
MYSQL_PASSWORD=<password>
MYSQL_ROOT_PASSWORD=<root_password>
JWT_SECRET=<segreto>
DB_URI=mysql://admin:<password>d@db_service:3306/utentiMicroservice
- A questo punto basta aprire un cmd nella cartella e scrivere:
docker-compose up
Localmente l'applicazione sarà attiva sulla porta 80, mentre se si vuole interagire direttamente con l'API il servizio si trova sulla porta 9002 oppure direttamente dalla porta 80 sulla root /api/
qui.
La descrizione dettagliata del funzionamento dell'API si trova in ./api/apiDoc.yml
nella cartella del progetto.
È possibile visitare l'applicazione funzionante e online cliccando sul badge in alto
Per fare un deploy dell'applicativo sul proprio account di AWS basterà rinominare il file terraform.tfvars.template
in terraform.tfvars
e cambiarne il contenuto in base alle proprie specifiche.
È necessario ottenere le chiavi di accesso dal proprio account di AWS.
Sarà anche necessario avere AWS cli installato sulla propria macchina e collegato sul proprio account.
Se si fanno modifiche ai file dei servizi: users
, exchange
o api
sarà necessario cambiare anche la fonte delle immagini docker EC2Config
in quanto installano i serivizi prendendo le immagini dal mio account di docker hub.