A comprehensive web application to manage alumni connections, events, job postings, and foster community engagement.
- About
- Use Cases
- Tech Stack
- Features
- Prerequisites
- Project Structure
- Getting Started
- API Documentation
- Contributing
- Troubleshooting
- Contributors
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.
- 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
- 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
- βοΈ 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
- π’ 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
- π¦ npm - Package management
- π Nodemon - Development auto-restart
- π ESLint - Code linting
- π Prettier - Code formatting
- Secure user registration and login
- JWT-based authentication with HTTP-only cookies
- Role-based access control (Admin, Alumni, Student)
- Alumni directory with search and filter capabilities
- User profiles with professional information
- Account management and settings
- Create, edit, and manage alumni events
- Event registration and attendance tracking
- Calendar view of upcoming events
- Job posting and application system
- Resume/CV upload functionality
- Application tracking for employers and applicants
- Forum discussions with topic creation
- Comment system for engagement
- Gallery for event photos and memories
- Comprehensive analytics and statistics
- User management and moderation
- Content management system
- System settings configuration
Before you begin, ensure you have the following installed:
- Node.js (v18.0.0 or higher) - Download here
- npm (v9.0.0 or higher) - Included with Node.js
- MongoDB (v6.0 or higher) - Download here
- Or use MongoDB Atlas (Cloud) - Free tier available
- Git - For cloning the repository
- MongoDB Compass - GUI for MongoDB (recommended)
- VS Code - Recommended IDE with extensions:
- ESLint
- Prettier
- MongoDB for VS Code
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)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
Follow these step-by-step instructions to set up and run the project locally.
git clone <repository-url>
cd Alumni-Management-SystemCreate a .env file in the backend/ directory:
cd backend
touch .env # On Windows: type nul > .envAdd 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_secretImportant: Replace your_super_secret_jwt_key_change_this_in_production with a strong, random string for JWT signing.
If you need to configure the API URL, create a .env file in the frontend/ directory:
cd frontend
touch .env # On Windows: type nul > .envAdd to frontend/.env:
VITE_API_URL=http://localhost:5000# 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 startThe backend server will start on http://localhost:5000
Verify Backend is Running:
- Open browser:
http://localhost:5000 - You should see: "server is running fine"
Open a new terminal window/tab:
# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start the development server
npm run devThe 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
Test the following endpoints and features:
- Homepage -
http://localhost:5173loads without errors - Login - Can access login page and authenticate
- Admin Panel - Access admin dashboard at
/admin - API Health -
http://localhost:5000returns success message
The backend exposes RESTful APIs. Key endpoints include:
POST /auth/login- User loginPOST /auth/signup- User registrationPOST /auth/logout- User logout
GET /api/admin/users- Get all usersGET /api/admin/alumni- Get alumni directoryGET /api/admin/events- Get eventsGET /api/admin/careers- Get job postingsGET /api/admin/forums- Get forum topicsGET /api/admin/dashboard/counts- Get dashboard statistics
GET /api/student/profile- Get student profileGET /api/student/events- Get student eventsGET /api/student/jobs- Get available jobs
For detailed API documentation, refer to backend/API_CHANGES.md and backend/QUICK_START.md.
We welcome contributions from the community! Here's how you can contribute:
-
Fork the Repository
- Click the "Fork" button on GitHub
- Clone your fork:
git clone https://github.com/your-username/Alumni-Management-System.git
-
Create a Branch
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix-name -
Make Your Changes
- Write clean, documented code
- Follow the existing code style
- Add comments where necessary
- Update README if needed
-
Test Your Changes
# Run backend tests (if available) cd backend && npm test # Run frontend linting cd frontend && npm run lint
-
Commit Your Changes
git add . git commit -m "feat: add new feature description" # or git commit -m "fix: resolve bug description"
-
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
- 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:)
If you find a bug or have a suggestion:
- Check if the issue already exists
- 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.)
Error: MongoDB connection failed
Solution:
- Ensure MongoDB is running:
mongod --version - Check your
MONGODB_URIin.env - Verify network access (for Atlas)
Error: Port 5000 is already in use
Solution:
- Change the PORT in
.envfile:PORT=5001 - Or kill the process using port 5000
Access to fetch at 'http://localhost:5000/...' from origin 'http://localhost:5173' has been blocked by CORS policy
Solution:
- Ensure
FRONTEND_URLin backend.envmatches your frontend URL - Check CORS configuration in
backend/server.js
Error: Cannot find module 'xyz'
Solution:
- Delete
node_modulesand reinstall:rm -rf node_modules package-lock.json npm install
- Check if backend is running
- Verify API URL in frontend configuration
- Check browser console for errors
- π Check
backend/QUICK_START.mdfor migration details - π Check
backend/API_CHANGES.mdfor API updates - π Create an issue on GitHub
- π¬ Contact the contributors
- Omkar - Backend Development & Database Architecture
- Priyanshu - Frontend Development & UI/UX Design
- Ashad - API Development & Authentication
- Vedant - Testing & Documentation
This project is licensed under the ISC License.
Made with β€οΈ by the Alumni Management System Team
Happy Coding! π