Skip to content

Basant1Saini/School_Management_System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

School_Management_System

Developed by: Basant Saini

📋 Project Overview

A comprehensive full-stack web application designed to streamline and automate school administrative operations. This system provides role-based access for students, teachers, and administrative staff, enabling efficient management of academic records, attendance tracking, grade management, and institutional operations.

Key Objectives

  • Digitize and centralize school administrative processes
  • Provide secure, role-based access for different user types
  • Enable real-time tracking of student performance and attendance
  • Facilitate seamless communication between stakeholders
  • Generate comprehensive reports and analytics for decision-making

Target Users

  • Students: Access academic records, view grades, check attendance, and manage personal profiles
  • Teachers: Manage classes, mark attendance, enter grades, and track student performance
  • Administrative Staff: Oversee school operations, manage users, generate reports, and configure system settings
  • Parents/Guardians: Monitor student progress, attendance, and academic performance (future scope)

🏗️ System Architecture

Architecture Pattern

  • Frontend: React-based SPA (Single Page Application) with component-based architecture
  • Backend: RESTful API built with Node.js and Express.js following MVC pattern
  • Database: MongoDB with Mongoose ODM for flexible document-based data storage
  • Authentication: JWT-based stateless authentication with role-based access control
  • State Management: Redux Toolkit for predictable global state management

Project Structure

School_Management_System/
├── frontend/                 # React frontend application
│   ├── src/
│   │   ├── components/      # Reusable UI components
│   │   ├── pages/           # Page-level components
│   │   ├── redux/           # Redux store, slices, and actions
│   │   ├── services/        # API service layer
│   │   ├── utils/           # Helper functions and utilities
│   │   └── App.jsx          # Root component
│   └── package.json
├── backend/                  # Node.js backend application
│   ├── models/              # Mongoose schemas and models
│   ├── routes/              # Express route definitions
│   ├── controllers/         # Business logic handlers
│   ├── middleware/          # Custom middleware (auth, validation)
│   ├── config/              # Configuration files
│   └── server.js            # Entry point
└── README.md

🚀 Technology Stack

Frontend Technologies

  • HTML & CSS: Semantic HTML5 structure with modern CSS3 features including Flexbox, Grid, and responsive design principles for cross-device compatibility
  • Tailwind CSS: Utility-first CSS framework enabling rapid UI development with consistent design systems, custom components, and responsive layouts
  • JavaScript (ES6+): Modern JavaScript features including arrow functions, destructuring, async/await, modules, and DOM manipulation for dynamic user interactions
  • React: Component-based frontend library with hooks, context API, and virtual DOM for building scalable and maintainable user interfaces
  • Redux: Predictable state management using Redux Toolkit for global application state, async actions, and complex data flow management

Backend Technologies

  • Node.js: Server-side JavaScript runtime environment for building scalable network applications with non-blocking I/O operations
  • Express.js: Minimal and flexible web application framework providing robust features for web and mobile applications, including middleware and routing
  • MongoDB: NoSQL document database for flexible data storage with high performance and horizontal scalability
  • Mongoose: Elegant MongoDB object modeling for Node.js providing schema validation, middleware, and query building

Development & Deployment

  • Git and GitHub: Distributed version control system with collaborative workflows, branching strategies, and continuous integration
  • RESTful APIs: Industry-standard API design patterns for creating scalable and maintainable web services with proper HTTP methods and status codes

Development Tools & Environment

  • Vite: Next-generation frontend build tool with lightning-fast hot module replacement (HMR) and optimized production builds
  • Nodemon: Development utility that automatically restarts Node.js applications when file changes are detected
  • Chrome DevTools: Comprehensive debugging and performance analysis tools for frontend development and optimization
  • NPM: Package manager for JavaScript with dependency management, script automation, and version control

Security & Authentication

  • JWT (JSON Web Tokens): Secure token-based authentication system for stateless user sessions and API authorization
  • bcrypt: Password hashing library for secure user credential storage
  • CORS: Cross-Origin Resource Sharing configuration for secure API access

HTTP & API Communication

  • Axios: Promise-based HTTP client for making API requests with interceptors, request/response transformation, and error handling
  • Express Middleware: Custom middleware for request validation, error handling, and authentication

✨ Features (Capstone Project Implementation)

Core Functionality

Student Management

  • Student Registration & Enrollment

    • Complete registration form with personal information (name, DOB, gender, blood group)
    • Contact details (email, phone, address with city, state, pincode)
    • Guardian/parent information (name, relationship, contact details)
    • Previous academic records and transfer certificates
    • Document upload (photo, ID proof, certificates)
    • Unique enrollment number generation
    • Admission date and academic year assignment
  • Student Profile Management

    • View and update personal information
    • Profile photo management
    • Emergency contact details
    • Medical information and special needs
    • Transportation details (bus route, pickup point)
    • Fee payment history and pending dues
  • Academic Information

    • Current class, section, and roll number
    • Subject enrollment and elective choices
    • Academic history and previous grades
    • Promotion and retention records
    • Transfer and withdrawal management
  • Student Dashboard Features

    • Personalized dashboard with quick overview
    • Class timetable and daily schedule
    • Attendance summary (daily, monthly, yearly)
    • Grade reports and academic performance
    • Upcoming examinations and assignments
    • School announcements and notifications
    • Fee payment status and receipts

Teacher Management

  • Teacher Registration & Onboarding

    • Personal details (name, DOB, gender, contact information)
    • Professional information (employee ID, joining date, employment type)
    • Educational qualifications (degrees, certifications, specializations)
    • Work experience and previous employment history
    • Subject expertise and teaching preferences
    • Document verification (ID proof, certificates, background check)
  • Teacher Profile Management

    • View and update personal information
    • Professional credentials and certifications
    • Department and designation details
    • Salary information and payment history
    • Leave balance and attendance records
    • Performance reviews and feedback
  • Subject & Class Assignment

    • Assign subjects to teachers based on expertise
    • Map teachers to specific classes and sections
    • Define class teacher responsibilities
    • Manage multiple subject assignments
    • Track teaching load and workload distribution
  • Schedule & Timetable Management

    • View personal teaching schedule
    • Class-wise period allocation
    • Free periods and availability tracking
    • Substitute teacher assignments
    • Extra-curricular activity assignments
  • Teacher Dashboard Features

    • Overview of assigned classes and students
    • Daily schedule and upcoming classes
    • Attendance marking interface
    • Grade entry and assessment tools
    • Student performance analytics
    • Pending tasks and notifications
    • Communication portal for announcements

Administrative Staff Management

  • Staff Registration & Role Assignment

    • Register administrative personnel (Principal, Vice Principal, Coordinators)
    • Office staff (Accountant, Clerk, Receptionist, Librarian)
    • Support staff (IT Admin, Maintenance, Security)
    • Employee ID generation and documentation
    • Role-based access control configuration
    • Department and reporting hierarchy setup
  • Role-Based Access Control (RBAC)

    • Principal/Administrator: Full system access and control

      • Manage all users (students, teachers, staff)
      • Configure system settings and academic calendar
      • Generate comprehensive reports and analytics
      • Approve major decisions (admissions, promotions, transfers)
      • Financial oversight and budget management
    • Vice Principal/Coordinator: Departmental management

      • Manage specific departments or grade levels
      • Monitor teacher and student performance
      • Handle disciplinary matters
      • Generate departmental reports
    • Office Staff: Operational tasks

      • Student admission and enrollment processing
      • Fee collection and receipt generation
      • Attendance monitoring and reporting
      • Document management and record keeping
    • Accountant: Financial management

      • Fee structure management
      • Payment tracking and reconciliation
      • Salary processing
      • Financial reports and statements
  • Staff Profile Management

    • Personal and contact information
    • Employment details and contract information
    • Salary and compensation details
    • Attendance and leave management
    • Performance evaluations
  • Administrative Dashboard Features

    • School-wide overview and statistics
    • Real-time attendance monitoring
    • Student and teacher analytics
    • Financial summary and pending fees
    • Recent activities and system logs
    • Quick access to reports and exports
    • System configuration and settings

Class & Academic Management

  • Class Structure Organization

    • Create and manage classes (Grade 1-12, Pre-K, Kindergarten)
    • Define sections within classes (A, B, C, etc.)
    • Set class capacity and student limits
    • Assign class teachers and subject teachers
    • Classroom allocation and resource management
  • Subject Management

    • Define subjects for each class/grade
    • Core subjects and elective options
    • Subject codes and credit hours
    • Theory and practical components
    • Subject prerequisites and dependencies
    • Curriculum mapping and syllabus management
  • Timetable Management

    • Create master timetable for school
    • Class-wise period allocation
    • Subject and teacher scheduling
    • Break times and lunch periods
    • Special activity periods (sports, library, lab)
    • Conflict detection and resolution
    • Substitute teacher scheduling
  • Academic Calendar

    • Academic year setup (start and end dates)
    • Term/semester division
    • Holiday calendar (national, regional, school holidays)
    • Examination schedules
    • Parent-teacher meeting dates
    • School events and activities
    • Important deadlines and milestones

