Skip to content

nikita827009-source/Student-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 EduManage — Student Management System


A full-stack, role-based Student Management System built with the MERN stack (MongoDB, Express.js, React.js, Node.js) and styled with Tailwind CSS. Features a modern dark glassmorphism UI with three distinct role dashboards — Admin, Teacher, and Student.


✨ Features

🔐 Role-Based Access Control (RBAC)

Feature Admin Teacher Student
Manage All Users
Create / Delete Courses
Mark Attendance
Enter Grades
View Own Grades
View Own Attendance

📊 Admin Dashboard

  • System overview stats (users, students, teachers, courses)
  • Interactive Recharts bar & pie charts
  • Full User CRUD with role filters and search
  • Course management with teacher assignment

👨‍🏫 Teacher Dashboard

  • Assigned courses with student rosters
  • Bulk attendance marking with one-click "All Present / All Absent"
  • Grade entry with live table preview and letter grade calculation

🎓 Student Dashboard

  • Grade progress bars per course with letter grades (A+ to F)
  • Attendance tracker with present/absent/late breakdown
  • Enrolled courses grid with teacher info
  • Personal profile page

🚀 Quick Start

Prerequisites

  • Node.js >= 18.x
  • MongoDB (local or Atlas)
  • npm

1. Clone the repository

git clone https://github.com/nikita827009-source/Student-management-system.git
cd Student-management-system

2. Backend Setup

cd backend
npm install

Create a .env file in the /backend directory:

PORT=5000
MONGO_URI=mongodb://localhost:27017/sms_db
JWT_SECRET=your_super_secret_jwt_key_here
JWT_EXPIRES_IN=1d
NODE_ENV=development

Start the backend server:

npm run dev

3. Frontend Setup

cd ../frontend
npm install
npm run dev

The app will be available at http://localhost:5173


🧱 Tech Stack

Layer Technology
Frontend React 18, Vite, React Router v6
Styling Tailwind CSS 3, custom glassmorphism utilities
Charts Recharts
HTTP Client Axios (with interceptors)
Backend Node.js, Express.js
Database MongoDB, Mongoose ODM
Auth JWT (JSON Web Tokens), bcryptjs

📁 Project Structure

student-management-system/
├── backend/
│   └── src/
│       ├── config/          # DB connection
│       ├── controllers/     # auth, user, course, attendance, grade
│       ├── middlewares/     # protect, authorize (RBAC)
│       ├── models/          # User, Course, Attendance, Grade
│       ├── routes/          # All API routes
│       ├── utils/           # generateToken
│       └── server.js
└── frontend/
    └── src/
        ├── components/      # Sidebar, ProtectedRoute
        ├── context/         # AuthContext
        ├── layouts/         # DashboardLayout
        ├── pages/
        │   ├── admin/       # Dashboard, Users, Students, Teachers, Courses
        │   ├── teacher/     # Dashboard, Courses, Attendance, Grades
        │   └── student/     # Dashboard, Courses, Grades, Attendance, Profile
        ├── services/        # Axios API instance
        └── App.jsx          # Router

🔌 API Endpoints

Auth

Method Route Access
POST /api/auth/login Public
POST /api/auth/register Public
GET /api/auth/me Private

Users

Method Route Access
GET /api/users Admin
POST /api/users Admin
GET /api/users/students Admin, Teacher
GET /api/users/teachers Admin
PUT /api/users/:id Admin
DELETE /api/users/:id Admin

Courses

Method Route Access
GET /api/courses All (filtered by role)
POST /api/courses Admin
PUT /api/courses/:id Admin
DELETE /api/courses/:id Admin
POST /api/courses/:id/enroll Admin

Attendance

Method Route Access
POST /api/attendance Teacher, Admin
POST /api/attendance/bulk Teacher, Admin
GET /api/attendance/course/:id Teacher, Admin
GET /api/attendance/student/:id All
GET /api/attendance/summary/:id All

Grades

Method Route Access
POST /api/grades Teacher, Admin
GET /api/grades/course/:id Teacher, Admin
GET /api/grades/student/:id All
GET /api/grades/summary/:id All
DELETE /api/grades/:id Admin

🛡️ Security

  • JWT authentication with HTTP Authorization headers
  • Passwords hashed with bcryptjs (salt rounds: 10)
  • RBAC middleware enforced on every protected endpoint
  • Frontend route guards with role validation

📜 License

MIT License. Feel free to use, modify, and distribute.


Built with ❤️ using the MERN Stack

About

EduManage is a comprehensive, full-stack Student Management System designed to streamline administrative, teaching, and learning workflows within educational institutions. Built robustly on the MERN stack—comprising MongoDB, Express.js, React.js, and Node.js—the application delivers a seamless, high-performance web experience.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages