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 π Youtube Link π PPT
- β¨ Features
- π¦ Project Structure
- π Technologies Used
- π Installation
- πΉ Usage Guide
- π’ API Endpoints
- π€ Contributing
- Secure JWT-based login/registration for Organizers and Attendees
- Role-based access control ( Event Manager and Volunteer)
- 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
- Search and filter events by category, date, location, and price
- Book multiple tickets with per-user limits
- Secure attendee registration and payment (Stripe)
- Auto-generated tickets with unique QR/Barcode
- Ticket delivery via Email
- Option to download from attendees list in CSV format
- Booking confirmation via Email
- Manage events, ticket inventory, and attendee lists
- Real-time sales analytics & revenue tracking
- Export attendee data in CSV
- View βMy Ticketsβ and booking history
- QR scanning for quick entry
- Real-time validation to prevent duplicate entries
- Insights on ticket sales, revenue, and active attendees
π 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
- Node.js, Express.js
- MongoDB (PostgreSQL in separate branch)
- Cloudinary
- JWT Authentication
- Multer
- Stripe (Payments)
- Papaparser
- Bcryptjs
- Nodemailer
- QRcode
- Cookie-parser
- React.js
- Axios
- React-icons
- react-toastify
- Stripe Checkout (Payments)
- Google Maps API (Locations)z
git clone https://github.com/pratsha2005/EventHive.git
cd EventHivecd backend
npm installCreate 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 devcd ../frontend
npm installSet up environment:
VITE_BACKEND_URL=
VITE_GOOGLE_MAPS_API_KEY=Start the frontend:
npm run dev- 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
- 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
| 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 | β | - |
We welcome contributions to improve EventHive!
Click the Fork button on the top right of this page.
Open terminal and run:
git clone https://github.com/pratsha2005/EventHive.git
cd EventHiveUse a clear naming convention:
git checkout -b feature/new-featureWrite clean, documented code and commit:
git add .
git commit -m "β¨ Added: your change description"git push origin feature/your-feature-name