A full-stack Event Discovery and Registration Platform built using the MERN stack. This application allows users to explore events, register securely, and manage their event history through a personalized dashboard.
The platform focuses on scalable backend architecture, secure authentication, dynamic filtering, and seamless user experience.
Frontend: (Add Vercel Link Here) Backend API: (Add Render/Railway Link Here)
- React.js (Functional Components + Hooks)
- React Router
- Context API (Global Authentication State)
- Axios
- Tailwind CSS / CSS Modules
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT (Authentication)
- bcryptjs (Password Hashing)
- dotenv
- CORS
- Git & GitHub
- Postman (API Testing)
- Vercel (Frontend Hosting)
- Render / Railway (Backend Hosting)
- Secure user signup with hashed passwords
- Login with JWT-based authentication
- Protected routes using middleware
- Token-based authorization for event registration
- Dynamic search using regex
- Filter by category and location
- Real-time API updates on filter change
- Responsive event grid layout
- Prevents duplicate registrations
- Enforces event capacity limit
- Backend validation before confirmation
- Registration linked via User ↔ Event relationship
-
Displays only logged-in user registrations
-
Categorized into:
- Upcoming Events (date > today)
- Past Events (date < today)
This application follows a clean separation of concerns:
Frontend → Handles UI, routing, and user interaction Backend → Handles authentication, validation, and business logic Database → Stores Users, Events, and Registrations
User 1 --- N Registration N --- 1 Event
- A user can register for multiple events
- An event can have multiple registered users
- Registration acts as a linking model
root/
├── server/
│ ├── models/
│ │ ├── User.js
│ │ ├── Event.js
│ │ └── Registration.js
│ ├── routes/
│ │ ├── authRoutes.js
│ │ └── eventRoutes.js
│ ├── middleware/
│ │ └── protect.js
│ ├── config/
│ ├── .env
│ └── server.js
│
├── client/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── context/
│ │ └── App.js
│ └── package.json
│
└── README.md
git clone https://github.com/your-username/bellcorp-event-app.git
cd bellcorp-event-appcd server
npm installCreate a .env file:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
Run backend:
npm startcd client
npm install
npm startEnsure frontend base URL points to backend server.
- User registers
- Password hashed using bcrypt
- JWT token generated on login
- Token sent in Authorization header
- Middleware verifies token before protected actions
Backend dynamically builds query object:
- Text search using
$regex - Category filtering
- Location filtering
Ensures scalable search functionality even with large collections.
All APIs tested using Postman:
- Proper status codes
- Duplicate prevention
- Capacity validation
- Token verification
- Error handling
- RESTful API design
- JWT authentication architecture
- Role-based route protection
- MongoDB schema modeling & relations
- Scalable filtering techniques
- Production-ready folder structuring
- Deployment workflow
- Payment Integration
- Email Confirmation after Registration
- Admin Panel for Event Management
- Pagination & Sorting
- Cloudinary Image Upload
- Redis Caching for faster event loading
Vasanthakumar Durairaj Full Stack Developer (MERN Stack) Passionate about building scalable and secure web applications.
If you find this project useful, consider giving it a ⭐ on GitHub. Contributions and feedback are always welcome.