π Plan β’ ποΈ Manage β’ π Experience Events Seamlessly
- Overview
- Features
- Tech Stack
- Project Structure
- Installation
- Configuration
- Running the Application
- API Documentation
- Contributing
- License
eventBy is a modern, full-stack event management platform that empowers users to discover, create, and manage events effortlessly. Built with scalability and exceptional UX in mind, it serves three distinct user roles:
- π€ Event Attendees: Discover, browse, and register for events
- π― Event Organizers: Create, manage, and analyze events
- βοΈ Administrators: Oversee platform operations and manage content
The platform combines a powerful backend API with intuitive, role-based frontends to deliver a seamless event management experience.
- β Create, update, and delete events with rich details
- β Multiple event types: Hackathons, Workshops, Expert Talks, Competitions, Meetups
- β Event rules and guidelines management
- β High-quality banner images with Cloudinary integration
- β Real-time event status tracking
- β Secure JWT-based authentication
- β Firebase authentication support
- β Role-based access control (User, Organizer, Admin)
- β User profiles with event participation history
- β Password encryption with bcryptjs
- β Browse events by categories and types
- β Advanced search and filtering
- β Trending and featured events display
- β Date-based event filtering
- β Location-based discovery
- β Razorpay payment gateway integration
- β Secure transaction handling
- β Multiple payment methods support
- β Organizer event analytics and insights
- β Attendee registration tracking
- β Performance metrics and visualizations
- β User engagement analytics
- β Fast load times with Vite bundler
- β Helmet.js for enhanced security headers
- β CORS protection
- β Real-time updates with Socket.IO
- β Image optimization with Cloudinary
| Technology | Purpose |
|---|---|
| Node.js + Express | REST API server |
| MongoDB + Mongoose | Database & ODM |
| Firebase Admin | Authentication & verification |
| JWT | Token-based authentication |
| Razorpay | Payment processing |
| Cloudinary | Image hosting & management |
| Socket.IO | Real-time communication |
| Helmet.js | Security middleware |
| Morgan | HTTP request logging |
| Technology | Purpose |
|---|---|
| React 18 | UI framework |
| Vite | Build tool & dev server |
| Tailwind CSS | Styling |
| Axios | HTTP client |
| React Context API | State management |
| Radix UI | Component library |
| Day.js | Date handling |
| Technology | Purpose |
|---|---|
| MongoDB Atlas | Cloud database |
| Firebase | Auth & real-time DB |
| Cloudinary | Cloud storage |
| Render/Heroku | API deployment |
eventBy/
βββ server/ # Backend API
β βββ config/ # Configuration files
β β βββ db.js # MongoDB connection
β β βββ firebase.js # Firebase setup
β β βββ cloudinary.js # Cloudinary setup
β βββ controllers/ # Business logic
β β βββ event/
β β βββ organiser/
β β βββ user/
β βββ models/ # MongoDB schemas
β β βββ Event.model.js
β β βββ User.model.js
β β βββ organiser.model.js
β βββ routes/ # API endpoints
β β βββ organiser/
β β βββ user/
β βββ middlewares/ # Custom middleware
β β βββ firebase.middleware.js
β β βββ organiser/auth.middleware.js
β βββ app.js # Express app setup
β βββ server.js # Server entry point
β
βββ client/ # Frontend applications
β βββ user/ # User attendee app
β β βββ src/
β β β βββ components/ # Reusable components
β β β βββ pages/ # Page components
β β β βββ context/ # Auth context
β β β βββ middleware/ # Protected routes
β β β βββ routes/ # Route definitions
β β β βββ api/ # API calls
β β β βββ utils/ # Utilities
β β βββ package.json
β βββ organizer/ # Organizer app
β β βββ src/
β β β βββ components/
β β β βββ pages/
β β β β βββ Dashboard.jsx
β β β β βββ CreateEvent.jsx
β β β β βββ EditEvent.jsx
β β β β βββ ManageEvents.jsx
β β β β βββ Analytics.jsx
β β β βββ context/
β β βββ package.json
β βββ admin/ # Admin panel
β βββ src/
β βββ package.json
β
βββ README.md
Ensure you have the following installed:
- Node.js v16+ (Download)
- npm v8+ or yarn
- MongoDB (Local or Atlas)
- Git
git clone https://github.com/sharadhkr/eventBy.git
cd eventBycd server
npm install# For user app
cd ../client/user
npm install
# For organizer app
cd ../organizer
npm install
# For admin app
cd ../admin
npm installCreate a .env file in the server/ directory:
# Server Configuration
PORT=5000
NODE_ENV=development
# Database
MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/eventBy
# Firebase
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_PRIVATE_KEY=your-private-key
FIREBASE_CLIENT_EMAIL=your-client-email
# JWT
JWT_SECRET=your-jwt-secret-key
JWT_EXPIRE=7d
# Cloudinary
CLOUDINARY_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret
# Razorpay
RAZORPAY_KEY_ID=your-razorpay-key
RAZORPAY_KEY_SECRET=your-razorpay-secret
# CORS
CLIENT_URL=http://localhost:5173Create a .env file in client/user/, client/organizer/, and client/admin/:
VITE_API_URL=http://localhost:5000/api
VITE_FIREBASE_API_KEY=your-firebase-key
VITE_FIREBASE_AUTH_DOMAIN=your-auth-domain
VITE_FIREBASE_PROJECT_ID=your-project-idPlace firebase-service-account.json in the server/ directory:
{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "key-id",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "your-email@your-project.iam.gserviceaccount.com",
"client_id": "123456789",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/..."
}cd server
npm install
npm run dev # Development mode with nodemon
# OR
node server.js # Production modeBackend will be available at: http://localhost:5000
cd client/user
npm run devUser app will be available at: http://localhost:5173
cd client/organizer
npm run devOrganizer app will be available at: http://localhost:5174
cd client/admin
npm run devAdmin app will be available at: http://localhost:5175
http://localhost:5000/api
POST /user/auth/register
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"password": "securePassword123"
}POST /user/auth/login
Content-Type: application/json
{
"email": "john@example.com",
"password": "securePassword123"
}POST /organiser/auth/register
Content-Type: application/json
{
"name": "Event Hub Co",
"email": "organizer@example.com",
"password": "securePassword123"
}POST /organiser/events/create
Authorization: Bearer <token>
Content-Type: multipart/form-data
{
"title": "Tech Summit 2024",
"description": "Annual tech conference",
"eventType": "expert-talk",
"date": "2024-04-15",
"time": "10:00",
"location": "San Francisco, CA",
"capacity": 500,
"banner": <file>
}GET /user/eventsGET /user/events/:eventIdPUT /organiser/events/:eventId
Authorization: Bearer <token>DELETE /organiser/events/:eventId
Authorization: Bearer <token>GET /user/profile
Authorization: Bearer <token>PUT /user/profile
Authorization: Bearer <token>
Content-Type: application/jsonGET /user/my-events
Authorization: Bearer <token>- β Helmet.js: HTTP header security
- β CORS: Cross-origin resource sharing protection
- β JWT Tokens: Secure stateless authentication
- β Password Hashing: bcryptjs encryption
- β Firebase Auth: Additional authentication layer
- β Input Validation: Data sanitization & validation
- β Rate Limiting: DDoS protection ready
- β Environment Variables: Sensitive data protection
cd server
npm testcd client/user
npm run build
cd ../organizer
npm run build
cd ../admin
npm run build- Vite: Lightning-fast build and HMR
- MongoDB Indexing: Optimized database queries
- Cloudinary: Image optimization & CDN delivery
- Socket.IO: Efficient real-time updates
- Lazy Loading: Component code splitting
We welcome contributions! Here's how you can help:
- 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
- Follow existing code style
- Ensure all tests pass
- Update documentation if needed
- Add meaningful commit messages
- β Core event management
- β User authentication
- β Payment integration
- β Real-time updates
- π Email notifications
- π Push notifications
- π± Mobile app
- π« QR code tickets
- πΊοΈ Enhanced location services
- π€ Live streaming support
This project is licensed under the ISC License - see the LICENSE file for details.
- Issues: GitHub Issues
- Email: sharadhkr@example.com
- Repository: eventBy GitHub
- MongoDB for robust database solutions
- Firebase for authentication
- Cloudinary for image management
- Razorpay for payment processing
- The amazing React & Node.js communities
Made with β€οΈ by the eventBy Team
β If you found this project helpful, please consider giving it a star!
- Responsive UI for all devices
- Optimized API handling
- Smooth navigation & user flow
- React.js
- Tailwind CSS
- Axios
- Node.js
- Express.js
- MongoDB (Mongoose)
- JWT-based authentication
eventby
ββ eventBy
ββ .env
ββ client
β ββ admin
β β ββ .env
β β ββ eslint.config.js
β β ββ index.html
β β ββ package-lock.json
β β ββ package.json
β β ββ public
β β β ββ vite.svg
β β ββ README.md
β β ββ src
β β β ββ api
β β β β ββ api.js
β β β β ββ dasboard.api.js
β β β β ββ organizer.js
β β β β ββ topevent.js
β β β ββ App.jsx
β β β ββ assets
β β β β ββ react.svg
β β β ββ components
β β β β ββ LineChart.jsx
β β β β ββ StatCard.jsx
β β β β ββ TopEventSlot.jsx
β β β ββ context
β β β β ββ admin.jsx
β β β β ββ dashboard.jsx
β β β β ββ Topevent.jsx
β β β ββ index.css
β β β ββ layout
β β β β ββ AdminLayout.jsx
β β β ββ main.jsx
β β β ββ middleware
β β β β ββ protected.jsx
β β β ββ pages
β β β ββ AdminDashboard.jsx
β β β ββ AdminOrganisers.jsx
β β β ββ Login.jsx
β β β ββ Topevents.jsx
β β ββ vite.config.js
β ββ organizer
β β ββ .env
β β ββ eslint.config.js
β β ββ index.html
β β ββ package-lock.json
β β ββ package.json
β β ββ public
β β β ββ vite.svg
β β ββ README.md
β β ββ src
β β β ββ api
β β β β ββ api.js
β β β β ββ event.api.js
β β β ββ App.css
β β β ββ App.jsx
β β β ββ assets
β β β β ββ react.svg
β β β ββ components
β β β β ββ EventCard.jsx
β β β β ββ Loading.jsx
β β β β ββ NavBar.jsx
β β β β ββ OrganiserDisabled.jsx
β β β ββ components copy
β β β β ββ EventCard.jsx
β β β β ββ Loading.jsx
β β β β ββ NavBar.jsx
β β β β ββ OrganiserDisabled.jsx
β β β ββ context
β β β β ββ organiser.auth.context.jsx
β β β ββ context copy
β β β β ββ organiser.auth.context.jsx
β β β ββ index.css
β β β ββ layouts
β β β β ββ NavLayout.jsx
β β β ββ main.jsx
β β β ββ middleware
β β β β ββ OrganiserProtectedRoute.jsx
β β β ββ pages
β β β β ββ Analytics.jsx
β β β β ββ CreateEvent.jsx
β β β β ββ Dashboard.jsx
β β β β ββ EditEvent.jsx
β β β β ββ EditProfile.jsx
β β β β ββ EventAnnouncements.jsx
β β β β ββ Login.jsx
β β β β ββ ManageEvents.jsx
β β β β ββ Register.jsx
β β β β ββ Settings.jsx
β β β ββ pages copy
β β β β ββ Analytics.jsx
β β β β ββ CreateEvent.jsx
β β β β ββ Dashboard.jsx
β β β β ββ EditEvent.jsx
β β β β ββ EditProfile.jsx
β β β β ββ EventAnnouncements.jsx
β β β β ββ Login.jsx
β β β β ββ ManageEvents.jsx
β β β β ββ Register.jsx
β β β β ββ Settings.jsx
β β β ββ routes
β β β ββ index.jsx
β β ββ vite.config.js
β ββ user
β ββ .env
β ββ components.json
β ββ eslint.config.js
β ββ index.html
β ββ package-lock.json
β ββ package.json
β ββ public
β β ββ vite.svg
β ββ README.md
β ββ src
β β ββ App.jsx
β β ββ assets
β β β ββ bg.jpg
β β β ββ loading.gif
β β β ββ loading.mp4
β β β ββ logo.png
β β ββ components
β β β ββ CreateTeamWizard.jsx
β β β ββ Datefilter.jsx
β β β ββ Editprofile.jsx
β β β ββ EventCard.jsx
β β β ββ events
β β β β ββ AnnouncementFeed.jsx
β β β β ββ JoinedEventCard.jsx
β β β β ββ RecommendedEventCard.jsx
β β β ββ Home
β β β β ββ Backgound.jsx
β β β ββ JoinedEvents.jsx
β β β ββ Loading.jsx
β β β ββ MiniStats.jsx
β β β ββ NavBar.jsx
β β β ββ ProfileHeader.jsx
β β β ββ TeamInvites.jsx
β β β ββ TeamsList.jsx
β β β ββ Topbar.jsx
β β β ββ TopEvent.jsx
β β β ββ Topevents.jsx
β β β ββ Toporganiser.jsx
β β β ββ ui
β β β β ββ avatar.tsx
β β β β ββ button.tsx
β β β β ββ card.tsx
β β β β ββ drawer.tsx
β β β β ββ separator.tsx
β β β β ββ skeleton.tsx
β β β β ββ tabs.tsx
β β β ββ UserProfileHero.jsx
β β ββ context
β β β ββ auth.context.jsx
β β ββ index.css
β β ββ layouts
β β β ββ NavLayout.jsx
β β ββ lib
β β β ββ api.js
β β β ββ socket.js
β β β ββ utils.ts
β β ββ main.jsx
β β ββ middleware
β β β ββ ProtectedRoute.jsx
β β ββ pages
β β β ββ auth
β β β β ββ Login.jsx
β β β ββ dashboard
β β β β ββ Profile.jsx
β β β ββ EditProfilepage.jsx
β β β ββ EventMapPage.jsx
β β β ββ Home.jsx
β β β ββ JoinEventPage.jsx
β β β ββ profile
β β β β ββ ProfilePage.jsx
β β β ββ UserEvents.jsx
β β ββ routes
β β β ββ index.jsx
β β ββ utils
β β ββ firebase.js
β ββ tsconfig.app.json
β ββ tsconfig.json
β ββ tsconfig.node.json
β ββ vite.config.js
ββ readme.MD
ββ server
ββ .env
ββ app.js
ββ config
β ββ cloudinary.js
β ββ db.js
β ββ firebase.js
β ββ rajorpay.js
ββ controllers
β ββ admin
β β ββ auth.controller.js
β β ββ dashboard.controller.js
β β ββ organiser.controller.js
β β ββ topevent.controller.js
β ββ event
β β ββ controller.js
β ββ organiser
β β ββ auth.controller.js
β ββ user
β ββ auth.controller.js
β ββ Teamcontroller.js
β ββ user.controller.js
ββ firebase-service-account.json
ββ middlewares
β ββ admin
β β ββ auth.middleware.js
β ββ firebase.middleware.js
β ββ organiser
β ββ auth.middleware.js
ββ models
β ββ admin.model.js
β ββ Announcement.model.js
β ββ Event.model.js
β ββ Event.participation.model.js
β ββ Event.pass.model.js
β ββ Notification.model.js
β ββ organiser.model.js
β ββ Payment.model.js
β ββ team.model.js
β ββ Top.event.js
β ββ User.model.js
ββ package-lock.json
ββ package.json
ββ routes
β ββ admin
β β ββ auth.router.js
β β ββ dashboard.routes.js
β β ββ organizer.routes.js
β β ββ Top.event.router.js
β ββ organiser
β β ββ auth.routes.js
β β ββ Event.routes.js
β ββ user
β ββ auth.routes.js
β ββ Payment.routes.js
β ββ Team.routes.js
ββ server.js
ββ socket
β ββ index.js
ββ utils
ββ autoVerifyOrganiser.js
ββ Genrate.pass.js
git clone https://github.com/sharadhkr/eventBy.git
cd eventBycd frontend && npm install
cd ../backend && npm installCreate .env in backend:
MONGO_URI=your_mongo_uri
JWT_SECRET=your_secret# backend
npm run dev
# frontend
npm startAdd screenshots here to showcase UI π
- ποΈ Ticket booking system
- π³ Payment integration
- π Map-based event discovery
- π± Mobile app version
Contributions are welcome! Fork the repo and create a PR π
Sharad Rathore π Full Stack Developer
If you like this project:
π Star β the repo π Share with others
βeventBy simplifies event management into a seamless digital experience.β
