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.
The problem
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.
What I built
- 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
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
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.