This is not intended to be an exhaustive list, just a summary with some comments, to help new devs find things. Starting in the root of the repository:
docs: Fairly new and therefore very incomplete; add to it!admindev
esp: The root of the django project.esp: The root of the python code. Every folder from here on down needs to have an__init__.py. Contains a directory for each django app we use, along with some other files and directories. There are a whole lot of these, but the most important are below. Each app contains a file or directory for models, views, and tests; most also contain a directory for migrations.accounting: The website’s accounting system (accounting_coreandaccounting_docsare old and deprecated).program: This app contains most of the site’s logic. For the most part it’s a fairly normal Django app, but it also contains all the program modules.models: The main models forProgram,ClassSubject,ClassSection; many of the other models used by programs live in other apps, such asresources.modules: This directory contains all the program modules. The python code for the individual modules is inhandlers/<name>module.py; most of the remainder of the directory won’t be relevant to you. See program_modules.rst for details on the program module system.
qsd: This app contains all of the code for the website’s system for admin-editable text (named QSD for historical reasons).users: This app contains important models likeESPUser,Permission,Record,ContactInfo, and so on.*_settings.py: Various files in which our django settings are kept.django_settings.pycontains settings used by all sites;local_settings.pyis generated by the setup script and contains site-specific settings.urls.py: Master URL routing table.
manage.py: Runs django commands like./manage.py shell_plus.public: Contains things that will be served statically. *media: Includes our javascript, CSS, images, etc. Served statically at/media/, so/esp/public/media/scripts/foo.jswould be served atdoma.in/media/scripts/foo.js.templates: Contains our django templates, in a directory structure roughly mirroring that of/esp/esp.useful_scripts: Contains various scripts intended to be run by devs, of varying usefulness, which may be site-specific, terribly-coded, completely broken, etc.