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.