Case Study | Serverless

Client: UK Member Association

Technology: Azure

Service: Projects & Application Development

Delivery: Serverless Web Application

Ballard Chalmers was engaged to deliver a web application for a member association who were looking to improve their automation of processes and reduce the management of backend systems. It soon became clear that the delivery of the application would suit a serverless approach to allow the scaling of the application as required and reduce the infrastructure support overhead.

Situation

The association had an existing SharePoint solution for managing membership as well as the requirements that each member needed to adhere to across a range of scopes. The existing process was very manual, complex and prone to mismatched data and the client wanted to look at a more modern, fully digital and automated approach for their members. The client was also looking to address their training requirements with a separate but related application that would allow the training organisations running their courses to manage the range of courses offered.

The association maintain portfolios for their member organisations and the individual authorised persons who are part of those organisations. As part of this, they maintain related documentation for each portfolio as evidence of their competencies and safety at work.

The current application consists of two elements: ePortfolio and Card Applications. These are both maintained in a SharePoint Foundation 2013 environment where admins and supervisors from the member organisations supply the related documentation. This has been customised to implement appropriate permissions and allow reporting across an organisation and across the whole site.

There are several challenges to this current environment:

  • Too hard to use: The system requires an understanding of how SharePoint works and knowledge of exactly where to upload specific documents. It has an eight-page user guide which users need to understand, and new files need to each be manually renamed before being uploaded to ensure that the requirement they are meeting is obvious.
  • Repetitive: As there is the need to run reports on the data entered, users must enter the details in the documents and then often repeat this for the document metadata as well. This is both time consuming but also a risk to data quality where discrepancies can arise.
  • Minimal validation: With many of the forms being in Word documents, there is little validation on incorrectly entered information and it is not often clear why the data entered is not valid.
  • Requires large amounts of administration: Because of the previous challenges, there is a large amount of validation required to ensure that data is valid and to review the data with the organisations themselves.
  • Changes to reports require development assistance: The reports have been developed around SharePoint but this has meant that any changes require developer assistance even for simple changes. There are also no summary dashboards for organisations or administrators to give a quick overview of what is out of date or requires action.
  • No automated reminders: Any reminders are manually sent by admin staff, taking up resources to manage and potentially leading to missed reminders.
  • No auditor access: There is currently no specific access for auditors, with information supplied manually through extracted reports.

Solution

Ballard Chalmers proposed the use of Cosmos DB for the data layer and closely tied this to Azure Functions for the API. In both proposals, Angular was used for the web client framework and Azure Blob Storage for storing the documentary evidence for each requirement the member had. Azure AD B2C was chosen to provide the identity service to allow for members to sign up themselves

The project kicked off with a workshop to ensure that all users of the application were considered during the design phase. To reduce the UI design effort, an Angular Bootstrap template was identified that fitted the client’s need for a modern looking application that was responsive and easy to use, and this was then lightly updated to fit the core branding. Development took place at Ballard Chalmers’ offices with regular demonstrations to the client both face-to-face and using web conferencing to ensure that the design was meeting the requirements.

Azure Dev Ops was utilised throughout as:

  • Code repository for all code used as well as migration scripts
  • Pipelines to deploy code to every environment with a single build used to deploy with parameters for development, integration, test and live
  • Work tracking using Agile Scrum templates
  • Automated UI testing against the user story requirements using SpecFlow with Selenium Chrome Driver.

As the application was entirely Azure-hosted, Azure Resource Manager templates were created to define the environment, meaning that the entire infrastructure could be recreated in around 5 minutes and with a single deployment, including default data. The migration was also scripted in this way, copying the latest information from SharePoint to the new application, including all documented evidence for members.

Outcome

Case Study | ServerlessThe application was presented to representatives of each association member at their annual meeting and met with a hugely positive response. The ability for members to be able to manage their own information in an easy to use format was well received and the modern look and feel embraced as a key indicator of the modernisation of the organisation.

The use of serverless technologies in Azure has allowed the development to provide a more cost-efficient application that can scale automatically. The methodologies developed during the implementation have also allowed other applications for the cient to be implemented more efficiently.  As well as making them easily testable and deployable across multiple Azure environments, providing the flexibility required in modern application design.

Want to discover more about the journey to serverless?

You can read more about the technical details for this particular development in our Modern Serverless Development blog series.