Skip to content

pratsha2005/EventHive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

67 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“… EventHive – Plan, Book & Celebrate with Ease πŸš€

EventHive is a modern, full-stack event management and ticketing platform that simplifies event creation, ticket sales, and attendee engagement. Built with a modular architecture consisting of a React-based frontend, a powerful organizer dashboard, and a secure Node.js/Express + MongoDB backend, EventHive provides a seamless experience for organizers, attendees.


🌐 Live Demo

πŸ”— Live πŸ”— Youtube Link πŸ”— PPT


πŸ“š Table of Contents


✨ Features

πŸ” Authentication & Access

  • Secure JWT-based login/registration for Organizers and Attendees
  • Role-based access control ( Event Manager and Volunteer)

πŸŽ‰ Event Creation & Management

  • Create and publish events with details: title, description, date, time, venue, and category
  • Add multiple ticket types (General, VIP, Student, Early Bird)
  • Define ticket attributes: price, sale period, and quantity limits

πŸ” Event Discovery & Booking

  • Search and filter events by category, date, location, and price
  • Book multiple tickets with per-user limits
  • Secure attendee registration and payment (Stripe)

🎫 Ticketing & Delivery

  • Auto-generated tickets with unique QR/Barcode
  • Ticket delivery via Email
  • Option to download from attendees list in CSV format

πŸ“’ Notifications & Reminders

  • Booking confirmation via Email

πŸ“Š Organizer Dashboard

  • Manage events, ticket inventory, and attendee lists
  • Real-time sales analytics & revenue tracking
  • Export attendee data in CSV

πŸ§‘β€πŸ€β€πŸ§‘ Attendee Dashboard

  • View β€œMy Tickets” and booking history

βœ… Event Check-In System

  • QR scanning for quick entry
  • Real-time validation to prevent duplicate entries

πŸ“ˆ Analytics & Reports

  • Insights on ticket sales, revenue, and active attendees

πŸ“¦ Project Structure

πŸ“ EventHive/
β”œβ”€β”€ πŸ“ backend/
β”‚   β”œβ”€β”€ πŸ“ config/
β”‚   β”‚   β”œβ”€β”€ cloudinary.js
β”‚   β”‚   β”œβ”€β”€ emailTemplates.js
β”‚   β”‚   └── nodemailer.js
β”‚   β”œβ”€β”€ πŸ“ controllers/
β”‚   β”‚   β”œβ”€β”€ authController.js
β”‚   β”‚   β”œβ”€β”€ doctorController.js
β”‚   β”‚   └── userController.js
β”‚   β”œβ”€β”€ πŸ“ db/
β”‚   β”‚   β”œβ”€β”€ .js
β”‚   β”œβ”€β”€ πŸ“ middlewares/
β”‚   β”‚   β”œβ”€β”€ userAuth.js
β”‚   β”‚   └── multer.js
β”‚   β”œβ”€β”€ πŸ“ models/
β”‚   β”‚   β”œβ”€β”€ attendee.models.js
β”‚   β”‚   β”œβ”€β”€ events.models.js
β”‚   β”‚   β”œβ”€β”€ ticket.models.js
β”‚   β”‚   └── userModel.js
β”‚   β”œβ”€β”€ πŸ“ routes/
β”‚   β”‚   β”œβ”€β”€ ticketService.js
β”‚   β”œβ”€β”€ πŸ“ services/
β”‚   β”‚   β”œβ”€β”€ authRoutes.js
β”‚   β”‚   β”œβ”€β”€ event.routes.js
β”‚   β”‚   └── userRoutes.js
β”‚   β”œβ”€β”€ .env
β”‚   └── app.js
β”‚
β”œβ”€β”€ πŸ“ frontend/
β”‚   β”œβ”€β”€ πŸ“ public/
β”‚   β”‚    └── favicon.svg
β”‚   β”œβ”€β”€ πŸ“ src/
β”‚   β”‚   β”œβ”€β”€ πŸ“ assets/
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/
β”‚   β”‚   β”œβ”€β”€ πŸ“ context/
β”‚   β”‚   β”œβ”€β”€ πŸ“ pages/
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   β”œβ”€β”€ index.css
β”‚   β”‚   └── main.jsx
β”‚   β”œβ”€β”€ .env
β”‚   └── index.html
└── README.md

