lorenzo.
← progetti
completato

WASAText

App di messaggistica istantanea (chat 1:1 e di gruppo, foto, reazioni) — backend Go dietro un'API REST specificata in OpenAPI, frontend Vue, tutto containerizzato. Progetto d'esame individuale.

  • web
  • backend
  • api
  • fullstack
  • Go
  • OpenAPI
  • Vue.js
  • JavaScript
  • SQLite
  • Docker

WASAText è un'app di messaggistica istantanea in stile WhatsApp, realizzata come progetto d'esame individuale per il corso di Web and Software Architecture (Sapienza): login, ricerca utenti e profili, conversazioni 1:1 e di gruppo, invio di messaggi e foto, reazioni e inoltro.

Contratto prima del codice

L'API è progettata a partire dalla specifica OpenAPI 3.0 (doc/api.yaml): il contratto REST — risorse session, conversations, messages, users — è la fonte di verità, e backend e frontend vi si conformano. Un approccio design-first che tiene allineati client e server.

Backend Go

Il server è scritto in Go: un daemon webapi che espone gli endpoint REST, con la persistenza su SQLite isolata in un package database dedicato (query per conversazioni, messaggi e utenti). Autenticazione a token di sessione, CORS e logging via gorilla/handlers, healthcheck separato per le probe.

Frontend e deploy

Frontend Vue.js (single-page, Bootstrap) che consuma l'API. L'intero stack è containerizzato: Dockerfile separati per backend e frontend e un docker-compose per avviarli insieme. Dipendenze vendored (Go modules + Yarn offline mirror) per build riproducibili.