Overview
A full-stack event discovery platform for university students and societies — event creation, RSVPs, organizer dashboards, highlights, and a support module.
- Built event creation, RSVP, and organizer dashboards end-to-end.
- Designed an event highlights feature and a support module for queries.
- Scalable REST APIs with secure JWT auth and organizer access control.
The problem
University events were scattered across chats and posters — students missed things, and societies had no clean way to manage attendance.
My approach
A full-stack platform for discovering events, RSVPing, and running organizer dashboards, with highlights and a support module.
What I owned
I was the only web developer on the team, so I built the platform essentially end-to-end — event creation, RSVP, organizer dashboards, and the REST API with Google OAuth, JWT, and organizer access control.
The hard part
Making event-time comparisons correct across timezones: dates/times are stored as IST wall-clock strings, so I wrote a shared helper that builds the instant with an explicit +05:30 offset (and normalizes messy legacy formats) so 'is this event over?' answers the same whether the server runs in UTC or locally — mirrored on the client. I also added cold-start resilience (retry + a 'server is waking up' overlay) for free-tier hosting, and hand-reconciled the two-document society-approval flow since standalone MongoDB has no transactions.
Why I built it
My first full-stack CRUD project — I learned full-stack from it. It started as a hackathon problem statement; my team only got the frontend done in time (I was the only web dev), so we didn't qualify. I got obsessed with finishing it end-to-end and deploying it for real students — and debugging it in dev and prod is genuinely where I learned to read and fix errors.
Role-based access — one API, three permission sets
- Browse & register for events (dedup-indexed)
- Submit society requests & support queries
- Read own notifications
- Everything a student can
- CRUD its own society's events
- Post announcements · view registrations
- Edit the society profile
- Approve / reject / revoke societies (promotes the president's role)
- Create event highlights
- Reply to support queries
- Manage any society
Shared hub: Express API + MongoDB · Google OAuth (restricted to @kiit.ac.in) · Cloudinary image uploads.
Live at kiitevents.netlify.app. A professor reviewed it and asked for changes/features (which I added), but the administration declined a standalone site (they wanted it folded into their own) — so I'm exploring a standalone launch via college societies. Email notifications are stubbed; notifications are in-app only.