Paper Tracking

papertrack.allianceprint.co.nz


There was a pre-existing site called PaperTrack that Alliance Print used for tracking incoming and outgoing paper supplies. The company owns potentially millions of dollars worth of paper at any one time and it needs to track the quantities in stock and how it's used. It also needs to track usage patterns because stock is ordered from overseas and can take months to ship to New Zealand.

The original site was built in Cake PHP version 1, and had a list of paper types, suppliers and a history table that tracked incoming and outgoing transactions. I was asked to make changes to the site, which was difficult every time because Cake PHP was outdated, and I wasn't very familiar with it. This is fine, but I work in a company that does not understand that one has to get familiar with a framework (let alone what this application actually does) first. Explanations of what the application did were very vague, and it more confusing when about three different views of stock were so similar that I wasn't sure why they were not just one view.

I upgraded the application to Cake PHP version 2, and was going to migrate to version three but it turned out that version 2  - 3 migration is complicated because of a lot of backward-incompatible changes. As much as I'd like to learn Cake at a leisurely pace and work with what I had, this was not feasible at this work place.

I did however try to rebuilt it into a symfony application. This got a fair way through but some of the more complicated database interactions became a sticking point. Once again, I'd love to become intimately familiar with Doctrine, but this is not the job where I can muck around learning or mastering something, I cannot explain away the time to anyone at this company.

I wound up taking a leap and using the base of the ordering website as a framework for a new PaperTrack. This I was familiar with, because I built it, and it included all necessary parts such as request, session, database, router, config objects, and used twig templating. I was then able to quickly build the application on top of that and add new features.

I added a lot of new features. The views that seemed very similar are still there, but they are very different in their purpose now, with different features added on. There is a monthly overview of all incoming and outgoing stock, options to include stock with no transactions, totals, there is a trends view which shows historical data going back to the year the site first went online (2012) and there is also a QR code generator for stock items and a way to scan the code from a phone and input a deduction. This is for the production manager to be able to remove stock on the fly as its used from production rooms. Before he was writing it on paper and giving it to someone else to enter later on. Actually it's still what they do, because... well this is the company I work for. But the technology is there.