A full-stack event management platform built with React, Node.js, Express, and MongoDB. Create, manage, and book events with integrated Stripe payment processing.
- 🎫 Event Creation & Management - Create and manage events with images, categories, and capacity
- 🔐 User Authentication - Secure JWT-based authentication with role-based access
- 💳 Payment Integration - Stripe payment gateway for paid events
- 📅 Event Booking - Book free or paid events with capacity tracking
- 🎨 Modern UI - Beautiful glassmorphism design with gradient themes
- 📱 Responsive Design - Works seamlessly on all devices
- 🔍 Smart Filtering - Filter events by location, category, date, and price
Frontend:
- React 18
- React Router
- Tailwind CSS
- Axios
- React Hot Toast
Backend:
- Node.js
- Express.js
- MongoDB with Mongoose
- JWT Authentication
- Stripe Payment API
- Node.js (v14 or higher)
- MongoDB
- Stripe account (for payments)
-
Clone the repository
git clone https://github.com/behan02/Event-Management-System.git cd Event-Management-System -
Backend Setup
cd backend npm installCreate
.envfile:MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret PORT=5000 CLIENT_URL=http://localhost:5173 STRIPE_SECRET_KEY=your_stripe_secret_key
-
Frontend Setup
cd frontend npm installCreate
.envfile:VITE_API_URL=http://localhost:5000 VITE_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key
-
Run the Application
Backend:
cd backend npm run devFrontend:
cd frontend npm run devAccess the app at
http://localhost:5173
Use Stripe test cards:
- Success: 4242 4242 4242 4242
- Decline: 4000 0000 0000 0002
Use any future date, any 3-digit CVC, and any billing details.
Event-Management-System/
├── backend/
│ ├── src/
│ │ ├── controllers/ # Request handlers
│ │ ├── models/ # Database schemas
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Auth & validation
│ │ └── lib/ # Utilities
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API calls
│ │ └── store/ # State management
│ └── package.json
└── README.md
- Create events with title, description, location, date, category, and price
- Upload event images
- Set maximum participant capacity
- Track bookings in real-time
- Free Events: Direct booking without payment
- Paid Events: Secure Stripe checkout integration
- Automatic booking creation after successful payment
- Payment status tracking (Paid/Pending/Failed)
- Filter by location (Colombo, Kandy, Galle, etc.)
- Filter by category (Sports, Education, Concert, etc.)
- Filter by date
- Filter by price range