hypothesis / lms

LTI app for integrating with learning management systems
BSD 2-Clause "Simplified" License
46 stars 14 forks source link

Can we add a link to course site nav menus? #574

Open klemay opened 5 years ago

klemay commented 5 years ago

Determine whether we can add a link to the course navigation menu for the following LMSes:

We already know this is possible in Canvas.

If this is possible for all LMSes, providing access to activity views via a link in the nav menu could mitigate many of the complexities of developing/linking to activity views.

Next step would be to determine what we'd need to do with our app to get a link in the nav menu.

klemay commented 5 years ago

For Sakai, it looks like this would be possible if Hypothesis were added as an External Tool. See:

For Moodle, I can't find documentation for adding an app to the course nav menu— in fact, it seems not all Moodle sites even have a navigation menu.

Blackboard does appear to allow adding items to course navigation (See: Managing Placements): https://help.blackboard.com/Learn/Administrator/SaaS/Integrations/Learning_Tools_Interoperability

D2L does allow tools to be added to the course nav menu as well: https://community.brightspace.com/s/article/How-to-Add-an-LTI-Link-to-a-NavBar

Next step will be to try and add FlipGrid, an LTI app that has a placement in Canvas' course nav menu, to these other LMSes to see if I can get it to appear in the nav menu.

seanh commented 5 years ago

I stumbled across this in the LTI spec: Non-Context LTI Launches:

While the typical use of a Basic LTI link is in a context, it is also possible to use Basic LTI to launch a link that is not part of a context. One example of a non-context launch might be a menu item that is part of the portal or part of a global menu in the TC [the "Tool Consumer", i.e. the LMS -- seanh].

Supporting non-context launches is optional for both the TP [the "Tool Provider", i.e. us -- seanh] and TC.

If a Basic LTI launch is coming from a non-context placement, the context information is simply omitted and the launch will contain the user and organization information but no context information.

"Context" in LTI spec-speak means "course", so a "non-context link" sounds like a "non-course link", so a link that's not within the context of a given assignment or a given course. That's not quite what we want -- we want a link that is within the context of a specific course, just not a specific assignment.

The above quote is the entirety of what the spec has to say about this. There's nothing at all about how our app would go about creating a "non-context placement" menu item. So we'd have to rely on docs or examples from each individual LMS, like the ones above, for how it's actually done.

Basically the spec kinda obliquely hints at this functionality but isn't actually much use!

seanh commented 5 years ago

Hmm, actually I'm not sure that a "non-context link" is what we want here at all. We want an in-context link: the context is the course that the link to our app is placed within. But we just want that link to be placed "top-level" within the course, rather than to be specific to one assignment. I think the spec basically has no help for us here so we're relying on those other docs

seanh commented 5 years ago

Some more docs for how adding a "course navigation" link works in Canvas, from the LTI app developer's point of view: https://canvas.instructure.com/doc/api/file.tools_xml.html

That page also explains how to make Canvas launch our app from the course menu in a new tab.

It also explains how we can add a link to our app to the "user navigation" which sounds like it might be a good place for a link to a "my activity" view.