Sharebar?

Learning Tools Interoperability: Sample Code

Learning Tools Interoperability®: Sample Code

The LTI® specifications use standard web technology and is not complex to implement.  But the speed of implementation can often be imcreased by perusing or re-using existing code.  This page provides links to known sources of sample code which may be useful.  Note that not all of the code has been through the IMS certification tests, so caveat emptor.  The code samples have been separated by programming language.

PHP

Tool Provider Class Library for PHP
This is a complete class library developed for the ceLTIc project and used for building a number of open source LTI integrations. A sample Rating application is also available to illustrate its use. It supports LTI 1.x and the unofficial extensions. By Stephen Vickers.
TSUGI - A Framework for Building PHP-Based Learning Tools
The goal of the TSUGI project is to build a scalable multi-tenant "tool" hosting environment based on the emerging IMS standards. By Charles Severance.

Java

IMS Global - LTI Utilities
LTI Utilities are a set of utility classes to aid in the development of LTI v1.0 consumers and providers. They deal with much of the heavy lifting and make the process more opaque to the developer.
Tool Provider Class Library for Java
This is a complete class library developed for the ceLTIc project. A sample Rating application is also available to illustrate its use. It supports LTI 1.x and the unofficial extensions. By Stephen Vickers.
TSUGI - A Framework for Building Learning Tools (Java version)
The goal of the TSUGI project is to build a scalable multi-tenant "tool" hosting environment based on the emerging IMS standards. By Charles Severance.

Ruby on Rails

Reference implementation of both an LTI 2.0 Tool Consumer and a Tool Provider
A reference implementation of both an LTI 2.0 Tool Consumer and a Tool Provider. An implementation video is also available. By John Tibbetts, Vitalsource.
Ruby Gem
A Ruby library to help implement IMS LTI tool consumers and providers provided by Instructure.

.Net

LTI Tool Consumer
A .NET library for LTI applications. By Andy Miller.
LTI Tool Provider
A .NET library for LTI applications. By Andy Miller.

Node.js

Implementation for HITS
HITS LTI implementation in NodeJS by NSIP.

OAuth

LTI uses OAuth 1 to sign its messages and service requests.  OAuth libraries are available for most programming languages.  Check the above sample code for the ones they are using or visit the OAuth website for other references.