Back to Projects
School Project

Event Management System

Event Planning & Ticketing

React.js
Tailwind CSS
Node.js
Express.js
MongoDB
Event Management System main interface

The Problem

Student organizations at ESI-SBA needed a simple way to manage event sign-ups without relying on Google Forms. They wanted registration tracking, attendance verification, and a way to limit capacity.

My Approach

  • 1Interviewed student club leaders to understand their actual needs (not just assumed requirements)
  • 2Built role-based access: organizers create events, students register, admins verify attendance
  • 3Implemented QR code generation for tickets—scannable at event entrance for quick check-in
  • 4Created a dashboard showing registration stats, attendance rates, and waitlist management

What It Looks Like

Event creation interface
Event creation — Organizers set capacity, dates, and custom registration fields
Digital ticket with QR code
Digital ticket — QR code generated for each registration, scannable at entry
QR code scanning interface for check-in
Check-in — Scan QR codes to verify tickets and track real-time attendance

Technical Decisions

QR codes instead of manual check-in

Manual name lookup is slow and error-prone. QR codes can be scanned in seconds and automatically update attendance in real-time.

MongoDB for this project (vs PostgreSQL for others)

Event data is more document-like—each event has different custom fields. MongoDB's flexibility fit better here. Also wanted to learn both SQL and NoSQL.

Server-side QR validation

Could have done client-side validation but that's easy to bypass. Server validation ensures only valid tickets are accepted.

Tradeoffs & Limitations

Every project has constraints. Here's what I chose not to build and why:

  • No payment integration—all events are free. Would need Stripe or similar for paid events
  • Single-use QR codes—can't handle scenarios where someone needs to re-enter an event
  • No calendar integration—users have to manually add events to their calendars

Outcome

Deployed for a few ESI-SBA events. Processed 200+ registrations across 3 events. The QR check-in reduced entrance wait times significantly compared to the previous name-list approach.

What I Learned

  • User research actually matters—initial assumptions about features were wrong
  • Security in QR systems: learned about replay attacks and why single-use tokens are important
  • Real deployment issues: CORS, environment variables, database connection limits