OH SCRAP!
Multi-tenant job-shop platform — estimating, scheduling, and a live shop floor, in daily production.




The problem
A manufacturing job shop ran estimates in spreadsheets, schedules in shared Excel, and tracked production on paper. There was no single source of truth for job status or cost — so visibility gaps, scheduling conflicts, late jobs, and double-entry into QuickBooks were routine.
What I built
- Estimate → quote → work-order lifecycle with reusable templates and automatic status transitions
- A back-scheduling engine that respects work-center capacity, shifts, and not-later-than dates, with manual overrides
- An interactive shop floor with drag-drop operation reordering and live Socket.io updates across the team
- First-Article QC holds with an approve / reject / rework workflow
- Multi-dimensional reporting: production trends, cost variance, scrap analysis, actual-vs-estimated labor
- Tenant-safe RBAC on every route, model, and service; Auth0 invite-only org enrollment
- QuickBooks Online integration — connection management, customer import, and estimate export
Architecture
A React 18 + TypeScript + Vite front end against a Node/Express + Mongoose API. MongoDB is partitioned per organization for tenant isolation, Auth0 handles OIDC + machine-to-machine auth, Socket.io drives real-time shop-floor sync, files live in Google Cloud Storage behind signed URLs, and Sentry + Pino provide observability. Husky pre-commit gates keep the test suite green.
Scale & metrics
Outcome
My product — built and owned by me, with Sutcliffe Mechanical as the flagship customer using it on the shop floor every day. Six versions shipped on a continuous customer-feedback loop, with tenant isolation ready for additional orgs.
Want something like this built for your business?
Fractional & project engagements for small, growing teams — now booking.