Skip to content

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.

License

Notifications You must be signed in to change notification settings

LRalli/StudentsHUB

Repository files navigation

StudentsHUB

StudentsHUB: logo

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.

License Docker Compose & Node CodeFactor

Scopo del progetto

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

Architetture di riferimento e tecnologie usate

Schema!

Soddisfacimento dei requisiti

  1. 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).
  2. 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.
  3. 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
  4. 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.
  5. Deve essere implementata una forma di CI/CD per esempio con le Github Actions (requisito 8)

    • La nostra webapp implenta Github Actions per:
  6. 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.

Istruzioni per l'installazione

  1. Tramite git clonare il repository utilizzando il comando
git clone https://github.com/StudentsHUBProject/StudentsHUB.git
  1. Installare docker;
  2. Rinominare .env.example in .env
  3. Eseguire il comando
docker-compose up
  1. Aprire il browser e andare su localhost;

Istruzioni per il test

  • Spostarsi nella directory principale ed installare i moduli di node :
cd StudentsHUB

npm install
  • Eseguire i test digitando:
npm run test

Autori

StudentsHUB è stato creato da:

  • Ersi Regolli (1895021)
  • Roberto Di Giovanni (1816691)
  • Lorenzo Ralli (1853661)

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •