Skip to content

Kshitij-Raj-01/School-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

School Management System

A comprehensive, full-stack web application for managing school operations, student records, staff management, attendance tracking, grades, and administrative tasks. Built with TypeScript for type safety and reliability.

πŸ“‹ Table of Contents

🎯 Overview

School Management System is an enterprise-grade solution designed to streamline school operations and administrative processes. It provides a centralized platform for managing student information, staff records, attendance, grades, classes, and various school-related administrative tasks.

Key Objectives

  • Efficient Administration: Automate school administrative workflows
  • Student Management: Maintain comprehensive student records and academic progress
  • Attendance Tracking: Digital attendance management system
  • Grade Management: Transparent grading and academic performance tracking
  • Staff Management: Employee records and staff information management
  • Report Generation: Automated reports for parents and administrators

✨ Features

Student Management

  • βœ… Complete student profile management
  • βœ… Enrollment and registration system
  • βœ… Student academic history tracking
  • βœ… Guardian/Parent information management
  • βœ… Fee and payment records

Attendance System

  • βœ… Daily attendance marking
  • βœ… Real-time attendance reports
  • βœ… Attendance analytics and trends
  • βœ… Absence notifications
  • βœ… Bulk attendance operations

Academic Management

  • βœ… Grade and marks management
  • βœ… Class and section management
  • βœ… Subject assignment and management
  • βœ… Exam scheduling and result publication
  • βœ… Academic performance analytics
  • βœ… Report cards generation

Staff Management

  • βœ… Employee records and profiles
  • βœ… Salary and payroll management
  • βœ… Staff allocation and scheduling
  • βœ… Staff leave management
  • βœ… Performance tracking

Administrative Features

  • βœ… User authentication and authorization (Role-based Access Control)
  • βœ… Dashboard with key metrics and analytics
  • βœ… Notification system
  • βœ… Multi-user support with different permission levels
  • βœ… Data export and reporting capabilities
  • βœ… System audit logs

πŸ› οΈ Tech Stack

Frontend

  • TypeScript (92.8%) - Primary language for type-safe development
  • JavaScript (6.4%) - Complementary scripting
  • React - UI library for interactive interfaces
  • Redux/Context API - State management
  • Axios - HTTP client for API communication
  • Tailwind CSS / Material-UI - Styling and UI components

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web application framework
  • TypeScript - Type safety and better development experience
  • REST API - API architecture pattern
  • JWT - Authentication and authorization

Database

  • MySQL - Relational database for data persistence
  • SQL - Database queries and operations

Development Tools

  • npm/yarn - Package management
  • ESLint - Code linting
  • Prettier - Code formatting
  • Git - Version control

πŸ“ Project Structure

School-Management-System/
β”œβ”€β”€ school_frontend/              # React frontend application
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/           # Reusable React components
β”‚   β”‚   β”œβ”€β”€ pages/                # Page components
β”‚   β”‚   β”œβ”€β”€ services/             # API service calls
β”‚   β”‚   β”œβ”€β”€ store/                # State management
β”‚   β”‚   β”œβ”€β”€ styles/               # Global styles
β”‚   β”‚   β”œβ”€β”€ utils/                # Utility functions
β”‚   β”‚   β”œβ”€β”€ App.tsx
β”‚   β”‚   └── index.tsx
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ tsconfig.json
β”‚   └── .env.example
β”‚
β”œβ”€β”€ school_backend/               # Express backend application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ controllers/          # Request handlers
β”‚   β”‚   β”œβ”€β”€ models/               # Database models
β”‚   β”‚   β”œβ”€β”€ routes/               # API routes
β”‚   β”‚   β”œβ”€β”€ middleware/           # Custom middleware
β”‚   β”‚   β”œβ”€β”€ config/               # Configuration files
β”‚   β”‚   β”œβ”€β”€ utils/                # Utility functions
β”‚   β”‚   β”œβ”€β”€ validators/           # Input validation
β”‚   β”‚   β”œβ”€β”€ types/                # TypeScript type definitions
β”‚   β”‚   └── index.ts              # Application entry point
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ tsconfig.json
β”‚   β”œβ”€β”€ .env.example
β”‚   └── .gitignore
β”‚
β”œβ”€β”€ SQL Command.txt               # Database initialization scripts
β”œβ”€β”€ .anima/                       # Design and animation assets
β”œβ”€β”€ README.md                     # Project documentation
└── .gitignore

πŸ’» Installation & Setup

Prerequisites

  • Node.js (v14.0.0 or higher)
  • npm or yarn package manager
  • MySQL (v5.7 or higher)
  • Git version control

Backend Setup

  1. Navigate to backend directory:
cd school_backend
  1. Install dependencies:
npm install
  1. Create environment configuration:
cp .env.example .env
  1. Configure environment variables (update .env file):
PORT=5000
NODE_ENV=development
DB_HOST=localhost
DB_PORT=3306
DB_USER=your_mysql_username
DB_PASSWORD=your_mysql_password
DB_NAME=school_management_db
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRE=7d
  1. Initialize the database:
mysql -u [username] -p [database_name] < ../SQL Command.txt
  1. Start the backend server:
npm start
# For development with auto-reload:
npm run dev

Backend will run on: http://localhost:5000

Frontend Setup

  1. Navigate to frontend directory:
cd school_frontend
  1. Install dependencies:
npm install
  1. Create environment configuration:
cp .env.example .env
  1. Configure environment variables (update .env file):
REACT_APP_API_URL=http://localhost:5000/api
REACT_APP_ENV=development
  1. Start the development server:
npm start

Frontend will run on: http://localhost:3000

βš™οΈ Configuration

Database Configuration

The database initialization script is provided in SQL Command.txt. This includes:

  • User and authentication tables
  • Student management tables
  • Attendance tracking tables
  • Grade and academic performance tables
  • Staff and payroll tables
  • Administrative tables

JWT Configuration

Update the JWT secret in your backend .env file:

JWT_SECRET=your_secure_secret_key_min_32_characters
JWT_EXPIRE=7d

CORS Configuration

Update backend CORS settings to allow frontend communication:

const corsOptions = {
  origin: process.env.FRONTEND_URL || 'http://localhost:3000',
  credentials: true,
};

πŸš€ Running the Application

Development Mode

Terminal 1 - Backend:

cd school_backend
npm run dev

Terminal 2 - Frontend:

cd school_frontend
npm start

Production Mode

Build Frontend:

cd school_frontend
npm run build

Run Backend:

cd school_backend
NODE_ENV=production npm start

πŸ“š API Documentation

Base URL

http://localhost:5000/api

Authentication Endpoints

  • POST /auth/login - User login
  • POST /auth/register - User registration
  • POST /auth/logout - User logout
  • POST /auth/refresh - Refresh JWT token

Student Endpoints

  • GET /students - Get all students
  • GET /students/:id - Get student by ID
  • POST /students - Create new student
  • PUT /students/:id - Update student
  • DELETE /students/:id - Delete student

Attendance Endpoints

  • GET /attendance - Get attendance records
  • POST /attendance - Mark attendance
  • GET /attendance/:studentId - Get student attendance
  • PUT /attendance/:id - Update attendance record

Grade Endpoints

  • GET /grades - Get all grades
  • POST /grades - Submit grades
  • GET /grades/:studentId - Get student grades
  • PUT /grades/:id - Update grade

Staff Endpoints

  • GET /staff - Get all staff members
  • POST /staff - Add new staff member
  • PUT /staff/:id - Update staff information
  • DELETE /staff/:id - Remove staff member

Class Endpoints

  • GET /classes - Get all classes
  • POST /classes - Create new class
  • PUT /classes/:id - Update class
  • DELETE /classes/:id - Delete class

πŸ—„οΈ Database Schema

Key tables in the database:

  • users - User accounts and authentication
  • students - Student information and profiles
  • staff - Staff/Employee records
  • classes - Class/Section information
  • attendance - Attendance records
  • grades - Student grades and marks
  • subjects - Subject information
  • fees - Student fee records
  • leaves - Leave applications

Refer to SQL Command.txt for complete schema details.

🀝 Contributing

Contributions are welcome! Please follow these guidelines:

  1. Fork the repository:
git clone https://github.com/Kshitij-Raj-01/School-Management-System.git
cd School-Management-System
  1. Create a feature branch:
git checkout -b feature/your-feature-name
  1. Make your changes:
  • Follow the existing code style
  • Maintain TypeScript type safety
  • Write clear commit messages
  1. Commit your changes:
git commit -m "feat: Add your feature description"
  1. Push to your fork:
git push origin feature/your-feature-name
  1. Create a Pull Request with a clear description of your changes

Code Standards

  • Use TypeScript for all new code
  • Follow ESLint and Prettier configurations
  • Add comments for complex logic
  • Write meaningful commit messages
  • Test your changes before submitting PR

πŸ“ License

This project is open source and available under the MIT License.

πŸ‘¨β€πŸ’» Author

Kshitij Raj

πŸ“ž Support & Contact

For issues, feature requests, or questions:

  • Open an GitHub Issue
  • Create a Discussion in the repository

πŸ”’ Security

  • All passwords are hashed using bcrypt
  • JWT tokens for secure authentication
  • Input validation on all API endpoints
  • SQL injection prevention with parameterized queries
  • CORS enabled for secure cross-origin requests
  • Regular security updates recommended

πŸ“ˆ Roadmap

  • Mobile application (React Native)
  • Advanced analytics and reporting
  • Integration with payment gateways
  • Email notifications system
  • SMS alerts for attendance
  • Document management system
  • Parent portal enhancements
  • Multi-language support

Note: This is a comprehensive school management solution. For detailed implementation questions, refer to the code comments and commit history.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published