Skip to content

An all-in-one Event Management solution powered by the MERN stack. Key features include an interactive dashboard with Chart.js, secure file uploads via Cloudinary, email notifications, and a complete digital ticketing workflow using QR codes and PDF generation.

Notifications You must be signed in to change notification settings

soumojit-D48/Event-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Event Management System

React Node.js Express MongoDB Tailwind CSS Redux Toolkit

A comprehensive full-stack web application for managing college events, built with the MERN stack (MongoDB, Express, React, Node.js).

FeaturesTech StackQuick StartDocumentation

🚀 Features

Feature Description
User Authentication Secure signup and login using JWT and Bcrypt
Event Management Create, update, and manage events with rich details
Registration System Users can register for events with automatic confirmations
QR Code Integration Generate and scan QR codes for ticketing/check-in
PDF Generation Generate event tickets, certificates, and reports
File Uploads Image handling using Multer and Cloudinary
Interactive Dashboard Data visualization with Chart.js
Role-Based Access Secure permissions for organizers, participants, and admins
Email Notifications Integrated via Nodemailer for confirmations and updates
Attendance Tracking Real-time check-in with QR code scanning

🛠️ Tech Stack

Client (Frontend)

Technology Purpose
React 19 UI framework
Vite Build tool
Redux Toolkit State management
Tailwind CSS 4 Styling
Radix UI Accessible components
Framer Motion Animations
React Router DOM Routing
React Hook Form + Zod Form handling
Chart.js Data visualization
Lucide React Icons

Server (Backend)

Technology Purpose
Node.js 22 Runtime environment
Express.js 5 Web framework
MongoDB 8 Database
Mongoose ODM
JWT Authentication
Cloudinary File storage
Nodemailer Email service
PDFKit / pdf-lib PDF generation
QRCode QR code generation

📁 Project Structure

Event-management/
├── client/                    # Frontend React application
│   ├── src/
│   │   ├── assets/           # Static assets (images, icons)
│   │   ├── components/       # Reusable UI components
│   │   │   ├── auth/         # Authentication components
│   │   │   ├── dashboard/    # Dashboard widgets
│   │   │   ├── layout/       # Layout components
│   │   │   └── ui/           # Base UI components
│   │   ├── pages/            # Page components
│   │   ├── state/            # Redux store & slices
│   │   ├── lib/              # Utilities & schemas
│   │   ├── constants/        # App constants
│   │   ├── App.jsx           # Root component
│   │   └── main.jsx          # Entry point
│   ├── index.html            # HTML template
│   └── package.json
│
├── server/                    # Backend Express application
│   ├── src/
│   │   ├── config/          # Configuration files
│   │   ├── controllers/     # Route handlers
│   │   ├── middlewares/     # Custom middleware
│   │   ├── models/          # Mongoose schemas
│   │   ├── routes/          # API routes
│   │   ├── utils/           # Helper functions
│   │   └── index.js         # Entry point
│   └── package.json
│
└── README.md                 # This file

⚡ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • MongoDB (local or Atlas)
  • Git

Installation

  1. Clone the repository

    git clone <repository-url>
    cd Event-management
  2. Set up the server

    cd server
    npm install
    # Create .env file (see Configuration below)
    npm run dev
  3. Set up the client

    cd ../client
    npm install
    npm run dev
  4. Access the application

⚙️ Configuration

Server Environment Variables

Create a .env file in the server directory:

# Server
PORT=5000

# Database
MONGO_URI=mongodb://localhost:27017/eventmanagement
# Or for MongoDB Atlas:
# MONGO_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/eventmanagement

# Authentication
JWT_SECRET=your-super-secret-jwt-key
JWT_EXPIRES_IN=7d

# Cloudinary (File uploads)
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret

# Email (Nodemailer)
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password

# Frontend URL (for CORS)
CLIENT_URL=http://localhost:5173

Client Environment Variables

Create a .env file in the client directory:

VITE_API_URL=http://localhost:5000/api
VITE_APP_NAME=EventHub

📚 Documentation

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the ISC License.


Built with ❤️ for college event organizers

About

An all-in-one Event Management solution powered by the MERN stack. Key features include an interactive dashboard with Chart.js, secure file uploads via Cloudinary, email notifications, and a complete digital ticketing workflow using QR codes and PDF generation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages