Overview
- A defect reporting and management system for a training academy
- Built during my Software Developer internship at OCP Group
- Laravel backend with Blade templating and a Filament admin panel
- Rooms, anomalies and reports modelled as first-class resources
- Role and permission based access control, enforced with Laravel policies
The problem
Logistical defects in training rooms were reported informally, which makes them easy to lose and hard to track to resolution. The application gives each defect a record, an owner and a state.
How it is built
Domain model
Salle(room),Anomalie(anomaly) andRapport(report) resources, each with full CRUD- Reports attach an anomaly to a room, so a defect always has a location
Authorisation
Rather than one shared admin login, access is explicit:
- Roles and permissions assigned per user
- Laravel policies for users, roles and reports, so authorisation is enforced in one place rather than scattered through controllers
- Admin navigation, redirects and notifications customised per role
What I took from it
Most of the work was not the CRUD, it was the authorisation model: deciding who may see and change what, then expressing it as policies rather than scattered conditionals. That separation between what the app does and who is allowed to do it is the same thinking that shows up later in identity-based network access control.