Skip to content
sharaddhPublic

About

A event hosting

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

89 Commits

Folders and files

Repository files navigation

πŸŽ‰ eventBy β€” Smart Event Management Platform

eventBy Banner

πŸ“… Plan β€’ 🎟️ Manage β€’ πŸš€ Experience Events Seamlessly


πŸ“‹ Table of Contents


🧠 Overview

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.


✨ Key Features

🎟️ Event Management

  • βœ… 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

πŸ‘₯ User System & Authentication

  • βœ… Secure JWT-based authentication
  • βœ… Firebase authentication support
  • βœ… Role-based access control (User, Organizer, Admin)
  • βœ… User profiles with event participation history
  • βœ… Password encryption with bcryptjs

πŸ” Event Discovery & Search

  • βœ… Browse events by categories and types
  • βœ… Advanced search and filtering
  • βœ… Trending and featured events display
  • βœ… Date-based event filtering
  • βœ… Location-based discovery

πŸ’³ Payment Integration

  • βœ… Razorpay payment gateway integration
  • βœ… Secure transaction handling
  • βœ… Multiple payment methods support

πŸ“Š Analytics & Dashboard

  • βœ… Organizer event analytics and insights
  • βœ… Attendee registration tracking
  • βœ… Performance metrics and visualizations
  • βœ… User engagement analytics

⚑ Performance & Security

  • βœ… Fast load times with Vite bundler
  • βœ… Helmet.js for enhanced security headers
  • βœ… CORS protection
  • βœ… Real-time updates with Socket.IO
  • βœ… Image optimization with Cloudinary

πŸ› οΈ Tech Stack

Backend

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

Frontend (Client)

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

Infrastructure

Technology Purpose
MongoDB Atlas Cloud database
Firebase Auth & real-time DB
Cloudinary Cloud storage
Render/Heroku API deployment

πŸ“ Project Structure

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


πŸš€ Installation

Prerequisites

Ensure you have the following installed:

  • Node.js v16+ (Download)
  • npm v8+ or yarn
  • MongoDB (Local or Atlas)
  • Git

Step 1: Clone the Repository

git clone https://github.com/sharadhkr/eventBy.git
cd eventBy

Step 2: Backend Setup

cd server
npm install

Step 3: Frontend Setup

# For user app
cd ../client/user
npm install

# For organizer app
cd ../organizer
npm install

# For admin app
cd ../admin
npm install

βš™οΈ Configuration

Backend Configuration

Create 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:5173

Frontend Configuration

Create 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-id

Firebase Service Account

Place 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/..."
}

πŸƒ Running the Application

Start Backend Server

cd server
npm install
npm run dev    # Development mode with nodemon
# OR
node server.js # Production mode

Backend will be available at: http://localhost:5000

Start User App (Frontend)

cd client/user
npm run dev

User app will be available at: http://localhost:5173

Start Organizer App

cd client/organizer
npm run dev

Organizer app will be available at: http://localhost:5174

Start Admin App

cd client/admin
npm run dev

Admin app will be available at: http://localhost:5175


πŸ“š API Documentation

Base URL

http://localhost:5000/api

Authentication Endpoints

Register User

POST /user/auth/register
Content-Type: application/json

{
  "name": "John Doe",
  "email": "john@example.com",
  "password": "securePassword123"
}

Login User

POST /user/auth/login
Content-Type: application/json

{
  "email": "john@example.com",
  "password": "securePassword123"
}

Organizer Register

POST /organiser/auth/register
Content-Type: application/json

{
  "name": "Event Hub Co",
  "email": "organizer@example.com",
  "password": "securePassword123"
}

Event Endpoints

Create Event (Organizer)

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 All Events

GET /user/events

Get Event Details

GET /user/events/:eventId

Update Event (Organizer)

PUT /organiser/events/:eventId
Authorization: Bearer <token>

Delete Event (Organizer)

DELETE /organiser/events/:eventId
Authorization: Bearer <token>

User Endpoints

Get User Profile

GET /user/profile
Authorization: Bearer <token>

Update User Profile

PUT /user/profile
Authorization: Bearer <token>
Content-Type: application/json

Get User Events

GET /user/my-events
Authorization: Bearer <token>

πŸ” Security Features

  • βœ… 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

πŸ§ͺ Testing

Run Tests (Backend)

cd server
npm test

Build Frontend for Production

cd client/user
npm run build

cd ../organizer
npm run build

cd ../admin
npm run build

πŸ“ˆ Performance Optimization

  • 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

🀝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style
  • Ensure all tests pass
  • Update documentation if needed
  • Add meaningful commit messages

πŸ› Known Issues & Roadmap

Current Version

  • βœ… Core event management
  • βœ… User authentication
  • βœ… Payment integration
  • βœ… Real-time updates

Planned Features

  • πŸ“‹ Email notifications
  • πŸ”” Push notifications
  • πŸ“± Mobile app
  • 🎫 QR code tickets
  • πŸ—ΊοΈ Enhanced location services
  • 🎀 Live streaming support

πŸ“„ License

This project is licensed under the ISC License - see the LICENSE file for details.


πŸ“ž Support & Contact


πŸ™Œ Acknowledgments

  • 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

πŸ—οΈ Tech Stack

πŸ–₯️ Frontend

  • React.js
  • Tailwind CSS
  • Axios

βš™οΈ Backend

  • Node.js
  • Express.js
  • MongoDB (Mongoose)

πŸ” Authentication

  • JWT-based authentication

πŸ“‚ Project Structure

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


πŸš€ Getting Started

1️⃣ Clone the Repository

git clone https://github.com/sharadhkr/eventBy.git
cd eventBy

2️⃣ Install Dependencies

cd frontend && npm install
cd ../backend && npm install

3️⃣ Setup Environment Variables

Create .env in backend:

MONGO_URI=your_mongo_uri
JWT_SECRET=your_secret

4️⃣ Run the App

# backend
npm run dev

# frontend
npm start

πŸ“Έ Screenshots

Add screenshots here to showcase UI πŸš€


πŸ§ͺ Future Enhancements

  • 🎟️ Ticket booking system
  • πŸ’³ Payment integration
  • πŸ“ Map-based event discovery
  • πŸ“± Mobile app version

🀝 Contributing

Contributions are welcome! Fork the repo and create a PR πŸš€


πŸ‘¨β€πŸ’» Author

Sharad Rathore πŸš€ Full Stack Developer


⭐ Support

If you like this project:

πŸ‘‰ Star ⭐ the repo πŸ‘‰ Share with others


⚑ Final Thought

β€œeventBy simplifies event management into a seamless digital experience.”

About

A event hosting

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages