1 of 9

XBlock Tech Details

Ned Batchelder

edX

2 of 9

A course

  • XBlocks all the way down
  • Like <div>’s in HTML

3 of 9

XBlock runtime

  • Container for XBlocks
  • Provides service abstractions (incl. data)

Runtime

Services

Data

4 of 9

Open edX LMS

  • XBlock runtime
  • Provides:
    • User registration
    • Progress tracking
    • Grading
  • Data storage
    • Course in Mongo
    • Student data in MySQL
    • Abstracted away by XBlocks

5 of 9

LMS: much more stuff...

Runtime

Services

Data

Grading Queue

ORA

Forums

Progress

Registration

Profiles

Analytics

Instructor Dash

Reporting

Translation

Commerce

Wiki

Certificates

Theming

Cohorting

6 of 9

Open edX Studio

  • Also an XBlock runtime
  • Courses are still XBlocks
  • Mongo database shared with LMS

7 of 9

What is an XBlock?

  • A Python package
    • runs on the server
  • A class providing:
    • Data fields
    • Views for presentation
      • produces HTML + CSS
    • Handlers for user input
  • A web app, one div at a time
    • Uses existing assets and skills

8 of 9

Sounds like LTI?

  • XBlock is in-process
    • LTI: hosted somewhere else
  • XBlock written in Python
    • LTI: choose your language
  • XBlock has tight integration
    • LTI: very loose coupling
  • XBlock is for Open edX
    • LTI: widely adopted standard

9 of 9

XBlocks

  • Don’t need to be contributed to edX
  • Designed to be installed separately