A full-stack web application for college event registration built with React, Node.js, Express, and MongoDB.
- User Authentication: Secure registration and login system
- Event Management: Browse, search, and filter events
- Event Registration: Register for events with real-time availability
- User Dashboard: View and manage registrations
- Responsive Design: Mobile-friendly interface
- Real-time Updates: Live registration counts and status
- Dashboard Analytics: Comprehensive statistics and charts
- User Management: View, edit, and manage user accounts
- Event Management: Create, edit, and delete events
- Registration Management: Monitor and manage all registrations
- Real-time Monitoring: Live updates on system activity
- Node.js & Express.js
- MongoDB with Mongoose
- JWT Authentication
- bcryptjs for password hashing
- Express Rate Limiting
- CORS enabled
- React 19
- React Router DOM
- Tailwind CSS
- React Hot Toast
- Axios for API calls
- React Icons
- Node.js (v16 or higher)
- MongoDB (local or MongoDB Atlas)
- npm or yarn
- Navigate to the backend directory:
cd backend- Install dependencies:
npm install- Create environment file:
cp env.example .env- Update the
.envfile with your configuration:
PORT=5000
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/college-events
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
JWT_EXPIRE=7d
FRONTEND_URL=http://localhost:5173- Start the backend server:
npm run dev- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Create environment file:
echo "VITE_API_URL=http://localhost:5000/api" > .env.local- Start the frontend development server:
npm run dev- Navigate to the admin panel directory:
cd admin-panel- Install dependencies:
npm install- Create environment file:
echo "VITE_API_URL=http://localhost:5000/api" > .env.local- Start the admin panel development server:
npm run devTo populate the database with sample events:
cd backend
npm run seedThis will create sample events for testing.
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/me- Get current userPUT /api/auth/profile- Update user profilePUT /api/auth/change-password- Change password
GET /api/events- Get all events (with pagination and filters)GET /api/events/:id- Get single eventGET /api/events/featured- Get featured eventsGET /api/events/categories- Get event categoriesGET /api/events/colleges- Get collegesGET /api/events/:id/registration-status- Check registration status
POST /api/register/:eventId- Register for eventGET /api/register/my-registrations- Get user registrationsDELETE /api/register/:id- Cancel registration
- Register/Login: Create an account or login
- Browse Events: View all available events with filtering options
- Event Details: Click on any event to view detailed information
- Register: Register for events you're interested in
- Manage Registrations: View and cancel your registrations
- Login: Access admin panel with admin credentials
- Dashboard: View system statistics and analytics
- User Management: Manage user accounts and permissions
- Event Management: Create, edit, and manage events
- Registration Monitoring: Monitor and manage all registrations
cd backend
npm run dev # Starts with nodemon for auto-restartcd frontend
npm run dev # Starts Vite development servercd backend
npm startcd frontend
npm run build├── backend/
│ ├── controllers/ # Route controllers
│ ├── middleware/ # Custom middleware
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── utils/ # Utility functions
│ └── server.js # Main server file
├── frontend/
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── context/ # React context
│ │ ├── layouts/ # Layout components
│ │ ├── pages/ # Page components
│ │ └── services/ # API services
│ └── public/ # Static assets
└── README.md
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
For support, please open an issue in the repository or contact the development team.