User Tools

Site Tools



Sign up

You can sign up for the mailinglist here.

The archived schedules have moved to the CS Education Research wiki.

edX APIs

New! Apparently there are reasonably RESTful APIs to various runtime things.

Some reference code that uses them: API client library. Look at the integration tests in blob/master/edx_api/

These are separate from (eg) the XBlock runtime environment.

Learning Tools Operability (LTI)

Use LTI to embed an iframe to your app with identity assertion (in other words, ask edX to embed your tool and pass you some user info). Links below are in the order I would have liked to be presented to understand what this is and how to use it.

LTI Tips and Tricks
  • iframe issues include the following:
    • Modern browsers' default settings prevent third party sites in iframes from setting and loading cookies, which will have the effect of blocking sessions for many apps. There are two ways of getting around this, and both are variations of the same theme:
      • Use a framework that allows you to easily pass session IDs via a get query. Django, for instance, makes things difficult. This has numerous security implications (if someone bookmarks or sends the URL, for instance, session hijacking becomes a real issue) so be sure that you want to do this before proceeding.
      • Your app could be a single page that loads data through ajax requests. You could then pass a session identifier by POST to the server, and so long as you are using HTTPS, you are providing more security for the session.
    • Expect to run your app over HTTPS. Many LTI consumers run their sites over HTTPS and users will get security errors from browsers if the protocol in the host site and the iframe do not match.
  • Beware that edX's implementation is basic/imperfect at best and incomplete/flawed at worst. There is evidence (see "Tips" section at bottom) that edX's LTI implementation is only properly behaved on published, live course sites. You may observe (as I am) that courses in studio do not have correct LTI implementations and fail the oauth checks. Testing on a local copy of the edX server is perhaps the best option in this case.
  • To test your app, use the following:


This section deals with features and functionality which can only be added by manipulating the xml backbone of a course. The workflow for making changes would be something like: export course from studio → edit xml of exported course → reimport into studio

Well Documented Features requiring XML manipulation

These features and their creation and formatting are discussed in studio documentation

  • Polls
  • Randomized Module
  • Conditional Module
More Functionality

The following functionality is not covered in official documentation, use at your own risk edX's documentation of course xml structure

  • Removing a discussion tab
    1. Export Your Course
    2. Open the file: ROOT_DIR/policies/COURSE_RUN/policy.json (where ROOT_DIR and COURSE_RUN correspond to your course)
    3. Remove the entry for the discussion tab
edx-dev.txt · Last modified: 2018/02/28 17:02 (external edit)