Case study · Wholesale distribution ERP
Valyxto
A multi-warehouse inventory and distribution ERP running the full order-to-cash and procure-to-pay cycle — with landed cost, lot/bin traceability, and a live report builder feeding a configurable BI dashboard.
Role
Senior UI Engineer
Focus
Theming, dashboards
& BI widgets
Stack
Angular · PrimeNG
Chart.js
Industry
Wholesale
distribution
Order-to-cash
Full sales and procure-to-pay cycles — quote, order, fulfilment, invoice, payment — in one system.
6 formats
Barcode and QR label generation across CODE128, EAN, UPC, CODE39, MSI and QR for lot/bin tracking.
Live BI
A dynamic report builder feeds configurable, Gridster-based Chart.js dashboard widgets.
Multi-currency
Live exchange-rate integration recalculates every money-bearing document automatically.
The problem
Distribution businesses run two parallel financial cycles — selling and buying — across multiple warehouses, currencies and regulatory reporting periods, and they all have to reconcile.
The platform needed multi-warehouse stock visibility down to the bin and lot, landed-cost apportionment across receipts and returns, AR/AP aging by fiscal period, and a reporting layer flexible enough to answer questions the team hadn't anticipated when the schema was designed.
What it does
Order-to-cash & procure-to-pay
CRM opportunity through fulfilment, invoicing and payment in one connected pipeline.
Multi-warehouse inventory
Stock tracked per warehouse down to bin and lot level, with cycle counts and transfers.
Landed cost
Freight, duty and other costs apportioned directly into receipts, fulfilments and returns.
Barcode & QR labelling
Warehouse-precise label generation across six barcode/QR formats for bin and lot use.
Dynamic report builder
Entities, joins and filters compose custom reports — not a fixed set of canned ones.
Gridster BI dashboards
Any saved report becomes a live, drag-and-drop, resizable Chart.js widget.
My role
I worked as UI engineer on Valyxto, focused on the application's visual theme, dashboard tooling and BI widget system across dozens of live transactional screens.
- • Refreshed the application's visual theme in PrimeNG without touching existing functionality
- • Implemented the interactive dashboard charts using Chart.js
- • Led R&D on Gridster2 for dashboard customization — drag-and-drop layout, resizable widgets
- • Helped developers persist dashboard layouts through existing APIs
- • Delivered responsive layouts optimized for multiple screen sizes
Key decisions
Restyling live screens without breaking them
The theme refresh had to touch dozens of transactional PrimeNG tables, dialogs and forms already in production use — I restyled in place, layering Tailwind utilities for custom layout rather than risking a disruptive rebuild.
Proving out Gridster before committing
Drag-and-drop, resizable dashboard widgets needed real R&D — I evaluated Gridster2 directly against the report-builder data model before it became the dashboard's foundation, then worked with backend developers to persist layouts through existing APIs.
Any report, any widget
Rather than hardcoding a fixed set of dashboard charts, the report builder's entity/join/filter output feeds directly into Chart.js widgets — so a newly saved report becomes a live, rearrangeable dashboard tile with no extra engineering.
Outcome
Valyxto gives the distribution business one system for selling, buying and tracking stock across every warehouse — with multi-currency, landed cost and lot traceability built in, and a report builder that turns any slice of that data into a live dashboard.
Let's talk about your project