Skip to content

Repository files navigation

Event Registration System

A full-stack web application for college event registration built with React, Node.js, Express, and MongoDB.

Features

Student Portal

  • 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

Admin Panel

  • 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

Tech Stack

Backend

  • Node.js & Express.js
  • MongoDB with Mongoose
  • JWT Authentication
  • bcryptjs for password hashing
  • Express Rate Limiting
  • CORS enabled

Frontend

  • React 19
  • React Router DOM
  • Tailwind CSS
  • React Hot Toast
  • Axios for API calls
  • React Icons

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB (local or MongoDB Atlas)
  • npm or yarn

Installation

Backend Setup

  1. Navigate to the backend directory:
cd backend
  1. Install dependencies:
npm install
  1. Create environment file:
cp env.example .env
  1. Update the .env file 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
  1. Start the backend server:
npm run dev

Frontend Setup

  1. Navigate to the frontend directory:
cd frontend
  1. Install dependencies:
npm install
  1. Create environment file:
echo "VITE_API_URL=http://localhost:5000/api" > .env.local
  1. Start the frontend development server:
npm run dev

Admin Panel Setup

  1. Navigate to the admin panel directory:
cd admin-panel
  1. Install dependencies:
npm install
  1. Create environment file:
echo "VITE_API_URL=http://localhost:5000/api" > .env.local
  1. Start the admin panel development server:
npm run dev

Database Setup

Seed Sample Data

To populate the database with sample events:

cd backend
npm run seed

This will create sample events for testing.

API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • GET /api/auth/me - Get current user
  • PUT /api/auth/profile - Update user profile
  • PUT /api/auth/change-password - Change password

Events

  • GET /api/events - Get all events (with pagination and filters)
  • GET /api/events/:id - Get single event
  • GET /api/events/featured - Get featured events
  • GET /api/events/categories - Get event categories
  • GET /api/events/colleges - Get colleges
  • GET /api/events/:id/registration-status - Check registration status

Registrations

  • POST /api/register/:eventId - Register for event
  • GET /api/register/my-registrations - Get user registrations
  • DELETE /api/register/:id - Cancel registration

Usage

Student Portal

  1. Register/Login: Create an account or login
  2. Browse Events: View all available events with filtering options
  3. Event Details: Click on any event to view detailed information
  4. Register: Register for events you're interested in
  5. Manage Registrations: View and cancel your registrations

Admin Panel

  1. Login: Access admin panel with admin credentials
  2. Dashboard: View system statistics and analytics
  3. User Management: Manage user accounts and permissions
  4. Event Management: Create, edit, and manage events
  5. Registration Monitoring: Monitor and manage all registrations

Development

Backend Development

cd backend
npm run dev  # Starts with nodemon for auto-restart

Frontend Development

cd frontend
npm run dev  # Starts Vite development server

Building for Production

Backend

cd backend
npm start

Frontend

cd frontend
npm run build

Project Structure

├── 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

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

This project is licensed under the MIT License.

Support

For support, please open an issue in the repository or contact the development team.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages