-
Notifications
You must be signed in to change notification settings - Fork 4
Home
LTI app for integrating Canvas with Google Drive files
-
Open Source (GPL v3)
-
Following the LTI specification (http://www.imsglobal.org/activity/learning-tools-interoperability)
-
Ruby app, probably in Sinatra or Rails
-
Key Features:
- [educator] link/embed gdrive files into course content
- [student] send gdrive files as part of assignment
-
configuration
-
/config.xml
=> [GET] return the cartridge XML config
-
-
manage consumer key/secret
-
/credentials/new
=> [GET] shows a form button to generate the key/secret- option: Subdomain restriction (e.g. only allow Google logins from aps.edu)
- option: Course nav folder - which Drive folder to load by default when first navigating to the app (OBS: that change per user, or not?)
-
/credentials/
=> [POST] create the key/secret and show a result page with both
-
-
Launch URL => [POST]
/lti/course-navigation
-
Extensions:
- assignment_selection => [POST]
/lti/assignment-selection
(type: ContentItemSelectionRequest) - course_navigation => [POST]
/lti/course-navigation
(same as launch url) - editor_button => [POST]
/lti/editor-selection
(type: ContentItemSelectionRequest)- icon url:
/assets/gdrive-icon
- modal frame 600x700
- icon url:
- homework_submission => [POST]
/lti/homework-selection
(type: ContentItemSelectionRequest) - link_selection => [POST]
/lti/content-selection
(type: ContentItemSelectionRequest)- modal frame 600x700
- assignment_selection => [POST]
-
Embed iframe => [GET]
/lti/content-view/<id?>
all estimates here (in parenthesis) are rough guesses, so we can have an overall picture.
-
read canvas docs and understand lti specs (8h) -
draft solution and estimate (4h) -
have a working local canvas instance (6h) -
configuration XML (2h) -
load lti app on canvas (2h) -
have a simple initial lti service for MVP (2h) -
have a root endpoint (1h) -
setup repo and bootstrap app (config linters, hooks, test suite, CI, etc) (4h) -
manage consumer key/secret (6h) -
auhtorize LTI requests (6h) -
handle launch url (2h) -
oauth with google (6h) -
render navigation frame (12h) -
editor button (6h) -
link file (4h) -
embed file (8h) - handle assignments (8h)
-
tests (12h) -
search (6h) -
documentation (6h)
-
LTI guidelines: https://www.eduappcenter.com/docs/basics/building_an_lti_app
-
Canvas API and development:
-
current Google integration: https://community.canvaslms.com/docs/DOC-8732-canvas-release-google-apps-lti#jive_content_id_Google_Drive_Web_Service
-
config samples: https://canvas.instructure.com/doc/api/file.tools_xml.html
-
https://canvas.instructure.com/doc/api/file.content_item.html
-
https://canvas.instructure.com/doc/api/file.homework_submission_tools.html