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.
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 areas. 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.
Ballard Chalmers proposed two options, both hosted in Azure. The first was a more standard architecture with SQL Azure for the database and an App Service to maintain the UI and API. However, we knew that the usage of their application would go up and down as new organisations came on board and would often peak during the annual renewal process, so we also offered a consumption focussed model. For this second option, we 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 B2C was chosen to provide the identity service to allow for members to sign up themselves and for the capability to allow the organisations staff to sign in with their Office 365/Azure AD logins.
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 for:
- 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.
For both the membership application and the training application, there was the requirement to be able to work offline due to many of the client sites having limited or no internet access. Several options were considered such as a custom Xamarin app, but with the advent of service workers in modern browsers, it was decided to develop the solution to work offline in the browser. This allowed users to utilise the same experience and remove the need to develop multiple applications, which would be used differently for different situations. Stored information was held in local storage while offline and automatically uploaded the next time the application was used when connected to the internet.
The 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 techniques discovered through the implementation have also allowed other applications to be implemented more efficiently and are easily testable and deployable across multiple Azure environments, giving the flexibility required in modern application development.