Vim Charting

on 6 August 2015 at about 18:18

eGain VIM

eGain VIM

So at the end of July I finished working at eGain where I have been building a charting application as part of VIM, their CRM product. It's been an intense 7 months working on a high-end enterprise solution running on a complex stack of technologies, but also a great opportunity to design and build a product feature from start to completion.

The VIM product provides a dashboard interface to a reporting service which monitors call centres - customer service phone lines, and increasingly, 'omnichannel' services (i.e. integrating other customer routes such as web, mobile, chat, and social media). It can be run as a standalone service on the client's servers or in the cloud, and runs on a stack consisting of C#/.Net, and MSSQL/OLAP. The dashboard itself is implemented using the OpenSocial architecture which is backed by Cisco whose switches and other hardware are dominant in call centres.

My role was to build a charting 'gadget' to be deployed in the dashboard: a REST API surfaces user-defined reports in a JSON format, and the charting gadget allows the user to then select data in the report and choose how to display it - in pies, donuts, gauges, bar, line, area or stream graphs. The charts themselves were built in D3, but the main challenge was providing an interface to allow the user to specify what data to display and how to analyse it, since the reports could contain almost any arbitrary data formats. The charts were able to handle any arbitrary numerical or categorical data, and analyse them using any aggregation method.

A big takeaway for me from this piece of work was the importance of unit and integration tests. When building against a pre-existing system, it is difficult to specify in advance in a precise way the kinds of output it will produce - all the more so when its data output can be configured by users. So as I built the charting application, I gradually built up a suite of tests and fixtures which helped me to ensure that each iteration of changes and enhancements was not breaking existing functionality. Full coverage doesn't ensure you're bug-free but it is crucial to your sanity when you're working in a complex produciton environment.

Filed in: Web Portfolio

Portfolio archive

  • Vim Charting (6 August 2015)
  • Fabric OS (1 December 2014)
  • West Bromwich Building Society (4 December 2013)
  • University of Nottingham Global Map (30 October 2013)
  • Jobsite (14 October 2013)
  • Visualised Audio (16 May 2013)
  • Bournemouth University News & Events (1 May 2013)
  • MakieLab (17 November 2012)
  • Bookleteer (6 September 2012)
  • Lawrence Norfolk (29 May 2012)
  • MeCCSA (27 September 2011)
  • Streets of Bournemouth (1 March 2011)
  • Practice Assessor (19 November 2010)
  • Ad-Review (20 October 2010)
  • CEMP MixTape VLE (31 October 2009)
  • AH Design (18 October 2009)
  • Kidmapped! (20 August 2009)
  • Creative Manchester (13 July 2009)
  • Hauntology (19 May 2009)
  • Web as Soundscape (18 August 2008)
  • Encyclomedia (30 September 2007)
  • Bournemouth Soundseeing (9 May 2007)
  • Biblipedia (20 November 2006)
  • Robin James (8 October 2006)
  • Campbell Rowley (12 June 2006)
  • IMP Aggregator (26 March 2006)
  • 3D Solar System - part III (8 October 2005)
  • Cath Bond dot com (16 September 2005)
  • Exclusive Ltd (30 June 2004)
  • Cuddlez (1 June 2004)
  • Camp Quality UK website (18 December 2003)
  • The Code Mafia (12 November 2003)
  • Dancing EastEnders (23 April 2003)
  • The Keyboard and The Mouse (21 April 2003)
  • Reverberate (15 April 2003)
  • PUSH (22 September 2001)
  • LCF IT Dept Website (9 September 2001)
  • BBC Eastenders Witness Quiz (8 April 2001)
  • Artwork (20 November 2000)
  • Small Print

    Joe Flintham 2000 - 2015

    Long form: Menticulture

    Professional Services: Fathom Point