Skip to content

omkarhole/Alumni-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

212 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ Alumni Management System

A comprehensive web application to manage alumni connections, events, job postings, and foster community engagement.

πŸ“‘ Table of Contents

πŸ“– About

The Alumni Management System is a full-stack web application designed to help educational institutions maintain strong relationships with their graduates. It bridges the gap between alumni and their alma mater by providing a centralized platform for networking, career development, and community engagement.

🎯 Target Users

  • Educational Institutions - Schools, colleges, and universities looking to maintain alumni relations
  • Alumni - Graduates seeking networking opportunities, career resources, and community connection
  • Students - Current students looking for mentorship and job opportunities
  • Administrators - Staff managing alumni data, events, and platform content

πŸ’‘ Use Cases

  • Alumni Networking - Connect graduates across different batches and courses
  • Career Development - Post and apply for job opportunities within the alumni community
  • Event Management - Organize reunions, webinars, and networking events
  • Knowledge Sharing - Forum discussions for mentorship and advice
  • Institutional Updates - Share news, achievements, and announcements

πŸ› οΈ Tech Stack

Frontend

  • βš›οΈ React 18 - Modern UI library with hooks and functional components
  • ⚑ Vite - Fast build tool and development server
  • 🎨 Tailwind CSS - Utility-first CSS framework for responsive design
  • πŸ”„ React Router DOM - Client-side routing
  • πŸ“± Bootstrap 5 - Additional UI components
  • πŸ”” React Toastify - Notification system

Backend

  • 🟒 Node.js - JavaScript runtime environment
  • πŸš€ Express.js - Web application framework
  • πŸƒ MongoDB - NoSQL document database
  • πŸ—‚οΈ Mongoose - MongoDB object modeling
  • πŸ” JWT - JSON Web Token authentication
  • πŸ“ Multer - File upload handling
  • πŸ›‘οΈ Bcrypt - Password hashing

Development Tools

  • πŸ“¦ npm - Package management
  • πŸ”„ Nodemon - Development auto-restart
  • πŸ” ESLint - Code linting
  • πŸ“ Prettier - Code formatting

✨ Features

πŸ” Authentication & Authorization

  • Secure user registration and login
  • JWT-based authentication with HTTP-only cookies
  • Role-based access control (Admin, Alumni, Student)

πŸ‘₯ User Management

  • Alumni directory with search and filter capabilities
  • User profiles with professional information
  • Account management and settings

πŸ“… Events Management

  • Create, edit, and manage alumni events
  • Event registration and attendance tracking
  • Calendar view of upcoming events

πŸ’Ό Career Portal

  • Job posting and application system
  • Resume/CV upload functionality
  • Application tracking for employers and applicants

πŸ’¬ Community Features

  • Forum discussions with topic creation
  • Comment system for engagement
  • Gallery for event photos and memories

βš™οΈ Admin Dashboard

  • Comprehensive analytics and statistics
  • User management and moderation
  • Content management system
  • System settings configuration

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

Required Software

Optional Tools

  • Git - For cloning the repository
  • MongoDB Compass - GUI for MongoDB (recommended)
  • VS Code - Recommended IDE with extensions:
    • ESLint
    • Prettier
    • MongoDB for VS Code

Verify Installation

node --version    # Should show v18.0.0 or higher
npm --version     # Should show v9.0.0 or higher
mongod --version  # Should show v6.0 or higher (if using local MongoDB)

πŸ“ Project Structure

