System Architecture

The platform is based on Softr.io, a low-code platform. This provides hosting for the front-end files and enables server side rendering. The back-end is composed of a Airtable.com database for data storage, additional application logic is implemented using Airtable scripts, hosted on the platform. The following is a high-level diagram of the system architecture:

prototype image

Softr

The Softr platform provides the application with:

  • Hosting for the front-end files
  • Server side rendering
  • Integration with Airtable
  • Authentication and account management
    • Softr supports the OpenID Connect Standard enabling support for federated authentication, allowing users to use third-party applications to authenticate themselves. In the case of the NHS, support for NHS Login can be easily added.
    • Account management is provided by Softr, including password reset, account deletion, and account recovery.
    • Softr also provides the ability to define user roles and permissions, enabling granular control over access to specific features or data.

It allows for a one click deployment of the application, with no need for the NHS to set up or maintain a dedicated server. Furthermore, it abstracts maintenance security updates away from the system manager: with over the air updates and security patches it helps ensure data protection and regulatory compliance, while also reducing development time and resource requirements.

Airtable

Airtable provides the application with a hosted relational database, this has 7 tables (visible in the "Data Storage" section below), with a spreadsheet-like interface, tables and records can be easily viewed and edited, even by non-technical users, a key requirement for this project.


Interactions between Softr and Airtable occur using Airtable's API (documentation for this is available upon login into the Airtable development console). Data is transferred in JSON format and linked using Airtable's record ids. Airtable also provides scripting functionality using JavaScript to execute conditional logic programmatically.These scripts are hosted on Airtable and are available on our team's Github.


Site Map

The following is a map of the website: there are 3 key pages

  • Self Report
  • Statistics
  • Manage
prototype image

The Home page is visible to all users (this is where sign up and sign in functionalities are implemented), available subpages, accessible from the navigation bar at the top of the page, are dependent on the logged in user's role (Clinician, Team Manager, Department Manager or Hospital Head) - views contained within them are also affected by this.


Data Storage

The following is the ER diagram of the system's database, generated by Airtable:


prototype image

This design allows for a multi-tenant system with multiple hospitals potentially accessing the same system. This can allow for a more streamlined and easy to deploy system. Notably: this has evolved from the previous system to permit customised forms as well as personalised questions.


Data Flow Diagram

The following is a data flow diagram of the system, showing the flow of data between the front-end and back-end, visualised from the perspective of different user roles:

prototype image

Packages and APIs

The system is dependant on the following libraries:

The system also requires the following commercial licenses:

  • Softr Commercial license
  • Airtable Enterprise license