Overview
Voltage Inventory follows individual electronics through purchasing, receiving, refurbishment, cleaning, and preparation for sale. I built the workflow around how our team actually handles products, so people can find an item, see where it stands, and understand what happened to it along the way.
The problem
Our tech inventory starts before a package even reaches the warehouse. We need to know what we bought, whether it shipped, which items belong to a tracking number, and what happens when they arrive. Once they're here, different employees handle different steps. A simple list of products wasn't enough. I wanted a record that could follow each physical item from start to finish.
My role
I built this application as the sole developer, owning the workflow design, implementation, integration, and testing, with Codex as part of my development process. That included the processing stages, item records, scanning behavior, and connections to our other Voltage applications. I used the team's existing process as the starting point and refined the software as we tested how it would work in practice.
How I built it
The first priority was not interrupting the system our tech team was already using every day. I introduced a separate Tech Inventory area and separate Firebase collections so we could build the new process alongside the existing one.
The interface uses React and TypeScript, with Express handling backend services and Firebase providing authentication and storage. I organized the screens around actual tasks: receiving shipments, recording refurbishment work, cleaning products, finding inventory, and getting items ready to sell.
The eBay API and Gmail API integrations automate incoming item tracking before products reach the warehouse. Order IDs and tracking numbers connect purchases to incoming shipments, while the eBay integration retrieves shipping and delivery status. Together, these connections bring incoming-item tracking into the inventory workflow.
Once items arrive, individual QR identifiers connect the physical products to their records. Status changes, staff attribution, and timestamps help the next person understand what has already happened. Returns and missing items also need their own paths.
The tricky part
One order can contain several items, and one tracking number can cover a group of products. Eventually, though, each physical item needs its own history. Keeping those relationships straight mattered more than just getting an import to work.
I also had to think beyond the inventory app itself. Our live-selling Copilots use a shared product feed from Voltage Analytics. Adding a new inventory collection wouldn't automatically make those items searchable during a show, so the feed had to include the new records too.
The result
The application connects automated incoming-item tracking through the eBay and Gmail APIs with receiving, processing, and selling in one workflow. Staff can use an item's identifier to reach its record rather than relying on a product name alone. The same inventory can also feed the tools used during live shows.
The main improvement is continuity: each stage builds on the same item record, including the exceptions that happen in a real warehouse.
What I learned
Replacing an existing process takes more care than building a new screen. Running the new workflow alongside the old one was an important decision. I'd like to add clearer reporting on how long items spend at each stage and where work is getting stuck.