AH Original · Case study 05
ProjSafe
A permit-to-work app for high-risk site jobs: risk assessments, three-step approvals and daily hazard check-outs, built in Flutter on Horizech’s HWS platform and run from a web dashboard.
Private app behind a company login. Screens are recreated with fictional sites and people.
- Role
- Lead Flutter developer
- Stack
- Flutter · HWS
- Year
- 2025


- Type
- Field safety · permit to work
- Role
- Lead Flutter developer
- Stack
- Flutter · HWS
- Access
- Private · behind login
01. The workflow
No permit, no work.
Hot work, confined spaces, excavation near live cables and heavy lifts all need a risk assessment and sign-off before anyone starts. On many sites that still means paper and phone calls. ProjSafe moves the whole loop onto the phone, and every step it records can be audited later.
- 01
Create
The worker adds the job, uploads the risk assessment PDF and picks a supervisor and HSE manager.
- 02
Approve
Supervisor, then HSE manager, approve or reject with a comment. A rejection sends it back for a fix.
- 03
Check in
Each day starts by accepting every safety check and taking site photos.
- 04
Check out
Each day ends with “Any hazard?” and, if so, its root cause and comments.
02. The HWS dashboard
Every site,on one screen.
ProjSafe runs on Horizech’s HWS workspace. HSE managers and admins follow live jobs, check-ins and hazards there, and manage the people, forms and equipment the app depends on.
Recreated with fictional sites and people

03. Rules, not releases
The app reads its behaviour from the dashboard.
Which job states each role sees, under which tab, in which colour and order, comes from a status mapping on the server. Hazard assessment fields come from JSON form definitions. Change either in the dashboard and every phone picks it up on next open, with no new build in the stores.
- Live counts of jobs, approvals, check-ins and hazards
- Hazards grouped by the root cause reported on site
- Approval trail and pre-start checks on every job
- QR labels printed straight from the equipment register




04. The mobile app
Three roles, one app.
I led the Flutter app from its first screens to v0.1.7. After sign-in, workers, supervisors and HSE managers each land on their own home: a pie chart of their jobs by status, the jobs waiting on them, and a bottom bar with a QR scanner in the middle.
- One app, three roles: worker, supervisor and HSE manager
- Pie chart of jobs by status; tap a slice to load those jobs
- Risk assessment PDFs uploaded and viewed in the app
- Every approval, rejection and re-upload kept in the history




05. Field forms & equipment
Checks done where the work is.
Field Level Hazard Assessments and light-vehicle pre-trip inspections are filled in on site, step by step, then reviewed by a supervisor. Scanning the QR label on a gas detector or a crane opens its manuals, certificates and videos right there.
- Multi-step forms rendered from JSON, text areas included
- Light-vehicle pre-trip checks with plate, comments and review
- Equipment PDFs, Office files, links and video in the app
- Labels are server-side i18n keys, cached on the phone



06. Architecture
A thin client, a smart backend.
The app talks to HWS through the Apiraiser client. Sessions sit in secure storage and refresh in the background, so a long shift never ends in a surprise sign-out. Status mapping and labels are cached on the phone, so screens open fast on a weak signal.
Flutter app
Worker · Supervisor · HSE
Auth
Secure storage · token refresh
HWS API
Apiraiser client
HWS dashboard
Jobs, forms & rules
Data & media
Jobs · forms · PDFs · photos
07. In numbers
First commit to v0.1.7 in seven months.
Work began in January 2025 with sign-in and the QR scanner. After the first release in July, seven more followed within a month as feedback came in from the field: hazard levels, check-out comments, vehicle number plates and a new job overview.
- 3
- Roles in one app
- 88
- Of 105 commits mine
- 8
- Releases, v0.1.0 to v0.1.7
- 2
- Platforms, one codebase
08. Technologies
- Flutter
- Dart
- flutter_up
- Apiraiser
- HWS
- Dio
- Secure storage
- mobile_scanner
- fl_chart
- Syncfusion PDF
- WebView
- image_picker
- file_picker
- i18n
AH Originals
More Like This
Next episode
Want something like ProjSafe?
Tell me about your idea and I'll reply with honest advice and a free quote. Replies within 24 hours.