For Developers

Assignments Overview

Assignments are coursework that is assigned to a group of students in a class. Assignments will always have a due date and some type of grading capability. They are always associated with exactly one class and they will always have a unique identifier within that class. Within a given class, assignments can be assigned to everyone, particular students, or to groups of students (called sections).

The relationship between a student and an Assignment is called a Submission. Currently, each student will have exactly 1 submission. In the future, we may choose to support group submissions, but this comes with its own set of challenges.

Please note, there is no specific entity for student grades. Grades are managed as a part of the Submission entity.

Assignment Aliases

Aliases are a way for developers to use their own identifiers for assignments. At the moment, only assignments support aliases.

For example, normally you would retrieve an assignment with the following URL:

https://ed.link/api/v2/graph/classes/60786a19-9713-49d1-a0d2-a2ba48c6d1eb/assignments/32a951a7-a2c0-4d12-b081-7e6a7d2c837e

With aliases you can use a custom identifier to retrieve the same assignment:

https://ed.link/api/v2/graph/classes/60786a19-9713-49d1-a0d2-a2ba48c6d1eb/assignments/edlink:101

Note that instead of using the Edlink UUID, you are able to access the assignment using the alias edlink:101.

Aliases must be in the format type:identifier where the type is a string and the identifier is a string. The type is used to distinguish between different types of aliases. For example, you might use the type edlink for assignments that you create from one source and atlas for assignments that come from another source.

An assignment can have multiple aliases. But the combination of the type and identifier must be unique. For example, you can't have two aliases with the same type and identifier, even if they are for different assignments.

This is how aliases appear when you retrieve an assignment:

{
    "$request": "d833925a-0d38-4bb9-9e0f-2a6f75530af1",
    "$data": {
        "id": "5654dafd-d1da-4f3f-adc2-3abd2e10b7e8",
        <...>
        "aliases": [
            {
                "identifier": "108",
                "type": "edlink"
            },
            {
                "identifier": "110",
                "type": "edlink"
            },
            {
                "identifier": "101",
                "type": "atlas"
            },
            {
                "identifier": "3",
                "type": "atlas"
            }
        ]
    }
}

Creating Aliases

There are 2 ways to create an assignment alias. When you are first creating the assignment, you can pass the alias in the request body in the id field.

POST https://ed.link/api/v2/graph/classes/:class\_id/assignments
{
    "id": "edlink:101",
    "title": "Grade 1 Numbers to 20 Workbook",
    "due_date": "2022-10-17T17:30:00.000Z",
    "description": "Test Assignment",
    "display_date": "",
    "grading_type": "points",
    "points_possible": 100
}

The other way is to create an alias after the assignment has been created by posting to the Create Alias endpoint.

Properties

PropertyTypeDescription
idstringThe UUID for the object.
created_dateDateWhen the object was created in the source.
updated_dateDateWhen the object was last updated in the source.
titlestringThe name of the assignment.
descriptionstringThe description of the assignment. This will be used for LMS systems that support special formatting.
description_plaintextstringThe description without special formatting. This will be used for LMS systems that do not support special formatting.
stateAssignmentStateThe state of the assignment.
attachmentsAttachment[]The attachments associated with the assignment.
assignee_modeAssigneeModeThe method by which the assignment's assignees are determined.
assignee_idsstring[]If assignee_mode is set to individuals, this should be a list of Person ids.
section_idsstring[]If assignee_mode is set to sections, this should be a list of Section ids.
due_dateDateThe time at which new submissions are late for the assignment.
display_dateDateThe time at which the assignment becomes visible.
start_dateDateThe time at which submissions begin to be accepted for the assignment.
end_dateDateThe time at which submissions are no longer accepted for the assignment.
points_possiblenumberThe number of points possible for the assignment. Only present if grading_type is points.
grading_typeGradingTypeThe grading type for the assignment.
grading_scaleGradingScaleIf grading_type is letter_grade, this indicates the allowed letter grades and the point value of each.
submission_typesSubmissionType[]The types of Submissions accepted by the assignment. If not specified, providers may not accept submissions.
max_attemptsnumberThe maximum number of attempts that a Submission for this assignment can have.
session_idstringThe ID of the Session that the assignment is associated with.
category_idstringThe ID of the Category that the assignment is associated with.
rubric_idstringThe ID of the Rubric that the assignment will use for grading

Supported Providers

ProviderSupport