This page provides an overview of the edx-platform repository. Many other architecture pages cover individual features inside the edx-platform repository.
Disclaimer: The following diagram and spreadsheet came from a hackathon project that made a quick attempt at bringing some order to the edx-platform repository codebase. Some follow-up work was done to attempt to make the diagram and spreadsheet more comprehensible and potentially useful. However, the naming and organization presented here is not an agreed upon commitment of the future organization of the repository. The Taming the Monolith effort will be used to make more final recommendations around how the repo will actually be organized.
Some notes about the following diagram and spreadsheet:
- The names and organization of the diagram are imperfect, but is meant to be more approachable than the codebase itself.
- The team ownership (represented by colors) does not always make sense from the names. The coloring could be used as a guide to understand who to talk to, but should not be used to understand the organization of the codebase.
- Each box should have one or more rows in the spreadsheet. The column titled "Component" should have text that matches the box. You could use this as a map from code, to spreadsheet, to diagram, or from diagram to spreadsheet to code. Note that the a term like "Discussions" may appear in a variety of locations in the code (rows in the spreadsheet).
- There is no guarantee that the spreadsheet and diagram are accurate or up to date. They came from a very rough process. Feel free to help if you see something to fix. This work is temporary until the Taming the Monolith efforts are able to achieve additional milestones.