A comprehensive, modern school management solution built with Laravel
- About
- Features
- Tech Stack
- Installation
- Configuration
- User Roles
- Screenshots
- Database Schema
- API Documentation
- Contributing
- License
- Support
School Management System is a comprehensive web-based application designed to streamline and automate school operations. Built with Laravel 12 and modern web technologies, it provides an intuitive interface for managing students, teachers, classes, attendance, examinations, fees, library, and much more.
- Digitalize school administration processes
- Improve communication between stakeholders
- Provide real-time analytics and reporting
- Ensure data security and privacy
- Create a user-friendly experience for all roles
- Student registration and profile management
- Online admission form with document upload
- Roll number and admission number generation
- Student ID card generation
- Bulk student import/export
- Student promotion and transfer
- Academic history tracking
- Teacher profile management
- Subject and class assignments
- Workload management
- Performance tracking
- Teacher ID card generation
- Leave management system
- Salary structure and payroll
- Class and section management
- Subject management with elective options
- Timetable generation (manual and auto)
- Academic year management
- Curriculum management for Classes 1-10
- Multiple academic groups (Science, Humanities, Commerce)
- Daily attendance marking
- Student attendance tracking
- Teacher attendance management
- Attendance reports (daily, monthly, yearly)
- Leave request management
- SMS/Email notifications for absences
- Exam schedule management
- Marks entry and management
- Grade calculation system
- Report card generation (PDF)
- Progress tracking
- Result publication
- Mark sheets and transcripts
- Fee structure management
- Fee collection tracking
- Online payment integration ready
- Receipt generation
- Scholarship management
- Expense tracking
- Invoice management
- Financial reports (income, expense, balance)
- Fee defaulter tracking
- Student ledger
- Book cataloging with ISBN
- Book issue and return
- Fine calculation for overdue books
- Digital library support
- Book reservation system
- Barcode scanning support
- Library reports and statistics
- Internal messaging system
- Announcements and notices
- Event management
- Notice board
- Parent-teacher communication
- Email notifications
- SMS integration ready
- News management
- Photo gallery
- Contact form management
- Complaint/feedback system
- Dashboard with analytics
- Role-based access control
- Activity logs
- Advanced search
- Data export (CSV, Excel, PDF)
- Complete system control
- User management
- Reports and analytics
- System settings
- Data backup
- Class and subject management
- Attendance marking
- Marks entry
- Student progress tracking
- Class materials upload
- Assignment management
- Communication tools
- Personal dashboard
- Attendance view
- Exam results
- Timetable
- Assignments
- Fee status
- Library books issued
- Child's progress tracking
- Attendance monitoring
- Exam results view
- Fee payment
- Teacher communication
- Event calendar
- Fee management
- Payment processing
- Financial reports
- Invoice generation
- Book management
- Issue/return tracking
- Fine management
- Library reports
- Framework: Laravel 12.33.0
- PHP Version: 8.2.12
- Database: MySQL
- Authentication: Laravel Breeze
- Authorization: Spatie Laravel Permission
- CSS Framework: Tailwind CSS
- JavaScript: Alpine.js
- Icons: Heroicons
- Charts: Chart.js (ready to integrate)
- Build Tool: Vite
- PDF Generation: DomPDF
- Excel Export: Laravel Excel (ready to integrate)
- Image Processing: Intervention Image (ready to integrate)
- Queue Management: Laravel Queue
- PHP >= 8.2
- Composer
- Node.js & NPM
- MySQL/MariaDB
- Git
-
Clone the repository
git clone https://github.com/Torikul-048/School_Management_System.git cd School_Management_System -
Install PHP dependencies
composer install
-
Install NPM dependencies
npm install
-
Create environment file
copy .env.example .env
-
Generate application key
php artisan key:generate
-
Configure database
Edit
.envfile and set your database credentials:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=school_management DB_USERNAME=root DB_PASSWORD=your_password
-
Run migrations and seeders
php artisan migrate --seed
-
Create storage link
php artisan storage:link
-
Build assets
npm run build
-
Start development server
php artisan serve
-
Access the application
Open your browser and visit:
http://localhost:8000
After running seeders, use these credentials to login:
- Email: admin@school.com
- Password: password123
β οΈ Security: Change default password immediately after first login!
Configure your file storage in .env:
FILESYSTEM_DISK=publicSet up email service (Gmail, Mailgun, etc.):
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@yourschool.com
MAIL_FROM_NAME="School Management System"For background job processing:
php artisan queue:work- Full System Access
- User management
- All CRUD operations
- System settings
- Reports and analytics
- Class and subject management
- Attendance marking
- Marks entry
- Student progress tracking
- Communication with students/parents
- View personal information
- Check attendance
- View exam results
- Access assignments
- View timetable
- Monitor child's progress
- View attendance and results
- Communicate with teachers
- Pay fees online
- Fee management
- Payment processing
- Financial reports
- Invoice generation
- Book management
- Issue/return tracking
- Fine collection
- Library reports
Modern, responsive homepage with news ticker and information sections
Comprehensive dashboard with real-time analytics and quick actions
Easy-to-use student management interface
Quick and efficient attendance marking system
Professional report card generation
- users - System users with authentication
- students - Student information
- teachers - Teacher details
- classes - Class information
- sections - Class sections
- subjects - Subject details
- attendances - Daily attendance records
- exams - Examination details
- marks - Student marks
- fee_structures - Fee configuration
- fee_collections - Fee payment records
- books - Library books
- book_issues - Book issue records
- contacts - Contact form submissions
- announcements - School announcements
- events - School events
- notices - Notice board items
[View complete ER diagram](docs/database-schema.png)
All API endpoints require authentication via Laravel Sanctum tokens.
GET /api/students - List all students
POST /api/students - Create new student
GET /api/students/{id} - Get student details
PUT /api/students/{id} - Update student
DELETE /api/students/{id} - Delete student
GET /api/attendance - Get attendance records
POST /api/attendance - Mark attendance
GET /api/exams - List exams
GET /api/results/{student} - Get student results
View complete API documentation
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow PSR-12 coding standards
- Write meaningful commit messages
- Add comments for complex logic
- Update documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- π§ Email: support@schoolsystem.com
- π Issues: GitHub Issues
- π Documentation: Wiki
- Laravel Framework
- Tailwind CSS
- Spatie Laravel Permission
- All open-source contributors
- β Core Features: Complete
- β Student Management: Complete
- β Teacher Management: Complete
- β Attendance System: Complete
- β Examination Module: Complete
- β Finance Module: Complete
- β Library Module: Complete
- β Communication System: Complete
- π Mobile App: In Progress
- π Advanced Analytics: Planned
Made with β€οΈ for Better Education Management
Β© 2025 School Management System. All rights reserved.