Together
A social events app for Jönköping University students — post what you are doing, see who is up for it.
The problem
Someone is doing something tonight — a pre-game, a gym session, a study circle — and wants other students to come. Group chats bury it under everything else, and event platforms are far too heavy for a Tuesday evening at university.
Together is the narrow version of that: post what you are doing, see who is up for it.
The inputs
Student accounts, events with a time and a place, and who has said they are going. Nothing is scraped and nothing comes from the university — the content is whatever students post.
The public link runs in a demo mode seeded with sample events, so anyone can open it and look around without creating an account.
What I built
A Next.js front end against a FastAPI backend on MySQL. Students register, post an event with a time and a location, and browse what is open — a feed that separates what is happening soon from everything else, a map view built on Leaflet, and a notification when someone asks to join something you are hosting.
Authentication is JWT with seven-day tokens and bcrypt-hashed passwords; client state is kept in Zustand and persisted to local storage so a refresh does not log you out or lose your place.
The result
The app is deployed and open: the link above runs a demo mode seeded with sample events, so anyone can look around the feed, the map and an event page without creating an account.
Technical notes
For anyone who wants the detail.
Next.js 14 with the App Router and Tailwind on the front, FastAPI with SQLAlchemy 2.0 on Python 3.11 behind it, MySQL 8 underneath. The map uses Leaflet with CARTO dark tiles to match the interface rather than fighting it.
The repository is private, so there is no code link on this page — the live demo is the whole of what is public.