EventEase is a full-stack MERN application (MongoDB, Express.js, React, Node.js) developed as part of the ETHUS MERN Stack Certification. It allows users to create, browse, manage, and purchase tickets for events with user authentication, cart & purchase management, and Google Calendar integration.
A complete MERN stack event management system with authentication, ticket booking, cart, purchases, and calendar integration.
root/
│
├── frontend/ # React + Vite frontend
│
└── backend/ # Node.js + Express backend
- React with Vite for fast bundling and HMR
- ESLint for linting
- Axios for HTTP requests
- LocalStorage for cart & token storage
Navigate to the frontend directory:
cd frontendnpm installnpm run devnpm run buildnpm run previewThis project includes a basic ESLint configuration. For production, consider using TypeScript with type-aware linting.
- Node.js + Express.js
- MongoDB for data storage
- JWT for authentication
- MVC folder structure
Navigate to the backend directory:
cd backendnpm installnpm start(or node server.js if you configured without scripts)
backend/
│
├── server.js # Entry point
│
├── config/ # DB & environment config
│
├── controllers/ # Request handlers
│
├── middleware/ # Auth, error handling
│
├── models/ # Mongoose schemas
│
├── routes/ # API routes
│
└── node_modules/
-
Login & registration handled via:
POST /api/auth/loginPOST /api/auth/register
-
JWT tokens stored in
localStorageand used for protected endpoints.
-
Users or admins can create, update, delete, and list events via:
POST /api/eventsPUT /api/events/:idDELETE /api/events/:idGET /api/events
-
Managed through
EventForm.jsxandEvents.jsx.
-
Cart stored in
localStorage. -
Increment/decrement ticket quantities or remove events from cart.
-
Purchase triggers:
POST /api/events/buy/:id(validate & decrement tickets)POST /api/purchases(record transaction)- Clears cart & shows notification.
- Each event can be added to Google Calendar via generated query link.
src/
├── components/
│ └── EventForm.jsx
├── pages/
│ ├── Cart.jsx
│ ├── Events.jsx
│ ├── Purchases.jsx
│ ├── Login.jsx
│ └── Register.jsx
├── App.jsx
└── index.js
- 🔐 User Authentication – Register & login securely
- 📅 Event CRUD – Create, update, delete, and list events
- 🛒 Cart Management – Manage tickets & quantities
- 💳 Purchase Flow – Complete ticket purchases
- 📆 Google Calendar Integration – Add events to your calendar
| Frontend | Backend | Storage |
|---|---|---|
| React | Node.js/Express | MongoDB |
| Vite | JWT (auth) | LocalStorage |
| Axios | Mongoose |
# Frontend
cd frontend
npm install
npm run dev
# Backend
cd backend
npm install
npm startEnsure your backend server exposes:
POST /api/auth/login
POST /api/auth/register
GET /api/events
POST /api/events
PUT /api/events/:id
DELETE /api/events/:id
POST /api/events/buy/:id
POST /api/purchases
GET /api/purchases
- Role-based access control (Admin/User)
- Payment integration (Stripe/Razorpay)
- Event image upload
- Responsive UI (e.g., Tailwind CSS)
- Srushtee Patil
- ETHUS MERN Stack Certification