Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

LTI Gradebook Services: Difference between revisions

From MoodleDocs
No edit summary
mNo edit summary
Line 3: Line 3:
|state = Planning
|state = Planning
|tracker = TBA
|tracker = TBA
|discussion =TBA
|discussion =[https://moodle.org/mod/forum/discuss.php?d=354378 Support for Gradebook services]
|assignee = Stephen Vickers
|assignee = Stephen Vickers
}}
}}

Revision as of 14:51, 22 June 2017

LTI Gradebook Services
Project state Planning
Tracker issue TBA
Discussion Support for Gradebook services
Assignee Stephen Vickers


Project goal

The goal of this project is to add support for the LTI Gradebook Services as per the specification available from the IMS website. LTI Gradebook Services allow Tool Providers more control over gradebook columns and scores than currently possible with Basic Outcome. LTI Gradebook Services are in candidate final draft at the time of writing.

Given the importance of the gradebook feature within Moodle and the sensitive nature of gradebook data the guiding principles of this project will be to minimize the impact on the existing gradebook and to ensure best practices with regard to security.

This work is being undertaken with the support of Cengage.


Introduction

LTI Gradebook Services defines three services: LineItem, Result and Score. At a high level, these services provide CRUD operations on gradebook columns (line items) and cells (scores). The specification also defines an API that allows for management of collections of line items within a given context (e.g., a course section), collections of scores for a given line item, as well as for managing individual line items, results and scores (the distinction between results and scores is that scores represent the value as received from the tool provider and are considered immutable by the tool consumer).

The services are secured in the same way as other LTI services, using the same consumer key and shared secret as used for LTI launch messages. All web service payloads use JSON-LD.

LineItem service

Allows line items (gradebook columns) in the Moodle gradebook to be managed by an LTI Tool Provider. Only line items created by (or for) the Tool Provider can be read/updated/deleted by it. Each line item will be owned by the Tool Provider and associated with a specific context (e.g., course section). The specification does not impose any limits on the number of line items which can be created by a Tool Provider. Of course, a Moodle administrator does not have to make these services available to a Tool Provider. The LineItem service specification defines an API for CRUD operations on a single line item as well as collections of line items.

Score service

Allows scores (gradebook cells) in the Moodle gradebook to be managed by an LTI Tool Provider. In addition to the literal score the score service also allows for the passing of a comment about the grade. The Score service is conceptually similar to the Result service. However, as mentioned above, Score resources should be considered immutable by the tool consumer. The Score service specification defines an API for CRUD operations on a single score as well as the retrieval of the collection of scores for a given item. There is a only a single current Score for a given (user, lineItem) tuple.

Result service The Result service specification defines an API for the retrieval of a single result. Contrarily to the Score, the Result is to represent the actual value shown in the gradebook, which might vary from the score provided by the tool provider.

Variables

The various services are complemented by variables to inject the resource end points in messages; LineItems.url allows access to the collections of line items for the current context and tool provider. It is the main entry point in the gradebook service.

In the case there is a direct association between a resource link and a gradebook column, the Score.url, Scores.url, LineItems.url can also be passed as parameters. The Score.url allows CRUD operation on the score, acting as a direct replacement for the (lis_outcome_service_url, lis_result_sourcedid) tuple from Basic Outcome, while LineItem.url allows access to the associated LineItem and Scores.url is the container for all the scores of the associated line item.