The OLX Structure of a Sample Course#
This topic describes the structure of a sample course known as the olx_example_course, a course with the structure of an Open edX Studio export.
Note
The structure and content of the olx_example_course can change without corresponding updates being made to this reference guide.
olx_example_course and Directory File Structures#
All files and subdirectories that comprise olx_example_course are stored in the
olx_example_course course directory in the training-courses GitHub repository.
TODO
Fix this image
Top-level Directories#
The olx_example_course course directory in the training-courses GitHub
repository contains the course.xml file as well as various XBlock and
Platform directories.
The course.xml file contains the XML for the courseware. In the
olx_example_course, this simply contains the course key,<course url_name="2025" org="OpenedX" course="OLXex"/>; this is how the Studio export works. It is possible to define course sections, subsections, and units (chapters,sequentials, andverticals) within thecourse.xmlfile, however, if imported into Studio and then exported, the format of theolx_example_coursewill be applied.Course sections are defined in the
chapterdirectory, subsections in thesequentialdirectory, and units in theverticaldirectory.HTML units are referenced in the
htmldirectory, where you’ll find two files: an XML file that calls an associated HTML file, which defines the HTML content.Videos are defined in the
videodirectory.Problems are referenced in other directories, such as
problemandlti.
For more information, see the olx_example_course course.xml file.
Example of a Referenced XBlock#
Warning
This part of the guide was written in 2013. As of the Teak release, it is untested and not guaranteed to work when imported into Open edX Studio, either currently or in future releases.
You can reference an XBlock from the course.xml file.
For example, in course.xml, the first vertical in the courseware contains a
single HTML XBlock with the display name Week overview, which references
Week_overview in the url_name attribute:
<chapter display_name="Pedagogical Foundations: Constructive Learning"
url_name="Week_2_Technology_enabled_constructive_learning">
<sequential format="Learning Sequence" graded="true"
display_name="Overview (go here first)"
url_name="Overview_go_here_first">
<vertical display_name="Week's overview" url_name="Week_s_overview">
<html display_name="Week overview" filename="Week_overview"
url_name="Week_overview"/>
There is a file called Week_overview.html in the html directory that
contains the content for that HTML component. For detailed information, see the
Week_overview.html file in GitHub.
For a learner, that HTML component appears as the first unit of the course.
Example of an Inline XBlock#
Warning
This part of the guide was written in 2013. As of the Teak release, it is untested and not guaranteed to work when imported into Open edX Studio, either currently or in future releases.
You can include XBlock content within the course.xml file. You can do
this for ease of reading and maintenance when you do not need to reuse the
content.
For example, in course.xml, the sequential with the display name In-class
exercise contains embedded HTML content.
<sequential display_name="In-class exercise" url_name="in_class">
<html display_name="Overview" url_name="overview">
<p>In the on-line portion,
we examined a way we used technology to allow efficient
implementation of one theory from learning science – constructive
learning – in Open edX. In designing the Open edX platform, we applied many
such techniques. We took aspects of mastery learning, project-
based learning, gamification and others. Other platforms have
sophisticated techniques for targeting specific student
misconceptions, enabling a range of student social experiences,
assessing teacher performance, and hundreds of other research-
based techniques. We would like to give you a chance to practice
with designing software to enable good pedagogy.
</p>
. . .
</html>
For a student, that HTML component appears as a unit of the course in the same way as a referenced HTML component does.
Platform Directories#
The olx_example_course course contains information in the course subdirectories as described below.
about Directory#
The about directory contains the following files.
overview.html, which contains the content for the course overview page that students see in the Learning Management System (LMS).short_description.html, which contains the content for the course in the course list.
For more information, see Create Course Overview in OLX.
info Directory#
The info directory contains the following files.
handouts.html, which contains the content for the Course Handouts page in the course.updates.html, which contains the course updates students see when opening a course.
policies Directory#
The policies directory contains the following files.
assets.json, which defines all files used in the course, such as images.A course directory named
2025(the “course run”), which contains:grading_policy.json, which defines how student work is graded in the course.policy.json, which defines various settings in the course.
For more information, see Create OLX Course Policies.
static Directory#
The static directory contains the files used in the course, such as images
or PDFs.
For more information, see Create Course Assets in OLX.
vertical Directory#
The vertical directory contains the XML for the 14 units used in the
course.
You can embed units (verticals) in the course.xml file, however this method
is not guaranteed to work on Open edX Studio imports. It is recommended
to store XML for units in separate files in the vertical directory.
The units are referenced in associated XML files for course subsections (in the
sequential/ directory). For example, in
sequential/subsection_1_midterm_exam.xml, you’ll see:
<sequential default_time_limit_minutes="0" display_name="Subsection 1: Midterm Exam" due="null" format="Midterm Exam" graded="true" hide_after_due="false" show_correctness="always" start="2025-06-01T00:00:00Z">
<vertical url_name="unit_1_input_problems"/>
<vertical url_name="unit_2_poll"/>
<vertical url_name="unit_3_sga"/>
<vertical url_name="unit_4_formula_response_midterm"/>
</sequential>
And in vertical/unit_1_input_problems.xml:
<vertical display_name="Unit 1: Input Problems">
<problem url_name="numerical_input"/>
<problem url_name="text_input"/>
</vertical>
See also
What is Open Learning XML? (concept)
Course Components (XBlocks) (reference)
Exercises, Tools, and Problem Types (reference)
Example of an OLX Course (reference)
Getting Started with OLX (quickstart)
What is the OLX Course Structure? (reference)
The OLX Courseware Structure (reference)
Working with the .tar.gz File (reference)
Maintenance chart
Review Date |
Reviewer |
Release |
Test situation |
2025-11-06 |
sarina |
Ulmo |
Pass |
2025-03-19 |
Peter Pinch Sarina Canelake |
Sumac |