question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

LTI/Canvas Integration

See original GitHub issue

I think I remember reading that this might be a plan at some point but I can’t immediately find the link again. It is something I need to do for my current project, and I plan to contribute some code for it anyway, just wondered whether any work had been done already or whether there were other plans.

From what I can see, we would need to:

  • Read the lis_outcome_service_url and lis_result_sourcedid from the initial LTI authentication
  • Get the grade as a float 0.0 - 1.0 and place in an XML document
  • Sign the request with OAUth 1.0
  • POST the XML back to the lis_result_sourcedid value

The Coursera document seems to describe it quite well https://building.coursera.org/app-platform/lti/

I have already made a bare bones version of a custom LTI authenticator which uses OAuthLib, so I guess I would need to link that so that it saves in the NBGrader database. A final point is that Canvas have extensions to LTI, so that would be a natural subclass of a simple LTI one. I imagine calling it with nbgrader post, but have no particular ties to that.

In my deployment, we’re not planning to manually grade any assignments, so I’m planning to run a cron job every minute to search for new submissions, and then collect/autograde/feedback and post them. If I ever get it working I’ll put the code up on GitHub 😃

I’m guessing this might be related to #436 ?

Issue Analytics

  • State:open
  • Created 7 years ago
  • Reactions:1
  • Comments:23 (10 by maintainers)

github_iconTop GitHub Comments

1reaction
huwfcommented, Mar 23, 2018

I ended up going to the first option, and yes, it is (a lot!) more expensive. We don’t have enough users to make it worthwhile adopting the second solution in the end. There are spawners which manage autoscaling for you, such as https://github.com/jupyterhub/kubespawner. I found Kubernetes too complicated to figure out properly, so my plan was to make use of a swarm and write my own simple autoscaler but I never quite had time.

For the Jupyterhub identities, I added a database table which mapped canvas ID to Jupyterhub ID. Because the Canvas IDs are too long for unix names, I called them user-1, … user-n

get_user and add_user deal with this (called after authentication has been confirmed) https://github.com/huwf/ltiauthenticator/blob/master/ltiauthenticator/lti_db.py#L141

0reactions
perllaghucommented, Mar 27, 2018

@huwf - at one point, we had 150 simultaneous users… and given our standard notebook Docker Image uses about 0.5GB Memory, real tin with 16GB Ram doesn’t last long!

Our hope [in the first instance] is to be able to support somewhere in the region of 300 simultaneous users (which is just 1% of the Universities undergraduate population) - our current problem is out cloud stack complains with more than 4 [notebook] worker nodes

Read more comments on GitHub >

github_iconTop Results From Across the Web

What are External Apps (LTI Tools)? - Canvas Community
LTI provides a framework through which an LMS (Canvas) can send some verifiable information about a user to a third party. For LTI...
Read more >
LTI Canvas | Modern Software Engineering Platform
The platform can integrate with CI/CD pipelines to enable DevOps model of working. LTI Canvas is built for IT personas to collaborate seamlessly...
Read more >
Canvas LMS: Learning Tools Interoperability (LTI)
Canvas supports LTI (Learning Tools Interoperability®), an IMS standard that makes it possible to integrate third-party or vendor tools with ...
Read more >
Using LTI integrations with Canvas - ThingLink
Log in to your ThingLink account, go to the Organization page, then select the 'Integrations' tab and scroll down to LTI 1.1. ·...
Read more >
API vs. LTI for Canvas Integration - Edlink
3 and LTI Advantage. Canvas allows users to launch into an LTI app from inside Canvas, itself. Typically, the app appears inside of...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found