Developer Overview

This section contains information that should come in handy if you are developing for (or on top of) ETD Drop. You should already be familiar with the information in Technical Overview.

Overall, ETD Drop is an ordinary single-application Django project. The primary difference between it and most Django apps is the total lack of database models; All application data is represented as files on the local filesystem, in order to make ETD Drop’s scope as limited as possible and to facilitate easy atomic integration into larger workflows.

This project makes heavy use of Python docstrings. These are the best places to look for details about a particular module, class, method, or function.

Project Source Code Layout

The general structure of this repository is as follows:

etd-drop/                    # Top level git repository
    docs/                    ## Documentation (uses Sphinx Docs)
    etd_drop/                ## Django project files
        settings.py          ### Project settings
        urls.py              ### Project-level URL routing
        wsgi.py              ### Project WSGI application
    etd_drop_app             ## Main Django application code
        admin.py             ### Django Admin UI configuration
        forms.py             ### Form processing code
        static/              ### Static resources (CSS and images)
        templates/           ### HTML templates
        templatetags/        ### Custom template tag modules
            form_helpers.py  #### Template tags for forms
        tests.py             ### Unit tests
        urls.py              ### Application-level URL routing
        validators.py        ### Form validator functions
        vendor/              ### Modules included from elsewhere
            bag_describe.py  #### Description Service integration
        views.py             ### View generation code
    LICENSE                  ## Source code license
    manage.py                ## Project management script
    nginx/                   ## Sample configuration for nginx
    README.md                ## Project README
    requirements.txt         ## pip package dependencies