Backend Layout and Approach#

OEP-49 defines the common conventions used for Django apps written for this project.

New apps, services, and libraries should be created using edx-cookiecutters, which will fill in a lot of the boilerplate pieces for you (e.g. license, translations, testing dependencies).

There are other OEPs that define accepted best practices, including things like data modeling conventions and caching. Some of these best practices are encoded into the edx-django-utils package.

Many repositories and individual apps will contain Architecture Decision Records (ADRs) explaining the reasoning behind various decisions that were made there. It’s a good idea to at least skim over the relevant ADRs in a repo before starting major work there.