Attendance System

  • Daily Attendance Management

    • Mark student attendance (Present, Absent, Late, Half-day)
    • Period-wise or day-wise attendance options
    • Bulk attendance marking for entire class
    • Attendance modification with reason and approval
    • Real-time attendance dashboard
    • Biometric integration support (future scope)
  • Attendance Tracking & Reports

    • Student-wise attendance summary
    • Class-wise attendance statistics
    • Date range based reports
    • Monthly and yearly attendance percentage
    • Defaulter list (below threshold attendance)
    • Attendance trends and patterns analysis
    • Export reports (PDF, Excel, CSV)
  • Leave Management System

    • Student leave application submission
    • Leave type categorization (sick, casual, emergency)
    • Supporting document upload
    • Leave approval workflow
    • Leave history and balance tracking
    • Automatic attendance update on approval
  • Notifications & Alerts

    • Daily attendance SMS/email to parents
    • Low attendance warnings
    • Consecutive absence alerts
    • Monthly attendance summary reports
    • Absence pattern notifications to administrators

Grade & Examination Management

  • Assessment Structure

    • Define assessment types (assignments, quizzes, tests, exams)
    • Weightage allocation for different assessments
    • Continuous evaluation and periodic assessments
    • Internal and external examination setup
    • Grading scale configuration (percentage, GPA, letter grades)
    • Pass/fail criteria and minimum marks requirement
  • Grade Entry & Management

    • Teacher interface for grade entry
    • Subject-wise marks entry
    • Theory and practical marks separation
    • Marks verification and approval workflow
    • Grade modification with audit trail
    • Bulk import/export functionality
  • Examination Scheduling

    • Create examination calendar
    • Subject-wise exam date and time allocation
    • Examination venue and seating arrangement
    • Invigilator duty assignment
    • Exam hall allocation and capacity management
    • Admit card generation
  • Result Processing & Report Cards

    • Automatic grade calculation and aggregation
    • GPA/CGPA computation
    • Class rank and position calculation
    • Subject-wise performance analysis
    • Comprehensive report card generation
    • Progress reports and feedback comments
    • Result publication and parent notification
  • Performance Analytics

    • Student performance trends over time
    • Subject-wise class average and statistics
    • Top performers and improvement tracking
    • Comparative analysis (class, section, school-wide)
    • Weak areas identification and intervention alerts
    • Teacher effectiveness analysis
    • Graphical dashboards and visualizations

Laboratory & Practical Management

  • Lab Resource Management

    • Laboratory inventory and equipment tracking
    • Lab schedule and booking system
    • Equipment maintenance and service records
    • Safety protocols and compliance tracking
    • Lab assistant and technician assignment
  • Practical Session Management

    • Schedule practical sessions for science, computer, and other labs
    • Student batch allocation for lab sessions
    • Practical attendance tracking
    • Lab manual and experiment documentation
    • Equipment usage logs and reports
  • Practical Assessment

    • Practical exam scheduling and evaluation
    • Viva and demonstration assessments
    • Lab performance grading
    • Practical marks entry and report generation
    • Skill-based competency tracking

Sports & Competitions Management

  • Sports Activities Management

    • Sports event creation and scheduling
    • Student registration for sports activities
    • Sports team formation and player selection
    • Practice session scheduling
    • Sports equipment and facility management
    • Coach and trainer assignment
  • Tournament Management

    • Inter-school and intra-school tournament organization
    • Tournament brackets and fixture generation
    • Match scheduling and venue allocation
    • Score tracking and result recording
    • Tournament standings and leaderboards
    • Winner and runner-up declaration
    • Certificate and trophy management
  • Competition & Event Management

    • Academic competitions (quiz, debate, science fair)
    • Cultural events (dance, music, drama, art)
    • Competition registration and participant tracking
    • Event scheduling and venue booking
    • Judge and evaluator assignment
    • Scoring and result compilation
    • Award and recognition management
  • Achievement Tracking

    • Student participation history
    • Awards and medals won
    • Performance statistics and records
    • House points and inter-house competition tracking
    • Sports and cultural achievement certificates
    • Portfolio building for student accomplishments

Extra-Curricular Activities

  • Club & Society Management

    • Create and manage school clubs (science, arts, music, drama)
    • Student enrollment in clubs and societies
    • Club meeting schedules and attendance
    • Club activity planning and execution
    • Club coordinator and faculty advisor assignment
  • Event Calendar

    • School-wide event calendar
    • Annual day, sports day, cultural fest planning
    • Workshop and seminar organization
    • Guest lecture and expert session scheduling
    • Field trips and educational tours management
  • Student Council & Leadership

    • Student council elections and nominations
    • Prefect and monitor selection
    • Leadership role assignments
    • Student council meeting management
    • Student-led initiative tracking