Alumni-Management-System/
β”œβ”€β”€ πŸ“‚ backend/                 # Node.js + Express backend
β”‚   β”œβ”€β”€ πŸ“‚ config/             # Configuration files
β”‚   β”‚   └── config.js          # Database configuration
β”‚   β”œβ”€β”€ πŸ“‚ controllers/        # Route controllers
β”‚   β”‚   β”œβ”€β”€ auth.controller.js
β”‚   β”‚   β”œβ”€β”€ oauth.controller.js
β”‚   β”‚   β”œβ”€β”€ user.controller.js
β”‚   β”‚   β”œβ”€β”€ alumni.controller.js
β”‚   β”‚   β”œβ”€β”€ event.controller.js
β”‚   β”‚   β”œβ”€β”€ career.controller.js
β”‚   β”‚   β”œβ”€β”€ forum.controller.js
β”‚   β”‚   β”œβ”€β”€ gallery.controller.js
β”‚   β”‚   β”œβ”€β”€ settings.controller.js
β”‚   β”‚   └── dashboard.controller.js
β”‚   β”œβ”€β”€ πŸ“‚ models/             # Mongoose models
β”‚   β”‚   β”œβ”€β”€ User.model.js
β”‚   β”‚   β”œβ”€β”€ Course.model.js
β”‚   β”‚   β”œβ”€β”€ Career.model.js
β”‚   β”‚   β”œβ”€β”€ Event.model.js
β”‚   β”‚   β”œβ”€β”€ ForumTopic.model.js
β”‚   β”‚   β”œβ”€β”€ Gallery.model.js
β”‚   β”‚   └── SystemSetting.model.js
β”‚   β”œβ”€β”€ πŸ“‚ middlewares/        # Express middlewares
β”‚   β”‚   β”œβ”€β”€ auth.middleware.js
β”‚   β”‚   └── error.middleware.js
β”‚   β”œβ”€β”€ πŸ“‚ routes/             # API routes
β”‚   β”œβ”€β”€ πŸ“‚ utils/              # Utility functions
β”‚   β”œβ”€β”€ πŸ“‚ public/             # Static files (avatars, images)
β”‚   β”œβ”€β”€ server.js              # Main server entry point
β”‚   β”œβ”€β”€ package.json           # Backend dependencies
β”‚   └── .env                   # Environment variables (create this)
β”‚
β”œβ”€β”€ πŸ“‚ frontend/               # React + Vite frontend
β”‚   β”œβ”€β”€ πŸ“‚ src/
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ components/    # React components
β”‚   β”‚   β”‚   β”œβ”€β”€ Home.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Login.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Signup.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ About.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AlumniList.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Careers.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Forum.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Gallery.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ MyAccount.jsx
β”‚   β”‚   β”‚   └── manage/       # Management components
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ admin/         # Admin panel components
β”‚   β”‚   β”‚   β”œβ”€β”€ Dashboard.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AdminUsers.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AdminAlumni.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AdminEvents.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AdminJobs.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AdminForum.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AdminGallery.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AdminSettings.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Header.jsx
β”‚   β”‚   β”‚   └── Sidebar.jsx
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ students/      # Student portal components
β”‚   β”‚   β”‚   β”œβ”€β”€ StudentDashboard.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ StudentHome.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ StudentEvents.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ StudentJobs.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ StudentForum.jsx
β”‚   β”‚   β”‚   └── StudentProfile.jsx
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ assets/        # Static assets (images, CSS)
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ utils/         # Utility functions
β”‚   β”‚   β”œβ”€β”€ App.jsx           # Main app component
β”‚   β”‚   β”œβ”€β”€ AuthContext.jsx   # Authentication context
β”‚   β”‚   β”œβ”€β”€ ThemeContext.jsx  # Theme context
β”‚   β”‚   └── main.jsx          # Entry point
β”‚   β”œβ”€β”€ index.html            # HTML template
β”‚   β”œβ”€β”€ package.json          # Frontend dependencies
β”‚   β”œβ”€β”€ vite.config.js        # Vite configuration
β”‚   └── tailwind.config.js    # Tailwind CSS configuration
β”‚
└── README.md                 # This file

πŸš€ Getting Started

Follow these step-by-step instructions to set up and run the project locally.

Step 1: Clone the Repository

git clone <repository-url>
cd Alumni-Management-System

Step 2: Environment Setup

Backend Environment Variables

Create a .env file in the backend/ directory:

cd backend
touch .env  # On Windows: type nul > .env

Add the following environment variables to backend/.env:

# Server Configuration
PORT=5000
NODE_ENV=development

# MongoDB Configuration
MONGODB_URI=mongodb://localhost:27017/alumni_management
# For MongoDB Atlas, use:
# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/alumni_management

# JWT Configuration
JWT_SECRET=your_super_secret_jwt_key_change_this_in_production
JWT_EXPIRE=7d

# Frontend URL (for CORS)
FRONTEND_URL=http://localhost:5173

# Optional: Cloud image storage (avatars + gallery)
# If these are not set, uploads are stored locally under backend/public
# CLOUDINARY_CLOUD_NAME=your-cloud-name
# CLOUDINARY_API_KEY=your-api-key
# CLOUDINARY_API_SECRET=your-api-secret
# CLOUDINARY_FOLDER=alumni-management-system

# Optional: Email Configuration (for future email features)
# EMAIL_SERVICE=gmail
# EMAIL_USER=your-email@gmail.com
# EMAIL_PASS=your-app-password

# Optional: Google Oauth
GOOGLE_CLIENT_ID=your_google_oauth_client_id
GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret

Important: Replace your_super_secret_jwt_key_change_this_in_production with a strong, random string for JWT signing.

Frontend Environment Variables (Optional)

If you need to configure the API URL, create a .env file in the frontend/ directory:

cd frontend
touch .env  # On Windows: type nul > .env

Add to frontend/.env:

VITE_API_URL=http://localhost:5000

Step 3: Backend Setup

# Navigate to backend directory
cd backend

# Install dependencies
npm install

# Start MongoDB (if using local MongoDB)
# On Windows: net start MongoDB
# On macOS/Linux: sudo systemctl start mongod

