Integrated academic and extracurricular school management platform

The School Management System is an academic data processing application designed to make it easier for admins, teachers, and students to interact with the school database. Main features include layered CRUD operations with grouped authentication authorization (Admin, Teacher, Student). Through a robust ORM implementation, this application can map complex relationships like Many to Many between students and extracurricular activities. In addition, the system is equipped with Soft Deleting to accommodate accidentally deleted student data that can be restored, as well as dynamic search paired with pagination to maintain browser performance.
Menu access is managed based on roles. Admins have full operation access (Add/Edit/Delete), Teachers can only Update, and Students have View only access for data privacy and security.
Student data is connected to Class (One to Many), Teacher (One to One with class), and Extracurricular activities (Many to Many via pivot tables).
A secure feature where every deleted data goes to the Trash (Deleted Data list), allowing Admins to either restore the data or permanently delete it.
Equipped with smart search features based on name, student ID, or class. Query optimization using Eager Loading has proven effective in preventing the N+1 performance issue.
Initially, fetching Student with Extracurriculars relationship resulted in a sudden spike of queries. I resolved this by implementing Eloquent's Eager Loading feature, converting it to a maximum of 2 lightweight queries.
Ensuring that views (delete/edit buttons) only appear according to the user's role. This was resolved by combining Blade conditionings on the frontend.