Technical Features

  • Responsive Design: Mobile-first approach ensuring optimal experience across all devices (desktop, tablet, mobile)
  • State Management: Centralized application state with Redux Toolkit for consistent data flow and predictable state updates
  • API Integration: RESTful API architecture with proper error handling, request validation, and response formatting
  • Database Operations: Complete CRUD operations with MongoDB and Mongoose ODM, including data validation and relationships
  • Security Implementation:
    • JWT-based authentication with token refresh mechanism
    • Password hashing using bcrypt
    • Protected routes and role-based authorization
    • Input sanitization and XSS prevention
    • CORS configuration for secure cross-origin requests
    • SQL injection prevention through parameterized queries
  • Performance Optimization:
    • Code splitting and lazy loading for faster initial load
    • Optimized bundle sizes with tree shaking
    • Image optimization and lazy loading
    • API response caching
    • Database query optimization with indexing
  • User Experience:
    • Intuitive navigation and user interface
    • Loading states and skeleton screens
    • Toast notifications for user feedback
    • Form validation with real-time error messages
    • Confirmation dialogs for critical actions
    • Search and filter functionality across modules

Development Practices

  • Component Architecture:
    • Reusable React components with proper prop management
    • Component composition and inheritance
    • Custom hooks for shared logic
    • Higher-order components (HOCs) for cross-cutting concerns
  • Error Handling:
    • Comprehensive error boundaries for graceful error recovery
    • User-friendly error messages
    • Centralized error logging
    • API error handling with proper HTTP status codes
  • Code Quality:
    • ESLint configuration for code consistency
    • Prettier for code formatting
    • Consistent naming conventions
    • Code comments and documentation
    • Git commit message standards
  • Testing Ready:
    • Structure prepared for unit testing (Jest, React Testing Library)
    • Integration testing setup
    • API endpoint testing (Postman/Thunder Client)
    • Test coverage reporting
  • Documentation:
    • Comprehensive code documentation
    • API endpoint documentation with request/response examples
    • Component documentation with props and usage
    • Setup and deployment guides
    • User manuals for different roles

🛠️ Installation & Setup

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (v4.4 or higher)
  • npm or yarn package manager
  • Git for version control

Backend Setup

# Navigate to backend directory
cd backend

# Install dependencies
npm install

# Create .env file and configure environment variables
PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRE=7d

# Start development server
npm run dev

Frontend Setup

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Create .env file
VITE_API_URL=http://localhost:5000/api

# Start development server
npm run dev

Database Configuration

# Start MongoDB service
mongod

# Or use MongoDB Atlas cloud database
# Update MONGODB_URI in backend .env file

🚀 Running the Application

  1. Start MongoDB service
  2. Start backend server: cd backend && npm run dev
  3. Start frontend application: cd frontend && npm run dev
  4. Access application at http://localhost:5173

📚 API Documentation

Authentication Endpoints

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • POST /api/auth/logout - User logout
  • GET /api/auth/profile - Get user profile

Student Endpoints

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

Teacher Endpoints

  • GET /api/teachers - Get all teachers
  • GET /api/teachers/:id - Get teacher by ID
  • POST /api/teachers - Create new teacher
  • PUT /api/teachers/:id - Update teacher
  • DELETE /api/teachers/:id - Delete teacher

Attendance Endpoints

  • POST /api/attendance - Mark attendance
  • GET /api/attendance/student/:id - Get student attendance
  • GET /api/attendance/class/:id - Get class attendance

Grade Endpoints

  • POST /api/grades - Add grades
  • GET /api/grades/student/:id - Get student grades
  • PUT /api/grades/:id - Update grades

Laboratory Endpoints

  • GET /api/labs - Get all laboratories
  • POST /api/labs/schedule - Schedule lab session
  • GET /api/labs/schedule/:id - Get lab schedule
  • POST /api/labs/attendance - Mark lab attendance

Sports & Events Endpoints

  • GET /api/sports/events - Get all sports events
  • POST /api/sports/events - Create sports event
  • GET /api/tournaments - Get all tournaments
  • POST /api/tournaments - Create tournament
  • PUT /api/tournaments/:id/results - Update tournament results
  • GET /api/competitions - Get all competitions
  • POST /api/competitions/register - Register for competition

🔐 User Roles & Permissions

Feature Student Teacher Admin
View own profile
Edit own profile
View grades
Enter grades
Mark attendance
Manage students
Manage teachers
System settings
Register for events
Manage competitions
Schedule lab sessions
View achievements

📈 Future Enhancements

  • Parent portal for monitoring student progress
  • Mobile application (iOS and Android)
  • Real-time chat and messaging system
  • Online fee payment integration
  • Library management module
  • Transport management system
  • Hostel management features
  • Event and activity management
  • Alumni management system
  • Advanced analytics and AI-powered insights
  • Multi-language support
  • Biometric attendance integration
  • Video conferencing for online classes

🤝 Contributing

Contributions are welcome! Please follow these steps:

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

📝 License

This project is developed as a capstone project for educational purposes.

👨‍💻 Developer

Basant Saini

📧 Contact & Support

For questions, issues, or suggestions, please open an issue in the GitHub repository.

📦 Package Management

Utilizes NPM (Node Package Manager) for efficient dependency management, script automation, and project configuration in the School Management System.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages