The School Management System is a complete end-to-end web application built using React (Frontend) and Node.js + Express (Backend) with MySQL as the database.
It allows administrators, teachers, and students to manage academic operations in one place.
The system includes login authentication, student management, teacher salary, class/section management, attendance tracking, fee handling, and dashboard analytics.
This project is fully responsive, lightweight, beginner-friendly, and easy to install on any local server (Laragon, XAMPP, WAMP) with Node.js.
Requirements
Project Name
School Portal
Language Used
React, Node.js (Express), JavaScript
Database
MySQL 8 (compatible with Laragon, XAMPP, WAMP)
UI Framework
TailwindCSS + Custom Components
Web Browser
Mozilla, Google Chrome, IE8, OPERAMozilla,
Software
Node.js , XAMPP / Wamp / Mamp/ Lamp (anyone)
User Module
Dashboard
Overview of attendance, fees, assignments, and alerts
My Profile
View & update personal details, contact info, and password
Attendance
Daily & monthly attendance records with status
Assignments
View assignments, due dates, and submit work
Time Table
Class timetable with periods and subjects
Exams & Results
Exam schedule, subject-wise marks, result history
Notices
School announcements, events, holidays, updates
Admin Module
Dashboard
Overview of students, teachers, attendance, fees, and activities
Users
Manage students, teachers, and admin accounts
Applications
Review and manage student/teacher applications
Attendance
Track and manage daily attendance records
Time Table
Create and update class timetables
Announcements
Post school notices, alerts, and updates
Classes & Subjects
Manage classes, sections, and subject assignments
Exams & Results
Create exams, upload marks, and publish results
Fees
Set fee structure, collect fees, and view fee history
Home Panel Edit
Edit homepage banners, text, and media content
Pages Edit
Manage static pages like About, Contact, Events, etc.
How to Run
1. Extract the Zip file . You will see server, client, and setup.sql.
Open your MySQL (phpMyAdmin or Laragon). Create a database named school_db. Import the file schema.sql.
2. Open the server folder. Create a file named .env and add:
PORT=5000
DB_HOST=127.0.0.1
DB_USER=root
DB_PASS=
DB_NAME=school_db
JWT_SECRET=your_secret_key
3. Start the backend:
Open terminal → go to server folder → run npm install → then run npm start.
4. Start the frontend:
Open terminal → go to client folder → run npm install → then run npm run dev.
5.Login details:
Email: admin@school.edu
Password: admin123