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