Introduction
Building a real-world web application from scratch is one of the fastest ways to level up as a Laravel developer. And nothing tests your skills across the full stack quite like a School Management System — a project that touches authentication, role-based access control, relational databases, PDF generation, file uploads, dashboards, and complex business logic all at once.
In this tutorial series, we build a complete School Management System (SMS) using Laravel 13, Filament 3, and Tailwind CSS — a modern, professional-grade tech stack used by thousands of production applications worldwide. Whether you are a student working on a college project, a freelancer building a portfolio, or a Laravel developer looking to master Filament, this project delivers everything you need.
The full source code is available — check the YouTube video description for the download link, and follow along with the video tutorial for a step-by-step walkthrough of every module.
What Is a School Management System?
A School Management System (SMS) — also called School ERP Software — is a web-based platform that digitises every administrative and academic operation of a school. From student admissions and attendance tracking to fee collection, examination results, timetable scheduling, library management, and payroll, a modern School ERP replaces paper registers and disconnected spreadsheets with a single, unified system.
This project covers a single-school deployment — the most common requirement for freelance projects and college submissions — but the architecture is clean enough to scale to multi-branch or SaaS use cases with minimal refactoring.
Who Is This Project For?
| Audience | How It Helps |
|---|---|
| Laravel beginners | Real-world project covering CRUD, relationships, auth, and policies |
| Filament learners | Complete Filament 3 resource, widget, and custom page examples |
| College students | Full-featured PHP project for final year submission |
| Freelancers | Ready-to-customise School ERP for client delivery |
| Portfolio builders | Impressive, production-quality project to showcase |
| School administrators | Deployable system for actual school operations |
Project Overview
This Laravel School Management System is a multi-role, multi-module web application that manages the complete lifecycle of a school — from the moment a parent submits an enquiry to the day a student graduates.
The system is designed around the concept of Academic Year Scoping: every piece of transactional data (enrolments, attendance, marks, fees, timetables) is tied to an academic year. This makes historical reporting clean, year-end transitions smooth, and data integrity rock-solid.
Key highlights of this Laravel project:
- 22+ fully functional modules covering every department of a school
- 8 user roles with granular, permission-based access control
- Filament 3 admin panel with a beautiful, responsive UI out of the box
- Mobile-first design using Tailwind CSS — works perfectly on phones and tablets
- PDF generation for report cards, fee receipts, certificates, and more
- Excel import/export for bulk data operations
- Role-based analytics dashboards — every role sees data relevant to their work
- SMS and email notification hooks for absences, fee dues, and exam results
- Full source code available — link in the YouTube video description
Modules Included in the System
1. Academic Year Management
The backbone of the entire system. Administrators create and manage academic years, define terms and semesters, and control year transitions. Only one year can be active at a time. Locking a past year makes it permanently read-only, protecting historical data from accidental edits.
Key features:
- Create, edit, and delete academic years
- Define terms (e.g., Term 1, Term 2, Term 3) per year
- Activate a new year with a single click
- Lock completed years to prevent data tampering
- View a banner on every screen showing the current active year
2. Dashboard (Role-Specific Analytics)
Every user role gets a personalised dashboard packed with real-time KPI cards, charts, and alerts. No two roles see the same screen — the dashboard adapts to show exactly what each user needs.
- Super Admin: Total students, staff, today's fee collection, pending admissions, monthly trends
- Principal: Academic performance, class-wise attendance, discipline alerts
- Teacher: Today's timetable, attendance status, pending homework, low-attendance students
- Accountant: Collection vs target charts, dues aging, payment mode breakdown
- Student: Attendance %, upcoming exams, fee dues, subject radar chart
- Parent: Child's performance, fee timeline, absence alerts
- Librarian: Books issued/returned today, overdue count, top borrowed books
- Receptionist: Admission funnel, new enquiries, follow-up reminders
Charts are powered by ApexCharts via Filament's widget system. All KPI widgets are cached and update in real time for critical roles like Accountant.
3. Student Management
A permanent student profile system that stores identity data independently of academic year data.
- Permanent profile: Name, date of birth, gender, blood group, religion, address, photo
- Guardian management: Multiple guardians per student with relationship, phone, email, occupation
- Document vault: Upload and categorise birth certificates, transfer certificates, medical documents
- Student ID card: PDF generation with photo, class, section, and barcode
- Search and filter: By class, section, status, admission year
4. Admissions Management
A three-stage admission pipeline that tracks every prospect from first contact to enrolled student.
Stage 1 — Enquiry: Parent name, phone, child name, date of birth, class applying for, source (walk-in, website, referral, phone, social media)
Stage 2 — Application: Full student details, document uploads, application review
Stage 3 — Enrolment: Admission number assigned, fee structure presented, first payment collected, student user account created
Status tracking: Enquiry → Application Received → Under Review → Approved → Enrolled → Rejected
5. Student Promotion & Transfer Engine
One of the most complex modules in any School ERP — handled elegantly with a multi-step Promotion Wizard.
Promotion Wizard steps:
- Select source year and target year
- Run automatic eligibility check per student (attendance %, failed subjects, fee dues)
- Review eligibility table — override individual students with a reason
- Confirmation screen with promoted/detained/TC/left counts
- Execute bulk promotion in a single DB transaction
Lateral Transfer: Mid-year class/section changes are fully supported. The old enrolment is end-dated and a new one created from the transfer date.
6. Attendance Management
Daily and period-wise attendance for every class.
- Daily attendance: Class teacher marks Present / Absent / Late / On Leave per student
- Period-wise attendance: Subject teachers mark attendance per period
- Leave applications: Students/parents apply → class teacher approves
- Holiday master: Define school holidays — excluded from attendance denominator automatically
- Low attendance alerts: Students below threshold flagged on teacher and principal dashboards
- SMS trigger: Queued job sends an SMS to the parent when a student is marked absent
- Monthly report: Download class attendance report as PDF or Excel
7. Timetable Management
A visual timetable builder with automatic conflict detection.
- Period master: Define period slots school-wide
- Timetable builder: Assign subject + teacher to each period per day per class-section
- Conflict detection: Prevents double-booking a teacher for two classes at the same time
- Class view: Day-vs-period grid for any class
- Teacher view: A teacher's complete weekly schedule across all their classes
- Student view: Read-only timetable in the student portal
8. Fee Management
A complete billing and collection system for school fees.
- Fee heads: Permanent categories (Tuition, Lab, Transport, Activity, Hostel)
- Fee structures: Amounts per class per academic year
- Bulk invoice generation: Generate all invoices for a class in one click
- Concessions/Scholarships: Fixed or percentage discount per student per fee head
- Payments: Record cash, UPI, cheque, online — partial payments supported
- Late fine: Auto-calculated based on configurable grace days and fine-per-day rate
- Fee receipt PDF: Professional receipt with school logo, student name, payment details
- Defaulters report: Exportable list of overdue invoices with parent contact details
- Dues aging: Categorised into 0–30, 31–60, and 60+ days overdue
9. Examinations & Grades
From scheduling exams to publishing report cards.
- Exam types: Unit Test 1, Mid-term, Final — defined per academic year
- Exam schedules: Date, subject, class, max marks, pass marks per exam
- Mark entry: Spreadsheet-style grid — teachers enter marks per student in one screen
- Bulk import: Upload marks via Excel template
- Auto grading: Grades calculated automatically from configurable grade scales
- Rank calculation: Student rank within class computed per exam
- Co-scholastic grades: Sports, arts, behaviour — graded by letter, not marks
- Report card PDF: Professional A4 report card with marks table, grades, rank, and attendance %
- Publish action: Locks marks and sends notifications to students and parents
10. Student History Ledger
A consolidated, read-only view of a student's complete academic journey across all years.
- Year-by-year card: class, section, attendance %, overall marks %, promotion outcome
- Expandable year cards showing exam results and fee summary
- Performance vs last year comparison chart
- Available to Super Admin, Principal, and the student themselves
11. Communication & Notices
School-wide and targeted communication tools.
- Notices: Post announcements targeted to all, a specific role group, a class, or a section
- Priority levels: Normal or Urgent
- SMS integration: Send bulk SMS to parents via MSG91 or Twilio
- Email notifications: Laravel Mail for fee reminders, result publications, event notices
- In-app notifications: Filament notification system for real-time alerts
12. Homework & Assignments
- Teachers create homework per class-section-subject with due dates and file attachments
- System auto-creates pending submission rows for every enrolled student
- Students submit via the student portal (text + file upload)
- Teachers grade submissions in a spreadsheet-style grid
- Submission status: Pending / Submitted / Graded
13. Certificates & Documents
- Bonafide Certificate: Confirms student is enrolled at the school
- Transfer Certificate (TC): Issued when a student leaves
- Conduct Certificate: Character reference for a student
- Issuance log with date, issued by, and purpose
14. HR & Staff Management
- Staff permanent profiles: designation, department, joining date, qualifications
- Leave types and leave balance management
- Leave application and approval workflow
- Experience letter generation
15. Payroll & Expenses
- Salary structures with allowances and deductions
- Monthly salary disbursements with slip generation
- Expense heads and voucher recording
- Salary register Excel export
16. Library Management
- Book catalogue: Categories, books, multiple copies per book, shelf location
- Memberships: Year-scoped membership for students and staff
- Issue & Return: Lock-safe issue preventing over-issue
- Reservations: Reserve a book when all copies are on loan
- Fines: Per-day fine calculated on return
- Reports: Overdue list, inventory, popular books, fine collection
17. Transport Management
- Route master with start/end points and stops
- Vehicle master (number, capacity, driver)
- Student transport allocations per year
- Route-wise student list for drivers
18. Hostel Management
- Block and room master (room number, type, capacity)
- Student hostel allocations per year
- Room occupancy tracking
19. Health & Medical
- Permanent student health record: allergies, medical conditions, blood group
- Sick visit log: date, symptoms, diagnosis, treatment, follow-up
- Vaccination records with due-date reminders
20. Discipline & Awards
- Incident types with configurable point deductions
- Discipline incident logging with action taken and approval workflow
- Award types with point additions
- Student conduct score calculated automatically
- Co-curricular activity tracking (sports, arts, clubs)
21. Events, Gallery & Calendar
- School event creation with organiser, dates, description, publish control
- Photo gallery per event (multi-photo upload)
- Visual calendar view showing events and holidays
- Student portal events page
22. Reports & Analytics
- Financial Report: Date-range fee collection with Excel + PDF export
- Academic Report: Class-wise result analysis, subject performance
- Attendance Report: Monthly class attendance, low-attendance student list
- Library Report: Overdue books, inventory, popular books
- Admissions Report: Enquiry register, conversion funnel, seat availability
System Users and Role-Based Access
This School Management System implements 8 user roles using Spatie Laravel Permission — the most popular role and permission package in the Laravel ecosystem.
Super Admin
The highest privilege level. Super Admin bypasses all permission checks — no individual permission assignments needed.
- Full access to every module without restriction
- Academic year management: create, activate, lock years
- User and role management: create staff accounts, assign roles
- Run the Student Promotion Engine at year end
- View all analytics and generate all reports
Principal
School-level oversight with read-heavy, approval-heavy access.
- Approve discipline incidents and staff leave applications
- Publish exam results
- View all class and subject performance reports
- Post school-wide notices
- Generate academic report cards
Teacher
Scoped strictly to their own assigned classes and subjects.
- Mark daily attendance for their class
- Enter marks for their assigned subjects
- Create and grade homework assignments
- Log discipline incidents for their students
- View their own class performance analytics
- Cannot view other classes' data — hard-scoped in the backend
Student
Read-only access to their own academic data via a dedicated student portal (/student).
- View and download report cards (PDF)
- Download fee receipts (PDF)
- Submit homework assignments (file + text)
- Apply for leave
- Request attendance or bonafide certificate
Parent
Mirror of the Student role — same data, parent's perspective. Supports multiple children via a child-selector tab.
- Switch between multiple children instantly
- View child's attendance, marks, fee status
- Receive SMS/email alerts for absences, fee dues, exam results
Accountant
Full access to financial modules only.
- Generate bulk fee invoices for a class
- Record fee payments and issue receipts
- Grant concessions/scholarships
- Process monthly payroll
- Generate day book, defaulters list, collection reports
- Export all financial data to Excel or PDF
Librarian
Scoped entirely to the library module.
- Issue and return books
- Manage book catalogue and copy inventory
- Create and renew library memberships
- Collect and record fines
- Generate overdue and inventory reports
Receptionist
Front desk operations — admissions and communication.
- Log new admission enquiries
- Move applications through the pipeline stages
- Issue bonafide, TC, and conduct certificates
- Post school notices
- View seat availability per class
Technology Stack
Laravel 13
Laravel is the most popular PHP framework in the world. This project uses Laravel's full feature set: Eloquent ORM, Queue system, Mail, Storage, Policies, Observers, Scopes, Service classes, and Form Requests.
Filament 3
Filament is a rapid application development framework built on top of Laravel and Livewire. It generates a complete, beautiful admin panel with minimal boilerplate. This project uses Filament for all admin panel CRUD resources, custom pages, dashboard widgets, actions, and a separate student portal panel.
Tailwind CSS
Tailwind CSS is a utility-first CSS framework that ships with Filament out of the box. Every UI component is styled with Tailwind utility classes following a consistent design language.
PHP 8.4
This project uses PHP 8.1+ backed enums for all status fields, making status values type-safe and self-documenting.
MySQL 8.4
All data is stored in MySQL 8.4 with proper indexing for analytics queries and a strict academic year scoping pattern.
Key Packages
| Package | Purpose |
|---|---|
| spatie/laravel-permission | Roles and permission management |
| barryvdh/laravel-dompdf | PDF generation (report cards, receipts, certificates) |
| maatwebsite/laravel-excel | Excel import/export (marks, fee defaulters, reports) |
| intervention/image | Photo resizing and processing |
Why Use This Project?
For Laravel Beginners
This project teaches you how Laravel applications are structured in the real world — not a simple todo app, but a full production system with services, observers, policies, jobs, notifications, and custom Filament pages. Every major Laravel concept appears in context.
For Filament Learners
There is no better way to learn Filament 3 than to see it applied across 22 modules. This project covers every major Filament primitive: Resources, RelationManagers, Custom Pages, Actions, Widgets, Notifications, and Panel Providers.
For College Students
A School Management System hits every checkbox on a final-year project rubric: authentication, RBAC, CRUD operations, reporting, file handling, PDF generation, and a polished UI. This project is ready to present.
For Freelancers
Need to deliver a School ERP to a client? This codebase gives you a solid, well-architected foundation. Customise the modules, add the school's branding, and deploy.
For Portfolio Builders
A School Management System demonstrates breadth: database design, backend logic, frontend UI, PDF generation, Excel integration, role-based access, analytics — all in one project.
For Understanding School ERP Systems
If you want to understand how enterprise resource planning systems work in the education sector, this project is a clean, readable, well-documented implementation. The patterns here apply directly to hospital management systems, hotel management systems, and any other multi-role ERP domain.
Source Code Download
The complete source code for this School Management System is available for download. You will find the download link in the description of the YouTube tutorial video.
The source code includes:
- All migrations, models, and seeders (including demo data with 270 realistic students)
- All Filament resources, pages, and widgets for every module
- All service classes and business logic
- PDF Blade templates for report cards, receipts, and certificates
- Student portal with mobile-first design
.env.examplewith all required configuration keys
To get the source code:
Getting Started — Quick Setup
Once you have downloaded the source code, getting the project running locally takes just a few minutes:
# 1. Install dependencies
composer install
npm install
# 2. Copy environment file and configure your database
cp .env.example .env
php artisan key:generate
# 3. Run migrations and seed demo data
php artisan migrate
php artisan db:seed
# 4. Create storage symlink
php artisan storage:link
# 5. Start the development server
php artisan serve
Then open http://localhost:8000/admin and log in with the demo credentials provided in the video.
The demo seeder populates the system with 270 realistic students across Grades 1–8, two academic years of historical data, complete attendance records, exam results, fee transactions, and more — so every dashboard shows live, meaningful data from the moment you log in.
Conclusion
This Laravel 13 School Management System is one of the most complete PHP projects available for learning and real-world deployment. Built on Filament 3, styled with Tailwind CSS, and powered by a carefully designed MySQL database, it covers every aspect of school administration in a single, unified platform.
Whether you are building your first Laravel project, preparing a final-year submission, expanding your freelance portfolio, or evaluating Filament as an admin panel framework — this project delivers.
Here is what to do next:
- Watch the YouTube tutorial — a full step-by-step walkthrough of every module
- Download the source code — link in the video description
- Run the project locally — follow the quick setup above
- Explore and customise — modify modules, add features, make it your own
- Share this article — help other Laravel developers discover this resource
- Leave a comment — ask questions, share what you built, give feedback
- Subscribe — more Laravel tutorials, Filament deep-dives, and PHP projects are coming
Thank you for reading. Now go build something great.
Tags: Laravel 13, Filament, Tailwind CSS, School Management System, Laravel Project, Laravel Source Code, Filament Admin Panel, Laravel CRUD, Student Management System, PHP Project, School ERP, Laravel Tutorial, School ERP Software, School Management Software, Laravel Filament Tutorial, PHP School Project



