The problem
Before starting a machining operation, an operator needs to verify machine conditions, safety checks, required tools and workpiece setup. A general-purpose interface can expose unnecessary information and make this preparation workflow harder to follow.
The outcome
The HMI provides a controlled stage-by-stage workflow that guides the operator from machine checks through tool and workpiece verification to a final ready state and simulated operation.
The approach
I designed the system around a persistent HMI session and an explicit workflow state. React provides the operator interface, while Spring Boot exposes REST APIs and enforces the workflow rules. PostgreSQL stores the machine and session data.
What I built
Engineering decisions
The key architectural decision was to make the backend responsible for workflow validation. The frontend controls the operator experience, but the server determines whether the workflow is allowed to move to the next stage. This prevents the application from relying only on frontend button states for important business rules.