Skip to content

Deepak-cell311/College-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 

Repository files navigation

📘 College Management System

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.

🎯 Project Overview

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.


🛠️ Key Features

Admin Dashboard

  • 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.

Teacher Dashboard

  • 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.

Student Dashboard

  • 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.

💻 Tech Stack

  • 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)

🚀 Getting Started

Prerequisites

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)

Installation

  1. Clone the Repository

    git clone https://github.com/Deepak-cell311/college-management-system.git
    cd college-management-system
  2. Install Dependencies

    # For the backend
    cd backend
    npm install
    
    # For the frontend
    cd ../frontend
    npm install
  3. 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
  4. 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 on http://localhost:5000.


📁 Project Structure

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

⚙️ API Endpoints

Authentication

  • POST /api/auth/login - Login for users (Admin, Teacher, Student)
  • POST /api/auth/register - Register new user accounts (admin use only)

Admin

  • GET /api/admin/subjects - Retrieve all subjects
  • POST /api/admin/subject - Add a new subject
  • GET /api/admin/users - View all users

Teacher

  • GET /api/teacher/students - Get student list for assigned classes
  • POST /api/teacher/attendance - Record attendance for students

Student

  • GET /api/student/attendance - View attendance records
  • GET /api/student/fees - Check fee status

(Include additional endpoints as per your project needs)


📸 Screenshots

Admin Dashboard Teacher Dashboard Student Dashboard

Add screenshots of the main dashboard, navigation, and key features to provide users a quick overview.


🔒 Authentication and Security

  • 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).

🤝 Contributing

Contributions are welcome! If you have any suggestions, ideas, or improvements, please feel free to open a pull request.

  1. Fork the project.
  2. Create your feature branch (git checkout -b feature/new-feature).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/new-feature).
  5. Open a pull request.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.


📝 Acknowledgments

Special thanks to all the contributors and open-source projects that helped inspire and support this project.


Contact

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!

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages