The festival organisers asked Rock Solid Knowledge to evolve their website to allow easier searching and simplified updating of the content. As Umbraco Gold Partners we knew that Umbraco was an ideal fit to manage the data. With its flexible content management and our extensive expertise, we built a site that has allowed the 2017 festival to handle a significant increase in attendance.
At Rock Solid Knowledge we strive to go further. With the increasing numbers at the festival we knew that many attendees would expect a companion application for their phone to enrich and simplify their attendance. However, the last thing we wanted was to cause the organisers to have to maintain the festival data in two places; therefore, the mobile companion application would need to leverage the same data from the main Umbraco website.
The big question was "what could a mobile app do that using the website on the phone could not?". The mobile applications team at Rock Solid Knowledge wanted to use the data from the web site and present it in a format that would be useful while people were actually attending events at the Gloucester History Festival.
With our Xamarin development experience, we chose to take advantage of Xamarin Forms to effect a fast turnaround. We were able to ship an app, with a single code base, that would run natively on the most popular mobile platforms - Android and iPhone - in 4 weeks.
Exposing the data
Umbraco is one of the leading content management systems built on the .NET framework. It offers the flexibility to store any kind of data in a structured way. For the Gloucester History Festival, Umbraco stores event, speaker, branding and venue information. The data is then exposed through the website and also made searchable using Examine indexes (based on the Lucene search engine).
This data, however, isn’t automatically exposed outside of the website. To allow the companion app development to start, in parallel with the work to expose the data, we documented API requirements with a specification that defined how to request data and the format that data would be presented in. We started with the core events data and then rolled out speaker, location and branding information. Umbraco has a powerful caching infrastructure which we used to avoid excessive database round-trips and maintain good performance. We also recorded timestamps to ensure that only data updated since the last request was sent to the companion app.
We created a set of microservice feeds that sit beside the website, consuming the underlying website data. Through this HTTP API, and following Umbraco Web Api best practice, we allow the data to be consumed as a JSON feed, easily processed by the companion application. But we also needed to be able to verify that the microservices were behaving correctly without using API tooling or the companion app itself. So we developed a suite of unit tests to maintain quality and verify assumptions. Creating unit tests for code that is dependent on a content management system, such as Umbraco, can be challenging. So leveraging information from the Codegarden Unit Testing workshop 2017, we developed an Umbraco testing framework to simplify creating unit tests for the services.
Once the data barrier was overcome we could then approach the development of the companion application itself.
Developing the application
So we return to the question "what can the mobile app do that the website cannot?". Many of the events at the Gloucester History Festival take place in old buildings that are not particularly friendly to mobile signals. Therefore, working offline was a primary goal. However, from our research, we found that the companion applications that users found most useful were those that take the original data and present it in forms useful to festival attendees. A companion application is all about being mobile, not too reliant on a data connection, and “in the moment”.
Our first step was to make sure that the most important data to the user was available, regardless of where the user was. We do this by using the microservices to download the event, presenter, location and branding data when the application is first opened. As consumers of mobile applications, we know that there is nothing more annoying than finding yourself with a mobile application that requires an active mobile signal just to present the smallest amount of information!
As is the nature of any sizeable event, things change. In the run-up and during the festival: events get cancelled or change location, events get sold out, etc. It was critical that the app kept up to date with these changes to ensure users didn’t try to attend events were no longer relevant. Therefore, the app periodically requests updates from the various microservices to ensure the user has the most up-to-date information.
Enhancing attendance to the festival is also about providing relevant functionality. Most people attending a festival will have spent some time planning their visit, and at the Gloucester History Festival most people will be attending more than one event. So we created the ability to “favourite” events and then view your favourites. This helps attendees to keep track of the events that they are most interested in - a truly personalised view.
We make sure that favourite events can be managed and viewed regardless of internet connection. The flexibility in design also caters for those who have not fully planned their attendance to the festival. We provide several ways to view and filter the extensive list of events using date ranges and categories. From this list, favourites can still be created, on the fly, as interesting events are discovered during the event.
We also wanted to ensure that, once at the festival, people were not forced back to the website to book events that they discovered. Therefore, any event that requires sign-up or payment has a link that can be used to book tickets and that link takes the user directly to the correct location in the festival's booking system.
The Gloucester History Festival covers the whole of Gloucester, with events happening in locations all over the city. One thing that phones do very well is providing mapping and location services. Normally, the use of mapping data requires an internet connection, however Android and iOS phones include mapping functionality as applications. We found that people often use these apps to download the maps for offline usage, and as we have created a native application, we can take advantage of this offline functionality. This significantly aids our primary use case, as we can consistently provide location information on events whether the user has a data connection or not.
However, if we do have a data connection available, we realised that we could show people how long it would take them to get to an event from their current location. This means that people attending events can always plan so that they have enough time to get to the event before it starts.
The companion application that we created for the Gloucester History Festival has been a fantastic way to help improve attendees’ experience of the festival. We have had great feedback from the users who have been able to use the festival information via an additional, highly convenient, way on their device.
The work that we have done with the Gloucester History Festival and the associated publicity has led to more festivals seeking ways to help their attendees have an immersive experience as possible. With our expertise in the latest content management systems (especially Umbraco) and our experience in multi-platform mobile applications, we are in a unique position to be able to provide the whole package or to develop only those parts required.