R&D Chronicles: Lessons Learned While Building Our Reporting and Dashboard Infrastructure
The R&D team at CQuotient likes to use tools at the cutting edge (who doesn’t?). So when the time came to select the framework for our cloud-based reporting and dashboarding infrastructure, we decided to give the nodejs/mongodb stack a try.
Here is what our stack evolved into:
Along, the way we learned some interesting lessons
We built very pretty interfaces that looked great in Chrome & Safari. But reality hit when we had to support the old IE versions that our end-users have installed on their computers. Initially, we spent a lot of time using css3pie and html5shiv to make things work. Switching to bootstrap fixed a majority of these problems (except for rounded corners). In hindsight, a lot of time could have been saved by using bootstrap from the get go.
So lesson learned: In the Enterprise world, old versions of IE still reign, make sure your pretty cutting edge webpages work on it!
The saga of supporting multiple browsers is second only to the saga of supporting multiple email clients that would be used to view our emailed reports. Our initial attempts at using existing web views to build these email reports was an abject failure. In the end, we bit the bullet, travelled back to 1995 and used tables to layout the html with inline css for styling. Tools like premailer didn’t do the job on the css we had.
So lesson learned: Avoid html email
Mongodb+Nodejs is insanely fast. That is not to say that if we had used php+mysql we would have done any worse. Our current data sizes for reporting and dashboarding are small enough to not require sharding. All our queries avoid joins and use simple selects from denormalized tables and it seems to work pretty well.