Eventify is a backend API designed to handle the management of events, bookings, and payments. This project provides secure user authentication, event browsing, booking, and payment functionality using modern backend technologies. It's scalable and built with a modular structure to allow for easy future expansion.
- User authentication using JWT
- Event creation, browsing, and management
- Secure payment gateway integration with Razorpay(to be implemented)
- User and admin role separation
- Email notifications for successful bookings
- Zod input validation and bcrypt hashing for sensitive data storage
- Book events with real-time seat availability checks.
- Backend Framework: Node.js with Express.js
- Database: MongoDB (with Mongoose ORM)
- Authentication: JWT (JSON Web Tokens)
- Validation: Zod for schema validation
- Hashing : Bcrypt hashing for sensitive information
- Email Service: Nodemailer for email notifications
- Payment Gateway: Razorpay integration for handling payments (to be implemented)
- Deployment: (to be implemented)
git clone https://github.com/yourusername/eventify.git
cd eventify
npm install
- Create a .env file in the root of your project and add the following environment variables:
PORT=<your-port-number>
URL=<your-mongodb-uri>
JWT_KEY=<your-jwt-secret-key>
EMAIL_ID=<your-email-id>
EMAIL_PASSWORD=<your-email-password>(app passowrd , not gmail password)
RAZORPAY_KEY_ID=<your-razorpay-key-id>
RAZORPAY_KEY_SECRET=<your-razorpay-key-secret>
- Make sure you have MongoDB installed and running locally or use a cloud service like MongoDB Atlas.
- Set up the database URL in the .env file (MONGODB_URI).
- The required collections (Users, Events, Bookings, Payments) will be automatically created when you start the server.
- Start the development server:
node server.js
or
nodemon server.js
- Event Reviews and Ratings: Allow users to leave feedback and rate events.
- Razorpay Payment Getaway Integration
- Deploying on a cloud service
- Register or login as a user to browse events.
- Admins can create, update, or delete events using the respective API endpoints.
- Users can book events by sending a booking request.
- Payments can be processed through the Razorpay integration.
- After a successful booking, users will receive a confirmation email.