From 36fd856b40d0e564d5d93169690f7ed520c17e98 Mon Sep 17 00:00:00 2001 From: David Joy Date: Tue, 24 Sep 2024 15:35:53 -0400 Subject: [PATCH] docs: clarifying why site and module projects exist --- .../oep-0065/decisions/0003-frontend-projects.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/oeps/architectural-decisions/oep-0065/decisions/0003-frontend-projects.rst b/oeps/architectural-decisions/oep-0065/decisions/0003-frontend-projects.rst index 13bdf554d..9c6b648d2 100644 --- a/oeps/architectural-decisions/oep-0065/decisions/0003-frontend-projects.rst +++ b/oeps/architectural-decisions/oep-0065/decisions/0003-frontend-projects.rst @@ -43,6 +43,8 @@ There are two primary types of projects: *site projects* and *module projects*. Site Projects ============= +Site projects serve the shell, contain the bulk of the frontend's configuration, and are a place to check in customizations and extensions to the shell and modules built as part of the project. + A site project uses a :term:`Site Config` file to define the configuration for a :term:`Site`, which is an independently deployed portion of the Open edX frontend which renders a header, footer, and loads one or more Modules. A site project consists of: @@ -67,6 +69,8 @@ To describe the steps in the above image: Module Projects =============== +Module projects are a place to put customizations and extensions to federated modules, and contain configuration specific to those modules. + .. image:: ../module-project-architecture.png A Module Project uses a ``config`` data structure in ``package.json`` to define what modules it should bundle for :term:`module federation`. This mirrors the ``config`` data structure in the :term:`module libraries ` (``frontend-app-*`` repositories). It also uses a :term:`Module Config` file for additional configuration of those modules beyond that which will be supplied by the site's :term:`Site Config`, i.e., module-specific configuration.