πŸ›  Technologies Used

πŸ”§ Backend

  • Node.js, Express.js
  • MongoDB (PostgreSQL in separate branch)
  • Cloudinary
  • JWT Authentication
  • Multer
  • Stripe (Payments)
  • Papaparser
  • Bcryptjs
  • Nodemailer
  • QRcode
  • Cookie-parser

🎨 Frontend

  • React.js
  • Axios
  • React-icons
  • react-toastify
  • Stripe Checkout (Payments)
  • Google Maps API (Locations)z

πŸš€ Installation

πŸ”§ 1. Clone the Repository

git clone https://github.com/pratsha2005/EventHive.git
cd EventHive

βš™οΈ 2. Backend Setup (inside /server)

cd backend
npm install

Create a .env file and add:

BACKEND_URL=
FRONTEND_URL=
MONGODB_URI=
DB_NAME=
CLOUDINARY_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_SECRET_KEY=
JWT_SECRET=
NODE_ENV=
SMTP_USER=
SMPT_PASS=
SENDER_EMAIL=
STRIPE_KEY_SECRET=

Start the backend server:

npm run dev

πŸ’» 3. Frontend Setup (inside /client)

cd ../frontend
npm install

Set up environment:

VITE_BACKEND_URL=
VITE_GOOGLE_MAPS_API_KEY=

Start the frontend:

npm run dev

πŸ•Ή Usage Guide

πŸ‘€ Attendees

  • Register/Login
  • Browse upcoming events
  • Search & filter events by category, date, location, and price
  • Book tickets securely via integrated payment gateways
  • Download or view tickets from β€œMy Tickets” dashboard

πŸŽ‰ Organizers

  • Login with organizer credentials
  • Create, update, or cancel events
  • Manage ticket types, pricing, and quantity
  • Track ticket sales & attendee registrations
  • Export attendee lists in CSV/Excel
  • Send notifications/reminders to attendees

πŸ›  API Endpoints Backend

Method Endpoint Description Auth Required Notes
POST /auth/register Register a new user ❌ Accepts avatar as file upload
POST /auth/login Login user ❌ -
POST /auth/logout Logout user βœ… User must be logged in
POST /auth/send-verify-otp Send OTP to verify account βœ… -
POST /auth/verify-account Verify email/account βœ… -
GET /auth/is-auth Check if user is authenticated βœ… Returns user info
POST /auth/send-reset-otp Send OTP for password reset ❌ -
POST /auth/reset-password Reset password using OTP ❌ -
Method Endpoint Description Auth Required Notes
POST /events/add-event Add a new event βœ… Accepts banner (1 file) & gallery (up to 10 files)
POST /events/edit-event/:eventId Edit existing event βœ… Accepts banner & gallery as files
GET /events/getAllEventByManagerId Get all events created by manager βœ… -
GET /events/getEventById/:eventId Get details of a single event ❌ -
GET /events/exportCSV/:eventId Export attendee list as CSV ❌ -
Method Endpoint Description Auth Required Notes
GET /user/data Get logged-in user data βœ… -
GET /user/getAllEvents Get all available events βœ… -
POST /user/register/:eventId Register for an event βœ… -
GET /user/update Update user profile βœ… -
POST /user/myBookings Get user bookings βœ… -
Method Endpoint Description Auth Required Notes
POST /payment/checkout Redirect to payment gateway βœ… -
GET /payment/payment-success Redirect to payment success page βœ… -

🀝 Contributing

We welcome contributions to improve EventHive!

🧩 How to Contribute

1. Fork the Repository

Click the Fork button on the top right of this page.

2. Clone Your Fork

Open terminal and run:

git clone https://github.com/pratsha2005/EventHive.git
cd EventHive

3. Create a feature branch:

Use a clear naming convention:

git checkout -b feature/new-feature

4. Make & Commit Your Changes

Write clean, documented code and commit:

git add .
git commit -m "✨ Added: your change description"

5. Push to GitHub & Submit PR

git push origin feature/your-feature-name

6. Then go to your forked repo on GitHub and open a Pull Request.

About

EventHive is a full-stack event management and ticketing platform that streamlines event creation, ticket sales, and attendee engagement with a modern, scalable architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages