Skip to content

Commit 17b313f

Browse files
docs: README and ARCHITECTURE diagram
1 parent cab574c commit 17b313f

2 files changed

Lines changed: 57 additions & 0 deletions

File tree

openedx_catalog/ARCHITECTURE.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Catalog App Architecture Diagram
2+
3+
Here's a visual overview of how this app relates to other apps.
4+
5+
(_Note: to see the diagram below, view this on GitHub or view in VS Code with [a Markdown-Mermaid extension](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid) enabled._)
6+
7+
```mermaid
8+
---
9+
config:
10+
theme: 'forest'
11+
---
12+
flowchart TB
13+
Catalog["**openedx_catalog** (CourseRun, CatalogCourse plus core metadata models, e.g. CourseSchedule. Other metadata models live in other apps but are 1:1 with CourseRun.)"]
14+
Content["**openedx_content**<br>The content of the course. (publishing, containers, components, media)"]
15+
Organizations["**edx-organizations** (Organization)"]
16+
Enrollments["**platform: enrollments** (CourseEnrollment, CourseEnrollmentAllowed)"]
17+
Modes["**platform: course_modes** (CourseMode)"]
18+
Catalog <-. "Direction of this relationship TBD." .-> Content
19+
Catalog -- References --> Organizations
20+
Enrollments -- References --> Modes
21+
Enrollments -- References --> Catalog
22+
23+
style Enrollments fill:#ccc
24+
style Modes fill:#ccc
25+
style Organizations fill:#ccc
26+
27+
Pathways["<a href='https://openedx.atlassian.net/wiki/spaces/OEPM/pages/5148147732/Brief+Modular+Content+Delivery+-+Platform+Strategy'>**openedx_pathways**</a> (Pathway, PathwaySchedule, PathwayEnrollment, PathwayCertificate, etc.)"]
28+
Pathways -- References --> Catalog
29+
30+
style Pathways fill:#c0ffee,stroke-dasharray: 5 5
31+
32+
FutureCatalog["Future discovery service - learner-oriented, pluggable, browse/search courses and programs"] -- References --> Catalog
33+
FutureCatalog <-- Plugin API --> Pathways
34+
style FutureCatalog fill:#ffc0ee,stroke-dasharray: 5 5
35+
```

openedx_catalog/README.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Learning Core: Catalog App
2+
==========================
3+
4+
Overview
5+
--------
6+
7+
The ``openedx_catalog`` Django apps provides core models to represent all courses in the Open edX platform. Higher-level apps can build on these models to implement features like enrollment, grading, scheduling, exams, and much more.
8+
9+
Motivation
10+
----------
11+
12+
The existing ``CourseOverview`` model in ``openedx-platform`` is derived from various places, but mostly from the metadata fields of the root ``Course`` object stored in modulestore (MongoDB) for each course. As we slowly transition toward storing course content fully in Learning Core (in ``openedx_content``), we want to move to storing all course data and metadata in these sort of MySQL models. We're creating this new ``CourseRun`` model in ``openedx_catalog`` to support these goals:
13+
14+
1. Provide a core model to represent each course, for foreign key purposes.
15+
2. To allow provisioning placeholder courses before any content even exists.
16+
3. To be much simpler and more performant than ``CourseOverview`` was (far fewer fields generally, fewer legacy fields, integer primary key).
17+
4. Perhaps to provide a transition mechanism, a pointer than can point either to modulestore content or learning core content, as we transition content storage.
18+
19+
Architecture
20+
------------
21+
22+
See `the architecture diagram <./ARCHITECTURE.md>`__. (Because we use RST for all Python READMEs, it cannot be embedded here directly.)

0 commit comments

Comments
 (0)