← all projects

fullstack2021

Perpetual Inventory

One of the first projects I did for HtmMbs, JP, the owner, wanted a way to better manage inventory counts.

The system was built in Flask and SQLAlchemy with a LOT of JavaScript. I designed a sophisticated admin panel (the bulk of the project) and a count queue that could be put in multiple modes for various warehouses. The queue would present a location and SKU for a warehouse worker to count, check how far off their count was from what the system knew, occasionally ask for them to recount, and keep track of whether or whether not the counts were consistent.

Because the company uses Odoo for everything, I had to write a lot of logic in celery to keep everything synced. Adding a module to Odoo wasn't preferrable because (a) this was a very heavy duty application, around 10kloc, and (b) every new module in Odoo just makes the next migration that much harder. Better to use separate services.

Among the features I added:

  • An emergency queue and quasi-messaging system for communication between managers and admins to see if locations were being properly allocated and counters were consistent.
  • A location allocation system.
  • A picking allocation system in React that had a responsive map for allocating special picking locations.
  • EOD reports for admins containing detailed statistics about the day's business.
$ skyblue --version
skyblue 1f55086 (compiled by cprime b148357)
$ skyblue -i src -o build
skyblue: 37 pages and 24 files -> build
# 2026-10-18, 15:27 UTC, 223 ms. Two small scripts: the candle and the light switch.