A modern, comprehensive web-based School Management System built with React.js and Node.js, designed to streamline educational institution operations with a focus on usability, scalability, and security.
- π― User-Centric Design - Intuitive interface for administrators, teachers, and staff
- π Secure Authentication - JWT-based authentication with role-based access control
- π± Responsive Design - Works seamlessly across desktop, tablet, and mobile devices
- β‘ Real-time Operations - Fast and efficient data management
- π§ Modular Architecture - Easily extensible and maintainable codebase
- Features
- Technology Stack
- Quick Start
- Documentation
- System Architecture
- Project Structure
- API Reference
- Contributing
- Security
- License
- Support
- School Profile Setup: Complete school information management with document uploads
- Multi-institution Support: Designed to handle multiple educational institutions
- Branding & Customization: Upload school logos and customize profile information
- Regulatory Compliance: Track registration numbers, licenses, and TIN information
- Secure Authentication: JWT-based login system with encrypted passwords
- Role-based Access: Different permission levels for administrators and staff
- User Profiles: Comprehensive user information management
- Session Management: Secure session handling with automatic logout
- Class/Course Management: Create and manage classes across different academic years
- Student Enrollment: Comprehensive student information system
- Student Records: Detailed student profiles with photos and family information
- Bulk Operations: Efficient handling of multiple student records
- Real-time Statistics: Live dashboard with key metrics
- Visual Analytics: Charts and graphs for data visualization
- Report Generation: Comprehensive reporting system
- Data Export: Export data in various formats
- Advanced Search: Search students, classes, and records
- Filter Options: Multiple filtering criteria for easy data retrieval
- Quick Access: Fast navigation to frequently used features
- React 18.x - Modern UI library with hooks and functional components
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework
- Axios - HTTP client for API communications
- React Router - Client-side routing
- Lucide React - Modern icon library
- Node.js 20.x - JavaScript runtime environment
- Express.js 4.x - Web application framework
- Sequelize 6.x - Promise-based ORM for SQL databases
- SQLite 3.x - Lightweight, file-based database
- JWT - JSON Web Tokens for authentication
- Bcrypt - Password hashing library
- Multer - File upload middleware
- ESLint - Code linting and style enforcement
- Nodemon - Auto-restart development server
- PostCSS - CSS post-processing
- Git - Version control system
Ensure you have the following installed:
-
Clone the repository
git clone https://github.com/Arison99/School-Management-System.git cd School-Management-System
-
Install Backend Dependencies
cd backend npm install
-
Install Frontend Dependencies
cd ../frontend npm install
-
Environment Setup
cd ../backend cp .env.example .env # Edit .env file with your configuration
-
Start the Application
Backend (Terminal 1):
cd backend npm run dev
Frontend (Terminal 2):
cd frontend npm run dev
-
Access the Application
- Frontend: http://localhost:5173
- Backend API: http://localhost:6001
On first run, create an account through the signup process. The system will guide you through school profile setup.
- π User Guide - Complete user manual with screenshots
- π§ Installation Guide - Detailed setup instructions
- βοΈ Configuration Guide - Environment and system configuration
- π Deployment Guide - Production deployment instructions
- ποΈ Architecture Guide - System design and architecture overview
- π‘ API Documentation - Complete API reference and examples
- π Security Guide - Security implementation and best practices
- π§ͺ Testing Guide - Testing strategies and implementation
- β FAQ - Frequently asked questions and solutions
- π Troubleshooting - Common issues and fixes
- π Changelog - Version history and updates
- π€ Contributing Guidelines - How to contribute to the project
The School Management System follows a layered architecture pattern:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (React) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β Pages β β Components β β API Services β β
β β β β β β β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
HTTP/HTTPS
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Backend (Node.js) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β Routes β β Controllers β β Middleware β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β Services β β Repositoriesβ β Models β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Sequelize ORM
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Database (SQLite) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β Users β β Schools β β Classes β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β βββββββββββββββ β
β β Students β β
β βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Frontend Layer: React-based SPA with responsive design
- API Layer: RESTful Express.js server with JWT authentication
- Business Logic: Service layer handling core operations
- Data Access: Repository pattern with Sequelize ORM
- Database: SQLite for development, easily scalable to PostgreSQL/MySQL
School-Management-System/
βββ π backend/ # Backend server
β βββ π src/
β β βββ π config/ # Database and app configuration
β β βββ π controllers/ # Request handlers
β β βββ π middleware/ # Custom middleware
β β βββ π models/ # Database models (Sequelize)
β β βββ π repositories/ # Data access layer
β β βββ π routes/ # API route definitions
β β βββ π services/ # Business logic layer
β βββ π uploads/ # File upload storage
β βββ π server.js # Server entry point
β βββ π package.json # Backend dependencies
β βββ π .env # Environment variables
βββ π frontend/ # Frontend application
β βββ π src/
β β βββ π api/ # API service clients
β β βββ π assets/ # Static assets
β β βββ π Pages/ # React page components
β β βββ π App.jsx # Main App component
β β βββ π main.jsx # Application entry point
β βββ π index.html # HTML template
β βββ π package.json # Frontend dependencies
β βββ π vite.config.js # Vite configuration
βββ π docs/ # Documentation files
βββ π README.md # This file
βββ π CONTRIBUTING.md # Contribution guidelines
βββ π LICENSE # License information
βββ π CHANGELOG.md # Version history
Base URL: http://localhost:6001/api
POST /signup
- User registrationPOST /login
- User authentication
GET /schools/my-school
- Get current user's schoolPOST /schools
- Create school profilePUT /schools
- Update school informationGET /schools/stats
- Get school statistics
GET /classes
- Get all classesPOST /classes
- Create new classPUT /classes/:id
- Update classDELETE /classes/:id
- Delete class
POST /classes/:id/students
- Add student to classPUT /classes/:classId/students/:studentId
- Update studentDELETE /classes/:classId/students/:studentId
- Remove studentGET /students/search
- Search students
For detailed API documentation with examples, see API Documentation.
We welcome contributions from the community! Please read our Contributing Guidelines for details on:
- π How to submit issues
- π§ Setting up development environment
- π Code style and standards
- π§ͺ Testing requirements
- π€ Pull request process
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Security is a top priority. This system implements:
- JWT Authentication - Secure token-based authentication
- Password Encryption - Bcrypt hashing for password security
- Input Validation - Comprehensive data validation
- SQL Injection Prevention - Parameterized queries via Sequelize
- File Upload Security - Restricted file types and size limits
For detailed security information, see Security Guide.
This project is licensed under the MIT License - see the LICENSE file for details.
- π Check the User Guide for common tasks
- β Read the FAQ for frequently asked questions
- π Review Troubleshooting for common issues
- π‘ Search existing issues
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Discussions
- Lead Developer: Arison99
- Contributors: View all contributors
β Star this repository if you find it helpful!
π Website | π Documentation | π Report Bug | π‘ Request Feature
Made with β€οΈ by the Arison99