Deployed Link
Admin Credentials
Email:admin@eventify.com
Password:admin123
A comprehensive event management platform built with Node.js, Express, MongoDB, and Socket.io. Features include user registration, event creation, payment processing, real-time chat, notifications, and wallet management.
- Enhanced Signup Flow: Phone number, age, gender collection
- Profile Management: View and update user information
- Password Management: Change password with current password verification
- Forgot Password: OTP-based password reset via email
- Event Creation: Create events with approval workflow
- Event Discovery: Browse events with dynamic search and filtering
- Event Details: View comprehensive event information with organizer contact
- Real-time Chat: Socket.io powered chat for event participants
- Stripe Integration: Secure payment processing
- Wallet Management: Automatic wallet balance updates
- Revenue Sharing: 90% to organizer, 10% to admin
- Payment Confirmation: Email notifications for successful payments
- Real-time Notifications: Bell icon with unread count
- Email Notifications: Welcome, payment confirmation, and OTP emails
- Event Notifications: Registration confirmations and updates
- Google SMTP: Configured with Gmail
- Email Templates: Beautiful HTML templates for all email types
- Welcome Emails: Sent on successful registration
- Payment Confirmations: Detailed payment receipts
- Node.js (v14 or higher)
- MongoDB
- Gmail account with app password
- Stripe account
-
Clone the repository
git clone <repository-url> cd eventify
-
Install dependencies
npm install
-
Environment Configuration Create a
.envfile in the root directory:# Database MONGO_URI=mongodb://localhost:27017/eventify #API GITHUB_TOKEN=from_github_marketplaces or your_openai_token GEMINI_API_KEY=your_api_key # Session SESSION_SECRET=your-session-secret-here # Email (Google SMTP) SMTP_USER=your-gmail@gmail.com SMTP_PASS=your-gmail-app-password # Stripe STRIPE_SECRET_KEY=your-stripe-secret-key STRIPE_PUBLISHABLE_KEY=your-stripe-publishable-key # App PORT=3000 BASE_URL=http://localhost:3000
-
Gmail Setup
- Enable 2-factor authentication on your Gmail account
- Generate an app password:
- Go to Google Account settings
- Security β 2-Step Verification β App passwords
- Generate a new app password for "Mail"
- Use this password in
SMTP_PASS
-
Database Setup
npm run setup
-
Test Email Configuration
npm run test-email
-
Start the application
npm start # or for development npm run dev
The application uses Google SMTP for sending emails. You only need to configure:
SMTP_USER: Your Gmail addressSMTP_PASS: Your Gmail app password
- Welcome Email: Sent on user registration
- Payment Confirmation: Sent after successful event registration
- OTP Email: Sent for password reset
- Event Reminders: Sent before events
The platform uses Stripe for payment processing with automatic wallet management:
- Event Registration: Users pay for event registration
- Revenue Split: 90% goes to event organizer, 10% to admin
- Wallet Balances: Automatically updated in user profiles
- Payment Confirmation: Email receipts sent to users
- Bell icon in navbar shows unread count
- Click to view notification dropdown
- Mark individual or all notifications as read
- Notifications for:
- Event registrations
- Payment confirmations
- System updates
- Welcome emails on registration
- Payment confirmation emails
- OTP emails for password reset
- Event reminder emails
- Register: Create account with enhanced profile information
- Browse Events: Use dynamic search and filters
- Register for Events: Pay and get confirmation emails
- Chat: Participate in event-specific chat rooms
- Manage Profile: Update password and view wallet balance
- Create Events: Submit events for admin approval
- Manage Events: Edit and update event details
- Receive Payments: Automatic wallet balance updates
- Monitor Registrations: Real-time notification of new registrations
- Approve Events: Review and approve pending events
- Manage Users: Promote users to organizer/admin roles
- Monitor Platform: View all events and user activities
- Revenue Management: Receive 10% of all event payments
POST /auth/register- User registrationPOST /auth/login- User loginGET /auth/logout- User logoutGET /auth/forgot-password- Forgot password pagePOST /auth/forgot-password- Send OTPGET /auth/reset-password- Reset password pagePOST /auth/reset-password- Reset password with OTPGET /auth/profile- User profilePOST /auth/update-password- Update password
GET /events- List all eventsGET /events/:id- Get event detailsPOST /events- Create new eventPUT /events/:id- Update eventDELETE /events/:id- Delete event
POST /payments/create-checkout-session- Create Stripe sessionGET /payments/success- Payment success callbackGET /payments/cancel- Payment cancel callback
GET /notifications- Get user notificationsGET /notifications/unread-count- Get unread countPUT /notifications/:id/read- Mark as readPUT /notifications/mark-all-read- Mark all as readDELETE /notifications/:id- Delete notification
- Mobile-friendly interface
- Clean, modern design
- Toast notifications
- Dynamic search and filtering
- Live chat using Socket.io
- Real-time notifications
- Dynamic event filtering
Ensure all required environment variables are set in production:
- Database connection string
- Email credentials
- Stripe keys
- Session secret
- Base URL
- Use HTTPS in production
- Secure session configuration
- Environment variable protection
- Input validation and sanitization
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the ISC License.
For support and questions:
- Check the documentation
- Review environment configuration
- Test email setup with
npm run test-email - Ensure all dependencies are installed
Eventify - Making event management simple and engaging! π