Back to experience
Industrial Systems · Case Study

One dashboard for the plant floor: ERP, QA, and 200+ live SCADA tags

Computer Science Engineer Intern · Voyage Foods · Mason, OH · May 2026 — Aug 2026

Voyage Foods runs real manufacturing lines, but the data describing those lines lived in four disconnected systems. I built a centralized React dashboard that unifies ERP, QA, and live machine telemetry into a single plant-floor view — and re-platformed the historical tag storage so it could actually scale.

ReactPostgreSQLIgnition SCADAOPC-UACin7 ERPSafetyChain
4
systems unified into one view
200+
Ignition tags visualized
10+
production machines monitored
SQLite→PG
tag history re-platformed

Production data was scattered across Cin7 Core ERP (orders & inventory), SafetyChain (quality assurance), and Ignition SCADA (live machine signals). To answer a simple question about plant performance, someone had to jump between three or four tools and reconcile them by hand.

On top of that, the historical PLC tag data was being stored in SQLite — fine for a prototype, but a bottleneck once we wanted to retain and query hundreds of tags across many machines over time.

  1. 1

    Unify the sources behind one interface

    I built a React dashboard that pulls from Cin7 Core ERP, SafetyChain QA, Ignition SCADA, and PostgreSQL, normalizing them into one consistent view so the plant floor and management read from a single source of truth instead of four.

  2. 2

    Re-platform the tag history: SQLite → PostgreSQL

    I migrated PLC tag storage from SQLite to PostgreSQL, giving the historian a database that could handle the write volume and ad-hoc analytical queries the team actually needed.

  3. 3

    Make 200+ tags legible

    I surfaced 200+ Ignition tags across 10+ production machines as graphs and analysis views — turning a firehose of raw OPC-UA signals into trends an engineer can scan and act on.