Student Management System (SMS)
A complete, production-ready Student Management System built with Node.js , Express , MongoDB , React , and Tailwind CSS .
Role-based access: Super Admin, Admin, Teacher, Student, Parent
JWT authentication with secure login/register
Profile management & password reset
Add/Edit/Delete students with full profiles
Automatic student ID generation
Upload photos & documents
Parent/guardian information
Emergency contacts & medical info
Search & filter with pagination
π¨βπ« Teacher Management
Full teacher profiles with qualifications
Subject & class assignment
Employment type & salary tracking
Document management
π Class & Subject Management
Create classes with multiple sections
Assign class teachers
Subject creation with pass/fail criteria
Academic year tracking
Daily attendance marking (Present/Absent/Late/Half-day)
Bulk mark all present/absent
Monthly attendance reports
Student-wise attendance percentage
Attendance analytics with charts
Create exams (Midterm, Final, Quiz, Weekly, Monthly, Practical)
Marks entry per subject per student
Automatic grade calculation (A+ to F)
Report card generation
Pass/Fail status tracking
Fee collection with receipt generation
Multiple fee types (Tuition, Hostel, Transport, etc.)
Payment tracking (Paid/Partial/Pending/Overdue)
Discount & fine management
Payment methods (Cash, Card, Online, Cheque)
Class-wise & teacher-wise timetable
Day/subject period management
Room assignment
Bulk entry support
π Assignment Management
Create & submit assignments
Grade submissions with feedback
Late submission detection
Book catalog with search
Issue/Return tracking
Fine calculation for overdue books
Real-time availability tracking
In-app notifications
Role-based broadcasting
Priority levels (Low/Medium/High/Urgent)
Read/unread tracking
π Reports & Dashboards
Admin dashboard with stats & charts
Teacher dashboard with quick actions
Student dashboard with attendance & fee status
Attendance reports with visual charts
Fee collection summary
Modern, responsive design
Dark mode / Light mode toggle
Smooth animations & transitions
Mobile-friendly layout
Toast notifications
Loading skeletons
Layer
Technology
Frontend
React 18, React Router 6, Tailwind CSS, Chart.js, Axios
Backend
Node.js, Express.js
Database
MongoDB with Mongoose ODM
Auth
JWT (JSON Web Tokens), bcryptjs
Security
Helmet, CORS, Rate Limiting, XSS Clean, Input Validation
File Upload
Multer
Email
Nodemailer
StudentManagementSystem/
βββ backend/
β βββ src/
β β βββ config/ # Database & app config
β β βββ controllers/ # Route handlers
β β βββ middleware/ # Auth, validation, upload, error handling
β β βββ models/ # Mongoose schemas
β β βββ routes/ # Express routes
β β βββ utils/ # Helpers
β β βββ validators/ # Express-validator rules
β β βββ server.js # Entry point
β β βββ seed.js # Database seeder
β βββ .env
β βββ package.json
β
βββ frontend/
β βββ src/
β β βββ assets/css/ # Tailwind styles
β β βββ components/
β β β βββ auth/ # Login, Register
β β β βββ dashboard/ # Admin, Teacher, Student dashboards
β β β βββ layout/ # MainLayout, Sidebar, Header
β β β βββ students/ # List, Form
β β β βββ teachers/ # List, Form
β β β βββ classes/ # ClassList, SubjectList
β β β βββ attendance/ # Mark, Reports
β β β βββ exams/ # List, Form, MarksEntry, Results
β β β βββ fees/ # List, Collect
β β β βββ timetable/ # TimetableView
β β β βββ assignments/ # AssignmentList
β β β βββ library/ # LibraryView
β β β βββ notifications/ # NotificationList
β β β βββ common/ # Settings
β β βββ contexts/ # AuthContext, ThemeContext
β β βββ services/ # API service (Axios)
β β βββ App.jsx # Router
β β βββ main.jsx # Entry point
β βββ index.html
βββ vite.config.js
β βββ package.json
Node.js 18+
MongoDB (local or Atlas)
cd StudentManagementSystem
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install
# Backend: Edit backend/.env
PORT=5000
MONGODB_URI=mongodb://localhost:27017/student_management
JWT_SECRET=your_jwt_secret_key_change_this
JWT_EXPIRE=7d
# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
cd frontend
npm run dev
Visit http://localhost:3000
Method
Endpoint
Description
POST
/api/auth/register
Register new user
POST
/api/auth/login
Login
GET
/api/auth/me
Get current user
PUT
/api/auth/profile
Update profile
POST
/api/auth/forgot-password
Forgot password
PUT
/api/auth/reset-password/:token
Reset password
Method
Endpoint
Description
GET
/api/students
List (paginated, filterable)
GET
/api/students/:id
Get single
POST
/api/students
Create
PUT
/api/students/:id
Update
DELETE
/api/students/:id
Deactivate
Teachers, Classes, Subjects, Attendance, Exams, Results, Fees, Timetable, Assignments, Library, Notifications, Dashboard
All follow similar RESTful patterns under /api/teachers, /api/classes, etc.
Backend (Render / Railway / Vercel)
cd backend
# Set environment variables on platform
npm start
Frontend (Vercel / Netlify)
cd frontend
npm run build
# Deploy dist/ folder
β
Password hashing with bcryptjs (12 rounds)
β
JWT-based authentication with expiry
β
Input validation & sanitization (express-validator, xss)
β
HTTP headers protection (helmet)
β
Cross-Origin Resource Sharing (cors)
β
Rate limiting (express-rate-limit)
β
Request logging (morgan)
β
File upload validation (multer)
Full API documentation is available at /api/health endpoint when the server is running.