Open edX Conference 2018
Juan Montoya
Felipe Montoya
CONTENT MANAGEMENT SYSTEM
LMS
Seamless UX
Data consistency - accuracy
High performance
Simple management
Code Maintainability - long term
Your choice of technology
Flexibility
Extending open edX to perform CMS functions?
Session Awareness
User Menu
Redirections
Enrollment Awareness
Access the list of courses
by availability
by organization
by subject
by language
by level
by program
by tags
by course instructor
by score
Sync Authentication
External Registration
External Enrollment
Access course updates, important dates
Access learner's enrollments, grades, certificates
Access the profile
instructor
user
other user
Access courseware components
Sharing cookies
Session Awareness
User Menu
Redirections
"SESSION_COOKIE_DOMAIN": ".yourdomain.com"
"SESSION_COOKIE_DOMAIN": "*"
From:
To:
Its 2018, encrypt already
{
"username": "FelipeMontoya",
"version": 1,
"enrollmentStatusHash": "ed68ba6c8fdf0dd84b230773f8c07c90",
"header_urls": {
"learner_profile": "https://openedx.yourdomain.com/u/FelipeMontoya",
"resume_block": "https://openedx.yourdomain.com/courses/course-v1:BerkeleyX+Data8.1x+1T2018/jump_to/block-v1:BerkeleyX+Data8.1x+1T2018+type@html+block@4a4936bfd5344d3cbf8efbaac66f6d3d",
"logout": "https://openedx.yourdomain.com/logout",
"account_settings": "https://openedx.yourdomain.com/account/settings"
}
}
"1|iY2JlMTA0MmZjZmM0YzM0|hCvYuvywId4E|ImRiY2JlMTANmYmZmMzBhNzBlODFhYzVmOTIzMTExMTYi:1fO51c:0ExrOk9MMlPlLGBjN381iJaQWHw"
/edx/app/nginx/sites-available/lms
location /tos$ {
return 301 https://www.yourdomain.com/tos;
}
lms/djangoapps/static_template_view/views.py
@ensure_csrf_cookie
@cache_if_anonymous()
def render(request, template):
"""
This view function renders the template sent without ...
"""
mktg_redirects = microsite.get_value('MKTG_REDIRECTS', {})
if mktg_redirects.get(template, False):
return redirect(mktg_redirects.get(template, '/'))
Enrollment Awareness
APIs
"ENABLE_MKTG_SITE": true,
"MKTG_URLS": {
"ROOT": "https://www.yourdomain.com/",
"ABOUT": "about",
"HONOR": "honor",
"HOW_IT_WORKS": "about",
"COURSES": "our-courses",
"PRIVACY": "https://somethingelse.entirely.com/privacy/",
"TOS": "tos",
"BLOG": "",
"CONTACT": "",
"DONATE": "",
"FAQ": "",
"PRESS": "",
"SCHOOLS": "",
"WHAT_IS_VERIFIED_CERT": ""
},
by
Search for edunext-openedx-integrator at the wp plugin registry
Session awareness
User Menu integration
Enrollment button logic
Use wordpress style shortcodes
/edx/app/nginx/sites-available/lms
add_header 'Access-Control-Allow-Origin' 'https://www.yourdomain.com';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'OPTIONS';
Access the list of courses
sudo su discovery -s /bin/bash
cd
source venvs/discovery/bin/activate
source discovery_env
cd discovery/
./manage.py refresh_course_metadata
Index keeping
Elasticsearch
Haystack
Oauth
DRF
Access to consolidated course and program metadata
The closest thing is a fork for now
Enrollment Administration API
User creation and management API
External Registration
External Enrollment
Sync Authentication
Access course updates, important dates
Access learner's enrollments, grades, certificates
Access the profile
instructor
user
other user
Access courseware components
Open edX Conference 2018
Juan Montoya
Felipe Montoya