A comprehensive College Management System built using the MERN (MongoDB, Express, React, Node.js) stack. This system is designed to streamline college administration processes, providing individual dashboards for admins, teachers, and students. It enables efficient management of college resources, attendance, fees, subjects, and more.
This College Management System is developed to assist college administrators in managing daily operations effectively. Each user role has access to specific features that enhance communication, resource management, and the overall educational experience.
- User Management: Create, update, and delete user accounts for students, teachers, and staff.
- Subject Management: Manage subject information and assign subjects to teachers.
- Fee Management: Track and manage fee payments from students.
- Attendance Tracking: Monitor attendance records for both students and teachers.
- Class Management: View assigned classes, manage student attendance, and record session details.
- Attendance Management: Track daily attendance of students in assigned classes.
- Performance Monitoring: Access student progress and performance data.
- Profile Overview: View personal details, class schedule, and assigned subjects.
- Attendance and Fee Details: Track attendance records and check fee payment status.
- Class Resources: Access materials and announcements related to their enrolled subjects.
- Frontend: React.js (including Context API for state management, hooks, and custom components)
- Backend: Node.js and Express.js (REST API architecture)
- Database: MongoDB (with Mongoose ORM for schema management)
- Additional Libraries:
- JWT: For secure user authentication
- Bcrypt: For password hashing
- Redis: Used for robust session and attendance management (in-memory data store)
Ensure you have the following installed on your local development machine:
- Node.js: version 14 or above
- MongoDB: (either MongoDB Atlas or a local MongoDB server)
- Redis: For session management (optional but recommended)
-
Clone the Repository
git clone https://github.com/Deepak-cell311/college-management-system.git cd college-management-system
-
Install Dependencies
# For the backend cd backend npm install # For the frontend cd ../frontend npm install
-
Environment Variables
Create a
.env
file in the root of the backend directory with the following keys:MONGO_URI=your_mongo_db_connection_string JWT_SECRET=your_jwt_secret REDIS_URL=your_redis_url # Optional if using Redis
-
Run the Application
Start both backend and frontend servers:
# For the backend cd backend npm start # For the frontend cd ../frontend npm start
The frontend should be running on
http://localhost:3000
and the backend onhttp://localhost:5000
.
college-management-system/
├── backend/
│ ├── controllers/ # Request handling logic for different routes
│ ├── models/ # Mongoose models for MongoDB collections
│ ├── routes/ # API routes for Admin, Teacher, and Student
│ ├── utils/ # Helper functions (authentication, JWT, etc.)
│ └── server.js # Main server file
|
└── frontend/
├── src/
│ ├── components/ # Reusable UI components
│ ├── pages/ # Pages for each dashboard (Admin, Teacher, Student)
│ ├── context/ # Global context for state management
│ └── App.js # Main React application
└── public/
└── index.html
- POST /api/auth/login - Login for users (Admin, Teacher, Student)
- POST /api/auth/register - Register new user accounts (admin use only)
- GET /api/admin/subjects - Retrieve all subjects
- POST /api/admin/subject - Add a new subject
- GET /api/admin/users - View all users
- GET /api/teacher/students - Get student list for assigned classes
- POST /api/teacher/attendance - Record attendance for students
- GET /api/student/attendance - View attendance records
- GET /api/student/fees - Check fee status
(Include additional endpoints as per your project needs)
Add screenshots of the main dashboard, navigation, and key features to provide users a quick overview.
- JWT Authentication: Secures routes and manages sessions.
- Password Hashing: Uses bcrypt to secure stored user passwords.
- Role-Based Access Control: Only allows authorized access to specific routes and data based on user roles (Admin, Teacher, Student).
Contributions are welcome! If you have any suggestions, ideas, or improvements, please feel free to open a pull request.
- Fork the project.
- Create your feature branch (
git checkout -b feature/new-feature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/new-feature
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to all the contributors and open-source projects that helped inspire and support this project.
For any inquiries, you can reach me at [email protected].
This README should provide users with everything they need to get started, as well as a clear understanding of your College Management System's purpose and functionality. Let me know if you'd like to add or modify any part of it!