Work / Tovex-ERP
Tovex-ERP
Industrial manufacturing ERP suite — React 19 + WebGL/three.js GLSL shaders, 12-role RBAC, front-end-only demo
Stack
erp · manufacturing · react · threejs · typescript · webgl
Source on GitHub ↗ · Talk to me →
Readme
Industrial ERP suite for a steel and heavy-fabrication plant — front-end only.
Live demo
Every screen works, every role sees a personalised experience, and all data flows from a single in-memory source of truth. The visual layer is built on WebGL — three.js with custom GLSL shaders — for a "rendered, not drawn" control-room feel.
No backend and no login. The app boots into a first-run setup wizard (create company → set brand → add or import members) and then straight into the dashboard. Operational data is seeded in memory; company, members, modules, and permission overrides persist locally.
Getting started
npm install
npm run dev # http://localhost:3000/Tovex-ERP/
npm run build # tsc -b + vite build → dist/public
npm run check # type-check only
npm run preview # preview the production buildStack
The shader backdrop uses a custom fbm / domain-warped simplex noise pass with restrained bloom, vignette, and grain, plus shader "breath" transitions between routes.
Highlights
Live theming. A dark control-room theme with a molten-orange accent as the single source of truth. Change it in Company Settings and the whole app re-themes live — both the CSS variables and the shader's uAccent uniform.
12 roles with RBAC. A header role switcher re-personalises the dashboard, sidebar, calendar focus, and write permissions. The permission matrix is editable under Access Control.
First-run setup wizard. Company profile, brand accent, and team members added manually or imported from an Excel/CSV file (template included).
Operations. Customers, sales leads, quotations, products, inventory, purchase orders, vendors, production orders, quality reports, machines, maintenance, projects, and tasks — each a full CRUD list with search, pagination, CSV export, and inline status/stage changes.
Admin layer. A document engine (PR, RFQ, PO, WO, BOM, Invoice, and more) with an approvals trail, an append-only audit log, a module manager that enables and renames modules live, plus departments, employees, and a reports/export centre.
Calendar. Aggregates dated events across every entity, highlights overdue items, and filters to each role's focus.
Accessibility and resilience. Respects prefers-reduced-motion (with an in-app toggle that freezes the shader), pauses the render loop when the tab is hidden, caps device pixel ratio, and falls back to a static CSS backdrop where WebGL is unavailable.
Deployment
base is set to /Tovex-ERP/ for GitHub Pages project hosting. The included workflow (.github/workflows/deploy.yml) builds the frontend and publishes dist/public with a 404.html SPA fallback.
To host elsewhere, update base in vite.config.ts to match your path.
More work
plc-checkweigher
One-command installer for the Mitsubishi PLC check-weigher system. Python · Raspberry Pi · Mitsubishi PLC · PDF Reports · npm CLI
checkweigher
High-speed industrial check-weigher on the edge. Python · Raspberry Pi 4 · XT1000 · T16 Load Cell
Tovex-CRM
Modular CRM platform with real-time dashboards. TypeScript · TypeScript · Modular Architecture · Real-time Dashboards