A modern, full-stack event management platform for seamless event discovery, registration, and hosting
- Overview
- Features
- Tech Stack
- Project Structure
- Getting Started
- API Documentation
- Architecture
- Screenshots
- Contributing
- License
Event Hub is a comprehensive event management platform designed for colleges and organizations to streamline event hosting and participation. The platform provides a dual-interface system catering to both event hosts (organizers/admins) and regular users (participants), offering role-based dashboards with tailored features for each user type.
Built with the MERN stack (MongoDB, Express.js, React, Node.js) and styled with Tailwind CSS, Event Hub offers a modern, responsive, and intuitive user experience.
- π Secure Authentication - JWT-based authentication with protected routes
- π Event Discovery - Browse and search through all available events
- π« Event Registration - Quick and easy event registration process
- π± Personal Dashboard - View registered events and manage participation
- π Advanced Search - Filter events by categories, date, and location
- π Dark Mode Support - Toggle between light and dark themes
- π§ Notifications - Stay updated on event changes and reminders
- βοΈ Event Creation - Create events with rich details, images, and categories
- πΌοΈ Image Upload - Upload event banners and promotional images
- π Event Management - Full CRUD operations on hosted events
- π Participant Tracking - View registered participants for events
- π Dashboard Analytics - Overview of hosted events and registrations
- β Real-time Updates - Instant updates on event registrations
- π± Responsive Design - Works seamlessly across all devices
- π API Interceptors - Centralized request handling with automatic token injection
- π¨ Modern UI/UX - Beautiful interface with Framer Motion animations
- π Protected Routes - Role-based access control
- π RESTful API - Well-structured backend API
- β‘ Fast Performance - Optimized with Vite for lightning-fast development
| Technology | Version | Purpose |
|---|---|---|
| React | 19.0.0 | UI framework |
| Vite | 6.2.0 | Build tool and dev server |
| Tailwind CSS | 4.1.3 | Utility-first CSS framework |
| React Router | 7.5.0 | Client-side routing |
| Axios | 1.8.4 | HTTP client with interceptors |
| Framer Motion | 12.6.3 | Animation library |
| Zustand | 5.0.3 | State management |
| Radix UI | - | Headless UI components |
| Lucide React | 0.487.0 | Icon library |
| Technology | Version | Purpose |
|---|---|---|
| Node.js | - | JavaScript runtime |
| Express.js | 5.1.0 | Web framework |
| MongoDB | - | NoSQL database |
| Mongoose | 8.13.2 | MongoDB ODM |
| JWT | 9.0.2 | Authentication tokens |
| bcryptjs | 3.0.2 | Password hashing |
| Multer | 1.4.5 | File upload handling |
| CORS | 2.8.5 | Cross-origin resource sharing |
Event-Hub/
βββ event-registration-backend/
β βββ config/ # Database and configuration files
β βββ controllers/ # Request handlers (auth, events, registrations)
β βββ middleware/ # Authentication middleware
β βββ models/ # Mongoose schemas (User, Event, Registration)
β βββ routes/ # API route definitions
β βββ uploads/ # Uploaded event images
β βββ utils/ # Utility functions
β βββ server.js # Main server file
β βββ .env.example # Environment variables template
β βββ package.json # Backend dependencies
β
βββ event-registration-frontend/
βββ public/ # Static assets
βββ src/
β βββ api/ # Axios instance and API configuration
β βββ components/ # Reusable React components
β β βββ ui/ # UI components (buttons, cards, dialogs)
β β βββ Navbar.jsx
β β βββ Footer.jsx
β β βββ EventCard.jsx
β β βββ ...
β βββ context/ # React context providers
β βββ pages/ # Page components
β β βββ admin/ # Admin/Host dashboard pages
β β βββ user/ # User dashboard pages
β β βββ Home.jsx
β β βββ Login.jsx
β β βββ ...
β βββ utils/ # Utility functions
β βββ App.jsx # Main app component with routing
β βββ main.jsx # Application entry point
βββ .env.example # Environment variables template
βββ vite.config.js # Vite configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ package.json # Frontend dependencies
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher) - Download
- MongoDB - Download or use MongoDB Atlas
- npm or yarn package manager
- Clone the repository
git clone https://github.com/Sherin-2711/Event-Hub.git
cd Event-Hub- Install backend dependencies
cd event-registration-backend
npm install- Install frontend dependencies
cd ../event-registration-frontend
npm installCreate a .env file in the event-registration-backend directory:
PORT=5000
MONGO_URI=mongodb://localhost:27017/eventhub
# Or use MongoDB Atlas:
# MONGO_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/eventhub
JWT_SECRET=your_super_secret_jwt_key_here_change_this_in_productionπ‘ Tip: Use
.env.exampleas a template
Create a .env file in the event-registration-frontend directory:
VITE_API_URL=http://localhost:5000Terminal 1 - Start Backend Server:
cd event-registration-backend
npm run dev
# Server will run on http://localhost:5000Terminal 2 - Start Frontend Dev Server:
cd event-registration-frontend
npm run dev
# Frontend will run on http://localhost:5173Backend (Production):
cd event-registration-backend
npm startFrontend (Build):
cd event-registration-frontend
npm run build
npm run preview- Component-based architecture with React
- API interceptors for centralized token management
- Protected routes using custom
ProtectedRoutecomponent - State management with Zustand
- Responsive design using Tailwind CSS and mobile-first approach
- MVC pattern with controllers, models, and routes
- JWT-based authentication middleware
- RESTful API design with proper HTTP methods
- File upload handling with Multer
- MongoDB database with Mongoose ODM
- π Password hashing with bcrypt (10 salt rounds)
- π« JWT token-based authentication
- π‘οΈ Protected API routes with auth middleware
- π CORS configuration for secure cross-origin requests
- β Input validation and sanitization
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Add comments for complex logic
- Test your changes before submitting PR
- Update documentation if needed
- React community for excellent documentation
- MongoDB team for the powerful database
- Tailwind CSS for the amazing utility-first framework
- All contributors who help improve this project
β Star this repository if you find it helpful!