# Run database migration (if migrating from MySQL or setting up initial data)
npm run migrate

# Start the development server
npm run dev
# Or for production: npm start

The backend server will start on http://localhost:5000

Verify Backend is Running:

  • Open browser: http://localhost:5000
  • You should see: "server is running fine"

Step 4: Frontend Setup

Open a new terminal window/tab:

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Start the development server
npm run dev

The frontend will start on http://localhost:5173

Access the Application:

  • Open browser: http://localhost:5173
  • Default admin credentials (if seeded): Check migration data or create new account

Step 5: Verify Installation

Test the following endpoints and features:

  1. Homepage - http://localhost:5173 loads without errors
  2. Login - Can access login page and authenticate
  3. Admin Panel - Access admin dashboard at /admin
  4. API Health - http://localhost:5000 returns success message

πŸ“š API Documentation

The backend exposes RESTful APIs. Key endpoints include:

Authentication

  • POST /auth/login - User login
  • POST /auth/signup - User registration
  • POST /auth/logout - User logout

Admin APIs

  • GET /api/admin/users - Get all users
  • GET /api/admin/alumni - Get alumni directory
  • GET /api/admin/events - Get events
  • GET /api/admin/careers - Get job postings
  • GET /api/admin/forums - Get forum topics
  • GET /api/admin/dashboard/counts - Get dashboard statistics

Student APIs

  • GET /api/student/profile - Get student profile
  • GET /api/student/events - Get student events
  • GET /api/student/jobs - Get available jobs

For detailed API documentation, refer to backend/API_CHANGES.md and backend/QUICK_START.md.

🀝 Contributing

We welcome contributions from the community! Here's how you can contribute:

Getting Started

  1. Fork the Repository

    • Click the "Fork" button on GitHub
    • Clone your fork: git clone https://github.com/your-username/Alumni-Management-System.git
  2. Create a Branch

    git checkout -b feature/your-feature-name
    # or
    git checkout -b fix/your-bug-fix-name
  3. Make Your Changes

    • Write clean, documented code
    • Follow the existing code style
    • Add comments where necessary
    • Update README if needed
  4. Test Your Changes

    # Run backend tests (if available)
    cd backend && npm test
    
    # Run frontend linting
    cd frontend && npm run lint
  5. Commit Your Changes

    git add .
    git commit -m "feat: add new feature description"
    # or
    git commit -m "fix: resolve bug description"
  6. Push and Create Pull Request

    git push origin feature/your-feature-name
    • Go to GitHub and create a Pull Request
    • Describe your changes in detail
    • Link any related issues

Code Style Guidelines

  • JavaScript/React: Follow ESLint configuration
  • Naming: Use camelCase for variables, PascalCase for components
  • Comments: Add JSDoc comments for functions
  • Commits: Use conventional commit messages (feat:, fix:, docs:, style:, refactor:, test:, chore:)

Reporting Issues

If you find a bug or have a suggestion:

  1. Check if the issue already exists
  2. Create a new issue with:
    • Clear title and description
    • Steps to reproduce (for bugs)
    • Expected vs actual behavior
    • Screenshots (if applicable)
    • Environment details (OS, Node version, etc.)

πŸ› οΈ Troubleshooting

Common Issues

MongoDB Connection Failed

Error: MongoDB connection failed

Solution:

  • Ensure MongoDB is running: mongod --version
  • Check your MONGODB_URI in .env
  • Verify network access (for Atlas)

Port Already in Use

Error: Port 5000 is already in use

Solution:

  • Change the PORT in .env file: PORT=5001
  • Or kill the process using port 5000

CORS Errors

Access to fetch at 'http://localhost:5000/...' from origin 'http://localhost:5173' has been blocked by CORS policy

Solution:

  • Ensure FRONTEND_URL in backend .env matches your frontend URL
  • Check CORS configuration in backend/server.js

Module Not Found Errors

Error: Cannot find module 'xyz'

Solution:

  • Delete node_modules and reinstall:
    rm -rf node_modules package-lock.json
    npm install

Frontend Not Loading

  • Check if backend is running
  • Verify API URL in frontend configuration
  • Check browser console for errors

Getting Help

  • πŸ“– Check backend/QUICK_START.md for migration details
  • πŸ“– Check backend/API_CHANGES.md for API updates
  • πŸ› Create an issue on GitHub
  • πŸ’¬ Contact the contributors

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

  • Omkar - Backend Development & Database Architecture
  • Priyanshu - Frontend Development & UI/UX Design
  • Ashad - API Development & Authentication
  • Vedant - Testing & Documentation

πŸ“„ License

This project is licensed under the ISC License.


Made with ❀️ by the Alumni Management System Team

Happy Coding! πŸš€

About

Alumni Management System

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 14