← All projects

Together

A social events app for Jönköping University students — post what you are doing, see who is up for it.

Year
2026
Stack
Next.js 14 · TypeScript · FastAPI · MySQL · Leaflet
The Together events feed on a phone, showing a highlighted event with attendee avatars above a grid of smaller events open at the university
The demo mode, seeded with sample events so the link works without signing up.

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.