GoTogether è un'applicazione web pensata per facilitare incontri ed esperienze sociali basate su eventi reali (concerti, festival, mostre, serate) e non sulla singola persona.
Invece dello swipe tradizionale sui profili individuali, gli utenti scoprono eventi di loro interesse, confermano la propria partecipazione ed entrano istantaneamente in una chat di gruppo dedicata con tutte le altre persone che hanno scelto lo stesso evento.
- Esplorazione Eventi: Consulta l'elenco degli eventi con dettagli completi su data, luogo e programma.
- Partecipazione con un Click: Registra il tuo interesse o presenza per sbloccare la community dell'evento.
- Chat di Gruppo in Tempo Reale: Stanze chat dedicate per ciascun evento grazie alla tecnologia WebSocket.
- Autenticazione Sicura: Flusso di registrazione e login con password cifrate (
bcrypt) e gestione sessioni tramite token (JWT). - Interfaccia Moderna: Layout responsive e performante realizzato con Tailwind CSS v4.
- Ambiente di Runtime: Node.js (moduli ES)
- Backend: Express.js v5
- Comunicazione Real-Time: Socket.io
- Database & ORM: MySQL con Prisma ORM
- Sicurezza: JSON Web Token (
jsonwebtoken), Hashing password (bcrypt) - Frontend: HTML5, JavaScript (Vanilla client-side) e Tailwind CSS v4
Prima di eseguire il progetto, assicurati di avere installato:
- Node.js (versione 18.x o successiva consigliata)
- npm
- MySQL Server attivo in locale o da remoto
-
Clonare il repository
git clone https://github.com/cicciocastellino/gotogether.git
cd gotogether -
Installare le dipendenze
npm install -
Configurare le variabili d'ambiente
Crea un file denominato .env nella root del progetto:
DATABASE_URL="mysql://UTENTE:PASSWORD@localhost:3306/gotogether_db"
SECRET_KEY="la_tua_chiave_segreta_jwt" -
Configurare il Database con Prisma
Sincronizza lo schema creando le tabelle nel database MySQL locale e genera il client:
Crea le tabelle nel database direttamente dallo schema
npx prisma db push
Genera il Prisma Client locale
npx prisma generate
(Opzionale) Per visualizzare e gestire i dati del database tramite interfaccia grafica nel browser:
npx prisma studio -
Compilare Tailwind CSS (se necessario)
Se apporti modifiche ai file di stile in src/css/:
npx @tailwindcss/cli -i ./src/css/style.css -o ./public/css/style.css --watch
Avvia il server specificando la porta (es. 8080): node server.js 8080
Una volta avviato il server, apri il browser all'indirizzo: http://localhost:8080
Questo progetto è distribuito sotto licenza ISC.