Version 1

Overview

The API is enabled by default, and publicly accessible (no key needed). This can be modified in the _config.yml.

The request format is a simple GET for each, and the response format is unpaginated JSON, meaning everything can be retrieved with one request. For consistency and usability, the data is wrapped in a generic format:

Example Request GET ALL
{
    "data": [...],
    "last_updated": "...",
    "status": "OK"
}

The type of data accessible is split between administrative and user data - this is tagged per endpoint. There is some crossover if the user has extended these definitions. An index is available here.

Projects

Data on projects for the current academic year.

{
    "data": [
        {
            "id": 1,
            "title": "Test Project",
            "description": "This is a description of the test project.",
            "deadline": "XX-XX-XXXX",
            "targets": [
                "C1",
                "C2",
                "C3"
            ]
        }
    ],
    "last_updated": "...",
    "status": "OK"
}

Competencies

Data on competencies in the skill-based framework that may be used in vignettes.

{
    "data": [
        {
            "id": "C1",
            "title": "Example Competency 1",
            "description": "Test description",
            "categories": [
                "Example Category 1"
            ]
        }
    ],
    "last_updated": "...",
    "status": "OK"
}

Portfolio

All user-submitted project data.

{
    "data": [
    {
        "project_title": "Test Project",
        "project_id": "/XXXX/XX/XX/test-project",
        "project_code": "1",
        "date_published": "...",
        "project_urls": {
            "summary": "/XXXX/XX/XX/test-project-one-summary.html",
            "vignette": "/XXXX/XX/XX/test-project-one-vignette.html"
        },
        "items": [
            {..}
        ]
    }
    "last_updated": "...",
    "status": "OK"
}

Summaries

All project summaries.

{
    "data": [
        {
            "id": "/XXXX/XX/XX/test-project-two/summary",
            "title": "Test Project/summary",
            "content": "...",
            "url": "/XXXX/XX/XX/test-project-summary.html",
            "tags": [...],
            "date": "...",
            "project_code": 1,
            "length": "X Months",
            "notebook_file": "example.ipynb",
            "external_resources": [
                {
                    "url": "...",
                    "title": "..."
                }
            ]
        }
    ],
    "last_updated": "...",
    "status": "OK"
}

Vignettes

All project vignettes (and their computed metadata).

{
    "data": [
        {
            "id": "/XXXX/XX/XX/test-project/vignette",
            "title": "Test Project/vignette",
            "content": "...",
            "project_code": 1,
            "url": "/XXXX/XX/XX/test-project-vignette.html",
            "tags": [...],
            "date": "...",
            "vignettes": [
                {
                    "competencies": [
                        {
                            "id": "C1",
                            "count": 1,
                            "linked": true
                        }
                    ]
                }
            ],
            "targets": [
                "C1"
            ]
        }
    ],
    "last_updated": "...",
    "status": "OK"
}

Progression

Final vignettes marked against academic project targets.

{
    "data": [
        {
            "project_rows": [
                {
                    "projectId": 1,
                    "projectTitle": "Test Project One",
                    "deadline": "01-08-2018",
                    "submitted": false,
                    "competencies": [
                        {
                            "competencyId": "C1",
                            "target": true,
                            "included": false
                        }
                    ],
                    "allTargetsHit": false
                }
            ],
            "categories": {
                "Example Category 1": [
                    {
                        "id": "C1",
                        "title": "Example Competency 1",
                        "description": "Test description",
                        "categories": [
                            "Example Category 1"
                        ]
                    }
                ]
            },
            "num_competencies": 6
        }
    ],
    "last_updated": "...",
    "status": "OK"
}