Vai al contenuto
FRFederico Raponi
Tutti i lavori

Progettonov 2022 – feb 2023

WasaPhoto: una web app per condividere foto

Un piccolo social network per foto, realizzato da cima a fondo: un backend REST in Go specificato in OpenAPI con SQLite, un front end in Vue.js e immagini Docker per entrambi.

WasaPhoto è una web app per condividere foto: gli utenti pubblicano immagini, si seguono, vedono lo stream delle persone che seguono, mettono like e commentano, e possono bloccare chi non vogliono più sentire. È stato un progetto full-stack del corso, progettato a partire dalle API.

Backend

  • Prima le API. L’intera API REST è specificata in OpenAPI prima di scrivere codice: login, profili e cambio username, ricerca utenti, stream delle foto, caricamento ed eliminazione, follow e unfollow, ban e unban, like e commenti.
  • Go con httprouter, organizzato in uno strato API e uno strato database, con un controllo di autorizzazione davanti a ogni rotta autenticata.
  • SQLite per i dati (utenti, foto, like, follow, commenti, ban), con lo schema creato al primo avvio.

Front end e deploy

Una single-page app in Vue.js usa le API. Backend e front end hanno ciascuno il proprio Dockerfile, quindi l’app intera si avvia con due comandi docker run.