Skip to content

Instantly share code, notes, and snippets.

@harveyslash
Created July 5, 2018 09:44
Show Gist options
  • Save harveyslash/ce1ff1f678ec2521a35f8862a0b14ced to your computer and use it in GitHub Desktop.
Save harveyslash/ce1ff1f678ec2521a35f8862a0b14ced to your computer and use it in GitHub Desktop.
Welcome file
<h1 id="beatest----open-edx-integration">Beatest &lt;–&gt; Open Edx Integration</h1>
<p>Open Edx provides key features that can be used as a starting point for Beatest MOOC E-Learning.</p>
<h3 id="key-features-to-be-reused-with-almost-no-modification">Key Features to be reused with (almost) no modification:</h3>
<h4 id="cms-content-management-system">1. CMS (Content Management System)</h4>
<p>Instructors can be manually registered using django admin panel. Then they have access to create courses. These courses will be published by beatest administrators.</p>
<h4 id="core-lms-learning-management-system">2. Core LMS (Learning Management System)</h4>
<p>Core aspects include Assignments, Videos, Discussions, Quizzes. They will be used out of the box as is.</p>
<h3 id="important-features-to-be-modified-with-significant-changes-1">Important Features to be modified with Significant changes [1]:</h3>
<h4 id="login-system">1. Login System</h4>
<p>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:</p>
<ol>
<li>User presses sign-in on edx</li>
<li>A redirect to Parent website occurs and user signs in there</li>
<li>Redirect back to edx occurs with a signed payload containing user details</li>
<li>Edx checks the signed payload, creates a user if not already exists, or updates information.</li>
</ol>
<p>Steps 1, 2 and 4 will require core changes in Edx platform. The django authentication module may be helpful.</p>
<h4 id="user-access-management">2. User Access Management</h4>
<p>To allow seamless integration between purchases on parent website and Edx, A rest API is required to allow for the following features:</p>
<ul>
<li>Add user to a particular Group (E.g. add a user to ‘trial user’ group)</li>
<li>Remove user from a group</li>
</ul>
<p>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.</p>
<p>This API should allow flexibility for additional functionality that may be implemented later on.</p>
<h3 id="ui-level-changes-2">UI level Changes [2]</h3>
<p>Links to several pages will need to be changed. Button functionality will require modification.<br>
Some button functionality changes include:</p>
<ul>
<li>Redirect user to Parent website payment gateway when user clicks on purchase course in Edx</li>
<li>Sign In button performs SSO instead of Edx Sign in</li>
</ul>
<p>Several other branding changes will be required. They will be updated as they are discovered.</p>
<h2 id="project-plan">Project Plan</h2>
<p>Features marked under [1] are the minimum requirements to calculate feasibility of Edx integration.</p>
<p>Features marked under [2] should be implemented only after all features under [1] are completed.</p>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment