FRM← back to projects07 / 10

07 / CASE STUDY

LIVE DEMO

ZeroDown.

From a QR on the machineto a closed work order.

A maintenance system (CMMS) for factories, with no sensors or IoT. Operators report, supervisors triage and assign, technicians repair, and the asset history writes itself.

STATUS
LIVE DEMO
INPUT
QR REPORT
OUTPUT
WORK ORDER

BUILT WITH

  • Next.js
  • TypeScript
  • Prisma
  • PostgreSQL
  • Recharts
visit live site ↗

Every machine that stops leaves a trail, from the first report until the work is verified.

01 / CONTEXT

Factory maintenancestill runs on group chats.

A machine breaks, someone tells someone, and the work order gets lost along the way. Nobody knows how long the machine was really down. ZeroDown puts the whole flow in one place, and every reading is entered by a person.

OPERATORScan, report, track. Mobile.
TECHNICIANWork queue and checklist. Mobile.
SUPERVISORTriage, work orders, PM. Desktop.

02 / SYSTEM

Three roles,one flow.

The operator answers three questions: is the machine stopped, is there a safety risk, is product quality affected. Severity is computed from those answers, and priority comes from severity crossed with how critical the asset is.

  1. 01SCAN QR
  2. 02REPORT
  3. 03TRIAGE
  4. 04REPAIR
  5. 05VERIFY

CLOSED

03 / ENGINE

The rules livein the code.

Issues and work orders are separate entities. Several reports can point to one work order, and preventive work orders have no report at all. Both move through a state machine: a technician can only reach "ready for verification", on hold always needs a reason, and verification can reopen the job.

STATE MACHINETechnicians can't close their own jobs.
PRIORITYSeverity × asset criticality.
AUDITOne event log for timelines and reports.

04 / STATUS

Live, witha made-up factory.

ZeroDown is a portfolio project. The factory, its 36 assets, and its people are seeded, and there are no real users yet. Login is still a demo user switcher, and photo upload exists only in the interface. Try it yourself: pick a person from "Signed in as" in the bottom right.

DECISIONS

Why it is builtthis way.

  1. 01
    Three questions for the operator

    Is the machine stopped, is there a safety risk, is quality affected. Severity comes from those answers, then crosses with asset criticality to set priority.

  2. 02
    Issues and work orders are separate

    Several reports can point to one work order, and preventive work orders have no report at all.

  3. 03
    A state machine

    A technician can only reach ready for verification, on hold always needs a reason, and verification can reopen the job.

  4. 04
    One event log

    Work order timelines and reports read from the same source.

PRODUCT FLOW DEMO

The ZeroDown flow from a reported issue to a work order being created and handled.

SCREENSHOTS

Taken straight from the application while running.

ZeroDown work order list with source, priority, status, and assignee columns.
The work order list. A row on hold gets tinted and carries its reason.
Work order WO-2003 on hold, waiting for a vendor, with its progress history.
On hold needs a reason. The history below is read from the same event log as the reports.

NEXT PROJECT

Artha08 ↗