StudentsHUB è una piattaforma creata per favorire la collaborazione tra studenti di tutt'Italia!
Progetto di gruppo realizzato per i corsi di "Linguaggi e Tecnologie per il Web" e "Reti di Calcolatori" tenuti nel 2° semestre del 3° anno di Ingegneria Informatica e Automatica (A.A. 2021/2022) presso Sapienza Università di Roma.
StudentsHUB nasce con lo scopo di supportare la carriera di studenti universitari tramite una piattaforma che incita alla collaborazione e la condivisione di materiale didattico e conoscenze.
La piattaforma è divisa in 3 sezioni: La sezione Appartamenti in cui è possibile cercare appartamenti in affitto nei pressi di un istituto universitario, la sezione Libri in cui è possibile esplorare un catalogo che spazia nell'ambito di ogni materia universitaria e acquistare il libro che si sta cercando e infine la sezione Corsi in cui è possibile prenotare ripetizioni tenute proprio da colleghi universitari.
Inoltre ogni sezione offre la possibilità di creare annunci inerenti a appartamenti, libri e corsi
-
Il servizio REST che implementate (lo chiameremo SERV) deve offrire a terze parti delle API documentate. (requisito 1)
- La nostra webapp offre API documentate tramite apiDoc, in particolare è possibile effettuare la GET (eventualmente con id e/o filtri).
-
SERV si deve interfacciare con almeno due servizi REST di terze parti. (requisiti 2, 3, 4)
- La nostra webapp utilizza le seguenti API esterne:
- Google Maps.
- Google Calendar: OAUTH tramite account google.
- Google Drive: OAUTH tramite account google.
- La nostra webapp utilizza le seguenti API esterne:
-
La soluzione deve prevedere l'uso di protocolli asincroni. Per esempio Websocket e/o AMQP. (requisito 5)
- La nostra webapp implementa il protocollo Websocket, ne fa utilizzo per permettere agli utenti di inviarsi messaggi
-
Il progetto deve prevedere l'uso di Docker e l'automazione del processo di lancio, configurazione e test. (requisito 6)
- La nostra webapp utilizza Docker, ogni entità della nostra rete è dockerizzata, sono presenti 3 entità node per permettere a Nginx di effettuare load balancing.
-
Deve essere implementata una forma di CI/CD per esempio con le Github Actions (requisito 8)
- La nostra webapp implenta Github Actions per:
- Testing automatico delle funzionalità.
- Testing automatico dei servizi API offerti.
- Deploy su https://studentshub.ersi.xyz/
- La nostra webapp implenta Github Actions per:
-
Requisiti minimi di sicurezza devono essere considerati e documentati. Self-signed certificate sono più che sufficienti per gli scopi del progetto. (requisito 9)
- La nostra webapp accetta solo richieste https autorizzate tramite l'utilizzo di Self-signed certificate.
- E' presente una regola che reinstrada le richieste http in entrata al reverse proxy in https.
- Tramite git clonare il repository utilizzando il comando
git clone https://github.com/StudentsHUBProject/StudentsHUB.git
- Installare docker;
- Rinominare
.env.example
in.env
- Eseguire il comando
docker-compose up
- Aprire il browser e andare su localhost;
- Spostarsi nella directory principale ed installare i moduli di node :
cd StudentsHUB
npm install
- Eseguire i test digitando:
npm run test
StudentsHUB è stato creato da:
- Ersi Regolli (1895021)
- Roberto Di Giovanni (1816691)
- Lorenzo Ralli (1853661)