Skip to content

Commit

Permalink
docs: Redirect dev guide to docs.openedx.org
Browse files Browse the repository at this point in the history
  • Loading branch information
sarina committed Oct 27, 2023
1 parent 5b70a89 commit 5017b87
Show file tree
Hide file tree
Showing 32 changed files with 82 additions and 4,287 deletions.
392 changes: 2 additions & 390 deletions en_us/developers/source/analytics.rst

Large diffs are not rendered by default.

121 changes: 2 additions & 119 deletions en_us/developers/source/architecture.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,122 +2,5 @@
Open edX Architecture
#####################

The Open edX project is a web-based platform for creating, delivering, and
analyzing online courses. It is the software that powers edx.org and many other
online education sites.

This page explains the architecture of the platform at a high level, without
getting into too many details.

********
Overview
********

There are a handful of major components in the Open edX project. Where
possible, these communicate using stable, documented APIs.

The centerpiece of the Open edX architecture is `edx-platform`_, which contains
the learning management and course authoring applications (LMS and Studio,
respectively).

This service is supported by a collection of other autonomous web services
called independently deployed applications (IDAs). Over time, we plan to
break out more of the existing edx-platform functions into new IDAs and MFEs. This
strategy will help manage the complexity of the edx-platform code base to make
it as easy as possible for developers to approach and contribute to the
project.

.. image:: ../../shared/images/edx-architecture.png
:width: 700
:alt: A diagram of the components and technologies that make up an edX site.

Almost all of the server-side code in the Open edX project is in `Python`_,
with `Django`_ as the web application framework.

**************
Key Components
**************

================================
Learning Management System (LMS)
================================


======
Studio
======

Studio is the course authoring environment. Course teams use it to create and
update courses. Studio writes its courses to the same Mongo database that the
LMS uses.

===========
Discussions
===========

Course discussions are managed by an IDA called comments (also called forums).
comments is one of the few non-Python components, written in `Ruby`_ using the
`Sinatra`_ framework. The LMS uses an API provided by the comments service to
integrate discussions into the learners’ course experience.

The comments service includes a notifier process that sends learners
notifications about updates in topics of interest.

===========
Mobile Apps
===========

The Open edX project includes a mobile application, available for iOS and
Android, that allows learners to watch course videos and more. Open edX is actively
enhancing the mobile app.

=========
Analytics
=========


===============
Background Work
===============

A number of tasks are large enough that they are performed by separate
background workers, rather than in the web applications themselves. This work
is queued and distributed using `Celery`_ and `Redis`_. Examples of queued
work include:

* Grading entire courses
* Sending bulk emails (with Amazon SES)
* Generating answer distribution reports
* Producing end-of-course certificates


======
Search
======

The Open edX project uses `Elasticsearch`_ for searching in multiple contexts,
including course search and the comments service.

================
Other Components
================

In addition to the components detailed above, the Open edX project also has
services for other capabilities, such as one that manages e-commerce functions
like order work flows and coupons.

.. _edx-platform: https://github.com/openedx/edx-platform
.. _Python: https://www.python.org/
.. _Django: https://www.djangoproject.com/
.. _MongoDB: http://www.mongodb.org/
.. _Mako: http://www.makotemplates.org/
.. _CoffeeScript: http://coffeescript.org/
.. _Backbone.js: http://backbonejs.org/
.. _Sass: http://sass-lang.com/
.. _Bourbon framework: http://bourbon.io/
.. _edx.org: http://edx.org/
.. _Ruby: https://www.ruby-lang.org/en/
.. _Sinatra: http://www.sinatrarb.com/
.. _Celery: http://www.celeryproject.org/
.. _Redis: https://redis.io/
.. _Elasticsearch: https://www.elastic.co/
.. This is a placeholder for redirects to the new release notes site.
See https://docs.openedx.org/en/latest/developers/references/developer_guide/index.html
4 changes: 4 additions & 0 deletions en_us/developers/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@
set_audience(OPENEDX, DEVELOPERS)

exclude_patterns = ['i18n.rst', 'i18n_translators_guide.rst']

redirects = {
"*": "https://docs.openedx.org/en/latest/developers/references/developer_guide/$source.html",
}
28 changes: 2 additions & 26 deletions en_us/developers/source/conventions/django.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,5 @@
Django Good Practices
*********************

.. contents::
:local:
:depth: 2

=======
Imports
=======

Always import from the root of the project::

from lms.djangoapps.hologram.models import 3DExam # GOOD
from .models import 3DExam # GOOD
from hologram.models import 3DExam # BAD!

The second form (relative import) only works correctly if the importing module is itself imported correctly. As long as there are no instances of the third form, everything should work. Don't forget that there are other places that mention import paths::

url(r'^api/3d/', include('lms.djangoapps.hologram.api_urls')), # GOOD
url(r'^api/3d/', include('hologram.api_urls')), # BAD!

@patch('lms.djangoapps.hologram.models.Key', new=MockKey) # GOOD
@patch('hologram.models.Key', new=MockKey) # BAD!

INSTALLED_APPS = [
'lms.djangoapps.hologram', # GOOD
'hologram', # BAD!
]
.. This is a placeholder for redirects to the new release notes site.
See https://docs.openedx.org/en/latest/developers/references/developer_guide/index.html
3 changes: 3 additions & 0 deletions en_us/developers/source/conventions/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
Writing Good Code
##################

.. This is a placeholder for redirects to the new release notes site.
See https://docs.openedx.org/en/latest/developers/references/developer_guide/index.html
.. toctree::
:maxdepth: 2

Expand Down
91 changes: 2 additions & 89 deletions en_us/developers/source/extending_platform/extending.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,92 +5,5 @@
Options for Extending the edX Platform
##########################################

There are several options for extending the Open edX Platform to provide useful
and innovative educational content in your courses.

This section of the developers' documentation lists and explains the different ways to extend the platform, starting with the following table.

.. |br| raw:: html

<br />

.. list-table::
:widths: 10 10 10 10 10 10
:header-rows: 1

* -
- Custom |br|
JavaScript |br|
Applications
- LTI
- External |br|
Graders
- XBlocks
- Platform |br|
Customization
* - Development Cost
- Low
- Low
- Medium
- Medium
- High
* - Language
- JavaScript
- Any
- Any
- Python
- Python
* - Development Environment Needed
- No
- No
- Yes
- Yes
- Yes
* - Self-hosting Needed
- No
- Yes
- Yes
- No
- No
* - Need edX Involvement
- No
- No
- Yes
- Yes
- Yes
* - Clean UI Integration
- Yes
- No (see LTI)
- Yes
- Yes
- Yes
* - Mobile enabled
- Possibly
- Possibly
- Yes
- Yes
- Yes
* - Server Side Grading
- Possibly (See JavaScript)
- Yes
- Yes
- Yes
- Yes
* - Usage Data
- No (See JavaScript)
- No
- Limited
- Yes
- Yes
* - Provision in Studio
- No
- No
- No
- Yes
- No
* - Privacy Loss Compared to Hosting Open edX
- No
- Possibly
- Possibly
- No
- No
.. This is a placeholder for redirects to the new release notes site.
See https://docs.openedx.org/en/latest/developers/references/developer_guide/index.html
3 changes: 3 additions & 0 deletions en_us/developers/source/extending_platform/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
Extending the edX Platform
###########################

.. This is a placeholder for redirects to the new release notes site.
See https://docs.openedx.org/en/latest/developers/references/developer_guide/index.html
.. toctree::
:maxdepth: 2

Expand Down

0 comments on commit 5017b87

Please sign in to comment.