This is a mind dump of things that you might want to do in building a learning tool in Drupal that uses LTI Tool Provider. The suggestions are based on the half dozen tools built at CEIT.

Theming

LTI tools are commonly launched within an iframe in an LMS. Because of this the tool should contain a minimum of menus/navigation/regions so that it appears to be part of the LMS system rather than obviously a separate site.

The tools built at CEIT have a simple header/content structure The header has a background colour to match similar elements in the host LMS and the Tool name and logo (if one exists).

The theme used is a simple subtheme of Bartik.

Navigation UI

As with the theme, navigation within the tool and between the tool and LMS should be as simple as possible.

CEIT tools have a single menu (user menu) in the header containing links to the tool landing page and to the LTI return link. The LMS LTI integration may not give you good titles for these menu items, so in most cases we customise them using LTI custom launch parameters.

Because authentication is taken care of by the LTI integration you can disable the Login/Logout menu items. We also remove access to user profile pages using the Edit own user account permission module and disable user registration in config/people/accounts.

We also use Disable breadcrumbs module to remove breadcrumbs. A couple of other modules that help clean up navigation and simplify pages are Tab name tweaker and Exclude node title.

Structure

We have a number of general structures for tools that impact their design.

Tools that provide a generic service outside of any course context.

This is the case where the tool doesn't need to differentiate between courses or just is leveraging LTI for authentication. An example might be a study diary tool.

Tools that provide a service within a course context.

In this case the tool behaves the same regardless of the location of the resource link in the course that launches it. An example might be a team formation tool.

Tools that provide multiple instances of a service within a course context.

This is a common tool type where each time you create a resource link to the tool in a course you are effectively creating a matching resource or service in the tool. An example might be an assessment tool.