Skip to content

About

A full-stack Event Management System with real-time forums, QR-based attendance tracking, and merchandise workflows. Built with React, Node.js, MongoDB, and Socket.IO as an assignment for DASS @ IIIT-H.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Event Management Platform

Tech Stack

Frontend

  • React + Vite – Fast builds, component-based UI
  • React Router DOM – Client-side routing
  • Material UI – Pre-built components
  • Socket.IO Client – Real-time forum
  • react-google-recaptcha – Bot prevention
  • react-csv – Participant CSV export
  • mui-tel-input – Phone number input

Backend

  • Express – REST API
  • MongoDB + Mongoose – Database
  • JWT + bcryptjs – Auth and password hashing
  • Socket.IO – Real-time discussion forum
  • Nodemailer – Email ticket confirmation
  • QRCode + uuid – Ticket generation
  • Fuse.js – Fuzzy event search
  • cookie-parser, cors, dotenv – Utilities

Features

Baseline

  • JWT auth with HttpOnly cookies
  • Role-based access: participant, organizer, admin
  • Event CRUD with draft/published/ongoing/completed states
  • Custom dynamic registration forms (text, dropdown, checkbox)
  • Merchandise events with stock, variants, and purchase limits
  • CSV export of participant + form response data
  • Fuzzy search with Fuse.js
  • Participant preference and club following

Tier A — Core Advanced Features (chose 2)

Selected for compatibility with the existing implementation and ease of integration.

Merchandise Payment Approval Workflow

  • Participants upload payment proof (image) after placing a merchandise order
  • Order enters Pending state; no QR ticket is issued at this stage
  • Organizer has a dedicated tab listing all orders with proof image, status (Pending / Approved / Rejected), and approve/reject actions
  • On approval: stock is decremented, a unique QR ticket is generated, and a confirmation email is sent to the participant
  • Rejected orders display a rejection notice with no ticket issued

QR Scanner & Attendance Tracking

  • Organizers open a scanner page using device camera to scan participant QR codes
  • Each scan marks attendance with a timestamp; duplicate scans are rejected with an error
  • Live attendance dashboard shows scanned vs. not-yet-scanned participants
  • Attendance report exportable as CSV
  • Manual check-in override available for exceptional cases

Tier B — Real-time & Communication Features (chose 2)

Selected for compatibility with the existing implementation and ease of integration.

Real-Time Discussion Forum

  • Per-event forum accessible on the Event Details page, restricted to registered participants and the organizer
  • Powered by Socket.IO with messages persisted in MongoDB
  • Supports threaded replies (parent–child structure), emoji reactions (per-user state), pinned messages, and organizer announcements
  • Organizers can delete or pin any message; soft delete preserves thread context
  • Unread message counter shown on the forum entry point

Organizer Password Reset Workflow

  • Organizers submit a password reset request with a reason from their profile
  • Admin dashboard lists all requests with club name, date, reason, and status (Pending / Approved / Rejected)
  • Admin can approve (system generates a new password visible to admin) or reject with a comment
  • Status tracking and full request history available to both organizer and admin

Tier C — Integration & Enhancement (chose 1)

Selected for compatibility with the existing implementation and ease of integration.

Bot Protection

  • Google reCAPTCHA v2 integrated on both the registration and login pages
  • reCAPTCHA token verified server-side before processing credentials
  • Prevents automated account creation and brute-force login attempts

Setup

Backend

cd backend && npm install

backend/.env:

PORT=5000
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_secret
[email protected]
EMAIL_PASS=your_app_password
RECAPTCHA_SECRET_KEY=your_key
node src/scripts/adminCreation.js   # seed admin
npm start

Frontend

cd frontend && npm install

frontend/.env:

VITE_API_URL=http://localhost:5000
VITE_RECAPTCHA_SITE_KEY=your_key
npm run dev

App runs at http://localhost:5173.

Default admin: [email protected] / banana

About

A full-stack Event Management System with real-time forums, QR-based attendance tracking, and merchandise workflows. Built with React, Node.js, MongoDB, and Socket.IO as an assignment for DASS @ IIIT-H.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages