Training management system

Healthcare training providers modernise legacy application with our software development skills

Influential Software modernised a custom training management system to ensure security for sensitive data and fix its legacy code issues.

Online tutor using a training management system

Executive brief

A modern training management system

Our client specialises in clinical training for doctors, nurses, and other healthcare workers. Influential Software helped the company overcome bugs and security flaws in its outdated training management system. This new training management software brought the following benefits:

protected sensitive data

no more security flaws

added modern features

fixed bugs in old code

Curious about how we modernised their training management system? Read on to learn more.

The full story

Purple arrow encouraging readers to scroll down for the rest of the GDPR data solutions case study

The challenge

Legacy software was costing the business

Having served dozens of NHS trusts and universities, our client is highly respected in its field. However, it was clear that the company’s back-office software was hindering further growth. Our client’s existing training management software had three interfaces:


  • a cloud-based MySQL database, managed by the company’s IT administrator
  • an iOS app, used by trainers to record attendance and attendee signatures
  • an on-premises ASP.NET Web App, for back-office staff to input course data


Hosting the web app on-premises required costly and time-consuming maintenance by the company’s IT staff. The web app was also running on .NET 4.0, a version that Microsoft stopped supporting in 2016. This meant the framework was no longer receiving security patches or updates, which left it vulnerable to attack.


And our analysis of user security features threw up another issue: the encryption model was flawed. Instead of modern one-way encryption, the code used two-way encryption. This would have allowed an attacker to reverse engineer a user’s password using the code and the database.


And the final problem with this outdated code was lack of compatibility. The code needed updating before it could integrate with software such as Excel and SAP Crystal Reports.


In summary, the drawbacks of this legacy training management system were:


  • high cost of software ownership due to on-premises hosting
  • risk of security breaches caused by flawed and unsupported code
  • difficulty integrating the application with today’s business software

The solution

Upgrading and extending functionality

Based on our reputation as high-value software developers, the company approached us to upgrade their training administration software. This consisted of rebuilding the iOS app and the API that it used to communicate with the company’s back-end systems.


We then provided ongoing support to fix bugs in the company’s legacy code, and add new functionality as needed. These customisations included UX improvements and new fields for business users. A more significant upgrade that we delivered was a feature that enabled customers to book multiple dates at once.

The benefits

Secure and flexible training software

This solution combined a number of improvements, from the app upgrade to bug fixes and feature enhancements. Our app and API upgrades ensured that the company was protected against attacks on its sensitive data.


Overall, the business benefits of this new training management software were:


  • providing compliance and security against cyber threats
  • overcoming the limitations of a legacy application
  • giving the flexibility to extend functionality as needed


Going forward, the next stage is to migrate the company’s training management system to the cloud. As Microsoft Azure cloud experts, we have planned the migration and will be assisting the client with this move in the coming months.

We’re software modernisation experts

From training management systems to fintech apps and weather reporting software, we upgrade all kinds of technology. To find out more, visit our development page.


20th November 2020
software development, CMS, SQL Server, .NET, Azure

Privacy Preference Center




Analytics cookies collect information that is used either in aggregate form to help us understand how our Websites are being used or how effective our marketing campaigns are, or to help us customise our Websites for you.

Google Analytics
The cookie _gcl_au is used by Google Analytics to understand user interaction with the website.

For example, in order for Google Analytics to determine that two distinct hits belong to the same user, a unique identifier, associated with that particular user, must be sent with each hit.

The analytics.js library accomplishes this via the Client ID field, a unique, randomly generated string that gets stored in the browsers cookies, so subsequent visits to the same site can be associated with the same user.

By default, analytics.js uses a single, first-party cookie named _ga to store the Client ID, but the cookie's name, domain, and expiration time can all be customized. Other cookies created by analytics.js include _gid, AMP_TOKEN and _gac_. These cookies store other randomly generated ids and campaign information about the user.

Google Analytics
_gcl_au, _gid, _ga, gtm_preview


WordPress uses cookies for authentication. That means that in order to log in to our WordPress site, you must have cookies enabled in your browser.

There are two types of cookies set by WordPress.
1 — Session cookies — These are ‘strictly necessary’ cookies as WordPress will not be able to function without it.
2 — Comment cookies — These are not ‘strictly necessary’ cookies and are set when users leave a comment on a post.

Wordpress Session cookies:
Users are those people who have registered an account with the WordPress site.

Wordpress comments:
Comments are usually turned off by default.
If by chance they are still active on a post, asides being turned off when spotted, data from these are not saved by Influential.
- When visitors comment on a post, they too get cookies stored on their computer. This is purely a convenience so that the visitor won’t need to re-type all their information again when they want to leave another comment. Three cookies are set for commenters:

Wordpress, Intercom
comment_author_{HASH} comment_author_email_{HASH} comment_author_url_{HASH} wordpress_[hash] wordpress_logged_in_[hash] wordpress_test_cookie wp-settings-{time}-[UID]