Welcome to Eazy Event, a full-stack event management application built with modern web technologies. This application provides a comprehensive platform for creating, managing, and attending events with advanced features like task management, payment processing, and real-time updates.
- User Authentication & Authorization - Secure login/registration with Clerk
- Event Management - Create, update, delete, and manage events
- Event Registration - Users can register for events with payment processing
- Task Management - Assign and track tasks for events
- Payment Processing - Integrated Stripe payment system
- Real-time Updates - Live notifications and updates
- Responsive Design - Mobile-first, responsive UI
- Event Chat - Real-time event chat (owner, collaborators, and registered attendees); role badges (Owner / Collaborator / Attendee); message history persisted
- Create Event Wizard - 5-step flow: Basic Information β Event Details β Pricing & Media β Advanced Settings β Review & Publish
- Image Upload - Cloudinary integration for event images
- Search & Filtering - Advanced event search and filtering
- Category Management - Organize events by categories
- User Profiles - Comprehensive user profile management
- Email Notifications - Automated email notifications
- Error Handling - Comprehensive error handling and logging
- Security - Rate limiting, input validation, and security headers
- React 18 - Modern React with hooks
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- Material-UI - React component library
- React Router - Client-side routing
- Formik + Yup - Form handling and validation
- Axios - HTTP client
- Socket.IO Client - Real-time chat
- Stripe - Payment processing
- Node.js - JavaScript runtime
- Express.js - Web framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Tokens
- Joi - Data validation
- Winston - Logging library
- Helmet - Security middleware
- Rate Limiting - API rate limiting
- Jest - Testing framework
- ESLint - Code linting
- Prettier - Code formatting
- Git - Version control
Before you begin, ensure you have met the following requirements:
- Node.js (v18.x or later)
- npm (v9.x or later) or yarn
- MongoDB Atlas account or local MongoDB instance
- Clerk account for authentication
- Stripe account for payments
- Cloudinary account for image storage
git clone https://github.com/akashyap25/Eazy_Event.git
cd Eazy_EventThe backend runs in a separate repository. Clone and run it first:
git clone https://github.com/akashyap25/eazy_event_server.git
cd eazy_event_server
npm install
cp .env.example .env
# Edit .env (MONGO_URI, JWT_SECRET, etc.)
npm startSee eazy_event_server for full backend setup and environment variables.
Install dependencies:
npm installCreate environment file:
cp .env.example .envConfigure your .env file:
VITE_SERVER_URL=http://localhost:5000
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_your_stripe_publishable_key_here
VITE_CLOUDINARY_CLOUD_NAME=your_cloud_name
VITE_CLOUDINARY_UPLOAD_PRESET=your_upload_presetStart the frontend development server:
npm run devBackend tests are in the eazy_event_server repo (npm test there).
All protected routes require authentication via Clerk.
GET /api/events- Get all eventsGET /api/events/:id- Get event by IDPOST /api/events/create- Create new event (protected)PUT /api/events/:id- Update event (protected)DELETE /api/events/:id- Delete event (protected)GET /api/events/user/:id- Get user's events (protected)
GET /api/users/:id- Get user by IDPOST /api/users- Create userPUT /api/users/:clerkId- Update userDELETE /api/users/:clerkId- Delete user
- Authentication - Clerk-based authentication
- Authorization - Role-based access control
- Input Validation - Joi schema validation
- Rate Limiting - API rate limiting
- Security Headers - Helmet.js security headers
- CORS - Configured CORS policy
- Error Handling - Comprehensive error handling
- Connect your GitHub repository
- Set environment variables
- Deploy automatically
- Connect your GitHub repository
- Set environment variables
- Deploy automatically
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Anurag Kumar - anuragkashyap026@gmail.com
- Clerk for authentication services
- Stripe for payment processing
- Cloudinary for image storage
- Material-UI for UI components
- All contributors and users