The brief
A ship’s engine room runs on planned maintenance. Critical machinery like the main engine, generators, boiler, refrigeration plant, purifiers, air compressors, and the sewage plant is serviced on running-hours cycles, and every job has to be signed off by the right officer before it can close. Traditionally that lives in binders and spreadsheets the crew can’t carry into the machinery spaces. MPMS turns it into a system of record the engineers run from their phones.
What it handles
The maintenance workflow, modelled the way an engine department actually operates. Jobs move from TODO to in progress to completed and then approved or rejected, each tracking its assignee, due date and running hours. The discipline lives in the rank-gated approval chain. Permissions are a matrix of eight machinery systems × six actions (view / create / update / delete / complete / approve), and an officer only sees and acts on work at or below their rank, from Chief Engineer to Second to Third to Fourth. Completed work notifies the Chief Engineer or Admin for review, and a rejection bounces back to the assignee with the job reopened.
On approval, any job with an interval auto-reschedules itself for the next running-hours cycle, preventive maintenance that regenerates without anyone re-entering it. Each job carries instructions (authored by the Chief/Admin, with image, video or PDF attachments), a running log of remarks with photo attachments and a current-maintenance marker, and the spare parts consumed against it. A Kanban board and a colour-coded calendar (overdue, due-today, due-within-three-days) give the watch a fast read on what’s outstanding.


How it’s built
A Laravel 11 / PHP 8.2 REST API, roughly 45 endpoints, 17 controllers, 12 models, and 26 migrations, secured by JWT auth behind three layers of custom middleware (token, role, and resource-action permission), with spatie role-based access control encoding the rank/permission matrix and MailerSend for email. The front end is React 18 + Vite with Redux-Saga state.
The signature engineering is the delivery surface. MPMS is an installable PWA (display: standalone) that fires genuine web-push notifications through a VAPID service worker. An engineer gets a native-style alert on their phone the moment a job is assigned to them, completed work needs their approval, or a daily sweep flags jobs coming due, all driven by a scheduled command on the backend plus state-transition triggers. No native app, no app-store review, no second codebase. The same web app that runs the office behaves like an installed mobile app down in the machinery spaces.
Why it matters
Designed, built and delivered in a single focused quarter, then handed to client turnover on schedule. It’s a tight demonstration of the standard we hold for operational software. A permission model that encodes a real chain of command instead of trusting an honor system, preventive maintenance that regenerates itself off running hours, and a mobile-first web app that gives crews native-grade push notifications without the cost, lock-in, and duplicated effort of building for the app stores.