Digital Permit to Work
A digital permit management platform for manufacturing environments, replacing paper permits and signature chains with a tracked multi-step approval flow.
- Timeline
- 2023 – 2025
- Context
- Professional project · Innoart Technologies
- My role
- Full stack engineer — approval workflow, dashboards, client collaboration
Illustrative representation of the interface — not a screenshot of client software.
- 50%
- Reduction in human error
- 35%
- Faster permit issuance
Digitising the permit issuance and approval chain
Structured multi-step approval flow
The problem
High-risk work in a plant can't start without a permit, and the permit was paper. Paper means a physical signature chain, permits that sit on the wrong desk, fields left blank, and no reliable way to know what work is currently authorised anywhere on site.
The cost of a mistake here isn't a bug report — an incomplete or wrongly approved permit is a safety problem, so the failure mode drove the whole design.
What I worked on
Built the permit management platform with React and Tailwind on the front end and Django with PostgreSQL behind it.
Designed and implemented the multi-step approval flow: who can raise a permit, who has to sign off at each stage, and what has to be complete before it can move forward.
Built the dashboards that show permit status across the site, so "what's open right now" is a question the system answers.
Collaborated closely with the client's engineers to understand the real permit process — including the informal parts that don't appear on the form — before turning it into software.
How it worked
A permit is a workflow record with a defined stage sequence and required approvals per stage. Validation lives with the workflow definition rather than being scattered across form components, so a rule change is one change.
Every transition is attributed and timestamped, which turns the audit trail from a reporting feature into a property of the data.
The React front end is driven by the permit's current stage and the current user's role: the same screen renders as a form, a review or a read-only record depending on where the permit is and who's looking at it.
Dashboards read aggregated permit state from PostgreSQL for status, ageing and bottleneck views.
Challenges
Digitising a process nobody had written down. The documented procedure and the actual procedure were different, and the useful version only came out of sitting with the client's engineers.
Enforcing completeness without making the form hostile. Too strict and people work around the system; too loose and you've rebuilt paper with extra steps.
Approval chains vary by permit type and area, so the flow had to be configurable rather than hard-coded — while staying legible enough that a safety officer could confirm it matched policy.
Outcome
~50% reduction in permit-related human error after moving off paper.
~35% reduction in permit issuance time through the structured approval flow.
Permit status across the site became visible in one place instead of living in a folder on someone's desk.