Creating a custom company dashboard

This isn’t really going to be a post about HOW to create a custom company dashboard, but just an insight into how I did this for the company I work for.

A couple of years ago we migrated from a UNIX based ERP system that was developed in the early 90’s to something MUCH more modern…one that used SQL meaning I could do anything I wanted with the information inside.

I sort of fell into becoming a programmer, and I’m still not sure I would call myself that. I spend over half of my time ‘programming’ now and every day is a day that I learn something new! Each day I get frustrated as I can’t get something to work…then eventually figure it out, giving me a programmer’s high…then I fall on my face again because I run into a new problem. The cycle loops day in and day out which is pretty much the norm for most non-ninja like programmers.

I am DEFINITELY not a ninja programmer, but I enjoy it and I get things done. I’ve made programs that surprised my employer, my peers and most certainly me. Each app that I build for the company I work for builds on the last. Eventually I ended up with the need group these into an easily viewed format. Lots of my programs are just links on our intranet site…things like ZIP code lookup, customer lookup, shipment tracking, and countless others. What makes up the rest are one’s that are nothing but glorified reports.

I’m a big fan of the paperless office. I’m paperless myself (unless the government requires me to keep a paper copy) and I do my best to force my paperless lifestyle on others. I’m in a position where I can wield my powers in that direction a bit, but I still get lots of opposition. One way to combat this is to make real-time reports available for certain levels of management. This is something that you can’t do with paper, but you can do when you’re viewing it on a screen.

Behold my creation (a never-ending work in progress):

Screen_Shot_2013-09-17_at_4.01.37_PM

I apologize for so much pixelation…I definitely want to protect my employer (and myself).┬áThere are more pages as you can tell by the links in the upper right-hand corner of the page, but I would have to blur out even more of those pages since they’re so data-driven.

90% of what I create is done in PHP. For good or bad, I try to avoid Javascript like the plague. Part of that is my lack of more than basic knowledge of it (I do use it, just sparingly) and part wanting to keep it structured to one language for performance, code-management, whatever.

With the dashboard above, I’m using ajax to poll for updates to certain blocks like orders shipped. You can just keep the dashboard open all day and watch shipments happen or the customer count get larger in real-time. I know ajax isn’t really new and lots of folks use it these days, but you can imagine my excitement (and amazement) when my non-ninja like programming skills made this work like clockwork.

I’m now garnishing some of my older apps with ajax and hope to eventually put it in my mobile inventory and order management system that was my first major creation (and is still my biggest).

I wanted the dashboard to be easy to look at and be color-coded in some manner (hard to tell from the pixelation, but there is a method to the colors). I’m also authenticating against Active Directory which simplifies the authentication process for those who use it. I also have modules grouped into type so that I can set permissions for each user. I have to do this by editing the database directly at the moment, but I’m fine with that since we’re a relatively small company (~150 employees with only a handful using the dashboard above).

The dashboard is completely responsive so you can view it on an smartphone or a 30″ display. I’m using a heavily customized Twitter Bootstrap 2.3 template. Looking back, I probably did a lot of things incorrectly when customizing it that will haunt me later, but for now I’m not worrying about it. I run into that a lot with my ever-evolving skills and have to constantly go back and make things better. I want my creations to be the best they can be. My work is a reflection of me and I want the best content cover to cover that is possible.

I’m definitely proud of this one and think it’s a good reflection of my style. Ultimately the data is what is important here and I think I’ve made a few folks happy by giving them what was not possible with paper and simplifying the process to obtaining the information they want to see the most. I want to give my employer the tools it needs to succeed so that I can ultimately succeed. It’s a good feeling.

Leave a Reply