Skip to content

Instantly share code, notes, and snippets.

@harveyslash
Created July 5, 2018 13:07
Show Gist options
  • Save harveyslash/85cbfbd314562ab17d862d856bb3765e to your computer and use it in GitHub Desktop.
Save harveyslash/85cbfbd314562ab17d862d856bb3765e to your computer and use it in GitHub Desktop.
Welcome file

Beatest <--> Open Edx Integration

Open Edx provides key features that can be used as a starting point for Beatest MOOC E-Learning.

Key Features to be reused with (almost) no modification:

1. CMS (Content Management System)

Instructors can be manually registered using django admin panel. Then they have access to create courses. These courses will be published by beatest administrators.

2. Core LMS (Learning Management System)

Core aspects include Assignments, Videos, Discussions, Quizzes. They will be used out of the box as is.

Important Features to be modified with Significant changes [1]:

1. Login System

The current login system will be completely redesigned to work with SSO(Single Sign on). A tentative workflow of SSO may involve the following steps:

  1. User presses sign-in on edx
  2. A redirect to Parent website occurs and user signs in there
  3. Redirect back to edx occurs with a signed payload containing user details
  4. Edx checks the signed payload, creates a user if not already exists, or updates information.

For details of SSO implemented on another platform, go to http://docs.beatest.in/api-v0.1/Discourse/

Steps 1, 2 and 4 will require core changes in Edx platform. The django authentication module may be helpful.

2. User Access Management

To allow seamless integration between purchases on parent website and Edx, A rest API is required to allow for the following features:

  • Add user to a particular Group (E.g. add a user to 'trial user' group)
  • Remove user from a group

When a payment is made on the parent website, it will use this rest api to inform Edx about that purchase. Then Edx can allow access for the respective course.

This API should allow flexibility for additional functionality that may be implemented later on.

UI level Changes [2]

Links to several pages will need to be changed. Button functionality will require modification. Some button functionality changes include:

  • Redirect user to Parent website payment gateway when user clicks on purchase course in Edx
  • Sign In button performs SSO instead of Edx Sign in

Several other branding changes will be required. They will be updated as they are discovered.

Project Plan

Features marked under [1] are the minimum requirements to calculate feasibility of Edx integration.

Features marked under [2] should be implemented only after all features under [1] are completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment