UK Trade Association Academy

Client: UK Trade Association Academy

Technology: Azure / .Net / Angular / Cosmos DB

Service: Project

Delivery: Software Solution

This UK trade association represents over 300 organisations within its sector. The training and courses are managed by its Academy.

The Academy engages with approved training organisations to offer courses related to learning in the sector and associated works that help to ensure the safety of the work carried out.

Situation

Management of these courses was taking place through excel spreadsheets and word forms mailed back and forth between administration staff, approved training organisation administration staff and the trainers themselves.

This process was very time-intensive and required a lot of support from the association’s staff to ensure that the processes were correct.

The aim of this project was to deliver a simple and easy to use, cost-effective solution for both training providers and administrative staff to automatically manage and administer training provisions. Whilst maintaining the same level of professional and auditable integrity.

Ultimately the application needed to replace the existing Excel and Word-based data with a modern web application that was easy to use for all parties.

The following also needed to be achieved:

  • Deliver a consistent feel for users throughout applications
  • A modern application
  • Be intuitive and not require large manuals to use
  • Reduce administrative overhead time
  • Be extensible and configurable without technical resources required
  • Remove on-premises architecture and be scalable

Solution

The application was delivered on Azure using Platform as a Service resources. Meaning the client did not need a physical or even a virtual instance of Windows but could utilise shared resources.

All static content including the webpages and JavaScript were deployed on to an Azure Web Application. The application was developed using the Angular JavaScript framework as a Single Page Application (SPA). Which allowed the server to load the different areas of the application without completely reloading the page, thus improving the user experience.

Authentication was provided by the Azure B2C service which maintains the logins for each user as well as key information. This ensured that it is securely maintained and reduced the effort for ongoing security requirements.

The web application holds much of the logic but where the requirement to hold process data in a way that the client application should not be able to access, this was done using Azure Functions. These are server-less and scale to the amount of usage required, removing the concerns of overload on the platform.

These are primarily used for accessing the database and providing a secure layer over the database. They are also used for providing the logic for access to secure areas of the application to ensure that users cannot access details through the JavaScript code that the user’s browser holds.

The database was built using Cosmos DB making use of the SQL data model. This was a schema-less JSON database engine with rich SQL querying capabilities that allowed very fast updates and returning of isolated data.

All files within the application (e.g. Training Materials) were held within Azure Blob Storage and accessed using the Attachments functionality of Cosmos DB.

The application was deployed to Azure using the client’s Azure tenancy.

Outcome

The solution now ensures that training creation and management adheres to a defined process that cannot be circumvented, or overlooked, ensuring accurate and precise information at all times.

Development using Azure serverless technologies created a more cost-efficient and scalable application. Through this, further applications have also been implemented more efficiently, being tested and deployed across multiple Azure environments.

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.