EventWave is a comprehensive full-stack event management platform built with the MERN stack. It empowers users to discover, create, and manage events seamlessly while providing organizers with powerful tools to track engagement and attendance.
- Create & Customize Events - Rich event creation with detailed descriptions, pricing, and media
- Dynamic Event Discovery - Advanced search and filtering by category, location, date, and price
- Real-time Updates - Live event status updates and notifications
- Multi-media Support - Upload event banners, galleries, and promotional content via Cloudinary
- Secure Authentication - JWT-based login with email verification
- Role-based Access Control - Distinct permissions for attendees, organizers, and administrators
- Personal Dashboard - Manage created events, bookings, and favorites
- Social Features - Save events to favorites and share with friends
- Responsive Design - Optimized experience across all devices
- Event Performance Metrics - Track views, registrations, and attendance
- Revenue Dashboard - Monitor ticket sales and payment processing
- User Engagement Analytics - Understand audience behavior and preferences
- React 18 - Modern React with hooks and context
- React Router v6 - Client-side routing and navigation
- Axios - HTTP client with interceptors
- Ant Design - Professional UI component library
- Redux Toolkit - State management for complex data flows
- React Query - Server state management and caching
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database with flexible schema
- Mongoose - ODM for MongoDB with validation
- Cloudinary - Cloud-based image and video management
- JWT - Stateless authentication tokens
- bcrypt - Password hashing and security
- Joi - Data validation and sanitization
- Node.js (v16 or higher)
- MongoDB (local or MongoDB Atlas)
- Cloudinary account for media uploads
-
Clone the repository
git clone https://github.com/Emmanard/Event-App/ cd eventsphere -
Backend Setup
cd server npm install # Create environment file cp .env.example .env # Configure your environment variables npm run dev
-
Frontend Setup
cd ../client npm install npm start
Create a .env file in the server directory:
# Database
MONGODB_URI=mongodb://localhost:27017/eventsphere
# or MongoDB Atlas: mongodb+srv://username:password@cluster.mongodb.net/eventsphere
# Authentication
JWT_SECRET=your-super-secret-jwt-key
JWT_EXPIRE=7d
# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME=your-cloudinary-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret
# Server Configuration
PORT=5000
NODE_ENV=development
# Email Service (optional)
EMAIL_SERVICE=gmail
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-passwordeventsphere/
βββ client/ # React frontend
β βββ public/
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Route components
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API calls and utilities
β β βββ store/ # Redux store configuration
β β βββ utils/ # Helper functions
β βββ package.json
βββ server/ # Express backend
β βββ controllers/ # Route handlers
β βββ middleware/ # Custom middleware
β βββ models/ # Mongoose schemas
β βββ routes/ # API routes
β βββ utils/ # Backend utilities
β βββ package.json
βββ README.md
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/profile- Get user profilePUT /api/auth/profile- Update user profile
GET /api/events- Get all events (with filtering)GET /api/events/:id- Get single eventPOST /api/events- Create new event (organizer only)PUT /api/events/:id- Update event (organizer only)DELETE /api/events/:id- Delete event (organizer only)
POST /api/bookings- Create bookingGET /api/bookings/my-bookings- Get user bookingsGET /api/bookings/event/:id- Get event bookings (organizer only)
# Backend tests
cd server
npm test
# Frontend tests
cd client
npm test- Connect your repository to your deployment platform
- Set environment variables in the platform dashboard
- Deploy with automatic builds on push
- Build the production version:
npm run build - Deploy the
buildfolder to your hosting platform - Configure environment variables for API endpoints
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Mobile App - React Native companion app
- Payment Integration - Stripe/PayPal for ticket purchases
- Live Streaming - Integration with streaming platforms
- Advanced Analytics - Detailed event performance insights
- Multi-language Support - Internationalization (i18n)
- Event Templates - Pre-designed event types and layouts
- Calendar Integration - Sync with Google Calendar, Outlook
- Social Media Integration - Auto-posting and social login
This project is licensed under the MIT License - see the LICENSE file for details.
- π§ Email: emmanuelomunizua@gmail.com chimavalentine11@gmail.com
Built with β€οΈ by the EventWave Team