diff --git a/.all-contributorsrc b/.all-contributorsrc
index c127164a..4bc494f8 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -1,145 +1,4 @@
{
- "files": [
- "README.md"
- ],
- "imageSize": 100,
- "commit": false,
- "commitType": "docs",
- "commitConvention": "angular",
- "contributors": [
- {
- "login": "nbarlowATI",
- "name": "nbarlowATI",
- "avatar_url": "https://avatars.githubusercontent.com/u/33832774?v=4",
- "profile": "https://github.com/nbarlowATI",
- "contributions": [
- "bug",
- "code",
- "doc",
- "design",
- "example",
- "ideas",
- "test"
- ]
- },
- {
- "login": "mhauru",
- "name": "Markus Hauru",
- "avatar_url": "https://avatars.githubusercontent.com/u/5229876?v=4",
- "profile": "http://mhauru.org",
- "contributions": [
- "bug",
- "code",
- "doc",
- "design",
- "example",
- "ideas",
- "test"
- ]
- },
- {
- "login": "AoifeHughes",
- "name": "Aoife Hughes",
- "avatar_url": "https://avatars.githubusercontent.com/u/10923695?v=4",
- "profile": "https://github.com/AoifeHughes",
- "contributions": [
- "bug",
- "code",
- "ideas",
- "test"
- ]
- },
- {
- "login": "entopia",
- "name": "Flora",
- "avatar_url": "https://avatars.githubusercontent.com/u/4749503?v=4",
- "profile": "https://www.turing.ac.uk/people/researchers/flora-roumpani",
- "contributions": [
- "bug",
- "code",
- "doc",
- "design",
- "example",
- "ideas"
- ]
- },
- {
- "login": "chrisdburr",
- "name": "Christopher Burr",
- "avatar_url": "https://avatars.githubusercontent.com/u/63010234?v=4",
- "profile": "https://github.com/chrisdburr",
- "contributions": [
- "bug",
- "code",
- "doc",
- "design",
- "example",
- "ideas",
- "test",
- "review",
- "talk",
- "userTesting",
- "research",
- "promotion",
- "projectManagement"
- ]
- },
- {
- "login": "cassgvp",
- "name": "Cassandra Gould van Praag",
- "avatar_url": "https://avatars.githubusercontent.com/u/43407869?v=4",
- "profile": "https://www.turing.ac.uk/research/harnessing-power-digital-twins/turing-research-and-innovation-cluster-digital-twins",
- "contributions": [
- "ideas",
- "review",
- "projectManagement",
- "question",
- "design"
- ]
- },
- {
- "login": "kallewesterling",
- "name": "Kalle Westerling",
- "avatar_url": "https://avatars.githubusercontent.com/u/7298727?v=4",
- "profile": "http://www.westerling.nu",
- "contributions": [
- "ideas",
- "review",
- "projectManagement",
- "question",
- "code"
- ]
- },
- {
- "login": "aranas",
- "name": "Sophie Arana",
- "avatar_url": "https://avatars.githubusercontent.com/u/6906140?v=4",
- "profile": "https://github.com/aranas",
- "contributions": [
- "ideas",
- "review",
- "projectManagement",
- "question",
- "design"
- ]
- },
- {
- "login": "S-Laher",
- "name": "Shakir Laher",
- "avatar_url": "https://avatars.githubusercontent.com/u/45235675?v=4",
- "profile": "https://github.com/S-Laher",
- "contributions": [
- "content",
- "doc",
- "ideas",
- "research"
- ]
- }
- ],
- "contributorsPerLine": 7,
- "skipCi": true,
- "repoType": "github",
- "repoHost": "https://github.com",
- "projectName": "AssurancePlatform",
- "projectOwner": "alan-turing-institute"
+ "projectName": "AssurancePlatform",
+ "projectOwner": "alan-turing-institute"
}
diff --git a/.github/ISSUE_TEMPLATE/user-story.yaml b/.github/ISSUE_TEMPLATE/user-story.yaml
index 29da7b5a..a1af40df 100644
--- a/.github/ISSUE_TEMPLATE/user-story.yaml
+++ b/.github/ISSUE_TEMPLATE/user-story.yaml
@@ -1,96 +1,48 @@
-name: User Story
-description: Create a new user story.
-title: "[User Story]: "
-labels: ["user-story"]
+name: "User Story"
+description: "Template for creating user stories in this repository"
+labels: "user-story"
+
body:
- - type: markdown
- attributes:
- value: |
- Thank you for contributing a new user story! Please fill out the details below to help us understand your vision.
- type: input
- id: role
+ id: user_role
attributes:
- label: Role
- description: Who is the user for this story?
- placeholder: ex. As a [Admin]
+ label: "User Role"
+ description: "As a [type of user]"
+ placeholder: "e.g., Admin, Customer, Developer"
validations:
required: true
- type: input
- id: feature
+ id: goal
attributes:
- label: Desired Feature
- description: What is the feature you would like to have?
- placeholder: I want to [feature description]
+ label: "Goal / Desire"
+ description: "I want [some goal or desire]"
+ placeholder: "e.g., view user activity, manage settings"
validations:
required: true
- type: input
id: benefit
attributes:
- label: Benefit
- description: What is the benefit of this feature?
- placeholder: So that I can [benefit description]
- validations:
- required: true
-
- - type: textarea
- id: acceptance-criteria
- attributes:
- label: Acceptance Criteria
- description:
- Please describe the conditions that must be met for this story to be
- considered complete.
- placeholder: |
- **GIVEN** [precondition]
- **AND** [another precondition if necessary]
- **WHEN** [action taken by the user]
- **THEN** [expected outcome]
- **AND** [another outcome if necessary]
+ label: "Benefit / Reason"
+ description: "So that [some benefit]"
+ placeholder: "e.g., improve productivity, ensure data security"
validations:
required: true
- - type: textarea
- id: dependencies
+ - type: checkboxes
+ id: acceptance_criteria
attributes:
- label: Dependencies
- description: Are there any other tasks that need to be completed first?
- placeholder: |
- - [ ] Dependency 1 (include issue link)
- - [ ] Dependency 2 (include issue link)
- validations:
- required: false
+ label: "Acceptance Criteria"
+ description: "Define criteria for successful implementation. Check all that apply."
+ options:
+ - label: "Criterion 1"
+ - label: "Criterion 2"
+ - label: "Criterion 3"
- type: textarea
- id: technical-notes
- attributes:
- label: Technical Notes
- description:
- Any technical notes, potential challenges, or architectural
- considerations for implementation?
- placeholder: |
- - Note 1
- - Note 2
- validations:
- required: false
-
- - type: checkboxes
- id: definition-of-done
+ id: additional_notes
attributes:
- label: Definition of Done
- description:
- Please confirm the following are completed before this story can be
- considered done.
- options:
- - label: The feature fulfills all acceptance criteria.
- - label: The code is reviewed and meets team coding standards.
- - label: All unit, integration, and end-to-end tests are passed.
- - label: The feature meets accessibility standards set for the project.
- - label:
- The code passes the CI/CD pipeline quality controls (style and
- linting).
- - label: The feature is merged into the main branch.
- - label: The feature is deployed and functional in the QA environment.
- - label:
- The feature was demonstrated to the team and accepted by the product
- owner.
+ label: "Additional Notes / Considerations"
+ description: "Any additional context, links, screenshots, or other relevant information"
+ placeholder: "Add any extra notes here"
diff --git a/.github/workflows/docs-publish.yaml b/.github/workflows/docs-publish.yaml
index ebb76832..9d3e4da5 100644
--- a/.github/workflows/docs-publish.yaml
+++ b/.github/workflows/docs-publish.yaml
@@ -11,19 +11,6 @@ on:
permissions:
contents: write
jobs:
- pre-commit:
- name: Format
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- with:
- fetch-depth: 0
- - uses: actions/setup-python@v4
- with:
- python-version: "3.x"
- - uses: pre-commit/action@v3.0.0
- with:
- extra_args: --hook-stage manual --all-files
docs:
runs-on: ubuntu-latest
steps:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 45fb314a..41c32c79 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -4,14 +4,14 @@ ci:
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
- rev: "v0.4.1"
+ rev: "v0.7.4"
hooks:
- id: ruff
args: ["--fix", "--show-fixes"]
exclude: \.md$
- repo: https://github.com/psf/black
- rev: "24.4.0"
+ rev: "24.10.0"
hooks:
- id: black
language: python
@@ -19,7 +19,7 @@ repos:
exclude: \.md$
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: "v4.6.0"
+ rev: "v5.0.0"
hooks:
- id: check-added-large-files
- id: check-case-conflict
@@ -46,10 +46,11 @@ repos:
hooks:
- id: prettier
types_or: [yaml, html, css, scss, javascript, json]
- args: [--prose-wrap=always]
+ exclude: \.md$
+ args: [--prose-wrap=never]
- repo: https://github.com/asottile/blacken-docs
- rev: "1.16.0"
+ rev: "1.19.1"
hooks:
- id: blacken-docs
additional_dependencies: [black==23.3.0]
diff --git a/README.md b/README.md
index 22a4c3a9..4ea5c2ee 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,8 @@
# Trustworthy and Ethical Assurance Platform
-![A stylised illustration of an assurance case diagram. The diagram has a hierarchical tree structure with various shapes connected by lines, representing the logical argumentation and evidence supporting the assurance claim.](site/docs/assets/images/assurance-case-large.png)
-
-
-[![All Contributors](https://img.shields.io/badge/all_contributors-9-orange.svg?style=flat-square)](#contributors-)
-
+![An illustration representing the collaborative development of a structured assurance case. The image shows various groups of people working together across different workstations linked by different paths.](site/docs/assets/images/hero.gif)
+[![All Contributors](https://img.shields.io/github/all-contributors/alan-turing-institute/AssurancePlatform?color=ee8449&style=flat-square)](#contributors)
[![Go to the TEA Platform](https://img.shields.io/badge/Go%20to%20the%20TEA%20Platform-0F76B8?style=flat&link=https://assuranceplatform.azurewebsites.net/)](https://assuranceplatform.azurewebsites.net/)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8198986.svg)](https://doi.org/10.5281/zenodo.8198986)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/alan-turing-institute/AssurancePlatform/main.svg)](https://results.pre-commit.ci/latest/github/alan-turing-institute/AssurancePlatform/main)
@@ -20,14 +17,15 @@ ethical assurance cases, developed by researchers at the
[Alan Turing Institute](https://www.google.com/url?sa=t&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwi-4ZW65bL-AhXJMMAKHfeGCJ8QFnoECBUQAQ&url=https%3A%2F%2Fwww.turing.ac.uk%2F&usg=AOvVaw0uxvZzQpCGw78bVsaCsSOm)
and [University of York](https://www.york.ac.uk/assuring-autonomy/).
-To use the TEA platform, please go to [https://assuranceplatform.azurewebsites.net/](https://assuranceplatform.azurewebsites.net/)
+The UK's Responsible Technology Adoption Unit (Department of Science, Innovation, and Technology) is also a project partner.
-To view the documentation site, please go to
-[https://alan-turing-institute.github.io/AssurancePlatform](https://alan-turing-institute.github.io/AssurancePlatform).
+To use the TEA platform, please go to [https://assuranceplatform.azurewebsites.net/](https://assuranceplatform.azurewebsites.net/).
-### Quickstart install instructions
+> [!WARNING]
+> The TEA platform is made available as a research preview, and should not be used for any business critical tasks. Future breaking changes should be expected.
-To get started quickly with installing this platform visit the [backend](https://alan-turing-institute.github.io/AssurancePlatform/platform-details/backend/installation/) and [frontend](https://alan-turing-institute.github.io/AssurancePlatform/platform-details/frontend/installation/) installation instructions.
+To view the documentation site, please go to
+[https://alan-turing-institute.github.io/AssurancePlatform](https://alan-turing-institute.github.io/AssurancePlatform).
## What is Trustworthy and Ethical Assurance? ๐ค
@@ -56,31 +54,31 @@ developing, and deploying their technology or system.
## Installation Instructions ๐ป
+To get started quickly with installing this platform visit the [backend](https://alan-turing-institute.github.io/AssurancePlatform/platform-details/backend/installation/) and [frontend](https://alan-turing-institute.github.io/AssurancePlatform/platform-details/frontend/installation/) installation instructions.
+
The Trustworthy and Ethical Assurance application can be run locally or deployed
on your own server or a cloud-based service (e.g. Azure). To view the different
-installation instructions, please visit our documentation site for
+installation instructions, please visit our documentation site for the
[backend](https://alan-turing-institute.github.io/AssurancePlatform/platform-details/backend/installation/)
-and [frontend](https://alan-turing-institute.github.io/AssurancePlatform/platform-details/frontend/installation/)
-installation instructions.
+and [frontend](https://alan-turing-institute.github.io/AssurancePlatform/platform-details/frontend/installation/).
## Further Resources ๐
The following resources provide additional information about the Trustworthy and
Ethical Assurance framework and methodology:
-- Burr, C., & Leslie, D. (2022). Ethical assurance: A practical approach to the
- responsible design, development, and deployment of data-driven technologies.
- AI and Ethics.
- [https://doi.org/10.1007/s43681-022-00178-0](https://doi.org/10.1007/s43681-022-00178-0)
-- Burr, C. and Powell, R., (2022) Trustworthy Assurance of Digital Mental
- Healthcare. The Alan Turing Institute.
- [https://doi.org/10.5281/zenodo.7107200](https://doi.org/10.5281/zenodo.7107200)
+- Burr, C., Arana, S., Gould Van Praag, C., Habli, I., Kaas, M., Katell, M., Laher, S., Leslie, D., Niederer, S., Ozturk, B., Polo, N., Porter, Z., Ryan, P., Sharan, M., Solis Lemus, J. A., Strocchi, M., Westerling, K., (2024) Trustworthy and Ethical Assurance of Digital Health and Healthcare. [https://doi.org/10.5281/zenodo.10532573](https://doi.org/10.5281/zenodo.10532573)
+- Porter, Z., Habli, I., McDermid, J. et al. A principles-based ethics assurance argument pattern for AI and autonomous systems. AI Ethics 4, 593โ616 (2024). [https://doi.org/10.1007/s43681-023-00297-2](https://doi.org/10.1007/s43681-023-00297-2)
+- Burr, C. and Powell, R., (2022) Trustworthy Assurance of Digital Mental Healthcare. The Alan Turing Institute [https://doi.org/10.5281/zenodo.7107200](https://doi.org/10.5281/zenodo.7107200)
+- Burr, C., & Leslie, D. (2022). Ethical assurance: A practical approach to the responsible design, development, and deployment of data-driven technologies. AI and Ethics. [https://doi.org/10.1007/s43681-022-00178-0](https://doi.org/10.1007/s43681-022-00178-0)
## Funding Statements
-Between April 2023 and December 2023 this project received funding from the Assuring Autonomy International Programme, a partnership between Lloydโs Register Foundation and the University of York, which was awarded to Dr Christopher Burr.
+From March 2024 until September 2024, the project is funded by UKRI's [BRAID programme](https://braiduk.org/) as part of a scoping research award for the [Trustworthy and Ethical Assurance of Digital Twins](https://www.turing.ac.uk/research/research-projects/trustworthy-and-ethical-assurance-digital-twins-tea-dt) project.
-Between July 2021 and June 2022. this project received funding from the UKRIโs Trustworthy Autonomous Hub, which was awarded to Dr Christopher Burr
+Between April 2023 and December 2023, this project received funding from the Assuring Autonomy International Programme, a partnership between Lloydโs Register Foundation and the University of York, which was awarded to Dr Christopher Burr.
+
+Between July 2021 and June 2022 this project received funding from the UKRIโs Trustworthy Autonomous Hub, which was awarded to Dr Christopher Burr
(Grant number: TAS_PP_00040).
## Contributors
@@ -88,30 +86,6 @@ Between July 2021 and June 2022. this project received funding from the UKRIโs
-
-
-
-
-
-
-
-
diff --git a/examples/Accuracy (TEA-DT Natural Environment Workshop)-2024-5-20T11-1-15.json b/examples/Accuracy (TEA-DT Natural Environment Workshop)-2024-5-20T11-1-15.json
new file mode 100644
index 00000000..62f60ce7
--- /dev/null
+++ b/examples/Accuracy (TEA-DT Natural Environment Workshop)-2024-5-20T11-1-15.json
@@ -0,0 +1,728 @@
+{
+ "type": "AssuranceCase",
+ "name": "Accuracy (TEA-DT Natural Environment Workshop)",
+ "description": "A partial assurance case to use as a template for the TEA-DT workshop.",
+ "created_date": "2024-06-20T09:23:49.828208Z",
+ "lock_uuid": null,
+ "goals": [
+ {
+ "type": "TopLevelNormativeGoal",
+ "name": "G1",
+ "short_description": "The digital twin provides sufficiently accurate representations across all operational use cases.",
+ "long_description": "N/A",
+ "keywords": "N/A",
+ "assurance_case_id": 53,
+ "context": [],
+ "property_claims": [],
+ "strategies": [
+ {
+ "name": "S1",
+ "short_description": "Argument Over Data Sources and Integration",
+ "long_description": "Argument Over Data Sources and Integration",
+ "goal_id": 79,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1",
+ "short_description": "The data used by the digital twin has sufficient quality.",
+ "long_description": "The data used by the digital twin has sufficient quality.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1.1",
+ "short_description": "The digital twin uses data from reliable sources.",
+ "long_description": "The digital twin uses data from reliable sources.",
+ "goal_id": null,
+ "property_claim_id": 874,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1.1.1",
+ "short_description": "{Information source 1} produces reliable data.",
+ "long_description": "{Information source 1} produces reliable data.",
+ "goal_id": null,
+ "property_claim_id": 875,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.1.2",
+ "short_description": "{Information source N} produces reliable data.",
+ "long_description": "{Information source N} produces reliable data.",
+ "goal_id": null,
+ "property_claim_id": 875,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.2",
+ "short_description": "The data used by the digital twin are sufficiently complete.",
+ "long_description": "The data used by the digital twin are sufficiently complete.",
+ "goal_id": null,
+ "property_claim_id": 874,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1.2.1",
+ "short_description": "Imputation method for dealing with missingness is appropriate.",
+ "long_description": "Imputation method for dealing with missingness is appropriate.",
+ "goal_id": null,
+ "property_claim_id": 878,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.2.2",
+ "short_description": "Regular audits are conducted to ensure data completeness.",
+ "long_description": "Regular audits are conducted to ensure data completeness.",
+ "goal_id": null,
+ "property_claim_id": 878,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.3",
+ "short_description": "The data used by the digital twin are unique.",
+ "long_description": "The data used by the digital twin are unique.",
+ "goal_id": null,
+ "property_claim_id": 874,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1.3.1",
+ "short_description": "The digital twin has mechanisms to detect and prevent data redundancy.",
+ "long_description": "The digital twin has mechanisms to detect and prevent data redundancy.",
+ "goal_id": null,
+ "property_claim_id": 881,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.4",
+ "short_description": "The data used by the digital twin have sufficient timeliness.",
+ "long_description": "The data used by the digital twin have sufficient timeliness.",
+ "goal_id": null,
+ "property_claim_id": 874,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1.4.1",
+ "short_description": "The digital twin gathers data in { real-time / near real-time / just-in-time}.",
+ "long_description": "The digital twin gathers data in { real-time / near real-time / just-in-time}.",
+ "goal_id": null,
+ "property_claim_id": 883,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.5",
+ "short_description": "The data used by the digital twin are consistent.",
+ "long_description": "The data used by the digital twin are consistent.",
+ "goal_id": null,
+ "property_claim_id": 874,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1.5.1",
+ "short_description": "Data is standardised across all systems and sources used by the digital twin.",
+ "long_description": "Data is standardised across all systems and sources used by the digital twin.",
+ "goal_id": null,
+ "property_claim_id": 885,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.6",
+ "short_description": "The data used by the digital twin are valid.",
+ "long_description": "The data used by the digital twin are valid.",
+ "goal_id": null,
+ "property_claim_id": 874,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1.6.1",
+ "short_description": "Data conforms to predefined rules, formats, and standards.",
+ "long_description": "Data conforms to predefined rules, formats, and standards.",
+ "goal_id": null,
+ "property_claim_id": 887,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.6.2",
+ "short_description": "The digital twin only accepts data that meets validity criteria.",
+ "long_description": "The digital twin only accepts data that meets validity criteria.",
+ "goal_id": null,
+ "property_claim_id": 887,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 170
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2",
+ "short_description": "Data integration methods are appropriate for the context of use.",
+ "long_description": "Data integration methods are appropriate for the context of use.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P2.1",
+ "short_description": "Data normalisation methods remove undesirable redundancy.",
+ "long_description": "Data normalisation methods remove undesirable redundancy.",
+ "goal_id": null,
+ "property_claim_id": 890,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2.2",
+ "short_description": "Data harmonisaton methods use suitable conversion standards or ontologies.",
+ "long_description": "Data harmonisaton methods use suitable conversion standards or ontologies.",
+ "goal_id": null,
+ "property_claim_id": 890,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 170
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P3",
+ "short_description": "Information about the data pipeline is suitably communicated.",
+ "long_description": "Information about the data pipeline is suitably communicated.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P3.1",
+ "short_description": "Technical documentation about the data pipeline is complete and accurate.",
+ "long_description": "Technical documentation about the data pipeline is complete and accurate.",
+ "goal_id": null,
+ "property_claim_id": 894,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P3.2",
+ "short_description": "Technical documentation about the data pipeline is accessible to all relevant parties.",
+ "long_description": "Technical documentation about the data pipeline is accessible to all relevant parties.",
+ "goal_id": null,
+ "property_claim_id": 894,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 170
+ }
+ ]
+ },
+ {
+ "name": "S2",
+ "short_description": "Argument Over Utility",
+ "long_description": "Argument Over Utility",
+ "goal_id": 79,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P4",
+ "short_description": "The digital twin has sufficient utility in all intended use cases.",
+ "long_description": "The digital twin has sufficient utility in all intended use cases.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1",
+ "short_description": "The digital twin has sufficient utility in {use case 1}.",
+ "long_description": "The digital twin has sufficient utility in {use case 1}.",
+ "goal_id": null,
+ "property_claim_id": 897,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1.1",
+ "short_description": "The features used by the system are suitable for the physical system being modelled.",
+ "long_description": "The features used by the system are suitable for the physical system being modelled.",
+ "goal_id": null,
+ "property_claim_id": 898,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1.2",
+ "short_description": "The functional outputs of the digital twin enable actionable insights.",
+ "long_description": "The functional outputs of the digital twin enable actionable insights.",
+ "goal_id": null,
+ "property_claim_id": 898,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1.3",
+ "short_description": "The digital twin has sufficient utility in all intended operational conditions.",
+ "long_description": "The digital twin has sufficient utility in all intended operational conditions.",
+ "goal_id": null,
+ "property_claim_id": 898,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1.3.1",
+ "short_description": "The digital twin provides accurate representations under normal conditions.",
+ "long_description": "The digital twin provides accurate representations under normal conditions.",
+ "goal_id": null,
+ "property_claim_id": 902,
+ "level": 4,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1.3.2",
+ "short_description": "The digital twin provides accurate representations under extreme conditions.",
+ "long_description": "The digital twin provides accurate representations under extreme conditions.",
+ "goal_id": null,
+ "property_claim_id": 902,
+ "level": 4,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1.3.3",
+ "short_description": "The digital twin provides accurate representations under transitional conditions (e.g., changing seasons).",
+ "long_description": "The digital twin provides accurate representations under transitional conditions (e.g., changing seasons).",
+ "goal_id": null,
+ "property_claim_id": 902,
+ "level": 4,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1.4",
+ "short_description": "The purpose of the system has been clearly formulated and documented.",
+ "long_description": "The purpose of the system has been clearly formulated and documented.",
+ "goal_id": null,
+ "property_claim_id": 898,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1.4.1",
+ "short_description": "All intended operational conditions have been specified.",
+ "long_description": "All intended operational conditions have been specified.",
+ "goal_id": null,
+ "property_claim_id": 906,
+ "level": 4,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1.4.2",
+ "short_description": "Limitations of the system have been clearly communicated.",
+ "long_description": "Limitations of the system have been clearly communicated.",
+ "goal_id": null,
+ "property_claim_id": 906,
+ "level": 4,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.2",
+ "short_description": "The digital twin has sufficient utility in {use case N}.",
+ "long_description": "The digital twin has sufficient utility in {use case N}.",
+ "goal_id": null,
+ "property_claim_id": 897,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 171
+ }
+ ]
+ },
+ {
+ "name": "S3",
+ "short_description": "Argument Over Verification and Validation",
+ "long_description": "Argument Over Verification and Validation",
+ "goal_id": 79,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P5",
+ "short_description": "The digital twin's performance has been sufficiently verified.",
+ "long_description": "The digital twin's performance has been sufficiently verified.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P5.1",
+ "short_description": "All performance requirements or thresholds have been met or exceeded.",
+ "long_description": "All performance requirements or thresholds have been met or exceeded.",
+ "goal_id": null,
+ "property_claim_id": 911,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P5.2",
+ "short_description": "The digital twin meets the agreed upon specifications.",
+ "long_description": "The digital twin meets the agreed upon specifications.",
+ "goal_id": null,
+ "property_claim_id": 911,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 172
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P6",
+ "short_description": "The performance of the digital twin is robust.",
+ "long_description": "The performance of the digital twin is robust.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P6.1",
+ "short_description": "The digital twin has been externally validated in an environment that is not sufficiently varied from the environment represented within the training data.",
+ "long_description": "The digital twin has been externally validated in an environment that is not sufficiently varied from the environment represented within the training data.",
+ "goal_id": null,
+ "property_claim_id": 912,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 172
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P7",
+ "short_description": "The digital twin has sufficient performance against external benchmarks.",
+ "long_description": "The digital twin has sufficient performance against external benchmarks.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 172
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P8",
+ "short_description": "The digital twin's usability has been sufficiently validated.",
+ "long_description": "The digital twin's usability has been sufficiently validated.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P8.1",
+ "short_description": "The digital twin's usability has been independently validated through expert reviews and feedback.",
+ "long_description": "The digital twin's usability has been independently validated through expert reviews and feedback.",
+ "goal_id": null,
+ "property_claim_id": 914,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P8.2",
+ "short_description": "The digital twin's usability meets design specifications.",
+ "long_description": "The digital twin's usability meets design specifications.",
+ "goal_id": null,
+ "property_claim_id": 914,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 172
+ }
+ ]
+ },
+ {
+ "name": "S4",
+ "short_description": "Argument Over Sustainability",
+ "long_description": "Argument Over Sustainability",
+ "goal_id": 79,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P9",
+ "short_description": "All biases have been proportionately mitigated.",
+ "long_description": "All biases have been proportionately mitigated.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P9.1",
+ "short_description": "All relevant biases have been identified.",
+ "long_description": "All relevant biases have been identified.",
+ "goal_id": null,
+ "property_claim_id": 920,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P9.2",
+ "short_description": "Bias mitigation techniques are sufficient for identified risks.",
+ "long_description": "Bias mitigation techniques are sufficient for identified risks.",
+ "goal_id": null,
+ "property_claim_id": 920,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P9.2.1",
+ "short_description": "{Bias mitigation technique N} is sufficient for {risk N}.",
+ "long_description": "{Bias mitigation technique N} is sufficient for {risk N}.",
+ "goal_id": null,
+ "property_claim_id": 922,
+ "level": 3,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 173
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P10",
+ "short_description": "Unintended consequences caused by digital twin are unlikely.",
+ "long_description": "Unintended consequences caused by digital twin are unlikely.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P10.1",
+ "short_description": "Ongoing monitoring has been established to detected undesirable model drift.",
+ "long_description": "Ongoing monitoring has been established to detected undesirable model drift.",
+ "goal_id": null,
+ "property_claim_id": 924,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P10.2",
+ "short_description": "Feedback mechanisms have been established to enable users to log errors or issues.",
+ "long_description": "Feedback mechanisms have been established to enable users to log errors or issues.",
+ "goal_id": null,
+ "property_claim_id": 924,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 173
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "owner": 3,
+ "edit_groups": [],
+ "view_groups": [],
+ "color_profile": "default",
+ "comments": [],
+ "permissions": "manage"
+}
diff --git a/examples/Explainability (TEA-DT Health Workshop)-2024-5-18T9-54-49.json b/examples/Explainability (TEA-DT Health Workshop)-2024-5-18T9-54-49.json
new file mode 100644
index 00000000..ebd90d48
--- /dev/null
+++ b/examples/Explainability (TEA-DT Health Workshop)-2024-5-18T9-54-49.json
@@ -0,0 +1,549 @@
+{
+ "type": "AssuranceCase",
+ "name": "Explainability (TEA-DT Health Workshop)",
+ "description": "A starter file for the TEA-DT Health Workshop",
+ "created_date": "2024-06-18T08:32:20.276472Z",
+ "lock_uuid": null,
+ "goals": [
+ {
+ "type": "TopLevelNormativeGoal",
+ "name": "G1",
+ "short_description": "The outputs of the digital twin are explainable to patients.",
+ "long_description": "N/A",
+ "keywords": "N/A",
+ "assurance_case_id": 15,
+ "context": [
+ {
+ "type": "Context",
+ "name": "C1",
+ "short_description": "A clinical use case (e.g. hospital or GP surgery), where the explanation will be provided by a trained healthcare professional (e.g. consultant).",
+ "long_description": "First Context",
+ "created_date": "2024-06-18T08:32:34.246987Z",
+ "goal_id": 18
+ }
+ ],
+ "property_claims": [],
+ "strategies": [
+ {
+ "name": "S3",
+ "short_description": "Argument Over Communication Method",
+ "long_description": "First Strategy",
+ "goal_id": 18,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P2",
+ "short_description": "The outputs are explainable to patients through verbal communication during a consultation.",
+ "long_description": "The outputs are explainable to patients through verbal communication during a consultation.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 22
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P9",
+ "short_description": "The outputs are explainable to patients through visual aids (e.g., diagrams, charts).",
+ "long_description": "The outputs are explainable to patients through visual aids (e.g., diagrams, charts).",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 22
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P11",
+ "short_description": "The outputs are explainable to patients through written reports.",
+ "long_description": "The outputs are explainable to patients through written reports.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 22
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P10",
+ "short_description": "The user interface supports timely delivery of explanations.",
+ "long_description": "The user interface supports timely delivery of explanations.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 22
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P8",
+ "short_description": "The user interface is intuitive and meets the needs of the healthcare professional.",
+ "long_description": "The user interface is intuitive and meets the needs of the healthcare professional.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 22
+ }
+ ]
+ },
+ {
+ "name": "S4",
+ "short_description": "Argument Over Patient Understanding",
+ "long_description": "Second Strategy",
+ "goal_id": 18,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P6",
+ "short_description": "The outputs are explainable to patients with a basic understanding of medical terms.",
+ "long_description": "The outputs are explainable to patients with a basic understanding of medical terms.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 23
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1",
+ "short_description": "The outputs are explainable to patients of varying demographics.",
+ "long_description": "The outputs are explainable to patients of varying demographics.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1.1",
+ "short_description": "The outputs are explainable to patients of varying age groups.",
+ "long_description": "The outputs are explainable to patients of varying age groups.",
+ "goal_id": null,
+ "property_claim_id": 55,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.2",
+ "short_description": "The outputs are explainable to patients with different cultural backgrounds.",
+ "long_description": "The outputs are explainable to patients with different cultural backgrounds.",
+ "goal_id": null,
+ "property_claim_id": 55,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.3",
+ "short_description": "The outputs are explainable to patients with different levels of education.",
+ "long_description": "The outputs are explainable to patients with different levels of education.",
+ "goal_id": null,
+ "property_claim_id": 55,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 23
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P17",
+ "short_description": "Any uncertainty arising from the use of probabilistic techniques can be communicated appropriately to patients.",
+ "long_description": "Any uncertainty arising from the use of probabilistic techniques can be communicated appropriately to patients.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 23
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P7",
+ "short_description": "The features used by the system are meaningful and intelligible to patients.",
+ "long_description": "The features used by the system are meaningful and intelligible to patients.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 23
+ }
+ ]
+ },
+ {
+ "name": "S1",
+ "short_description": "Argument Over User Training",
+ "long_description": "Argument Over User Training",
+ "goal_id": 18,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P3",
+ "short_description": "Users are trained to explain the process behind the digital twin's development and deployment.",
+ "long_description": "Users are trained to explain the process behind the digital twin's development and deployment.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 28
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P5",
+ "short_description": "The model is sufficiently interpretable by relevant users.",
+ "long_description": "The model is sufficiently interpretable by relevant users.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 28
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P23",
+ "short_description": "The digital twin includes features that help users generate patient-friendly explanations.",
+ "long_description": "The digital twin includes features that help users generate patient-friendly explanations.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P23.1",
+ "short_description": "The digital twin pipeline provides real-time support for users in explaining complex outputs.",
+ "long_description": "The digital twin pipeline provides real-time support for users in explaining complex outputs.",
+ "goal_id": null,
+ "property_claim_id": 63,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P23.2",
+ "short_description": "The digital twin integrates with other tools that aid in patient communication (e.g., translation services, interactive visual aids).",
+ "long_description": "The digital twin integrates with other tools that aid in patient communication (e.g., translation services, interactive visual aids).",
+ "goal_id": null,
+ "property_claim_id": 63,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 28
+ }
+ ]
+ },
+ {
+ "name": "S2",
+ "short_description": "Argument Over Adequate Scope of Explanations",
+ "long_description": "Argument Over Adequate Scope of Explanations",
+ "goal_id": 18,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P4",
+ "short_description": "The {statistical model} used by the digital twin is interpretable.",
+ "long_description": "The {statistical model} used by the digital twin is interpretable.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1",
+ "short_description": "All features used by the {statistical model} are clinically relevant and meaningful.",
+ "long_description": "All features used by the {statistical model} are clinically relevant and meaningful.",
+ "goal_id": null,
+ "property_claim_id": 66,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.2",
+ "short_description": "The {statistical model} is intrinsically interpretable (e.g., logistic regression, decision trees).",
+ "long_description": "The {statistical model} is intrinsically interpretable (e.g., logistic regression, decision trees).",
+ "goal_id": null,
+ "property_claim_id": 66,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.3",
+ "short_description": "The {statistical model} uses post hoc techniques to ensure interpretability (e.g. feature importance for neural networks).",
+ "long_description": "The {statistical model} uses post hoc techniques to ensure interpretability (e.g. feature importance for neural networks).",
+ "goal_id": null,
+ "property_claim_id": 66,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.4",
+ "short_description": "The user interface has clear explanations for how the input features influence the digital twin's outputs (e.g. recommendations, visualisations)",
+ "long_description": "The user interface has clear explanations for how the input features influence the digital twin's outputs (e.g. recommendations, visualisations)",
+ "goal_id": null,
+ "property_claim_id": 66,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 29
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P21",
+ "short_description": "The process of how the digital twin was designed, developed, and deployed is explainable.",
+ "long_description": "The process of how the digital twin was designed, developed, and deployed is explainable.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P21.1",
+ "short_description": "Information about the project's governance is accessible to relevant parties.",
+ "long_description": "Information about the project's governance is accessible to relevant parties.",
+ "goal_id": null,
+ "property_claim_id": 71,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P21.2",
+ "short_description": "Information about the project's governance is sufficient to support appropriate explanations as needed.",
+ "long_description": "Information about the project's governance is sufficient to support appropriate explanations as needed.",
+ "goal_id": null,
+ "property_claim_id": 71,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 29
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P13",
+ "short_description": "Automated explanations (or explantion-supporting information) are accurate.",
+ "long_description": "Automated explanations (or explantion-supporting information) are accurate.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P13.1",
+ "short_description": "Methods for deriving explanations achieve a sufficient level of predictive consistency and reliability.",
+ "long_description": "Methods for deriving explanations achieve a sufficient level of predictive consistency and reliability.",
+ "goal_id": null,
+ "property_claim_id": 74,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P13.2",
+ "short_description": "Methods for deriving explanations are sufficiently representative of the actual underlying architecture.",
+ "long_description": "Methods for deriving explanations are sufficiently representative of the actual underlying architecture.",
+ "goal_id": null,
+ "property_claim_id": 74,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 29
+ }
+ ]
+ },
+ {
+ "name": "S5",
+ "short_description": "Argument Over Transparency",
+ "long_description": "Argument Over Transparency",
+ "goal_id": 18,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P14",
+ "short_description": "Data governance processes have been clearly documented.",
+ "long_description": "Data governance processes have been clearly documented.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 31
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P15",
+ "short_description": "Patients can provide feedback on the explanations given, and this feedback is used to improve future explanations.",
+ "long_description": "Patients can provide feedback on the explanations given, and this feedback is used to improve future explanations.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 31
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P18",
+ "short_description": "Mechanisms exist to support contestability of decisions by patients.",
+ "long_description": "Mechanisms exist to support contestability of decisions by patients.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 31
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P22",
+ "short_description": "There is a mechanism to assess patient understanding after explanations are provided.",
+ "long_description": "There is a mechanism to assess patient understanding after explanations are provided.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 31
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P20",
+ "short_description": "There is a mechanism to assess patient understanding after explanations are provided.",
+ "long_description": "There is a mechanism to assess patient understanding after explanations are provided.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 31
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P12",
+ "short_description": "Explanations are refined based on patient feedback.",
+ "long_description": "Explanations are refined based on patient feedback.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 31
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P19",
+ "short_description": "Methods for scrutinising ongoing behaviour of system are available to appropriate auditors or assessors.",
+ "long_description": "Methods for scrutinising ongoing behaviour of system are available to appropriate auditors or assessors.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 31
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P16",
+ "short_description": "A clear audit trail will be established to ensure decision traceability.",
+ "long_description": "A clear audit trail will be established to ensure decision traceability.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 31
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "owner": 3,
+ "edit_groups": [],
+ "view_groups": [],
+ "color_profile": "default",
+ "comments": [],
+ "permissions": "manage"
+}
diff --git a/examples/Safety (TEA-DT Workshop)-2024-5-19T11-41-48.json b/examples/Safety (TEA-DT Workshop)-2024-5-19T11-41-48.json
new file mode 100644
index 00000000..5b1835d9
--- /dev/null
+++ b/examples/Safety (TEA-DT Workshop)-2024-5-19T11-41-48.json
@@ -0,0 +1,490 @@
+{
+ "type": "AssuranceCase",
+ "name": "Safety (TEA-DT Workshop)",
+ "description": "A starter case (incomplete argument pattern) for the TEA-DT workshops.",
+ "created_date": "2024-06-19T09:30:18.542307Z",
+ "lock_uuid": null,
+ "goals": [
+ {
+ "type": "TopLevelNormativeGoal",
+ "name": "G1",
+ "short_description": "The digital twin is safe for use in its intended operational environment.",
+ "long_description": "N/A",
+ "keywords": "N/A",
+ "assurance_case_id": 33,
+ "context": [
+ {
+ "type": "Context",
+ "name": "C1",
+ "short_description": "Add intended use case of DT module or system.",
+ "long_description": "Add intended use case of DT module or system.",
+ "created_date": "2024-06-19T09:53:18.731197Z",
+ "goal_id": 40
+ }
+ ],
+ "property_claims": [],
+ "strategies": [
+ {
+ "name": "S2",
+ "short_description": "Argument Over System Safety",
+ "long_description": "Argument Over System Safety",
+ "goal_id": 40,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1",
+ "short_description": "All potential hazards associated with the system have been identified.",
+ "long_description": "All potential hazards associated with the system have been identified.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 106
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4",
+ "short_description": "Risks associated with identified hazards are assessed and mitigated to acceptable levels.",
+ "long_description": "Risks associated with identified hazards are assessed and mitigated to acceptable levels.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 106
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P7",
+ "short_description": "Failure modes for all critical components and functions have been identified.",
+ "long_description": "Failure modes for all critical components and functions have been identified.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 106
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P8",
+ "short_description": "Appropriate corrective actions for identified failure modes are implemented and effective.",
+ "long_description": "Appropriate corrective actions for identified failure modes are implemented and effective.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 106
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P11",
+ "short_description": "Compliance with safety requirements is verified through testing and analysis.",
+ "long_description": "Compliance with safety requirements is verified through testing and analysis.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 106
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P12",
+ "short_description": "Safety controls and measures to mitigate identified risks are implemented.",
+ "long_description": "Safety controls and measures to mitigate identified risks are implemented.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 106
+ }
+ ]
+ },
+ {
+ "name": "S3",
+ "short_description": "Argument Over Component Safety",
+ "long_description": "Argument Over Component Safety",
+ "goal_id": 40,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P2",
+ "short_description": "The system components are safe.",
+ "long_description": "The system components are safe.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P2.6",
+ "short_description": "All potential hazards associated with the system have been identified.",
+ "long_description": "All potential hazards associated with the system have been identified.",
+ "goal_id": null,
+ "property_claim_id": 655,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2.1",
+ "short_description": "Risks associated with identified hazards are assessed and mitigated to acceptable levels.",
+ "long_description": "Risks associated with identified hazards are assessed and mitigated to acceptable levels.",
+ "goal_id": null,
+ "property_claim_id": 655,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2.5",
+ "short_description": "Failure modes for all critical components and functions have been identified.",
+ "long_description": "Failure modes for all critical components and functions have been identified.",
+ "goal_id": null,
+ "property_claim_id": 655,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2.4",
+ "short_description": "Appropriate corrective actions for identified failure modes are implemented and effective.",
+ "long_description": "Appropriate corrective actions for identified failure modes are implemented and effective.",
+ "goal_id": null,
+ "property_claim_id": 655,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2.3",
+ "short_description": "Compliance with safety requirements is verified through testing and analysis.",
+ "long_description": "Compliance with safety requirements is verified through testing and analysis.",
+ "goal_id": null,
+ "property_claim_id": 655,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2.2",
+ "short_description": "Safety controls and measures to mitigate identified risks are implemented.",
+ "long_description": "Safety controls and measures to mitigate identified risks are implemented.",
+ "goal_id": null,
+ "property_claim_id": 655,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 107
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P5",
+ "short_description": "The system components are secure.",
+ "long_description": "The system components are secure.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P5.3",
+ "short_description": "{Component N} maintains confidentiality of sensitive information.",
+ "long_description": "{Component N} maintains confidentiality of sensitive information.",
+ "goal_id": null,
+ "property_claim_id": 663,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P5.2",
+ "short_description": "{Component N} maintains integrity and accuracy of operational data.",
+ "long_description": "{Component N} maintains integrity and accuracy of operational data.",
+ "goal_id": null,
+ "property_claim_id": 663,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P5.1",
+ "short_description": "{Component N} monitors actions to enable transparency and accountability.",
+ "long_description": "{Component N} monitors actions to enable transparency and accountability.",
+ "goal_id": null,
+ "property_claim_id": 663,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 107
+ }
+ ]
+ },
+ {
+ "name": "S1",
+ "short_description": "Argument Over Fair Impacts",
+ "long_description": "Argument Over Fair Impacts",
+ "goal_id": 40,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P3",
+ "short_description": "The impacts of the system are fair for all users within the intended operational environment.",
+ "long_description": "The impacts of the system are fair for all users within the intended operational environment.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P3.2",
+ "short_description": "Positive impacts of the system's use and deployment do not unfairly accrue to specific sub-group of users.",
+ "long_description": "Positive impacts of the system's use and deployment do not unfairly accrue to specific sub-group of users.",
+ "goal_id": null,
+ "property_claim_id": 667,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P3.1",
+ "short_description": "Negative impacts of the system's use and deployment do not disproportionately affect specific sub-groups of users.",
+ "long_description": "Negative impacts of the system's use and deployment do not disproportionately affect specific sub-groups of users.",
+ "goal_id": null,
+ "property_claim_id": 667,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 108
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P13",
+ "short_description": "All relevant sub-groups of users have been meaningfully consulted across the lifecycle of the system.",
+ "long_description": "All relevant sub-groups of users have been meaningfully consulted across the lifecycle of the system.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P13.3",
+ "short_description": "Users were consulted during the system design phase.",
+ "long_description": "Users were consulted during the system design phase.",
+ "goal_id": null,
+ "property_claim_id": 670,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P13.2",
+ "short_description": "Users were consulted during the system development phase.",
+ "long_description": "Users were consulted during the system development phase.",
+ "goal_id": null,
+ "property_claim_id": 670,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P13.1",
+ "short_description": "Users were consulted during the system deployment phase.",
+ "long_description": "Users were consulted during the system deployment phase.",
+ "goal_id": null,
+ "property_claim_id": 670,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 108
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P10",
+ "short_description": "All relevant biases have been identified and mitigated across the project lifecycle.",
+ "long_description": "All relevant biases have been identified and mitigated across the project lifecycle.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P10.3",
+ "short_description": "Cognitive biases have been assessed and addressed.",
+ "long_description": "Cognitive biases have been assessed and addressed.",
+ "goal_id": null,
+ "property_claim_id": 674,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P10.2",
+ "short_description": "Statistical and data biases have been assessed and addressed.",
+ "long_description": "Statistical and data biases have been assessed and addressed.",
+ "goal_id": null,
+ "property_claim_id": 674,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P10.1",
+ "short_description": "Social biases have been assessed and addressed.",
+ "long_description": "Social biases have been assessed and addressed.",
+ "goal_id": null,
+ "property_claim_id": 674,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 108
+ }
+ ]
+ },
+ {
+ "name": "S4",
+ "short_description": "Argument Over Continuous Monitoring",
+ "long_description": "Argument Over Continuous Monitoring",
+ "goal_id": 40,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P9",
+ "short_description": "A system for continuous monitoring of safety performance is established.",
+ "long_description": "A system for continuous monitoring of safety performance is established.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P9.2",
+ "short_description": "Appropriate thresholds have been set to identify undesirable model drift.",
+ "long_description": "Appropriate thresholds have been set to identify undesirable model drift.",
+ "goal_id": null,
+ "property_claim_id": 678,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P9.1",
+ "short_description": "Automated alerts are triggered when thresholds for model drift are exceeded.",
+ "long_description": "Automated alerts are triggered when thresholds for model drift are exceeded.",
+ "goal_id": null,
+ "property_claim_id": 678,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 115
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P6",
+ "short_description": "Procedures for updating the safety case and system design in response to monitoring feedback are in place.",
+ "long_description": "Procedures for updating the safety case and system design in response to monitoring feedback are in place.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": 115
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "owner": 3,
+ "edit_groups": [],
+ "view_groups": [],
+ "color_profile": "default",
+ "comments": [],
+ "permissions": "manage"
+}
diff --git a/examples/TTW Practitioners Hub (Explainability)-2024-10-14T15-55-22.json b/examples/TTW Practitioners Hub (Explainability)-2024-10-14T15-55-22.json
new file mode 100644
index 00000000..8f39f53f
--- /dev/null
+++ b/examples/TTW Practitioners Hub (Explainability)-2024-10-14T15-55-22.json
@@ -0,0 +1,430 @@
+{
+ "type": "AssuranceCase",
+ "name": "TTW Practitioners Hub (Explainability)",
+ "description": "A partial assurance case for the TTW Practitioner's Hub. The assurance case focuses on the goal of explainable AI.",
+ "created_date": "2024-11-13T12:15:39.693060Z",
+ "lock_uuid": null,
+ "goals": [
+ {
+ "type": "TopLevelNormativeGoal",
+ "name": "G1",
+ "short_description": "Predictions made by the AI system are explainable to end users.",
+ "long_description": "N/A",
+ "keywords": "N/A",
+ "assurance_case_id": 204,
+ "context": [],
+ "property_claims": [],
+ "strategies": [
+ {
+ "type": "Strategy",
+ "name": "S1",
+ "short_description": "Sub-argument for interpretable model",
+ "long_description": "Sub-argument for interpretable model.",
+ "goal_id": 239,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1",
+ "short_description": "The AI system utilises inherently interpretable models.",
+ "long_description": "The digital twin utilises inherently interpretable models.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P1.1",
+ "short_description": "The models employed are transparent and understandable (e.g., decision trees, linear models).",
+ "long_description": "The models employed are transparent and understandable (e.g., decision trees, linear models).",
+ "goal_id": null,
+ "property_claim_id": 2171,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P1.2",
+ "short_description": "The decision-making processes of the models are easily traceable and explainable.",
+ "long_description": "The decision-making processes of the models are easily traceable and explainable.",
+ "goal_id": null,
+ "property_claim_id": 2171,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 324,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2",
+ "short_description": "The system provides mechanisms for model interpretation.",
+ "long_description": "The system provides mechanisms for model interpretation.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P2.1",
+ "short_description": "The system includes visualisation tools to illustrate how outputs are derived.",
+ "long_description": "The system includes visualisation tools to illustrate how outputs are derived.",
+ "goal_id": null,
+ "property_claim_id": 2172,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2.2",
+ "short_description": "The system offers explanations in natural language.",
+ "long_description": "The system offers explanations in natural language.",
+ "goal_id": null,
+ "property_claim_id": 2172,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P2.3",
+ "short_description": "Interactive tools allow users to explore model predictions (e.g. counterfactuals).",
+ "long_description": "Interactive tools allow users to explore model predictions (e.g. counterfactuals).",
+ "goal_id": null,
+ "property_claim_id": 2172,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 324,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P8",
+ "short_description": "Explanations are accessible to users with varying levels of technical expertise and abilities.",
+ "long_description": "Explanations are accessible to users with varying levels of technical expertise and abilities.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P8.1",
+ "short_description": "The system's explainability interface is compliant with accessibility standards (e.g., WCAG).",
+ "long_description": "The system's explainability interface is compliant with accessibility standards (e.g., WCAG).",
+ "goal_id": null,
+ "property_claim_id": 2191,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 324,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "Strategy",
+ "name": "S2",
+ "short_description": "Sub-argument for transparent project governance",
+ "long_description": "Sub-argument for transparent project governance.",
+ "goal_id": 239,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P3",
+ "short_description": "The project maintains comprehensive and accessible documentation.",
+ "long_description": "The project maintains comprehensive and accessible documentation.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P3.1",
+ "short_description": "Documentation includes detailed descriptions of model algorithms and their purposes.",
+ "long_description": "Documentation includes detailed descriptions of model algorithms and their purposes.",
+ "goal_id": null,
+ "property_claim_id": 2174,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P3.2",
+ "short_description": "Data sources, collection methods, and preprocessing steps are transparently reported.",
+ "long_description": "Data sources, collection methods, and preprocessing steps are transparently reported.",
+ "goal_id": null,
+ "property_claim_id": 2174,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 325,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4",
+ "short_description": "Decision-making processes within the project are transparent.",
+ "long_description": "Decision-making processes within the project are transparent.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P4.1",
+ "short_description": "Rationale for key design and development choices is documented and available to relevant stakeholders (e.g. end users).",
+ "long_description": "Rationale for key design and development choices is documented and available to relevant stakeholders.",
+ "goal_id": null,
+ "property_claim_id": 2177,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P4.2",
+ "short_description": "Updates and changes to the system are communicated promptly to relevant stakeholders.",
+ "long_description": "Updates and changes to the system are communicated promptly to relevant parties.",
+ "goal_id": null,
+ "property_claim_id": 2177,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 325,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P5",
+ "short_description": "Accountability for the system's outputs is embedded in project governance.",
+ "long_description": "Accountability for the system's outputs is embedded in project governance.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P5.1",
+ "short_description": "Specific roles are assigned responsibility for ensuring the explainability and validity of outputs.",
+ "long_description": "Specific roles are assigned responsibility for ensuring the explainability and validity of outputs.",
+ "goal_id": null,
+ "property_claim_id": 2180,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P5.2",
+ "short_description": "Regular reviews and audits are conducted to assess and improve explainability practices.",
+ "long_description": "Regular reviews and audits are conducted to assess and improve explainability practices.",
+ "goal_id": null,
+ "property_claim_id": 2180,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 325,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "Strategy",
+ "name": "S3",
+ "short_description": "Sub-argument for sufficient user engagement",
+ "long_description": "Sub-argument for sufficient stakeholder engagement.",
+ "goal_id": 239,
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P6",
+ "short_description": "End users are actively involved in the design, development, and deployment stages.",
+ "long_description": "Stakeholders are actively involved in the design, development, and deployment stages.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P6.1",
+ "short_description": "End users participated in focus groups to inform the structure and format of explainability mechanisms.",
+ "long_description": "Stakeholders and end users participated in focus groups to inform the structure and format of explanations.",
+ "goal_id": null,
+ "property_claim_id": 2183,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P6.2",
+ "short_description": "User studies determined that the end users are able to understand and explain the AI system's behaviour and outputs.",
+ "long_description": "User studies determined that the end users are able to understand and explain the AI system's behaviour and outputs.",
+ "goal_id": null,
+ "property_claim_id": 2183,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 326,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P7",
+ "short_description": "Feedback mechanisms have been established for end users.",
+ "long_description": "Feedback mechanisms have been established for stakeholders and end users.",
+ "goal_id": null,
+ "property_claim_id": null,
+ "level": 1,
+ "claim_type": "Property Claim",
+ "property_claims": [
+ {
+ "type": "PropertyClaim",
+ "name": "P7.1",
+ "short_description": "Invalid or inappropriate explanations can be flagged for review and investigation.",
+ "long_description": "Invalid or inappropriate explanations can be flagged for review and investigation.",
+ "goal_id": null,
+ "property_claim_id": 2185,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ },
+ {
+ "type": "PropertyClaim",
+ "name": "P7.2",
+ "short_description": "Insights from user studies are used to refine and enhance future explainability features.",
+ "long_description": "Insights from user studies are used to refine and enhance future explainability features.",
+ "goal_id": null,
+ "property_claim_id": 2185,
+ "level": 2,
+ "claim_type": "Property Claim",
+ "property_claims": [],
+ "evidence": [],
+ "strategy_id": null,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "evidence": [],
+ "strategy_id": 326,
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "in_sandbox": false,
+ "hidden": false
+ }
+ ],
+ "hidden": false
+ }
+ ],
+ "owner": 9,
+ "edit_groups": [],
+ "view_groups": [],
+ "color_profile": "default",
+ "comments": [],
+ "permissions": "manage",
+ "hidden": false
+}
diff --git a/site/docs/about.md b/site/docs/about.md
index 6095d727..eff8616f 100644
--- a/site/docs/about.md
+++ b/site/docs/about.md
@@ -1,6 +1,6 @@
---
hide:
- - navigation
+ - navigation
---
# About the TEA Platform
@@ -55,18 +55,17 @@ As such, a significant element of the TEA platform is the learning resources and
You can browse our [learning modules](learning-modules/index.md), [technical documentation](technical-documentation/index.md), or [community resources](community/index.md) to find out more.
+
### Feature 3: Community Infrastructure
A key part of the TEA platform is meaningful engagement with the wider community.
This is also true for trustworthy and ethical assurance more generally.
+
For instance, a project team may believe that they have carried out the set of actions and decisions that are sufficient to justify a claim made about the fairness of an AI system.
However, the complexity of an ethical principles such as fairness means that it is easy to (unintentionally) overlook a core property that disproportionately affects a group of users (e.g. representativeness of data, equitable impact of a system).
-Furthermore, our understanding of trustworthy and ethical assurance evolves as
-the capabilities of sociotechnical systems, such as AI systems or digital twins,
-also evolves. Therefore, it is vital that the process of developing and
-communicating assurance cases, where possible, is done in an open and
-collaborative manner.
+Furthermore, our understanding of trustworthy and ethical assurance evolves as the capabilities of sociotechnical systems, such as AI systems or digital twins, also evolves.
+Therefore, it is vital that the process of developing and communicating assurance cases, where possible, is done in an open and collaborative manner.
The benefits of this include:
diff --git a/site/docs/introductory-resources/argument-based-assurance.md b/site/docs/archive/argument-based-assurance.md
similarity index 100%
rename from site/docs/introductory-resources/argument-based-assurance.md
rename to site/docs/archive/argument-based-assurance.md
diff --git a/site/docs/guidance/case-builder.md b/site/docs/archive/case-builder.md
similarity index 100%
rename from site/docs/guidance/case-builder.md
rename to site/docs/archive/case-builder.md
diff --git a/site/docs/guidance/case-management.md b/site/docs/archive/case-management.md
similarity index 100%
rename from site/docs/guidance/case-management.md
rename to site/docs/archive/case-management.md
diff --git a/site/docs/guidance/components.md b/site/docs/archive/components.md
similarity index 100%
rename from site/docs/guidance/components.md
rename to site/docs/archive/components.md
diff --git a/site/docs/guidance/exporting.md b/site/docs/archive/exporting.md
similarity index 100%
rename from site/docs/guidance/exporting.md
rename to site/docs/archive/exporting.md
diff --git a/site/docs/guidance/getting-started.md b/site/docs/archive/getting-started.md
similarity index 100%
rename from site/docs/guidance/getting-started.md
rename to site/docs/archive/getting-started.md
diff --git a/site/docs/guidance/index.md b/site/docs/archive/index.md
similarity index 57%
rename from site/docs/guidance/index.md
rename to site/docs/archive/index.md
index 59a91a2a..31229c35 100644
--- a/site/docs/guidance/index.md
+++ b/site/docs/archive/index.md
@@ -9,11 +9,11 @@ status: draft
In this section you will find the main documentation and user guidance for the TEA platform.
For those who are completely new to the platform, we recommend you follow these guides in order :
-1. [Quickly Getting Started with the TEA Platform](getting-started.md) (*in progress*)
-2. [An Introduction to the TEA Case Builder](case-builder.md) (*in progress*)
+1. [Quickly Getting Started with the TEA Platform](getting-started.md) (_in progress_)
+2. [An Introduction to the TEA Case Builder](case-builder.md) (_in progress_)
3. [Components of an assurance case](components.md)
-4. [Managing TEA Assurance Cases](case-management.md) (*in progress*)
-5. [Exporting TEA Cases](exporting.md) (*in progress*)
-6. [Sharing TEA Cases](sharing.md) (*in progress*)
+4. [Managing TEA Assurance Cases](case-management.md) (_in progress_)
+5. [Exporting TEA Cases](exporting.md) (_in progress_)
+6. [Sharing TEA Cases](sharing.md) (_in progress_)
-You can also find more advanced documentation (e.g. deployment instructions, API documentation) in our [platform details](../platform-details/about.md) section.
+You can also find more advanced documentation (e.g. deployment instructions, API documentation) in our [developer-guide](../developer-guide/about.md) section.
diff --git a/site/docs/guidance/sharing.md b/site/docs/archive/sharing.md
similarity index 100%
rename from site/docs/guidance/sharing.md
rename to site/docs/archive/sharing.md
diff --git a/site/docs/introductory-resources/what-is-tea.md b/site/docs/archive/what-is-tea.md
similarity index 100%
rename from site/docs/introductory-resources/what-is-tea.md
rename to site/docs/archive/what-is-tea.md
diff --git a/site/docs/assets/images/hero.gif b/site/docs/assets/images/hero.gif
new file mode 100644
index 00000000..5f3637c0
Binary files /dev/null and b/site/docs/assets/images/hero.gif differ
diff --git a/site/docs/assets/images/learning-modules/001-01-figure1.svg b/site/docs/assets/images/learning-modules/001-01-figure1.svg
new file mode 100644
index 00000000..04f3d0e5
--- /dev/null
+++ b/site/docs/assets/images/learning-modules/001-01-figure1.svg
@@ -0,0 +1,40 @@
+
diff --git a/site/docs/assets/images/learning-modules/001-01-figure2.svg b/site/docs/assets/images/learning-modules/001-01-figure2.svg
new file mode 100644
index 00000000..a9f6572c
--- /dev/null
+++ b/site/docs/assets/images/learning-modules/001-01-figure2.svg
@@ -0,0 +1,9 @@
+
diff --git a/site/docs/assets/images/learning-modules/001-01-figure3.svg b/site/docs/assets/images/learning-modules/001-01-figure3.svg
new file mode 100644
index 00000000..91bd5169
--- /dev/null
+++ b/site/docs/assets/images/learning-modules/001-01-figure3.svg
@@ -0,0 +1,32 @@
+
diff --git a/site/docs/assets/images/learning-modules/001-01-figure4.svg b/site/docs/assets/images/learning-modules/001-01-figure4.svg
new file mode 100644
index 00000000..53700a7a
--- /dev/null
+++ b/site/docs/assets/images/learning-modules/001-01-figure4.svg
@@ -0,0 +1,65 @@
+
diff --git a/site/docs/assets/images/learning-modules/001-01-figure5.svg b/site/docs/assets/images/learning-modules/001-01-figure5.svg
new file mode 100644
index 00000000..83d8aed8
--- /dev/null
+++ b/site/docs/assets/images/learning-modules/001-01-figure5.svg
@@ -0,0 +1,56 @@
+
diff --git a/site/docs/assets/images/learning-modules/context-example1.svg b/site/docs/assets/images/learning-modules/context-example1.svg
new file mode 100644
index 00000000..54499d03
--- /dev/null
+++ b/site/docs/assets/images/learning-modules/context-example1.svg
@@ -0,0 +1,35 @@
+
diff --git a/site/docs/assets/images/learning-modules/context-example2.svg b/site/docs/assets/images/learning-modules/context-example2.svg
new file mode 100644
index 00000000..cde8afbc
--- /dev/null
+++ b/site/docs/assets/images/learning-modules/context-example2.svg
@@ -0,0 +1,35 @@
+
diff --git a/site/docs/assets/images/learning-modules/goal-element.svg b/site/docs/assets/images/learning-modules/goal-element.svg
new file mode 100644
index 00000000..2832ebdd
--- /dev/null
+++ b/site/docs/assets/images/learning-modules/goal-element.svg
@@ -0,0 +1,9 @@
+
diff --git a/site/docs/community/community-support.md b/site/docs/community/community-support.md
index b9948aa6..9a4b1ca2 100644
--- a/site/docs/community/community-support.md
+++ b/site/docs/community/community-support.md
@@ -20,15 +20,15 @@ This section guides you on how to use GitHub issues effectively to share your TE
### Engaging with Feedback
-- **Monitor Your Issue**: Stay active and responsive to any comments or feedback provided on your issue. Engaging with contributors not only helps in refining your TEA case but also builds a collaborative community atmosphere.
-- **Addressing Feedback**: Update your TEA case based on the feedback received, if applicable. You can commit changes to your case file and mention the updates in the issue to keep participants informed.
-- **Close the Issue**: Once you've gathered sufficient feedback and made necessary adjustments to your TEA case, thank the contributors for their input and close the issue. You can always open new issues as your case evolves or as new feedback needs arise.
+- **Monitor Your Issue**: Stay active and responsive to any comments or feedback provided on your issue. Engaging with contributors not only helps in refining your TEA case but also builds a collaborative community atmosphere.
+- **Addressing Feedback**: Update your TEA case based on the feedback received, if applicable. You can commit changes to your case file and mention the updates in the issue to keep participants informed.
+- **Close the Issue**: Once you've gathered sufficient feedback and made necessary adjustments to your TEA case, thank the contributors for their input and close the issue. You can always open new issues as your case evolves or as new feedback needs arise.
### Best Practices for Using GitHub Issues
-- When seeking feedback, **be as specific as possible** about the areas of the TEA case you're looking to improve. This helps contributors provide targeted and useful suggestions.
-- **Consider creating issue templates for sharing TEA cases** if you plan to do this regularly. Templates can help standardize the information you provide, making it easier for others to understand and contribute.
-- **Invite others to contribute** not just by commenting but also by suggesting edits through pull requests if they have significant improvements or corrections to offer.
+- When seeking feedback, **be as specific as possible** about the areas of the TEA case you're looking to improve. This helps contributors provide targeted and useful suggestions.
+- **Consider creating issue templates for sharing TEA cases** if you plan to do this regularly. Templates can help standardize the information you provide, making it easier for others to understand and contribute.
+- **Invite others to contribute** not just by commenting but also by suggesting edits through pull requests if they have significant improvements or corrections to offer.
## TEA Platform Repository Discussions and Issues
@@ -36,7 +36,7 @@ The TEA (Trustworthy and Ethical Assurance) platform's [repository on GitHub](ht
It is our aim to make it a vibrant community space where users, developers, and stakeholders can collaborate to enhance the platform's functionality and usability. We want you all to come together to make the platform better for everyone. By engaging in discussions, reporting issues, requesting features, and contributing to the codebase, you play a vital role in the continuous improvement and success of the TEA platform.
-***Join us in our mission to advance trustworthy and ethical assurance in technology.***
+**_Join us in our mission to advance trustworthy and ethical assurance in technology._**
Below, we discuss how you can actively participate in discussions, report issues, request new features, and contribute to the platform's development.
@@ -58,6 +58,6 @@ For users with programming experience interested in contributing to the TEA plat
**Read the Contribution Guidelines**: Before making any contributions, please review [repository's Issues](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/CONTRIBUTING.md). These guidelines cover the process for submitting pull requests, coding standards, and other important practices.
-**Set Up Your Development Environment**: The documentation includes instructions for [setting up your backend](../platform-details/backend/installation.md) and [your frontend](../platform-details/frontend/installation.md), allowing you to work on the codebase, test changes, and ensure your contributions align with the platform's overall architecture and design principles.
+**Set Up Your Development Environment**: The documentation includes instructions for [setting up your backend](../developer-guide/backend/installation.md) and [your frontend](../developer-guide/frontend/installation.md), allowing you to work on the codebase, test changes, and ensure your contributions align with the platform's overall architecture and design principles.
**Submit a Pull Request**: Once you've made your changes, submit a pull request through GitHub. Your pull request will be reviewed by the platform's maintainers, and feedback or requests for revisions will be communicated through the GitHub interface.
diff --git a/site/docs/developer-guide/about.md b/site/docs/developer-guide/about.md
new file mode 100644
index 00000000..96d19087
--- /dev/null
+++ b/site/docs/developer-guide/about.md
@@ -0,0 +1,9 @@
+# About the Platform
+
+Our technology stack ensures that the TEA platform is not only powerful and reliable but also accessible to users with different levels of technical expertise.
+
+At its core, the platform features a **web application** built with the [**React**](https://react.dev/) framework, known for its modular and interactive user interfaces. This is complemented by the [**Material UI (MUI)**](https://mui.com/) component library, which enables straightforward and consistent adoption of accessible and intuitive design elements. The web application also uses the open-source package, [**Mermaid.js**](https://mermaid.js.org/), to transform complex assurance cases into understandable flowcharts, enhancing user experience.
+
+On the backend, the TEA platform is powered by [**Django**](https://www.djangoproject.com/), a high-level Python web framework that offers robust backend capabilities, including a straightforward API for data management. Data can be stored in **[SQLite](https://www.sqlite.org/index.html) or [PostgreSQL](https://www.postgresql.org/)** databases, providing options for lightweight to more scalable storage solutions.
+
+The platform also supports easy installation and deployment through [Docker](https://www.docker.com/), making it straightforward to set up in various environments, including [Azure](https://azure.microsoft.com/en-us). Please visit our [documentation site](https://alan-turing-institute.github.io/AssurancePlatform/) for further details on any of the above.
diff --git a/site/docs/developer-guide/api.md b/site/docs/developer-guide/api.md
new file mode 100644
index 00000000..0bea802f
--- /dev/null
+++ b/site/docs/developer-guide/api.md
@@ -0,0 +1,174 @@
+
+
+
diff --git a/site/docs/developer-guide/backend/_prerequisites.md b/site/docs/developer-guide/backend/_prerequisites.md
new file mode 100644
index 00000000..31f2d5f5
--- /dev/null
+++ b/site/docs/developer-guide/backend/_prerequisites.md
@@ -0,0 +1,5 @@
+
+Before you begin setting up the backend, it's essential to have a proper Python environment management system in place. For this setup, we recommend using Anaconda or Miniconda, which are powerful platforms for managing Python environments and packages. Anaconda is a full-featured distribution that includes a wide range of scientific libraries and tools, making it ideal for data science and machine learning projects. Miniconda is a minimal installer for Anaconda, offering the same environment and package management capabilities but allowing you to install only the packages you need. Both options provide a convenient way to create isolated environments for different projects, ensuring dependencies are kept separate and do not conflict.
+
+If you don't already have [**Anaconda**](https://www.anaconda.com/download) or [**Miniconda**](https://conda.io/miniconda.html) installed, please visit their respective websites for installation instructions tailored to your operating system. This will streamline the process of creating a virtual environment and managing the necessary Python packages for the TEA Platform backend.
+
diff --git a/site/docs/developer-guide/backend/api/assurance-cases.md b/site/docs/developer-guide/backend/api/assurance-cases.md
new file mode 100644
index 00000000..f963c6ce
--- /dev/null
+++ b/site/docs/developer-guide/backend/api/assurance-cases.md
@@ -0,0 +1,280 @@
+# Assurance Case Endpoints
+
+The TEA Platform provides comprehensive endpoints for managing assurance cases and their elements, including goals, contexts, property claims, and strategies. This section details how to interact with these resources via the API.
+
+Replace ``, ``, `` with the appropriate integer identifiers for your assurance cases, goals, etc., and your_access_token_here with your actual access token received after authentication.
+
+The `curl` examples in the following serve as a quick way to test and interact with the TEA Platform API directly from your command line.
+
+## Case List & Management
+
+### List All Assurance Cases
+
+#### Request
+
+```bash
+curl -X GET http://localhost:8000/api/cases/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Response
+
+A JSON array of assurance cases, each with its details.
+
+### Create a New Assurance Case
+
+#### Request
+
+```bash
+curl -X POST http://localhost:8000/api/cases/ \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Case Name", "description": "Case Description", "lock_uuid": "", "color_profile": "default"}'
+```
+
+#### Response
+
+JSON object of the created assurance case.
+
+### Retrieve Details of a Specific Assurance Case
+
+#### Request
+
+```bash
+curl -X GET http://localhost:8000/api/cases// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+Response:
+
+JSON object of the specified assurance case.
+
+### Update an Assurance Case
+
+#### Request
+
+```bash
+curl -X PUT http://localhost:8000/api/cases// \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Updated Case Name", "description": "Updated Case Description"}'
+```
+
+Response:
+
+JSON object of the updated assurance case.
+
+### Delete an Assurance Case
+
+#### Request
+
+```bash
+curl -X DELETE http://localhost:8000/api/cases// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Response
+
+HTTP 204 No Content on successful deletion.
+
+## Elements
+
+### Goal Endpoints
+
+#### List All Goals
+
+```bash
+curl -X GET http://localhost:8000/api/goals/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Create a New Goal
+
+```bash
+curl -X POST http://localhost:8000/api/goals/ \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Goal Name", "description": "Goal Description", "assurance_case": }'
+```
+
+#### Update a Goal Element
+
+To update an existing goal element in an assurance case, use the PUT method at the `/goals//` endpoint. This request allows you to modify the name, description, or associated assurance case of the goal.
+
+##### Request
+
+```bash
+curl -X PUT http://localhost:8000/api/goals// \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Updated Goal Name", "description": "Updated Goal Description"}'
+```
+
+##### Response
+
+A JSON object containing the updated details of the goal.
+
+#### Delete a Goal Element
+
+To delete a specific goal element from an assurance case, send a DELETE request to the `/goals//` endpoint.
+
+##### Request
+
+```bash
+curl -X DELETE http://localhost:8000/api/goals// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+##### Response
+
+HTTP 204 No Content on successful deletion, indicating the goal has been removed.
+
+### Context Endpoints
+
+#### List All Contexts
+
+```bash
+curl -X GET http://localhost:8000/api/contexts/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Create a New Context
+
+```bash
+curl -X POST http://localhost:8000/api/contexts/ \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Context Name", "description": "Context Description", "goal": }'
+```
+
+#### Update a Context Element
+
+To update details of a context element linked to a goal, utilize the PUT method at the `/contexts//` endpoint.
+
+##### Request
+
+```bash
+curl -X PUT http://localhost:8000/api/contexts// \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Updated Context Name", "description": "Updated Context Description"}'
+```
+
+##### Response
+
+JSON representation of the context with the updated information.
+
+#### Delete a Context Element
+
+Remove a context element by sending a DELETE request to `/contexts//`.
+
+##### Request
+
+```bash
+curl -X DELETE http://localhost:8000/api/contexts// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+##### Response
+
+HTTP 204 No Content, confirming the context has been successfully deleted.
+
+### Property Claim Endpoints
+
+#### List All Property Claims
+
+```bash
+curl -X GET http://localhost:8000/api/propertyclaims/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Create a New Property Claim
+
+```bash
+curl -X POST http://localhost:8000/api/propertyclaims/ \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Property Claim Name", "description": "Property Claim Description", "goal": }'
+```
+
+#### Update a Property Claim Element
+
+Property claims can be updated by sending a PUT request to `/propertyclaims//`.
+
+##### Request
+
+```bash
+curl -X PUT http://localhost:8000/api/propertyclaims/// \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Updated Claim Name", "description": "Updated Claim Description"}'
+```
+
+##### Response
+
+The API responds with the updated property claim details in JSON format.
+
+#### Delete a Property Claim Element
+
+To delete a property claim, issue a DELETE command to `/propertyclaims//`.
+
+##### Request
+
+```bash
+curl -X DELETE http://localhost:8000/api/propertyclaims/// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+##### Response
+
+HTTP 204 No Content upon successful removal of the property claim.
+
+### Strategy Endpoints
+
+#### List All Strategies
+
+```bash
+curl -X GET http://localhost:8000/api/strategies/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Create a New Strategy
+
+```bash
+curl -X POST http://localhost:8000/api/strategies/ \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Strategy Name", "description": "Strategy Description", "goal": }'
+```
+
+#### Update a Strategy Element
+
+Modify an existing strategy by using the PUT method on `/strategies//`.
+
+##### Request
+
+```bash
+curl -X PUT http://localhost:8000/api/strategies/// \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Updated Strategy Name", "description": "Updated Strategy Description"}'
+```
+
+##### Response
+
+A JSON object representing the strategy after updates have been applied.
+
+#### Delete a Strategy Element
+
+Remove a strategy from an assurance case by sending a DELETE request to `/strategies//`.
+
+##### Request
+
+```bash
+curl -X DELETE http://localhost:8000/api/strategies/// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+##### Response
+
+HTTP 204 No Content, indicating the strategy has been deleted successfully.
diff --git a/site/docs/developer-guide/backend/api/authentication.md b/site/docs/developer-guide/backend/api/authentication.md
new file mode 100644
index 00000000..05f3c3b6
--- /dev/null
+++ b/site/docs/developer-guide/backend/api/authentication.md
@@ -0,0 +1,65 @@
+# Authentication Endpoints
+
+Authentication is crucial for accessing the TEA Platform's features. This section covers the endpoints required for logging in, logging out, and registering a new account. Each request and response is JSON-formatted.
+
+## Login
+
+To authenticate a user and receive an access token for subsequent requests, use the `/api/auth/login/` endpoint. This token should be included in the Authorization header as a Bearer token for API calls that require authentication.
+
+### Request
+
+```bash
+curl -X POST http://localhost:8000/api/auth/login/ \
+ -H "Content-Type: application/json" \
+ -d '{"username": "your_username", "password": "your_password"}'
+```
+
+### Response
+
+```json
+{
+ "token": "your_token"
+}
+```
+
+## Logout
+
+To log out a user and invalidate the current token, use the `/api/auth/logout/` endpoint. Note that this requires an authenticated request.
+
+### Request
+
+```bash
+curl -X POST http://localhost:8000/api/auth/logout/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+### Response
+
+A successful logout will return a 200 OK status with no content.
+
+## Registration
+
+To create a new user account, submit a request to `/api/auth/register/` with the required user information. Upon successful registration, the user will be authenticated automatically, and an access token will be returned.
+
+### Request
+
+```bash
+curl -X POST http://localhost:8000/api/auth/register/ \
+ -H "Content-Type: application/json" \
+ -d '{
+ "username": "new_user",
+ "email": "new_user@example.com",
+ "password1": "complex_password",
+ "password2": "complex_password"
+ }'
+```
+
+Response:
+
+```json
+{
+ "key": "your_new_access_token_here"
+}
+```
+
+This token is used just like the login token for authenticated requests.
diff --git a/site/docs/developer-guide/backend/api/comment.md b/site/docs/developer-guide/backend/api/comment.md
new file mode 100644
index 00000000..95aa1b2d
--- /dev/null
+++ b/site/docs/developer-guide/backend/api/comment.md
@@ -0,0 +1,86 @@
+# Comment Endpoints
+
+The TEA Platform provides a set of endpoints dedicated to managing comments within assurance cases. This functionality allows users to engage in discussions, provide feedback, and collaborate on assurance case development.
+
+Remember to replace `` with the ID of the assurance case you're referring to, `` with the specific comment's ID, and `your_access_token_here` with your actual access token received upon authentication.
+
+The `curl` examples offer here show a straightforward way to interact with the TEA Platform's comment functionalities directly from the command line.
+
+## List All Comments for a Specific Assurance Case
+
+Retrieve a list of all comments associated with a specific assurance case by making a GET request to the /comments// endpoint.
+
+### Request
+
+```bash
+curl -X GET http://localhost:8000/api/comments// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+### Response
+
+A JSON array of comments related to the specified assurance case, each including details like the comment ID, content, author, and timestamps.
+
+## Add a New Comment to an Assurance Case
+
+To add a new comment to an assurance case, use the POST method with the assurance case ID in the URL.
+
+### Request
+
+```bash
+curl -X POST http://localhost:8000/api/comments// \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"content": "Your insightful comment here."}'
+```
+
+### Response
+
+JSON object of the newly created comment, including its ID and content.
+
+## Retrieve Details of a Specific Comment
+
+Access the details of a specific comment by its ID using a GET request.
+
+### Request
+
+```bash
+curl -X GET http://localhost:8000/api/comments// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+### Response
+
+A JSON object detailing the requested comment, including its content, author, and related assurance case.
+
+## Update a Comment
+
+Update the content of an existing comment by sending a PUT request to the comment's specific endpoint.
+
+### Request
+
+```bash
+curl -X PUT http://localhost:8000/api/comments// \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"content": "Updated content of the comment."}'
+```
+
+### Response
+
+JSON representation of the updated comment, reflecting the new content.
+
+## Delete a Comment
+
+To remove a comment from an assurance case, issue a DELETE request to the specific comment's endpoint.
+
+### Request
+
+```bash
+curl -X DELETE http://localhost:8000/api/comments// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+### Response
+
+HTTP 204 No Content on successful deletion, indicating that the comment has been removed.
diff --git a/site/docs/developer-guide/backend/api/github.md b/site/docs/developer-guide/backend/api/github.md
new file mode 100644
index 00000000..3819c975
--- /dev/null
+++ b/site/docs/developer-guide/backend/api/github.md
@@ -0,0 +1,61 @@
+# GitHub Repository Endpoints
+
+The TEA Platform integrates with GitHub to enable users to link their GitHub repositories directly to their profiles and assurance cases. This functionality fosters a seamless workflow for users who manage their assurance cases via GitHub repositories.
+
+Below are the API endpoints available for interacting with GitHub repositories within the TEA Platform.
+
+Replace `` with the actual user ID you're querying, `` with the ID of the user to whom the repository should be linked, and `your_access_token_here` with your valid authentication token received after logging in.
+
+The `curl` examples below provide a practical way for platform users to manage their GitHub repositories through the TEA Platform API, enhancing the integration between their assurance case work and codebase management.
+
+## List All GitHub Repositories for a Specific User
+
+Retrieve a list of all GitHub repositories associated with a specific user by their user ID. This endpoint is useful for understanding the scope of projects a user is involved in.
+
+### Request
+
+```bash
+curl -X GET http://localhost:8000/api/users///github_repositories/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+### Response
+
+A JSON array of GitHub repositories linked to the user, each including repository details such as name, URL, and description.
+
+## List All GitHub Repositories
+
+To view all GitHub repositories linked within the TEA Platform, irrespective of the user, use this endpoint. It provides a broad overview of all repositories integrated into the platform.
+
+### Request
+
+```bash
+curl -X GET http://localhost:8000/api/github_repositories/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+### Response
+
+A JSON array containing every GitHub repository registered on the TEA Platform, with details like name, URL, and description for each repository.
+
+## Add a New GitHub Repository
+
+Link a new GitHub repository to the TEA Platform by providing the repository's details. This allows you to directly associate your GitHub projects with assurance cases or your user profile on the TEA Platform.
+
+### Request
+
+```bash
+curl -X POST http://localhost:8000/api/github_repositories/ \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{
+ "name": "Repository Name",
+ "url": "https://github.com/username/repository",
+ "description": "Repository Description",
+ "owner":
+ }'
+```
+
+### Response
+
+JSON object of the newly added GitHub repository, confirming its successful registration on the platform.
diff --git a/site/docs/developer-guide/backend/api/group.md b/site/docs/developer-guide/backend/api/group.md
new file mode 100644
index 00000000..670639b2
--- /dev/null
+++ b/site/docs/developer-guide/backend/api/group.md
@@ -0,0 +1,86 @@
+# Group Endpoints
+
+Groups within the TEA Platform facilitate collaboration among users, allowing them to work together on assurance cases and share insights. Below are the API endpoints that manage group operations, including listing, creating, updating, and deleting groups.
+
+Ensure to replace `` with the actual ID of the group you wish to interact with and `your_access_token_here` with your valid authentication token.
+
+These `curl` commands here offer a direct way to manage group functionalities on the TEA Platform, enhancing its utility as a collaborative tool for ethical assurance in technology projects.
+
+## List All Groups
+
+Retrieve a comprehensive list of all groups on the TEA Platform. This is useful for discovering existing collaboration opportunities.
+
+### Request
+
+```bash
+curl -X GET http://localhost:8000/api/groups/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+### Response
+
+A JSON array of groups, each with its details such as name, creation date, owner, and members.
+
+## Create a New Group
+
+Establish a new group on the platform by specifying its name. This endpoint can foster new collaboration channels for assurance case development.
+
+### Request
+
+```bash
+curl -X POST http://localhost:8000/api/groups/ \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "New Group Name"}'
+```
+
+### Response
+
+JSON object of the created group, including its ID, name, and other pertinent details.
+
+## Retrieve Details of a Specific Group
+
+Access detailed information about a specific group by its ID. This endpoint provides insight into the group's composition and projects.
+
+### Request
+
+```bash
+curl -X GET http://localhost:8000/api/groups// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+### Response
+
+A JSON object detailing the requested group, including its name, members, and associated assurance cases.
+
+## Update a Group's Details
+
+Modify the details of an existing group, such as its name or members. This endpoint supports the dynamic nature of collaborative work.
+
+### Request
+
+```bash
+curl -X PUT http://localhost:8000/api/groups// \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"name": "Updated Group Name"}'
+```
+
+### Response
+
+JSON representation of the group after the update, reflecting the changes made.
+
+## Delete a Group
+
+Remove a group from the platform. This action should be used with caution, as it will dissolve the collaboration space.
+
+### Request
+
+```bash
+curl -X DELETE http://localhost:8000/api/groups// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+### Response
+
+HTTP 204 No Content on successful deletion, indicating that the group has been permanently removed.
diff --git a/site/docs/developer-guide/backend/api/index.md b/site/docs/developer-guide/backend/api/index.md
new file mode 100644
index 00000000..aa707eec
--- /dev/null
+++ b/site/docs/developer-guide/backend/api/index.md
@@ -0,0 +1,38 @@
+# TEA Platform API
+
+Welcome to the Trustworthy and Ethical Assurance (TEA) Platform API documentation. This guide is designed to provide you with all the information you need to start integrating with and utilizing the TEA Platform's comprehensive set of features. Our API enables developers, researchers, and technology governance practitioners to access and manipulate assurance cases, user groups, comments, and more, facilitating a collaborative environment for ethical technology development.
+
+## Quickstart
+
+To get you started with the TEA Platform API, we'll walk you through a few basic `curl` commands to perform common actions such as user authentication, listing resources, and adding new entries.
+
+### Authenticate a User
+
+To interact with the TEA Platform API, you'll first need to authenticate. If you're logging in, you'll typically post your credentials to receive an authentication token.
+
+```bash
+curl -X POST http://localhost:8000/auth/login/ \
+ -H 'Content-Type: application/json' \
+ -d '{"username": "yourusername", "password": "yourpassword"}'
+```
+
+###ย List Cases
+
+You can list assurance cases available to you.
+
+```bash
+curl -X GET http://localhost:8000/api/cases/
+```
+
+### Add a New Case
+
+To create a new assurance case, you'll need to POST the required data.
+
+```bash
+curl -X POST http://localhost:8000/api/cases/ \
+ -H 'Authorization: Bearer your_token_here' \
+ -H 'Content-Type: application/json' \
+ -d '{"name": "New Assurance Case", "description": "Detailed description of the case", "user_id": "1", "lock_uuid": "", "color_profile": "default"}'
+```
+
+These commands are just the beginning of what you can do with the TEA Platform API. Throughout this documentation, you'll find detailed descriptions of every endpoint available, including required parameters, request and response formats, and example requests to help you effectively utilize the platform.
diff --git a/site/docs/developer-guide/backend/api/user.md b/site/docs/developer-guide/backend/api/user.md
new file mode 100644
index 00000000..634ffb45
--- /dev/null
+++ b/site/docs/developer-guide/backend/api/user.md
@@ -0,0 +1,103 @@
+# User Endpoints
+
+Managing user information is a critical aspect of the TEA Platform, facilitating user interaction, collaboration, and personalization. The user endpoints allow for retrieving personal details, listing all users, and managing user accounts, including creating, updating, and deleting users.
+
+Replace `` with the actual ID of the user you are referencing, and `your_access_token_here` with the actual token you received upon authentication.
+
+These `curl` examples provide straightforward methods to interact with the user-related functionalities of the TEA Platform, facilitating efficient user management and personalization.
+
+## User Detail
+
+Retrieve Details of the Currently Authenticated User
+To view your own user details, including your username, email, and associated groups or assurance cases.
+
+#### Request
+
+```bash
+curl -X GET http://localhost:8000/api/user/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Response
+
+A JSON object containing your user details.
+
+## User List & Management
+
+### List All Users
+
+Retrieve a list of all users on the TEA Platform, useful for finding collaborators or understanding the platform's user base.
+
+#### Request
+
+```bash
+curl -X GET http://localhost:8000/api/users/ \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Response
+
+A JSON array of users, each with their details.
+
+### Create a New User
+
+Add a new user to the TEA Platform by providing necessary information such as username and email.
+
+#### Request
+
+```bash
+curl -X POST http://localhost:8000/api/users/ \
+ -H "Content-Type: application/json" \
+ -d '{"username": "new_user", "email": "new_user@example.com", "password": "secure_password"}'
+```
+
+#### Response
+
+JSON object of the newly created user account.
+
+### Retrieve a Specific User's Details
+
+Access detailed information about a specific user by their user ID.
+
+#### Request
+
+```bash
+curl -X GET http://localhost:8000/api/users/// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Response
+
+A JSON object detailing the specified user's information.
+
+### Update a User's Details
+
+Modify details of an existing user, such as their username, email, or password.
+
+#### Request
+
+```bash
+curl -X PUT http://localhost:8000/api/users/// \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Token your_access_token_here" \
+ -d '{"username": "updated_username", "email": "updated_email@example.com"}'
+```
+
+#### Response
+
+JSON representation of the user after updates have been applied.
+
+### Delete a User
+
+Remove a user account from the TEA Platform. This action is irreversible and should be used with caution.
+
+#### Request
+
+```bash
+curl -X DELETE http://localhost:8000/api/users/// \
+ -H "Authorization: Token your_access_token_here"
+```
+
+#### Response
+
+HTTP 204 No Content on successful deletion, confirming the user account has been removed.
diff --git a/site/docs/developer-guide/backend/backend-management-files.md b/site/docs/developer-guide/backend/backend-management-files.md
new file mode 100644
index 00000000..67a933e2
--- /dev/null
+++ b/site/docs/developer-guide/backend/backend-management-files.md
@@ -0,0 +1,13 @@
+# Backend Management Files
+
+The TEA Platform, developed using Django and the Django REST framework, comprises several Python modules that are pivotal to its operation. These modules play specific roles in defining the platform's database schema, data serialization, request handling, and URL routing. Hereโs an overview of these essential components:
+
+**Models ([`eap_api/models.py`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/eap_backend/eap_api/models.py))**: This file is at the heart of defining the platform's database schema using Django's Object-Relational Mapping (ORM) system. Each class that inherits from django.db.models.Model is mapped to a database table, setting the groundwork for how data is stored, retrieved, and manipulated within the platform.
+
+**Serializers ([`eap_api/serializers.py`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/eap_backend/eap_api/serializers.py))**: The serializers handle the conversion between Model instances and JSON, making it possible for the platformโs data to be easily transferred over the web. This file ensures that complex model instances can be transformed into a format that can be understood by the frontend and vice versa.
+
+**Views ([`eap_api/views.py`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/eap_backend/eap_api/views.py))**: The views module defines the logic for each API endpoint, dictating how requests are processed and how data is returned to the client. Special attention is given to requests that require nested JSON structures, employing a recursive function get_json_tree to assemble the comprehensive data structure for assurance cases and their related components.
+
+**URLs ([`eap_api/urls.py`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/eap_backend/eap_api/urls.py))**: This module maps the available API endpoints to their corresponding view functions in views.py, establishing the routes that clients interact with. It acts as the web-facing interface of the backend, directing incoming requests to the appropriate handlers based on the requested URL path.
+
+Understanding these modules and their functions within the Django framework provides a solid foundation for contributing to or extending the TEA Platform. Each plays a crucial role in ensuring the platform's backend operates efficiently, securely, and in harmony with the frontend application.
diff --git a/site/docs/developer-guide/backend/django-settings.md b/site/docs/developer-guide/backend/django-settings.md
new file mode 100644
index 00000000..437944d3
--- /dev/null
+++ b/site/docs/developer-guide/backend/django-settings.md
@@ -0,0 +1,68 @@
+# Django Settings for the TEA Platform
+
+This section details the Django framework settings essential for the TEA Platform's operation. It guides you through configuring settings for different environments, such as development, testing, and production, including database configurations, security enhancements, and application-specific options.
+
+## Security and Environment Configuration
+
+`SECRET_KEY`: A critical setting that should be unique and kept secret in production environments. Ensure that it is not stored in version control and is generated uniquely for each deployment.
+
+`DEBUG`: This setting controls whether Django runs in debug mode. It should be set to False in production to avoid exposing sensitive information.
+
+`CORS_ORIGIN_WHITELIST`: Specifies the hosts allowed to make cross-origin requests to your Django backend. For local development with the React frontend, this typically includes localhost:3000.
+
+## Database Settings
+
+The TEA Platform supports both SQLite (for development and testing) and PostgreSQL (recommended for production). Database configurations can be adjusted based on the environment variables:
+
+**SQLite**: Used by default if no environment variables are set. Ideal for development and testing phases.
+
+ ```python
+ DATABASES = {
+ "default": {
+ "ENGINE": "django.db.backends.sqlite3",
+ "NAME": BASE_DIR / "db.sqlite3",
+ }
+ }
+ ```
+
+**PostgreSQL**: For production, environment variables such as DBHOST, DBNAME, DBUSER, and DBPASSWORD need to be defined. This setup enhances the platform's scalability and security in production deployments.
+
+ ```python
+ DATABASES = {
+ "default": {
+ "ENGINE": "django.db.backends.postgresql",
+ "HOST": os.environ.get("DBHOST"),
+ "NAME": os.environ.get("DBNAME"),
+ "USER": os.environ.get("DBUSER"),
+ "PASSWORD": os.environ.get("DBPASSWORD"),
+ }
+ }
+ ```
+
+## Application and Middleware Configuration
+
+`INSTALLED_APPS`: Includes Django's default apps and third-party apps such as rest_framework for the REST API functionality, corsheaders for handling Cross-Origin Resource Sharing (CORS) settings, and allauth for authentication.
+
+`MIDDLEWARE`: A series of middleware classes that process request/response objects. It includes CorsMiddleware for managing CORS headers according to your `CORS_ORIGIN_WHITELIST`.
+
+## REST Framework and Authentication
+
+`REST_FRAMEWORK`: Configures the default permissions and authentication classes. For instance, using `rest_framework.permissions.AllowAny` to allow unrestricted access or `rest_framework.authentication.TokenAuthentication` for API token-based authentication.
+
+## Static and Media Files
+
+`STATIC_URL`: Defines the URL path for serving static files (CSS, JavaScript, images).
+
+## Additional Settings
+
+`LANGUAGE_CODE` and `TIME_ZONE`: Adjust these settings to match your locale and timezone preferences.
+
+`EMAIL_BACKEND`: Configures the backend to use for sending emails. For development, using `django.core.mail.backends.console.EmailBackend` logs emails to the console instead of sending them.
+
+## Adjusting Settings for Different Environments
+
+For a seamless transition between development, testing, and production environments, consider using environment variables to dynamically adjust settings. Utilize Django's `os.environ.get()` to fetch environment variables and apply conditional logic to switch between different database backends or to toggle the `DEBUG` setting.
+
+## Final Thoughts
+
+Properly configuring the Django settings is crucial for the security, performance, and functionality of the TEA Platform. Ensure sensitive settings like `SECRET_KEY` are securely managed and that the database configurations are appropriate for your deployment environment.
diff --git a/site/docs/developer-guide/backend/index.md b/site/docs/developer-guide/backend/index.md
new file mode 100644
index 00000000..7db9faf0
--- /dev/null
+++ b/site/docs/developer-guide/backend/index.md
@@ -0,0 +1,29 @@
+# Backend Documentation for the TEA Platform
+
+Welcome to the backend documentation of the Trustworthy and Ethical Assurance (TEA) Platform. This segment is dedicated to providing a deep dive into the backend architecture, built on the robust [**Django**](https://www.djangoproject.com/) framework. The backend serves as the backbone of the TEA Platform, handling data management, API interactions, and the integration with SQL-based databases to ensure secure and efficient processing of assurance cases.
+
+## Overview
+
+The TEA Platform's backend is designed to offer a scalable and secure API, facilitating seamless interactions between the frontend application and the underlying database. It supports the creation, retrieval, editing, and deletion of data, thereby enabling the dynamic functionalities experienced on the client side. The choice of Django as the development framework brings to the platform the advantages of rapid development, clean design, and the strength of Python for backend logic.
+
+## Key Sections
+
+[Installation and Setup**](installation.md): Here, you'll find comprehensive instructions on setting up the backend environment for the TEA Platform. From installing Python and Django to initializing the database with SQLite for development or configuring PostgreSQL for production deployments, this guide ensures you have the backend up and running smoothly.
+
+[**Django Settings**](django-settings.md): This section outlines the configuration and settings of the Django framework that are crucial for the operation of the TEA Platform. It covers how to adjust settings for different environments (development, testing, production), including database configurations, security settings, and application-specific options.
+
+[Backend Management Files**](backend-management-files.md): Delve into the key files and directories that constitute the backend structure, including models, views, serializers, and URL configurations. This guide provides an explanation of the roles these files play in the backend architecture and how they interact to support the platform's functionalities.
+
+[API Documentation**](api/index.md): A detailed exploration of the API endpoints available in the TEA Platform's backend, facilitating interaction between the frontend React application and the database. This documentation here is essential for developers looking to understand or extend the platform's API capabilities.
+
+## Connecting Frontend and Backend
+
+The interactivity and dynamic features of the TEA Platform's frontend are powered by the RESTful API provided by the backend. [React](../frontend/index.md) components make HTTP requests to the API endpoints to fetch, display, and manage assurance cases and related data, ensuring a seamless and responsive user experience. This integration highlights the importance of understanding both sides of the platform for comprehensive development and customization.
+
+## Database Technologies
+
+The backend supports various SQL-based databases, with SQLite being the default choice for ease of setup and suitability for development and testing phases. For scalable production environments, PostgreSQL is recommended, and [guidance is provided for deploying this on cloud services like Azure](../deployment/azure.md).
+
+## Getting Started
+
+Whether you're a developer interested in contributing to the backend, a system administrator tasked with deploying the platform, or simply curious about the inner workings of the TEA Platform, these documentation sections offer valuable insights and practical guidance. By understanding the backend architecture, you can effectively contribute to or customize the platform, ensuring it meets the specific needs of your assurance case management processes.
diff --git a/site/docs/developer-guide/backend/installation.md b/site/docs/developer-guide/backend/installation.md
new file mode 100644
index 00000000..e5f3bdc3
--- /dev/null
+++ b/site/docs/developer-guide/backend/installation.md
@@ -0,0 +1,99 @@
+# Backend Installation and Setup Guide
+
+Welcome to the setup guide for the backend environment of the Trustworthy and Ethical Assurance (TEA) Platform. This guide will walk you through the necessary steps to get the backend up and running on your local machine. Whether you're setting up for development, testing, or preparing for production deployment, this guide covers installing Python and Django, initializing the database with SQLite for development, and configuring PostgreSQL for more robust environments.
+
+## Prerequisites
+
+{%
+ include-markdown "./_prerequisites.md"
+ start=""
+ end=""
+%}
+
+## Setting Up the Backend
+
+1. **Clone the Repository**
+
+ First, clone the Assurance Platform repository to your local machine using the following command:
+
+ ```shell
+ $ git clone https://github.com/alan-turing-institute/AssurancePlatform.git
+ ```
+
+ This command copies all the necessary files to your local system.
+
+2. **Setting Up the Backend**
+
+ Create and Activate a Virtual Environment
+
+ To avoid conflicts with other Python projects, create a virtual environment specifically for the TEA Platform backend. Using Conda, you can create a new environment with Python 3.8 as follows:
+
+ ```shell
+ $ conda create --name eapenv python=3.8 -y
+ $ conda activate eapenv
+ ```
+
+3. **Install Dependencies**
+
+ Navigate to the eap_backend directory within the cloned repository and install the required dependencies:
+
+ ```shell
+ $ cd eap_backend
+ $ pip install -r requirements.txt
+ ```
+
+4. **Initialize the Database**
+
+ Use Django's built-in commands to set up the database. By default, this guide uses SQLite for simplicity and ease of use:
+
+ ```shell
+ $ python manage.py migrate
+ ```
+
+5. **Run Tests**
+
+ Ensure everything is set up correctly by running the Django test suite:
+
+ ```shell
+ $ python manage.py test
+ ```
+
+6. **Launch the Backend Server**
+
+ Start the Django development server. By default, the server will run on port 8000:
+
+ ```shell
+ $ python manage.py runserver
+ ```
+
+ At this point, your backend should be running locally, accessible via http://localhost:8000/api. You can now proceed to set up the frontend to interact with the backend API.
+
+## Running Locally: After Changes
+
+After making any updates to the database schema or if you're running the server for the first time, ensure to apply migrations:
+
+```shell
+python manage.py migrate
+```
+
+## Running the API Server
+
+To start the API server, simply execute:
+
+```shell
+python manage.py runserver
+```
+
+from the `eap_backend` directory. The server will restart automatically upon code changes, making development efficient and streamlined.
+
+## Running Tests
+
+It's good practice to run tests frequently during development. To execute the test suite, use:
+
+```shell
+python manage.py test
+```
+
+## Continue with Frontend Setup
+
+This guide provides you with the foundation needed to develop and test the TEA Platform's backend. With the backend operational, you can focus on integrating with the frontend or expanding the platform's capabilities. [>> Continue with frontend setup.](../frontend/installation.md)
diff --git a/site/docs/developer-guide/deployment/azure.md b/site/docs/developer-guide/deployment/azure.md
new file mode 100644
index 00000000..9c159659
--- /dev/null
+++ b/site/docs/developer-guide/deployment/azure.md
@@ -0,0 +1,238 @@
+# Deploying the TEA Platform on Microsoft Azure Cloud
+
+Deploying the Trustworthy and Ethical Assurance (TEA) Platform on Microsoft Azure utilizes Docker for containerization, Azure Web Apps for hosting, and Azure Database for PostgreSQL for database services. This guide outlines the steps for setting up the TEA Platform on Azure, ensuring a robust and scalable deployment.
+
+
+
+## Prerequisites
+
+Before beginning the deployment process, please ensure you have the following:
+
+- Basic understanding of cloud services, specifically Microsoft Azure, and familiarity with the Azure portal.
+- Docker installed and configured on your machine.
+- An active Microsoft Azure account as well as an active DockerHub account.
+- Git installed for cloning the repository.
+- PostgreSQL command-line tool (`psql`) for database setup.
+- A GitHub account for OAuth and actions setup.
+- (Optional) Anaconda or Miniconda for managing Python environments, offering an easier way to handle project dependencies.
+
+Also, consider reviewing security best practices for managing secrets and passwords throughout the deployment process.
+
+## Setting Up the PostgreSQL Database
+
+1. **Create a PostgreSQL Database**
+
+ Navigate to the Azure Portal, select "+ Create a New Resource", choose "Azure Database for PostgreSQL", and click "Create". Opt for a "Single Server" setup.
+
+2. **Configuration**
+
+ After selecting your Subscription, Resource Group, and Region, specify your "Server name", "Admin username", and "Password". Remember these details as they are crucial for subsequent steps.
+
+3. **Firewall Configuration**
+
+ To allow connections to your database, configure a firewall rule under "Connection Security" by adding your client IP address. Ensure "Allow access to Azure services" is enabled and consider disabling "Enforce SSL connection" for local development.
+
+4. **Database Initialization**
+
+ Use psql to create your database:
+
+ ```shell
+ $ psql --host=SERVER_NAME.postgres.database.azure.com --port=5432 --username=ADMIN_USERNAME@SERVER_NAME --dbname=postgres
+ $ postgres=> CREATE DATABASE eap;
+ ```
+
+## Backend Deployment
+
+1. **Docker Image**
+
+ If not using GitHub Actions for automated builds, manually build and push your Docker image for the backend:
+
+ ```shell
+ $ docker build -t YOUR_DOCKER_USERNAME/eap_backend:latest -f Dockerfile .
+ $ docker push YOUR_DOCKER_USERNAME/eap_backend:latest
+ ```
+
+2. **Backend Web App**
+
+ Create a new "Web App" in Azure Portal, selecting "Docker Container" and "Linux" for publishing. Configure the app with the environment variables related to your database and GitHub OAuth credentials.
+
+## Frontend Deployment
+
+1. **Frontend Docker Image**
+
+ Similar to the backend, build and push your frontend Docker image, ensuring the `BASE_URL` is set to your backend's URL.
+
+ ```shell
+ $ docker build -t YOUR_DOCKER_USERNAME/eap_frontend:latest --build-arg BASE_URL="https://BACKEND_WEBAPP_NAME.azurewebsites.net/api" -f Dockerfile .
+ $ docker push YOUR_DOCKER_USERNAME/eap_frontend:latest
+ ```
+
+ Note: In order to push to DockerHub, you will need to [sign-up for the service](https://hub.docker.com/signup) and run `docker login` before the above commands will work.
+
+2. **Frontend Web App**
+
+ Repeat the process for the backend web app, adjusting settings for the frontend, including `WEBSITES_PORT` and `REACT_APP_BASE_URL`.
+
+## Cross-Origin Resource Sharing (CORS) Configuration
+
+To enable seamless interaction between your frontend and backend, [set the `CORS_ORIGIN_WHITELIST` environment variable in your backend's settings](../backend/django-settings.md) to include your frontend's URL.
+
+## Final Steps
+
+After configuring CORS settings, test the deployment by accessing your frontend's URL. You should be able to interact with the TEA Platform without issues.
+
+## Accessing the Django Admin Interface
+
+The Django admin interface provides direct access to your database for managing data. Access it by navigating to https://BACKEND_WEBAPP_NAME.azurewebsites.net/admin and logging in with your superuser credentials. Use this interface cautiously, especially when deleting data.
+
+## Conclusion
+
+Deploying the TEA Platform on Azure involves setting up a secure and scalable environment. By following these steps, you can ensure your deployment is robust and ready for production use. Always remember to secure your secret keys and sensitive information, especially when deploying in a public cloud environment.
+
+
diff --git a/site/docs/developer-guide/development-environment.md b/site/docs/developer-guide/development-environment.md
new file mode 100644
index 00000000..d380b17f
--- /dev/null
+++ b/site/docs/developer-guide/development-environment.md
@@ -0,0 +1,42 @@
+# Set Up Your Development Environment
+
+Setting up your development environment for the Trustworthy and Ethical Assurance (TEA) Platform involves configuring both the backend and frontend components. This guide will walk you through the necessary steps to get your local development environment up and running. It's important to set up the backend before proceeding with the frontend to ensure that the frontend can communicate with the backend services.
+
+!!! note
+
+ A quicker way to get the TEA Platform running on your local machine is to use Docker. If you're familiar with Docker and docker-compose, you can follow the [Docker Quick Start guide](./docker-quickstart.md) to set up the platform with minimal effort.
+
+## Prerequisites
+
+Before starting the setup process, ensure you have the following prerequisites installed on your system:
+
+### Backend Prerequisites
+
+{%
+ include-markdown "./backend/_prerequisites.md"
+ start=""
+ end=""
+%}
+
+
+### Frontend Prerequisites
+
+{%
+ include-markdown "./frontend/_prerequisites.md"
+ start=""
+ end=""
+%}
+
+## Backend Installation
+
+The backend of the TEA Platform is built with the Django framework and provides the API endpoints necessary for the frontend application to function.
+
+For detailed instructions on setting up the backend, including configuring the database and running the Django development server, refer to the [Backend Installation page](./backend/installation.md#setting-up-the-backend).
+
+After setting up the backend, you can proceed with the frontend setup.
+
+## Frontend Installation
+
+The frontend application is developed using the React framework, enabling dynamic user interactions and a responsive design.
+
+The frontend setup involves installing npm dependencies and running the development server. For step-by-step guidance, visit the [Frontend Installation page](./frontend/installation.md#setting-up-the-frontend).
diff --git a/site/docs/developer-guide/docker-quickstart.md b/site/docs/developer-guide/docker-quickstart.md
new file mode 100644
index 00000000..71234f5d
--- /dev/null
+++ b/site/docs/developer-guide/docker-quickstart.md
@@ -0,0 +1,59 @@
+# Quick Start with Docker
+
+Embark on the journey to set up a local instance of the Trustworthy and Ethical Assurance (TEA) Platform using Docker, the simplest method to get everything running with minimal setup. This guide is designed for individuals who have a basic understanding of Docker and docker-compose. Follow these steps to quickly have the platform operational on your local environment.
+
+!!! info "Live Demo Version"
+
+ For those looking to explore without installing, a live demo version of the assurance platform is available at https://assuranceplatform.azurewebsites.net/. Please be aware that data in the demo environment is periodically cleared.
+
+This Docker-based installation offers a straightforward and efficient way to get the TEA Platform running on your local machine, providing a sandbox for development, testing, or demonstration purposes. Happy exploring!
+
+## Prerequisites
+
+Before beginning, ensure you have Docker and docker-compose installed on your system. These tools are essential for creating, deploying, and managing containers. For installation instructions, visit the [official Docker documentation](https://docs.docker.com/).
+
+## Step-by-step Guide
+
+### Clone the Repository
+
+Start by cloning the Assurance Platform repository from GitHub to your local machine. Open your terminal and run the following command:
+
+```shell
+git clone https://github.com/alan-turing-institute/AssurancePlatform.git
+```
+
+This command downloads the project files to your local system.
+
+### Navigate to the Project Directory
+
+After cloning, change your current directory to the AssurancePlatform folder:
+
+```shell
+cd AssurancePlatform/
+```
+
+### Deploy with Docker Compose
+
+Use docker-compose to pull the necessary images and start the containers. Execute:
+
+```shell
+docker compose pull && docker compose up
+```
+
+This command fetches the latest Docker images for the TEA Platform and runs them. The process may take a few minutes the first time as it downloads the images and initializes the containers.
+
+### Access the Platform
+
+Once the containers are up and running, the TEA Platform is accessible via your web browser. Simply go to: http://localhost:3000
+
+You should now see the TEA Platform's homepage, ready for exploration and use.
+
+### Shutting Down
+
+When you're done using the platform and wish to stop the Docker containers, open a new terminal window. Ensure you're in the AssurancePlatform directory, then execute:
+
+```shell
+docker compose down
+```
+
+This command stops and removes the containers set up by docker-compose, effectively shutting down the platform until you choose to run it again.
diff --git a/site/docs/developer-guide/frontend/_prerequisites.md b/site/docs/developer-guide/frontend/_prerequisites.md
new file mode 100644
index 00000000..b92ac86a
--- /dev/null
+++ b/site/docs/developer-guide/frontend/_prerequisites.md
@@ -0,0 +1,3 @@
+
+**Node.js and npm**: Ensure you have [Node.js](https://nodejs.org/en/download) and npm installed on your system. Node.js is a runtime environment that allows you to run JavaScript on the server side. npm, included with Node.js, is the world's largest software registry that facilitates package management for JavaScript.
+
diff --git a/site/docs/developer-guide/frontend/index.md b/site/docs/developer-guide/frontend/index.md
new file mode 100644
index 00000000..e557ea75
--- /dev/null
+++ b/site/docs/developer-guide/frontend/index.md
@@ -0,0 +1,21 @@
+# Frontend Documentation for the TEA Platform
+
+Welcome to the frontend documentation for the Trustworthy and Ethical Assurance (TEA) Platform. This section provides comprehensive guides and resources designed to help developers and contributors understand, set up, and customize the frontend aspect of the TEA Platform. Built using the [**React**](https://react.dev/) framework, our frontend architecture aims to deliver a responsive, user-friendly, and accessible interface for creating, managing, and sharing assurance cases.
+
+## Overview
+
+The TEA Platform's frontend is the visual gateway for users to interact with the platform's features and capabilities. It encompasses the user interface (UI) design, client-side logic, and interaction with the backend APIs to fetch, display, and manage data dynamically. By leveraging the React framework, the frontend ensures a modular, efficient, and scalable application structure.
+
+## Key Sections
+
+[**Installation and Setup**](installation.md): This guide walks through the process of installing and setting up the frontend of the TEA Platform. It includes step-by-step instructions on how to get the development environment ready, from cloning the repository to running the application locally using npm. This section is essential for new contributors or developers looking to get started with the platform's frontend development.
+
+[**Frontend Configuration**](react-configuration.md): Learn how to configure the frontend interface of the TEA Platform. This page details the configuration options available within the config.json file, including API endpoints, styling variables, and feature toggles. It provides the necessary information to customize the frontend to suit different deployment environments or to tweak the visual presentation of the assurance cases.
+
+[**React Components**](react-components.md): Dive into the details of the React components that make up the TEA Platform's frontend. This section covers the various custom and reusable components, including their props, states, and roles within the application. It provides insights into how these components contribute to the overall user experience and functionality of the platform.
+
+## Getting Started
+
+To begin working with the TEA Platform's frontend, ensure you have a basic understanding of the React framework and familiarity with JavaScript and npm (Node Package Manager). The documentation provided aims to equip you with the knowledge and tools needed to contribute effectively to the frontend development of the TEA Platform.
+
+Whether you're looking to contribute to the project, customize the platform for your own use, or simply explore the frontend architecture, these documentation sections will guide you through each step of the process.
diff --git a/site/docs/developer-guide/frontend/installation.md b/site/docs/developer-guide/frontend/installation.md
new file mode 100644
index 00000000..5bc4894f
--- /dev/null
+++ b/site/docs/developer-guide/frontend/installation.md
@@ -0,0 +1,105 @@
+# Frontend Setup and Development Guide
+
+Setting up and running the frontend of the Trustworthy and Ethical Assurance (TEA) Platform is straightforward with Node.js and npm (Node Package Manager). This guide will walk you through installing the necessary tools, running the development server, and executing tests to ensure everything is set up correctly.
+
+## Prerequisites
+
+{%
+ include-markdown "./_prerequisites.md"
+ start=""
+ end=""
+%}
+
+**Backend Setup**: Before starting with the frontend, make sure the backend server is up and running as the frontend will need to communicate with it.
+
+## Setting Up the Frontend
+
+1. **Clone the Repository**
+ Start by cloning the TEA Platform repository to your local machine, if you haven't already done so.
+
+ ```shell
+ git clone https://github.com/alan-turing-institute/AssurancePlatform.git
+ ```
+
+2. **Navigate to the Frontend Directory**
+ Change into the frontend directory within the cloned repository.
+
+ ```shell
+ cd next-frontend
+ ```
+
+3. **Install Dependencies**
+
+ Run the following command to install all required npm packages specified in the package.json file.
+
+ ```shell
+ npm install
+ ```
+
+4. **Run the Development Server**
+
+ Start the development server to launch the TEA Platform in your default web browser.
+
+ ```shell
+ npm run start
+ ```
+
+ or, for development server:
+
+ ```shell
+ npm run dev
+ ```
+
+ **This command will automatically open a new browser tab pointing to http://localhost:3000, where you can start interacting with the frontend application.**
+
+5. **Run Tests**
+
+ It's good practice to run the available tests to ensure that the frontend components are functioning as expected.
+
+ ```shell
+ npm run test
+ ```
+
+## Environment Variables
+
+Ensure that you have added the following to your `.env.local` file in the root of this project.
+
+```
+NEXT_PUBLIC_STORAGESASTOKEN={token-value}
+NEXT_PUBLIC_STORAGESOURCENAME={storage-name-value}
+
+GITHUB_APP_CLIENT_ID={gh-clientid-value}
+GITHUB_APP_CLIENT_SECRET={gh-secret-valie}
+NEXTAUTH_SECRET={unique-string}
+NEXT_PUBLIC_API_URL={api-url-value}
+API_URL={api-url-value}
+NEXTAUTH_URL={frontend-url-value}
+```
+
+To generate a unique string for the `NEXTAUTH_SECRET` you can run:
+
+```bash
+openssl rand -base64 32
+```
+
+
+
+## Troubleshooting SSL Errors
+
+If you encounter any SSL errors during setup, try updating npm and forcing an audit fix, followed by updating react-scripts to the latest version.
+
+```shell
+npm update && \
+npm audit fix --force && \
+npm i react-scripts@latest
+```
+
+## Conclusion
+
+By following these steps, you'll have the frontend of the TEA Platform running locally on your development machine, ready for further development and testing.
diff --git a/site/docs/developer-guide/frontend/mermaid.md b/site/docs/developer-guide/frontend/mermaid.md
new file mode 100644
index 00000000..daedaa63
--- /dev/null
+++ b/site/docs/developer-guide/frontend/mermaid.md
@@ -0,0 +1,21 @@
+# Visualizing Assurance Cases with Mermaid.js
+
+The Trustworthy and Ethical Assurance (TEA) Platform leverages the power of [**Mermaid.js**](https://mermaid.js.org/) to provide a dynamic and intuitive visualization of assurance cases. Mermaid.js is an open-source rendering library that allows the creation of diagrams and flowcharts with Markdown-like notation, making it an ideal choice for representing the complex relationships and structures within assurance cases.
+
+## Introduction to Mermaid.js
+
+Mermaid.js simplifies the process of generating diagrams through a text-based approach, where users can describe diagrams in a Markdown-inspired syntax. This approach enables developers and users of the TEA Platform to focus on the content and logic of their assurance cases without worrying about the intricacies of diagram design.
+
+## Using Mermaid in the TEA Platform
+
+Within the TEA Platform, Mermaid.js is utilized to convert JSON representations of assurance cases into visually appealing and interactive flowcharts. These diagrams effectively illustrate the connections between different elements of an assurance case, such as Goals, Claims, Strategies, and Evidence, providing a clear overview of the case structure and facilitating easier analysis and communication.
+
+## Experimenting with Mermaid
+
+To get a hands-on experience with Mermaid.js and explore its capabilities, users can utilize the [Mermaid Live Editor](https://mermaid.live/). This online tool offers an interactive environment where you can write Mermaid syntax and instantly see the resulting diagram, enabling quick iterations and experimentation with different diagram configurations.
+
+## Integration in the TEA Platform
+
+Mermaid.js is seamlessly integrated into the TEA Platform's frontend, where it plays a critical role in the Mermaid component, [part of the platform's React-based user interface](index.md). This integration ensures that assurance cases are not only thoroughly documented but also easily interpretable through visual means.
+
+For more details on how Mermaid.js is used within the TEA Platform and to dive deeper into the specific React components that facilitate this integration, please refer to our [React Components](react-components.md) page.
diff --git a/site/docs/developer-guide/frontend/react-components.md b/site/docs/developer-guide/frontend/react-components.md
new file mode 100644
index 00000000..fb2e9e80
--- /dev/null
+++ b/site/docs/developer-guide/frontend/react-components.md
@@ -0,0 +1,71 @@
+# React Components Deep Dive
+
+Explore the intricacies of the React components that power the user interface of the Trustworthy and Ethical Assurance (TEA) Platform. This exploration delves into the custom-built and modular components that form the backbone of the platform's frontend, shedding light on their properties (props), internal states, and functional roles. Gain insights into the contribution of each component towards crafting a seamless and intuitive user experience, and understand the mechanics behind the platform's operational flow.
+
+Each component is meticulously designed to fulfill specific functions within the TEA Platform, from case creation and selection to detailed visualization and editing. Together, they embody the platform's commitment to making assurance case management an accessible, transparent, and collaborative process.
+
+!!! warning
+
+ This section is a work in progress and will be updated with detailed information about the React components in the TEA Platform frontend, pending docstring writing and code review.
+
+---
+
+## [`Routes`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/Routes.js)
+
+The `Routes` component acts as the central dispatcher for the application's various screens or views. It listens to changes in the browser's URL and mounts the appropriate React component that corresponds to the current route. This mechanism is crucial for the TEA Platform, allowing users to navigate between different parts of the applicationโsuch as creating a new assurance case, viewing a list of cases, or editing a specific caseโwithout the traditional overhead associated with full-page refreshes.
+
+## [`CaseContainer`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/CaseContainer.js)
+
+Serves as the primary container for displaying and interacting with an assurance case. It integrates various components like `MermaidChart`, `ItemEditor`, and `CaseTopBar` to provide a comprehensive view and editing capabilities of an assurance case.
+
+## [`CaseCreator`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/CaseCreator.js) and [`CaseCreatorFlow`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/CaseCreatorFlow.jsx)
+
+These components manage the creation of new assurance cases. Users can either start from scratch or use predefined templates to define the structure and content of their assurance cases.
+
+## [`CommentSection`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/CommentSection.js)
+
+Facilitates adding, viewing, and managing comments within an assurance case. It encourages collaborative review and feedback among users.
+
+## [`CreateGroup`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/CreateGroup.js)
+
+Enables users to create new user groups for managing access and permissions across different assurance cases, fostering collaborative environments.
+
+## [`DeleteCaseModal`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/DeleteCaseModal.jsx) and [`DeleteItemModal`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/DeleteItemModal.jsx)
+
+These modals handle the deletion of assurance cases and individual items within a case, ensuring users are aware of the irreversible nature of this action through confirmatory prompts.
+
+## [`ExportCaseModal`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/ExportCaseModal.jsx)
+
+Provides functionality for exporting assurance cases in various formats, supporting the sharing and external review of cases.
+
+## [`ManageCases`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/ManageCases.js)
+
+Acts as the dashboard for users to access, manage, and create new assurance cases. It includes quick access to import, create, and view existing cases.
+
+## [`Navigation`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/Navigation.js)
+
+The navigation bar at the top of the platform, offering easy access to the main sections of the application, GitHub repository, and user authentication actions.
+
+## [`Splash`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/Home.js) and [`Home`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/components/Home.js)
+
+`Splash` serves as the landing page for new or unauthenticated users, guiding them through login or case creation. `Home` transitions authenticated users to the `ManageCases` view, signifying entry into the case management dashboard.
+
+
diff --git a/site/docs/developer-guide/frontend/react-configuration.md b/site/docs/developer-guide/frontend/react-configuration.md
new file mode 100644
index 00000000..26ed79f9
--- /dev/null
+++ b/site/docs/developer-guide/frontend/react-configuration.md
@@ -0,0 +1,48 @@
+# React Configuration
+
+This document outlines the key configuration settings for the frontend of the Trustworthy and Ethical Assurance (TEA) Platform, a dynamic open-source tool developed to streamline the creation, management, and sharing of assurance cases. Our configuration aims to enhance usability and interactivity, ensuring a seamless experience for our users.
+
+## Configuration Overview
+
+The frontend configuration of the TEA Platform is centralized within the `config.json` file located at [`/frontend/src/config.json`](https://github.com/alan-turing-institute/AssurancePlatform/blob/main/frontend/src/config.json). This file contains essential variables and settings that dictate how the frontend interacts with various elements of the platform, including the backend server, GitHub integration, and visual presentation of assurance cases.
+
+To modify the TEA Platform's frontend configuration, simply edit the `config.json` file and adjust the variables as needed to suit your deployment environment or visual preference.
+
+!!! warning
+
+ Remember to review and test changes thoroughly to ensure optimal platform performance and user experience.
+
+## Key Configuration Variables
+
+`DEFAULT_BASE_URL`: Defines the base URL for backend API calls. By default, it points to `http://localhost:8000/api`, suitable for development environments. Adjust this URL to match your production backend deployment as necessary.
+
+`DEFAULT_GITHUB_CLIENT_ID` and `DEFAULT_GITHUB_REDIRECT_URI`: Used for GitHub authentication, facilitating social login and repository integration. Customize these values based on your GitHub OAuth application settings.
+
+`BOX_NCHAR`: Determines the character limit for text boxes within the platform, ensuring content consistency and readability.
+
+`property_claim_types`: Lists the types of property claims supported by the platform, such as "Project claim" and "System claim", enabling users to categorize their claims accurately.
+
+## Styling and Visualization
+
+The styling and mermaid_styles sections define the visual appearance of the assurance case elements, applying to fonts, colors, and shapes within the platform's graphical representations. These styles are crucial for enhancing the visual clarity and distinction between different elements of an assurance case.
+
+- `styling`: Specifies the main and Mermaid-specific fonts used throughout the platform, promoting a cohesive and accessible user interface.
+- `mermaid_styles`: Configures the colors and styles for different assurance case elements when visualized using the Mermaid diagramming tool. This includes configurations for various themes such as default, inverted, white, high-contrast, and monochrome, allowing for personalized visualization preferences.
+
+## Navigation Hierarchy
+
+The navigation object defines the hierarchical structure and relationships between different types of assurance case elements (e.g., `AssuranceCase`, `TopLevelNormativeGoal`, `Context`). It outlines how these elements are accessed and manipulated via the API, facilitating the dynamic construction and navigation of assurance cases within the platform.
+
+
diff --git a/site/docs/developer-guide/frontend/reactflow.md b/site/docs/developer-guide/frontend/reactflow.md
new file mode 100644
index 00000000..7fd65785
--- /dev/null
+++ b/site/docs/developer-guide/frontend/reactflow.md
@@ -0,0 +1,28 @@
+# Reactflow
+
+React Flow is a library for building interactive node-based applications using React. It provides a simple API for creating flows, diagrams, and custom workflows. React Flow is especially useful for visualizing data relationships and building complex interfaces where users can manipulate nodes and edges.
+
+## Key Features of React Flow
+
+- **Node and Edge Management**: Easily manage nodes and edges with a straightforward API.
+- **Customizable Components**: Create custom nodes and edges to fit specific use cases.
+- **Zoom and Pan**: Supports zooming and panning, allowing users to navigate complex diagrams effortlessly.
+- **Interactive**: Provides drag-and-drop functionality for a more interactive user experience.
+- **Flexible Layouts**: Supports different layouts for nodes, enabling various design patterns.
+
+!!! warning
+
+ This section is a work in progress and will be updated with detailed information about the React components in the TEA Platform frontend, pending docstring writing and code review.
+
+---
+
+### Example Assurance Case
+Here is an example of how an assurance case can look when rendered with ReactFlow.
+
+![Assurance Case Example](https://staging-assuranceplatform.azurewebsites.net/images/tea-chart.png)
+
+### How is the chart rendered?
+
+This chart is fairly static, in that the user cannot move each of the elements around the screen. Although, ReactFlow does provide this feature, we decided to lock this down for our intial release.
+
+To move elements you can use the actions presented when selecting an element.
diff --git a/site/docs/developer-guide/github.md b/site/docs/developer-guide/github.md
new file mode 100644
index 00000000..0b6acee1
--- /dev/null
+++ b/site/docs/developer-guide/github.md
@@ -0,0 +1,61 @@
+# Creating a Legacy (OAuth) App on GitHub
+
+1. **Login to GitHub**:
+ Navigate to [GitHub](https://github.com/) and log in to your account.
+
+2. **Access the Developer Settings**:
+ - Click on your profile picture (top right corner).
+ - From the dropdown menu, choose "Settings".
+ - In the left sidebar, scroll down and select "Developer settings".
+
+3. **Navigate to OAuth Apps**:
+ - In the left sidebar of the Developer settings, click on "OAuth Apps".
+ - This will show you a list of existing OAuth apps, if any. To create a new one, click on the "New OAuth App" button.
+
+4. **Fill Out the Application Details**:
+ - **Application name**: Enter "Assurance Platform".
+ - **Homepage URL**: Enter `https://assuranceplatform.azurewebsites.net`.
+ - **Application description**: This is optional, but you can provide a short description of your application here.
+ - **Authorization callback URL**: Enter `http://assuranceplatform.azurewebsites.net/login`.
+
+5. **Register the Application**:
+ - After filling out the necessary details, click on the "Register application" button at the bottom.
+
+6. **Note the Client ID and Client Secret**:
+ - Once your application is registered, you'll be redirected to a page that displays your application's details.
+ - Here, you'll find two important pieces of information: the `Client ID` and the `Client Secret`. Both are essential for integrating your application with GitHub OAuth.
+ - **Important**: The `Client Secret` is only displayed once. Make sure to copy and save it securely. If you lose it, you'll need to reset it, which could disrupt any services using the current secret.
+
+## Setting up GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET in eap_backend/settings.py
+
+1. **Navigate to Your Project**:
+ - Navigate to the directory where your `eap_backend/settings.py` file is located.
+
+2. **Edit the settings.py File**:
+ - Open the `settings.py` file in a text editor or Integrated Development Environment (IDE) of your choice.
+
+3. **Add/Update the Client ID and Client Secret**:
+ - Find the section where environment variables or settings related to third-party integrations are defined. If the variables `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` already exist, update their values. If they don't, add them:
+ ```python
+ GITHUB_CLIENT_ID = 'your_client_id_here'
+ GITHUB_CLIENT_SECRET = 'your_client_secret_here'
+ ```
+
+ - Replace `your_client_id_here` with the `Client ID` and `your_client_secret_here` with the `Client Secret` you obtained from GitHub.
+
+4. **Save the Changes**:
+ - After adding or updating the values, save the file.
+
+5. **Restart Your Application**:
+ - If your application or server is running, you'll likely need to restart it to ensure the changes take effect.
+
+**Note**: Storing sensitive information like the `Client Secret` directly in the code is not recommended for production applications. It's better to use environment variables or secure secret management tools. The above instructions are for simplicity and clarity. For production, consider using secure methods to store and access your secrets.
+
+e.g., `settings.py` should look like this:
+
+```
+GITHUB_CLIENT_ID = "xxxxx"
+GITHUB_CLIENT_SECRET = os.environ.get("GITHUB_CLIENT_SECRET")
+```
+
+and in your environment variables, you should have `GITHUB_CLIENT_SECRET` set to the value you got from GitHub.
diff --git a/site/docs/developer-guide/installation.md b/site/docs/developer-guide/installation.md
new file mode 100644
index 00000000..e5de7595
--- /dev/null
+++ b/site/docs/developer-guide/installation.md
@@ -0,0 +1 @@
+
diff --git a/site/docs/developer-guide/reset-database/azure.md b/site/docs/developer-guide/reset-database/azure.md
new file mode 100644
index 00000000..4d0cee68
--- /dev/null
+++ b/site/docs/developer-guide/reset-database/azure.md
@@ -0,0 +1,108 @@
+# Resetting the Database on Azure Deployments
+
+Resetting your database on Azure involves a few crucial steps to ensure that the process is completed smoothly without hindering the accessibility of your TEA Platform. This guide will walk you through the necessary steps to reset your database deployed on Microsoft Azure.
+
+!!! warning
+
+ This process will remove all existing data in the database. It is highly recommended to back up any important data before proceeding with the reset.
+
+## Prerequisites
+
+The PostgreSQL command-line tool, `psql`, is required for directly interacting with your Azure database. Mac users with Homebrew can install it using `brew install postgresql`. Windows and Linux users should refer to their respective package managers or download it from the PostgreSQL official website.
+
+## 1. Allow IP Connection
+
+Before proceeding with the reset, ensure your local machine's IP address is allowed to connect to the Azure database server.
+
+- Navigate to the **Azure portal**.
+- Locate your **database resource**.
+- Under **"Connection security"** on the left sidebar, select **"Add current client IP address"** and save your changes.
+
+## 2. Reset the Database via psql
+
+You will now drop the existing database and create a new one using `psql`.
+
+Open your terminal or command prompt and execute the following commands:
+
+```bash
+psql --host=SERVER_NAME.postgres.database.azure.com --port=5432 --username=ADMIN_USERNAME@SERVER_NAME --dbname=postgres
+```
+
+Once connected, run:
+
+```sql
+postgres=> DROP DATABASE eap;
+postgres=> CREATE DATABASE eap;
+postgres=> \c eap;
+postgres=> \q
+```
+
+Replace SERVER_NAME and ADMIN_USERNAME with the actual server name and admin username provided in the Azure portal. Ensure you have the admin password at hand, as it might be required during connection.
+
+### 3. Restart the Backend Web App
+
+To apply the changes and ensure your application connects to the refreshed database, you need to restart your backend web application.
+
+- Go back to the **Azure portal**.
+- Find your **backend web app** service.
+- Use the **"Restart"** option to reboot the application.
+
+After a brief wait, your TEA Platform application should be operational with a clean database, ready for new data.
+
+
diff --git a/site/docs/developer-guide/reset-database/index.md b/site/docs/developer-guide/reset-database/index.md
new file mode 100644
index 00000000..ba5c5fa4
--- /dev/null
+++ b/site/docs/developer-guide/reset-database/index.md
@@ -0,0 +1,29 @@
+# Resetting the Database
+
+Resetting the database of the Trustworthy and Ethical Assurance (TEA) Platform might become necessary under various circumstances. Whether you're cleaning up after a demonstration, addressing schema changes, or preparing for a new phase of development, understanding how to reset your database safely and effectively is crucial.
+
+!!! warning
+
+ Resetting the database is a powerful action that can help maintain the cleanliness and integrity of your TEA Platform installation. However, it should be approached with caution to avoid accidental data loss.
+
+## Reasons for Resetting
+
+**Post-Demo Cleanup**: After demonstrating the TEA Platform, you might want to remove all test data, including users and cases, to ensure a clean slate for actual use.
+
+**Schema Changes**: Implementing changes in the database schema that cannot be migrated using Django's standard migration tools may require a fresh start.
+
+## Resetting Environments
+
+The process for resetting the TEA Platform database differs depending on the environment in which it is deployed:
+
+**Local Deployment**: For developers and users running the TEA Platform locally, resetting involves clearing the local database file or using Django's database management commands. Instructions for clearing the database and starting afresh on your local development machine are provided in the [Local Reset Guide](local.md).
+
+**Azure Cloud Deployment**: For instances deployed on Microsoft Azure or similar cloud services, the process may involve interacting with cloud database services and utilizing the Azure portal or CLI tools. The [Azure Reset Guide](azure.md) provides detailed instructions for resetting the database in this scenario.
+
+## Additional Considerations
+
+**Backup and Data Loss**: Always ensure that any valuable data is backed up before initiating a database reset. Data loss is irreversible once the reset process is complete.
+
+**Security Practices**: Be mindful of security best practices, especially when handling database credentials and accessing cloud services.
+
+**Deploying on Azure**: Refer back to the [deployment guide](../deployment/azure.md) if you need to reconfigure or redeploy the TEA Platform on Azure after resetting.
diff --git a/site/docs/developer-guide/reset-database/local.md b/site/docs/developer-guide/reset-database/local.md
new file mode 100644
index 00000000..668ff0ee
--- /dev/null
+++ b/site/docs/developer-guide/reset-database/local.md
@@ -0,0 +1,72 @@
+# Resetting the Database on Local Deployments
+
+Resetting your local database involves a straightforward process that ensures you start afresh with your TEA Platform's backend. This guide is designed for local deployments using SQLite, the default database setup for development environments.
+
+!!! warning
+
+ This process will remove all existing data in the database. It is highly recommended to back up any important data before proceeding with the reset.
+
+## 1. Identify the Database File
+
+The local database for the TEA Platform is stored in an SQLite file typically located at **`eap_backend/db.sqlite3`** within your project directory.
+
+## 2. Delete the Database File
+
+To reset your database, you need to delete the existing SQLite file. Navigate to the **`eap_backend`** directory and remove the **`db.sqlite3`** file.
+
+```bash
+rm eap_backend/db.sqlite3
+```
+
+## 3. Recreate the Database
+
+After deleting the old database file, you'll need to recreate the database structure to continue working with a clean state.
+
+Ensure your backend environment is correctly set up, then execute the following Django management commands:
+
+```bash
+python manage.py makemigrations && \
+python manage.py migrate
+```
+
+These commands will generate a **new `db.sqlite3` file** with a fresh database schema based on your Django models.
+
+## Running on Your Local Machine
+
+For local deployments, the use of SQLite simplifies the process of resetting your database. After deleting the `db.sqlite3` file and running the migration commands, your backend will operate with a new, empty database.
+
+This process effectively removes all existing data, allowing you to start anew with your development or testing activities on the TEA Platform.
+
+
diff --git a/site/docs/developer-guide/resetting-database.md b/site/docs/developer-guide/resetting-database.md
new file mode 100644
index 00000000..32655f20
--- /dev/null
+++ b/site/docs/developer-guide/resetting-database.md
@@ -0,0 +1 @@
+
diff --git a/site/docs/index.md b/site/docs/index.md
index 37bf9e29..a7f67bab 100644
--- a/site/docs/index.md
+++ b/site/docs/index.md
@@ -1,7 +1,7 @@
---
hide:
- - navigation
- - toc
+ - navigation
+ - toc
---
![An illustration that shows a project team designing and developing a system. They are organised such that they form an abstract assurance case.](assets/images/assurance.jpg){ align=right }
diff --git a/site/docs/introductory-resources/assurance-ecosystem.md b/site/docs/introductory-resources/assurance-ecosystem.md
deleted file mode 100644
index aa1615d5..00000000
--- a/site/docs/introductory-resources/assurance-ecosystem.md
+++ /dev/null
@@ -1,233 +0,0 @@
----
-status: draft
-tags:
- - Introductory Resource
----
-
-# Understanding the Assurance Ecosystem
-
-In 2021, the UK Government's
-[Centre for Data Ethics and Innovation](https://www.gov.uk/government/organisations/centre-for-data-ethics-and-innovation)
-released their
-[AI Assurance Roadmap](https://www.gov.uk/government/publications/the-roadmap-to-an-effective-ai-assurance-ecosystem).
-This publication set an agenda and series of recommendations for how to build
-and govern an effective AI Assurance ecosystem.
-
-In the context of AI, we can think of an assurance ecosystem as the framework or
-environment that encompasses the methods, tools, roles, responsibilities,
-stakeholders (and relationships between them) that collectively work towards
-ensuring AI systems are designed, developed, deployed, and used in a trustworthy
-and ethical manner. As such, it is an emerging concept, which is currently only
-loosely defined but can, nevertheless, help us address the challenges posed by
-AI technologies and maximise their opportunities.
-
-!!! info "CDEI's AI Assurance Guide"
-
- The following is based on and adapted from the Centre for Data Ethics and Innovation's AI Assurance Guide, which extends their original roadmap and seeks to clarify the scope of an assurance ecosystem as it pertains to AI. We consider some of the core concepts of the CDEI's guide, focusing on the parts that are relevant to the TEA platform. For further information, please visit their site: [https://cdeiuk.github.io/ai-assurance-guide/](https://cdeiuk.github.io/ai-assurance-guide/)
-
-## Why is Assurance Important
-
-Data-driven technologies, such as artificial intelligence, have a complex
-lifecycle. In some cases, this complexity is further heightened by the scale at
-which a system is deployed (e.g. social media platforms with international
-reach).
-
-The scale and complexity of certain data-driven technologies has already been
-clearly communicated by others, such as
-[this excellent infographic](https://anatomyof.ai) from the AI Now Institute
-showing the many societal impacts and touch points that occur in the development
-of Amazonโs smart speaker. Therefore, it is not necessary to revisit this point
-here. However, it is important to explain why this complexity and scale matters
-for the purpose of trustworthy and ethical assurance. There are three
-(well-rehearsed) reasons that are salient within the context of the assurance
-ecosystem:
-
-1. Complexity: as the complexity of a system increases it becomes harder to
- maintain transparency and explainability.
-2. Scalability: the risk of harm increases proportional to the scale of a
- system, and mechanisms for holding people or organisations accountable become
- harder to implement.
-3. Autonomous behaviour: where data-driven technologies are used to enable
- autonomous behaviour, opportunities for responsible human oversight are
- reduced.
-
-## Justified Trust
-
-As discussed at the start of this section, assurance is about building trust.
-
-But there is a further concept, related to trust, which is vital for assurance:
-trustworthiness.
-
-As the CDEI's guide acknowledges:
-
-> "when we talk about trustworthiness, we mean whether something is deserving of
-> peopleโs trust. On the other hand, when we talk about trust, we mean whether
-> something is actually trusted by someone, which might be the case even if it
-> is not in fact trustworthy." A successful relationship built on justified
-> trust requires **both** trust and trustworthiness: **Trust without
-> trustworthiness = misplaced trust.** If we trust technology, or the
-> organisations deploying a technology when they are not in fact trustworthy, we
-> incur potential risks by misplacing our trust. **Trustworthy but not trusted =
-> (unjustified) mistrust.** If we fail to trust a technology or organisation
-> which is in fact trustworthy, we incur the opportunity costs of not using good
-> technology.
-
-![](../assets/images/justified-trust.png)
-
-The concept of justified trust is, understandably, an integral part of
-_trustworthy_ and ethical assurance.
-
-We can turn to the moral philosopher, Onora OโNeill, for a clear articulation of
-why this is so,
-
-> โ[...] if we want a society in which placing trust is feasible we need to look
-> for ways in which we can actively check one anotherโs claims.
-
-But, she continues,
-
-> โ[...] active checking of information is pretty hard for many of us.
-> Unqualified trust is then understandably rather scarce.โ
-
-The CDEI's Assurance guide identifies two problems that help explain why active
-checking is challenging:
-
-- **An information problem:** organisations face difficulties in continuously
- evaluating AI systems and acquiring the evidence base that helps establish
- whether a system is trustworthy (i.e. whether users or stakeholders should
- place trust in the system)
-- **A communication problem:** once they have established the trustworthiness of
- the system, there are additional challenges to communicate this to relevant
- stakeholders and users such that they trust the claims being made.
-
-An effective assurance ecosystem should help actors overcome these issues to
-establish _justified trust_. Let's take a look at some of the key actors in an
-assurance ecosystem.
-
-## Key Actors, Roles, and Responsibilites
-
-AI is often described as sociotechnical. Here, the term "sociotechnical" is used
-to emphasise how the design, development, deployment, and use of AI is deeply
-intertwined with social systems and practices, and influenced by a wide array of
-human and organisational factors. Because of this, any list of actors, and their
-various roles and responsibilities will fall short in a number of dimensions.
-However, the following graphic provides us with a good starting point for
-understanding the key actors in an assurance ecosystem.
-
-![This diagram depicts the AI assurance ecosystem, illustrating interactions between AI supply chain participants, AI Assurance Service Providers, Independent Researchers, and Supporting Structures like regulators and standards bodies.](../assets/images/actors.png)
-_Figure 2. Key actors in the AI Assurance Ecosystem. Reprinted from CDEI (2023)
-AI Assurance Guide.
-https://cdeiuk.github.io/ai-assurance-guide/needs-and-responsibilities_
-
-As the diagram depicts, certain actors have a direct influence into the supply
-chain for AI systems. These are known as 'assurance users'. For instance,
-organisations may have dedicated teams internally who are responsible for
-quality assurance of products or services (e.g. compliance with safety
-standards, adherence to data privacy and protection legislation). However, there
-is a growing marketplace of independent 'assurance service providers' who offer
-consultancy or services to other companies or organisations.[^market]
-
-These users and providers are further supported by structures including
-governments, regulators, standards bodies, and accreditation/professional
-bodies. That is, the relationship between users and provides does not operate in
-a vacuum, but within a complex environment of legislation, regulation, and
-general norms and best practices.
-
-[^market]:
- For example, [Credo AI](https://www.credo.ai/) offer a paid-for service that
- comprises an interactive dashboard and set of tools to help companies comply
- with existing and emerging policies and regulation. Whereas, other
- organisations, such as the
- [Ada Lovelace Institute](https://www.adalovelaceinstitute.org/project/algorithmic-impact-assessment-healthcare/)
- have developed open-source tools for teams to implement within their own
- projects.
-
-This is a helpful starting point for gaining some purchase on the complex set of
-interacting roles and responsibilities that collectively make up what is
-admittedly a hard to delineate assurance ecosystem. Because the TEA platform
-emphasises the importance of ethical reflection and deliberation, the resources
-and materials are likely to be of specific interest to the following actors:
-
-- Researchers
-- Journalists/Activists
-- Internal Assurance Teams
-- Developers
-- Frontline User
-- Affected Individuals
-
-## Assuring different subject matter
-
-> Whether someone needs to build confidence in the trustworthiness of different
-> products, systems, processes, organisations or people will influence the type
-> of information required, and the techniques required to provide assurance.
-> This is because different products, systems, processes, organisations and
-> people have different aspects that affect their trustworthiness i.e. they have
-> different assurance subject matters.
-
-Whether a frontline user of a system is confident in using the system will
-depend on a wide variety of factors. If the system is a medical device, and the
-frontline user is a healthcare professional, safety and accuracy may be primary
-concerns. However, if the system is an algorithmic decision-support tool, the
-frontline user may care more about the explainabilty of the system.
-
-Assurance needs, therefore, vary depending on what's being assuredโproducts,
-systems, processes, organisations, or individuals. Simple products like kettles
-may have straightforward, measurable assurance criteria, whereas complex systems
-like AI necessitate nuanced, multi-dimensional assurance approaches due to their
-varied subject matters like robustness, accuracy, bias, explainability, and
-others. As previously noted, the complexity of AI arises because of the
-sociotechnical interactions between technical, organisational, and human
-factors. Ethical principles such as fairness, privacy, and accountability are
-intertwined with these interactions, necessitating comprehensive assurance
-mechanisms.
-
-While not specifically designed to address ethical principles, the following
-diagram from the CDEI's Assurance Guide can help elucidate some of the reasons
-why trustworthy and ethical assurance can be challenging.
-
-
-
-![](../assets/images/subject-matter.png) _Figure 3. A graphic showing the four
-dimensions of assurance subject matter: unobservable/observable,
-subjective/objective, ambiguous/explicit, uncertain/certain._
-
-- In the context of the TEA platform, the different subject matter represent the
- domain of the assurance case, summarised in the top-level goal claim (e.g.
- fairness).
-
-To what extent does the TEA methodology and platform align with the CDEI's 5
-elements of assurance: https://cdeiuk.github.io/ai-assurance-guide/five-elements
--->
diff --git a/site/docs/introductory-resources/index.md b/site/docs/introductory-resources/index.md
deleted file mode 100644
index f1201bc4..00000000
--- a/site/docs/introductory-resources/index.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-tags:
- - Introductory Resources
----
-
-In this section you will find the following resources.
-The guides can be read in any order and independently of each other, but the following order is recommended for those who are completely new to the area:
-
-- [What is Trustworthy and Ethical Assurance?](what-is-tea.md): an introduction to the Trustworthy and Ethical Assurance framework
-- [An Introduction to Argument-Based Assurance](argument-based-assurance.md): a short guide on the framework of argument-based assurance that underpins TEA
-- [Understanding the Assurance Ecosystem](assurance-ecosystem.md): an introduction to the broader AI assurance ecosystem
-- [Standards and their role in assurance](standards.md): an introduction to standards, the different types of standards and their role in assurance
-- [Open Challenges](open-challenges.md): a set of open challenges and research questions for TEA and assurance more generally.
diff --git a/site/docs/introductory-resources/open-challenges.md b/site/docs/introductory-resources/open-challenges.md
deleted file mode 100644
index 1047dcad..00000000
--- a/site/docs/introductory-resources/open-challenges.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-status: draft
-tags:
- - Introductory Resource
----
-
-!!! info "Draft"
-
- This section is being drafted.
diff --git a/site/docs/introductory-resources/standards.md b/site/docs/introductory-resources/standards.md
deleted file mode 100644
index e68bec26..00000000
--- a/site/docs/introductory-resources/standards.md
+++ /dev/null
@@ -1,288 +0,0 @@
----
-authors:
- - Shakir Laher
- - Christopher Burr
----
-
-# Standards and their role in assurance
-
-!!! info "AI Standards Hub"
-
- This guidance has been co-produced alongside the [AI Standards Hub](https://aistandardshub.org/)โa UK initiative dedicated to the evolving and international field of standardisation for AI technologies, hosted at the Alan Turing Institute and supported by BSI, NPL, and HM Government.
-
-## What are standards?
-
-A 'standard' can be described as rules, norms or guidelines, that are established for application within certain contexts and settings. They are crafted to establish a dependable foundation for cultivating collective expectations concerning a product, process, service, or system as part of governance and assurance frameworks. We see examples of their implementation in industry, academia, professions, product development and service delivery.
-
-Standards are developed in a variety of ways, although the best-practice approach to their formation and the most widely accepted are essentially standards crafted through *consensus-building processes*.
-These standards can be developed and led by, for example, academic institutions, international bodies, professional associations, industry, or most commonly, formally recognised Standards Development Organisations (SDOs)[^sdos]
-
-[^sdos]: AI Standards Hub. 1.Introducing AI Standards. 2022. [https://aistandardshub.org/resource/main-training-page-example/1-what-are-standards/](https://aistandardshub.org/resource/main-training-page-example/1-what-are-standards/).
-
-Standards developed by SDOs are often referred to as 'technical standards'.
-These standards are developed by stakeholder-driven processes that are guided by principles such as relevance, transparency, and consensus.
-Standards on the whole are voluntary but can be formally recognised in regulations and international treaties, especially those developed by SDOs.
-Furthermore, they can be tools used as part of compliance towards governance and assurance frameworks.
-
-Standards can be in a variety of forms but commonly are established and disseminated as documents approved by a recognised body.
-They provide common and repeatable rules, requirements, norms, guidelines and characteristics for activities that will lead to their associated outcomes; and are aimed at providing 'optimum degree of order'[^iso] in the contexts where they are applied.
-
-[^iso]: International Standards Organisation. 1. Standards in our world. ISO. [https://www.iso.org/sites/ConsumersStandards/1_standards.html](https://www.iso.org/sites/ConsumersStandards/1_standards.html)
-
-## Different types of standards
-
-Standards find application across diverse domains and sectors.
-They serve to encode technical specifications related to the design, development, measurement, or performance; of products and systems.
-Additionally, standards extend their influence to evaluating the impacts or efficiency of broader processes or services.
-
-While some standards are uncomplicated, offering clear metric definitions (e.g. the standardised format of A4 and related paper sizes adopted globally), others offer guidance on intricate, context-specific processes.
-
-Below are some of the categories of standards available.
-
-!!! info "Types of Standards"
-
-
-- [Foundational and terminological](#foundational-and-terminological)
-- [Process, management, and governance](#process-management-and-governance)
-- [Measurement and test methods](#measurement-and-test-methods)
-- [Product and performance requirements](#product-and-performance-requirements)
-- [Interface and architecture](#interface-and-architecture)
-
-### Foundational and terminological
-
-Foundational and terminological standards provide shared vocabularies, terms, concepts, descriptions and definitions, enabling effective communication and fostering collaboration between stakeholders on a given shared area of interest.
-They help improve understanding between stakeholders through the shared common language at their disposal by setting out agreed-upon terms and definitions.
-These standards often form the baseline language utilised in other standards supporting their development and forming bilateral relationships.
-
-:::success
-**Examples**
-
-- ISO/IEC 22989 BS ISO/IEC 22989:2022 Information technology โ Artificial intelligence โ Artificial intelligence concepts and terminology
- - This document establishes terminology for AI and describes concepts in the field of AI. This document can be used in the development of other standards and in support of communications among diverse, interested parties or stakeholders. This document is applicable to all types of organizations (e.g. commercial enterprises, government agencies, not-for-profit organizations).
- - [AI Standards Hub Link](https://aistandardshub.org/ai-standards/information-technology-artificial-intelligence-artificial-intelligence-concepts-and-terminology-2/)
-- ISO/IEC TS 5723 PD ISO/IEC TS 5723:2022 Trustworthiness โ Vocabulary
- - This document provides a definition of trustworthiness for systems and their associated services, along with a selected set of their characteristics.
- - [AI Standards Hub Link](https://aistandardshub.org/ai-standards/trustworthiness-vocabulary/)
-
-:::
-
-### Process, management, and governance
-
-
-Process, management and governance standards play a vital role in guiding organisational processes and approaches, providing a structured framework to help achieve well-defined steps towards their aims and objectives. These standards serve as a cornerstone in governance, offering a systematic foundation for areas such as quality assurance, risk management, management systems, benchmarking, and regulatory compliance. By establishing clear guidelines and best practices, these standards contribute to effective governance practices within an organisation. They not only enhance the efficiency and consistency of processes but also ensure that organisational activities align with industry benchmarks and comply with relevant regulations. These standards become essential tools in fostering transparency, accountability, and overall excellence in organisational performance.
-
-:::success
-**Examples**
-
-- ISO/IEC FDIS 42001:2023 Information technology โ Artificial intelligence โ Management system
- - This standard specifies the requirements and provides guidance for establishing, implementing, maintaining and continually improving an AI management system within the context of an organization. The standard is intended for use by an organization providing or using products or services that utilize AI systems. It is intended to help the organization develop or use AI systems responsibly in pursuing its objectives and meet applicable regulatory requirements, obligations related to interested parties and expectations from them. This standard is applicable to any organization, regardless of size, type and nature, that provides or uses products or services that utilize AI systems.
- - [AI Standards Hub Link](https://aistandardshub.org/ai-standards/information-technology-artificial-intelligence-management-system/)
-
-- **DCB0129:** Clinical Risk Management: its Application in the Manufacture of Health IT Systems & **DCB0160:** Clinical Risk Management: its Application in the Deployment and Use of Health IT Systems
- - These standards form a pair of clinical risk management standards implemented by the NHS which are enforced under section 250 of the Health and Social Care Act 2012 to assure the clinical safety of Health Information Technology (HIT) systems
- - [DCB0129](https://digital.nhs.uk/data-and-information/information-standards/information-standards-and-data-collections-including-extractions/publications-and-notifications/standards-and-collections/dcb0129-clinical-risk-management-its-application-in-the-manufacture-of-health-it-systems) is for organisations who develop and maintain HIT that will be utilised in health and care environments.
- - [DCB0160](https://digital.nhs.uk/data-and-information/information-standards/information-standards-and-data-collections-including-extractions/publications-and-notifications/standards-and-collections/dcb0160-clinical-risk-management-its-application-in-the-deployment-and-use-of-health-it-systems) is for organisations who plan to deploy, use, maintain and decommission HIT systems within health and care environments.
-:::
-
-### Measurement and test methods
-
-Measurement and test standards are designed to set out repeatable methodologies and requirements to test attributes (e.g., security, safety, etc) of systems which are underpinned by units of measurement and associated metrics for performance and testing standards.
-These standards ensure specified thresholds have been achieved and enable entities applied under their remit to possess trustworthiness qualities.
-For communication amongst stakeholders, these standards provide clarity and a shared understanding of tests and measurement requirements, enabling precise and meaningful communication across discrete sectors, domains and scientific disciplines, whose tests and measurement requirements differ.
-The aviation industry is one example where they are relied upon to achieve acceptably safe and trustworthy aircraft.
-
-:::success
-**Examples**
-
-- ISO/IEC TS 4213:2022 - Assessment of machine learning classification performance
-
- - This document specifies methodologies for measuring classification performance of machine learning models, systems and algorithms.
- - [AI Standards Hub Link](https://aistandardshub.org/ai-standards/information-technology-artificial-intelligence-assessment-of-machine-learning-classification-performance/)
-- IEEE 2937-2022 - Performance Benchmarking for Artificial Intelligence Server Systems
-
- - 'AI computing differs from generic computing in terms of device formation, operators, and usage. AI server systems, including AI server, cluster, and high-performance computing (HPC) infrastructures are designed specifically for this purpose. The performance of these infrastructures is important to users not only on generic models but also on the ones for specific domains. Formal methods for the performance benchmarking for AI server systems are provided in this standard, including approaches for test, metrics, and measure. In addition, the technical requirements for benchmarking tools are discussed.'
- - [IEEE 2937-2022](https://standards.ieee.org/ieee/2937/10376/)
-:::
-
-### Product and performance requirements
-
-Product and performance standards play a multifaceted role across industries, serving as vital tools for quality assurance, consumer protection, and regulatory compliance.
-These standards establish specific criteria to ensure that products and services meet defined benchmarks, safeguarding consumers by setting safety and performance requirements.
-These standards facilitate international trade by their very nature, as they provide a common ground for product specifications, enabling consistency and smooth trade relations between countries.
-Beyond regulatory requirements, adherence to recognised standards fosters innovation, serving as a foundational reference for research and development efforts.
-The efficiency and productivity of organisations can significantly be enhanced as these standards streamline processes, reducing errors and improving overall workflow.
-They also play a crucial role in risk management, helping organisations identify and mitigate potential risks associated with their products and processes.
-Compliance with standards builds public trust, as consumers are more inclined to rely on products and services adhering to recognised criteria.
-Additionally, this set of standards contribute to safety assurance, particularly in industries where safety is paramount, by preventing accidents and protecting consumers and users.
-These standards are instrumental in shaping reliable, safe, and high-quality products, contributing to the advancement and credibility of various industries.
-
-:::success
-**Examples**
-
-- BS ISO/IEC 29155-4:2016 - Systems and software engineering. Information technology project performance benchmarking framework. Guidance for data collection and maintenance
- - This text provides requirements and guidance pertaining to the collection and maintenance of data for information technology (IT) projects. It serves as a foundational element within the broader context of benchmarking activities under "the IT project performance benchmarking framework."
- - [AI Standards Hub Link](https://aistandardshub.org/ai-standards/systems-and-software-engineering-information-technology-project-performance-benchmarking-framework-guidance-for-data-collection-and-maintenance/)
-
-- ISO 9001:2015 - Quality Management Systems. Requirements
- - ISO 9001 is an international standard that provides a framework for establishing and maintaining a quality management system. It is a horizontal sector agnostic standard applicable to organisations regardless of their size or the nature of their products or services. While ISO 9001 is not exclusively focused on product development, many organisations adopt it to demonstrate their commitment to quality and to enhance their overall product development and delivery processes.
- - [ISO 9001](https://www.iso.org/standard/62085.html)
- - **Check with Chris how best to reference**
-:::
-
-### Interface and architecture
-
-Interface and architecture standards define and describe common protocols, schemas, syntax, design patterns, interfaces and formats which assists towards interoperability, architectural design and data management. These standards play a pivotal role in ensuring seamless communication and collaboration among diverse components within a system or across multiple systems. By defining consistent protocols and formats, these standards enable elements with similar qualities that are not exactly the same, to exchange data and functionality effectively. They are pivotal to a cohesive and integrated environment, where disparate platforms and architectures can work together harmoniously.
-
-Additionally, these standards further enhance the reliability and efficiency of information exchange. They provide a structured framework for handling and organizing data, promoting consistency and coherence in the management of information interchange across architectures.
-In essence, the combination of interoperability, infrastructure, architecture, and data management and compatibility standards establishes a robust foundation for the seamless interaction of elements within complex systems, facilitating efficient data exchange and enhancing overall system performance.
-
-:::success
-**Examples**
-
-- IEEE 2941: Standard for Artificial Intelligence (AI) Model Representation, Compression, Distribution, and Management
- - The AI development interface, AI model interoperable representation, coding format, and model encapsulated format for efficient AI model inference, storage, distribution, and management are discussed in this standard.
- - [AI Standards Hub Link](https://aistandardshub.org/ai-standards/ieee-standard-for-artificial-intelligence-ai-model-representation-compression-distribution-and-management/)
-
-- HTML (HyperText Markup Language)
- - A standard developed and maintained by the World Wide Web Consortium (W3C) and Web Hypertext Application Technology Working Group (WHATWG) to serve as a markup language for structuring and presenting content on the world wide web, providing a standardised and interoperable format for creating web pages and applications.
- - [HTML - Living Standard](https://html.spec.whatwg.org/multipage/)
-
-:::
-
-## Functions and benefits of standards
-
-Standards, as functional tools, can play a pivotal role in realising a wide array of benefits across many domains and sectors.
-They ensure consistency and uniformity; provide a common language and set of guidelines for processes, products, or services; and help to systematically manage risks and unlock potential.
-This consistency enhances communication, reduces misunderstandings, creates trust and fosters a shared understanding among stakeholders.
-They are increasingly relied upon when implementing assurance frameworks to provide the specificity required to assure the quality and safety.
-This leads to increased efficiency and innovative edge to stay current and competitive in the global marketplace.
-
-The following headings highlight the functions and benefits in more detail:
-
-- [Assurance, risks, and trust](#assurance-risks-and-trust)
-- [Knowledge and technology diffusion](#knowledge-and-technology-diffusion)
-- [Standards as compliance tools](#standards-as-compliance-tools)
-
-### Assurance, risks, and trust
-
-The paramount concern for organisations engaged in technology production is the safety and quality of their products.
-This concern extends to the individuals who adopt, use, and are affected by these technologies.
-Standards serve as a cornerstone, enabling organisations to attain high-quality products and effectively manage associated risks by integrating them into their assurance systems.
-These standards become integral components of conformity assessments, allowing organisations to demonstrate that their technologies and services not only meet safety, ethical, and legal requirements but also contribute to enhancing their reputation and fostering public trust.
-Noteworthy examples like [DCB 0129/0160](https://www.england.nhs.uk/long-read/digital-clinical-safety-assurance/) exemplify how standards, such as those integrated into the clinical safety assurance framework of the NHS in England, play a pivotal role in upholding safety standards and ensuring the quality of technologies within the healthcare sector.
-
-By establishing benchmarks for the quality of products, services, or processes, standards help organisations maintain high standards of excellence.
-Consumers, in turn, gain confidence in products that adhere to recognised standards, knowing that they meet specified criteria for safety, reliability, and performance.
-Additionally, standards contribute to cost savings and efficiency by streamlining processes, reducing errors, and optimising resource utilisation.
-
-### Knowledge and technology diffusion
-
-Standards and their development processes provide an infrastructure for the transfer of knowledge and technology within society and the economy.
-The consensus-building processes inherent in standards development are particularly noteworthy, as they facilitate the translation of research and best practices into accessible, practical guidance.
-Furthermore, through these consensus-building processes, standards development forums bring together experts, stakeholders, and representatives from various sectors.
-This collaborative effort ensures that a broad spectrum of perspectives is considered, leading to the creation of standards that reflect a shared understanding of best practices.
-As a result, organisations can leverage these standards to enhance their operational processes and bring products to market that demonstrate trustworthy properties.
-
-By bridging the gap between research and practical application, standards become instrumental in driving improvements in operational efficiency and the overall quality of products entering the commercial sphere.
-They provide a structured pathway for the integration of advancements from diverse fields into the fabric of everyday operations, ultimately contributing to the advancement of technology, innovation, and the betterment of society and the economy at large.
-
-### Standards as compliance tools
-
-Certain standards are explicitly endorsed by regulatory authorities as essential tools for organisations to meet the requirements outlined in regulations.
-In the UKs regulatory framework, relevant Secretaries of State have the authority to 'designate' specific standards for the purpose of regulatory conformity.
-When a standard is officially designated by the government, its adoption carries a significant weightโit essentially presumes that organisations adhering to this standard are in compliance with the pertinent aspects of regional regulations.
-In essence, organisations that have followed a designated standard are presumed to be in compliant with the relevant regulatory requirements.
-This mechanism mirrors similar practices in other jurisdictions, such as the European Union (EU), where 'harmonised' standards play an analogous role in establishing and ensuring regulatory conformity.
-
-## Standards and Trustworthy and Ethical Assurance
-
-With the types of standards and their functions and benefits now outlined, we can also ask 'what role do standards have in the TEA framework'?
-And, what other connections are there between TEA and standards?
-
-??? info "Reminder of the Types of Standards"
-
- - Foundational and terminological
- - Interface and architecture
- - Measurement and test methods
- - Process, management, and governance
- - Product and performance requirements
-
-Using the types of standards as a reference, we can identify the following roles for standards in the TEA framework:[^ecosystem]
-
-[^ecosystem]: Standards may also have additional roles in the context of the broader [assurance ecosystem](assurance-ecosystem.md).
-
-### Supporting development of assurance case structure
-
-Several types of standards can support the development of an assurance case's structure.
-For instance, `foundational and terminological` standards can be useful for identifying core attributes for a top-level goal claim, which in turn would allow a project team to develop strategies for each of the core attributes.
-And, `process, management, and governance` standards could help a team or organisation develop a project governance plan that integrates considerations of the iterative development of an assurance case (e.g. ML safety requirements as set out in the AMLAS guidance[^amlas]).
-These standards can also ensure that the assurance case adheres to industry best practices, thereby enhancing its credibility and acceptance.
-
-[^amlas]: Hawkins, R., Paterson, C., Picardi, C., Jia, Y., Calinescu, R., & Habli, I. (2021). Guidance on the Assurance of Machine Learning in Autonomous Systems (AMLAS). University of York. https://www.york.ac.uk/media/assuring-autonomy/documents/AMLASv1.1.pdf
-
-
-
-### Evidential grounding and justification of property claims
-
-Property claims require evidential grounding.
-That is, the validity of a claim needs to be justified by connecting the claim to evidence through a `supported by` link (see [guidance](../guidance/components/#support-links)).
-But how does a project team or organisation know which evidence to select, and whether it is sufficient to justify the claims being made? This is where standards can provide useful support?
-
-For instance, `measurement and test methods` and `product and performance requirements` standards are crucial for determining whether a system meets the required performance levels.
-They can also help set out criteria or benchmarks for determining which forms of evidence are sufficient (e.g. objective and quantitative criteria for compliance) or how the evidence should be gathered, documented, and managed (e.g. communication of uncertainty when dealing with probabilistic evidence).
-
-!!! note "The Use of Artificial Intelligence in Health Care: Trustworthiness (ANSI/CTA-2090)"
-
- ANSI/CTA-2090 is one example of a standard that sets out requirements for several core attributes related to human, technical, and regulatory trust. For instance, their approach to bias includes (but is not limited to) the following requirements for the model developer and owner of the AI solution:
-
- - Determine if the existing data set are โrawโ data or pre-processed data.
- - For pre-processed data, find out what kind(s) of pre-processing has been performed so that the same preprocessing software/method can be applied to the input data during inference.
- - If there is need to capture additional new data, it is important to know how the existing data was collected (e.g., hardware/sensor, environment condition) so that the new data can be collected under similar conditions.
- - When combining or joining multiple existing data sets:
- - Learn and/or model the bias for each data set.
- - Mitigate or undo the associated bias from each data set.
- - Find out the commonalities to all the data sets (e.g., through modeling) to achieve cross-dataset generalization.
- - When splitting a collected data set into training, validation, and testing datasets, make sure each of them is randomly selected by applying certain techniques (e.g., data shuffling with a random number generator). By doing so, it can reduce the potential bias introduced in this process.
-
-
-
-### Building trust among stakeholders
-
-For systems that interact with other systems or operate within a larger ecosystem, `process, management, and governance` standards can ensure compatibility or interoperability of data.
-This can be vital in situations where groups of stakeholders are making choice about whether to invest or interact with a specific ecosystem or platform (e.g. digital twins).
-Here, providing assurance (through reference to an accepted standard) can build confidence among the stakeholders (or possible stakeholders) within the ecosystem.
-Such an example extends beyond goals such as interoperability though.
-Concerns such as data quality, security and privacy, liability and accountability, can also impact the trustworthiness of a system.
-As such, communication through structured assurance cases that reference key standards can help build trust.
-
-#### Knowledge transfer and consensus formation
-
-Where standards exist at an early (and perhaps incomplete) stage of development, or perhaps do not exist at all (e.g. when dealing with novel data-driven technologies), assurance cases can serve as a useful reference for how different teams and sectors understand sufficiency and justifiability.
-Consider a situation where an assurance claim regarding a property of a system cannot be sufficiently evidenced.
-This does not necessarily mean it is false.
-Rather, it could indicate a gap where standards do not yet exist.
-In this sense, open assurance cases can support the formation of consensus and the development of best practices and community-based standards.
-
-For instance, several teams within a shared community of practice (e.g. explainability of AI systems for environmental science) may choose to share their assurance cases with each other through structured knowledge share events (e.g. workshops). In doing so, they could identify common claims that depend on the same forms of `evaluative` evidence (e.g. usability testing and related human factors research). Furthermore, they may be able to identify areas where their design choices will limit `interoperability` in the broader ecosystem, and on this basis revisit their system requirements.
-
-
-
-!!! abstract "Further Resources"
-
- For more information on standards, see the following resources:
-
- - The AI Standards Hub has a range of training materials included in their training database: [https://aistandardshub.org/training-search/](https://aistandardshub.org/training-search/)
- - The British Standards Institute (BSI) has a knowledge base with articles and news related to a wide array of standards: [https://knowledge.bsigroup.com/](https://knowledge.bsigroup.com/)
diff --git a/site/docs/module_tracker.csv b/site/docs/module_tracker.csv
deleted file mode 100644
index 286ce293..00000000
--- a/site/docs/module_tracker.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-๏ปฟTitle,Description,Type,Status,Link
-What is Trustworthy and Ethical Assurance? An Introduction,"A general introduction to trustworthy and ethical assurance as an ethical concept, rather than the methodology.",Introductory Resource,In Progress,https://github.com/alan-turing-institute/AssurancePlatform/blob/documentation/site/docs/guidance/index.md
-The Assurance EcosystemโA Brief Overview,"An overview of the assurance ecosystem, including key actors, responsibilites, and challenges.",Introductory Resource,Planning,
-An Introduction to Argument-Based Assurance,"A simple introduction to argument-based assurance, including its history and motivation.",Introductory Resource,Planning,
-Operationalising Ethical PrinciplesโPutting TEA into Practice,How to operationalise ethical principles,User Guidance,Planning,
-TEA and the Project Lifecycle,How to embed trustworthy and ethical assurance over the course of a project's lifecycle,User Guidance,Planning,
-The Role of Standards,An introduction to standards as they apply to trustworthy and ethical assurance,User Guidance,In Progress,
-Open Challenges in Assurance,"An overview of open challenges and research questions, inlcuding links to further resources",User Guidance,Planning,
diff --git a/site/mkdocs.yml b/site/mkdocs.yml
index d01dd7f3..f25b9d47 100644
--- a/site/mkdocs.yml
+++ b/site/mkdocs.yml
@@ -1,8 +1,8 @@
site_name: Trustworthy and Ethical Assurance Platform
site_url: https://alan-turing-institute.github.io/AssurancePlatform
site_description: >-
- Documentation to support the use of the Trustworthy and Ethical Assurance
- Methodology and Platform
+ Documentation to support the use of the Trustworthy and Ethical Assurance Methodology and Platform
+
repo_name: alan-turing-institute/AssurancePlatform
repo_url: https://github.com/alan-turing-institute/AssurancePlatform
@@ -20,7 +20,6 @@ theme:
static_templates:
- 404.html
- # Default values, taken from mkdocs_theme.yml
language: en
features:
- announce.dismiss
@@ -184,3 +183,12 @@ nav:
not_in_nav: |
_prerequisites.md
+ argument-based-assurance.md
+ case-builder.md
+ case-management.md
+ components.md
+ exporting.md
+ getting-started.md
+ index.md
+ sharing.md
+ what-is-tea.md
diff --git a/site/requirements.txt b/site/requirements.txt
index 8c419f39..899aaba2 100644
--- a/site/requirements.txt
+++ b/site/requirements.txt
@@ -1,7 +1,7 @@
CairoSVG>=2.5.2
mkdocs-glightbox>=0.2.0
-mkdocs-include-markdown-plugin>=6.0.4
-mkdocs-material>=9.1.14
+mkdocs-include-markdown-plugin>=6
+mkdocs-material>=9.5
mkdocs-rss-plugin>=1.8.0
mkdocs-table-reader-plugin>=2.0.1
# Requirements for additional plugins