Skip to content
VEXA

Three systems we built and still support.

We do not publish client names or logos without written permission. If you are evaluating us, ask and we will arrange a call with a client who has agreed to speak.

§ 01 · FeaturedMalaysia

Manufacturing · Malaysia

Warehouse and inventory system

The situation

Stock lived in a shared spreadsheet. Receiving was written on paper and keyed in at the end of the shift, so the figure on screen was always a few hours behind the shelf. Nobody could say what had been reserved against an order without asking the storeman.

What we built

  • A schema where a stock movement cannot exist without an item, a location and an operator
  • Goods receiving, transfers and adjustments as three screens a storeman can work from a phone
  • Reorder points set per item by the supervisor, with alerts by email
  • Count sheets, variance reports and an export finance can open

What they operate today

Movements are recorded as they happen. Supervisors read stock off the system instead of asking. The reorder list is produced by a query rather than remembered.

Warehouse database schemaThree tables — stock items, locations and stock movements — joined by foreign keys. Every movement row references both a stock item and a location, so quantities are always attributable to a bin and an operator.stock_itemsidPKskudescriptionreorder_pointlocationsidPKcodebinstock_movesidPKitem_idFKlocation_idFKqtymoved_atoperator
FIG. 02Warehouse schema
Sector
Manufacturing · Malaysia
Stack
React · Node.js · Express.js · SQL
Status
In use, supported by us
Ownership
Repository, database and hosting in the client's name
§ 02 · CaseNext.js

Manufacturing · Malaysia

Multi-module operations platform

Staff records, device assignments and complaint email each sat in a different spreadsheet, owned by a different person, with no agreement on which copy was current.

  • Staff dashboards, with each role seeing its own operation
  • Device and asset tracking that keeps assignment history
  • Email analytics reporting off the same records
  • Access control by role, applied at the server and not just the screen
  • Next.js · TypeScript · Firebase · Tailwind CSS

Modules

  • Staff
  • Devices
  • Email analytics
  • Access control
  • Reports

Devices by department

AsseMachQualStorLogiMainPlanFinaHRITSaleAdmi

IT · 9 devices awaiting return from leavers

Devices assigned
214
Unassigned in stores
26
Access reviews due
3
FIG. 04Operations dashboard

Redrawn from a system we built. Sample values, not client data.

One platform holds the records the company argues about. Access is granted by role, and changes leave a trail.

§ 03 · CasePython

Quality and logistics

Complaint email triage

Complaint email arrived in one shared inbox. Sorting it by hand meant the urgent items surfaced late, and the monthly summary was rebuilt by reading back through the inbox.

  • Rules that read subject, sender domain and age — no model, nothing to explain to an auditor
  • Routing to quality, logistics or sales, with escalation after 48 hours
  • A record written for every message, so the report is a query instead of a recount
  • A nightly PDF at 18:00 MYT
  • Python · React · Firebase
Email triage pipelineMail arrives by IMAP, is classified against a written rule set, routed to quality, logistics or sales, written to a record, and summarised in a PDF each evening at 18:00 Malaysian time. Three example rules are shown: subjects matching reject or NCR are marked severity one, senders on aerospace domains route to quality, and anything older than 48 hours escalates.
FIG. 03Complaint email triage

Redrawn from a system we built. Sample values, not client data.

Messages are categorised on arrival and land with the team that owns them. The monthly figures come out of the database.

Want the build notes on the warehouse system? We will walk you through it in twenty minutes, on your own stock problem.

CallWhatsAppBook a call