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.