Skip To Content

Warehouse Log

End-to-end Engineering · (2019-2020)

Warehouse Log is an ERP solution for Supply chain management focused on solving Vivaldi Group s.r.l. warehouse needs. When the worker inputs the codes of the items to retrieve from the warehouse, the software shows the printable list of warehouse locations to visit in an order that minimizes the item-fetching time and the number of stops.

I've encoded the 3D map of the warehouse, used the Jump-Point Search algorithm to estimate the distance between each warehouse location, and created a custom TSP (Travelling Salesman Problem) solver in C++17 that leverages different heuristics. Since some items are available in multiple locations with different product availabilities, I also had to implement a 0/1 Backpack Problem solver using dynamic programming.

The backend codebase is composed of a plethora of TypeScript packages divided according to their functions, but they're executed as a single Node.js REST app at runtime, except an independent gRPC service used for error reporting. The frontend is a TypeScript React.js single-page application. I've also created a Node.js script for importing Excel files into SQL-Server and a Haskell script for easily update the warehouse map definition, since it may evolve every once in a while.

The application is deployed on-premise in a resource-limited Ubuntu server, due to the customer's constraints. Docker or Kubernetes wasn't an option for this project, so I had to resort to customized bash scripts to try to automate deploying and monitoring as much as possible, in accordance with the customer's budget.