Tuesday, April 30, 2013

Inventory Management Software

A while back I created some custom inventory management and pulling software for an old employer.  I recently went back and added some new features for them.  The project has developed into a fairly full featured cool little piece of software, much more-so than I had envisioned when I started it.  I took on the project when it became clear that the client needed a better way of organizing and pulling stock, but didn't want to transition to a new point of sale system or pay the fairly high quotes for integrating a more standardized inventory setup.  I managed to create a system which would allow them to stick with their current POS program, use their existing barcode scanners, and request products from an iPad (or other web browser).

The project pushed me to break into some languages and libraries I hadn't played with in the past.  At points during development I made use of: Java, SQL, HTML, CSS, Javascript, ODBC, Derby, Google Charts, plus a bit of work in MS Office and Adobe CS6.  It would have been nice to have stuck with Java for more of the project, but a substantial portion of its use was going to be done on iPads which lack Java support (sadly this was before the rise of Android).  Instead I went with a locally served webpage for requesting products from the iPad.

I originally had my program pulling the product info out of the client's point of sale system and storing it in a separate database in Microsoft Access.  I hadn't ever edited an office file programatically before (or even used MS Access), so that was pretty fun to learn.  I went with MS Access because it allowed me to quickly develop the project, without having to build database management features into my user interface.  Eventually  I decided that for the sake of simplicity, ease of use, and program independence I would move the database entirely over to Java using a derby database.  Providing the user the ability to change, remove and add values to the database in a graphical form was a bit of a pain; my go-to solution was to use Swing's JTables which are pretty convoluted and difficult to work with.  I've since moved away from Swing in favor of JavaFX which has been a vast improvement.

I'm a bit of a novice when it comes to web development so I tried to keep things as simple as possible.  There is no server side scripting or direct linking to the database, instead the page is updated once or twice a day and everything is handled in simple HTML and Javascript.  Form data is collected client side in local storage and emailed using a mailto link.

My most recent updates added the capabilty to track the monetary value of the inventory assets.  I decided to go ahead and toss in some Google Charts for visualizing cost breakdown by category and assets over time.  I found Google Charts to be well documented, very pleasant to use, and fairly consistent across all the major browsers.  I've written a separate post on some of the tricks I discovered to getting the expected behavior out of the charts.  The Google Charts post can be found here: http://nooleanbot.blogspot.com/2013/05/google-charts-tips.html


  1. Hello;
    I have read your blog regarding inventory management software, As you had right wonderful article, and this is very interesting.
    Thanks for sharing such wonderful blog.

  2. It’s actually an excellent and useful item of details. I am grateful that you allocated this useful details with us. Please keep us recommended like this. Thanks for referring to.
    inventory management