Back in April, four BlackPepper cyclists (John, Mark, Dan and Ian), set out on a group challenge; to ride from our Leamingon Spa office to Nice, on the French Riviera. Their reasoning was to have fun, gain a tough physical achievement and to raise money for two charities: The Shakespeare Hospice and Spinal Research.
Despite terrible weather, road closures, and a couple of navigational 'challenges', they succeeded in reaching their goal on their scheduled tenth day. 100 miles days took their tole, but they were rewarded with the French Riveria, personal satisfaction and knowing their efforts would be rewarded with much needed donations towards the charities. In the end £3,767 was raised.
To provide feedback for colleagues, and others interested in the cyclists activities, we went about creating a dashboard on the BlackPepper website to present their progress, and other stats that would hopefully get across how tough their challenge really was. The idea for this dashboard only occurred a couple of weeks prior to the challenge starting, and sped through our Labs process in just over a week.
Constraints and challenges
A set of constraints and factors influenced what we could produce, and the choices we made to enable this dashboard.
The idea for the dashboard formed only two or so weeks before the cyclists set off, and thus we only had a short time to implement this page. We knew an agile process of incrementally adding functionality would be the least risk approach. From around day 3, we had a page that provided sufficient information that the cyclists were making progress, but relied on manual updates and lacked the dynamic map. The risky, more complex development exercise was done later, where we already had a working solution we could fall back on.
External Wordpress hosting + PHP
Our website is hosted externally, and we have a limited ability to add programatic features to it's hosting servers. Further, we wished to reduce any risk of deployments breaking or reducing the availability of our website. Installing the GIS, and authentication libraries required to implement all functionality within Wordpress was not desirable.
We thus chose a service oriented approach to separate presentation from logic. A minimal php template was added to Wordpress, responsible solely for querying the statistics from a separately deployed web service, and presenting it a consistent manner with the site.
The web service was developed and deployed seperately, and would be responsible for translating data from the