Repository overview

This section gives a high-level overview of the Blast repository. It is designed to help new developers navigate the code.

run

The run/ directory contains the scripts to start or test the Blast application either locally or on GitHub actions.

nginx

The run/ directory contains the nginx config file which controls how the application is served.

docs

The docs/ directory contains all the code and text used to make the documentation (which you are reading right now). If you are making a documentation addition of change only, you will only edit code is this directory.

docker

The docker/ directory contains the Docker Compose files used to start all the services Blast uses (e.g., database, web app, web server). It contains Docker Compose files for running and testing Blast.

env

The env/ directory contains all the .env files which have all the Blast settings which we don’t want to make visible in source control (e.g., database login details).

data

The data/ directory contains all the data Blast needs to operate. When the application is running this is the default location where all data is stored (e.g., database files and cutouts images). In source control, there is critical data (transmission curves) and some example data (example cutout images) used to populate offline local versions of Blast during development.

.github

The .github/ directory contains the files and templates used for feature request and bug reports. It also contains workflows for continuous integration testing.

app

The app/ directory contains all the Blast Django app source code. app/Dockerfile tells Docker how to build the Blast container. app/requirements.txt contains all the Blast package dependencies. We provide a more detailed breakdown below of the sub directories below.

entrypoints

The app/entrypoints directory contains the entrypoint scripts used to start the Blast application and related services. These scripts are used by the Docker Compose files. This directory also contains utility scripts to clean data directories when restarting Blast.

app

The app/app/ directory contains the Django level application settings.

host

The app/host/ directory contains all the Blast source code.

fixtures

The app/host/fixtures/ directory contains all the data that is loaded into Blast upon start up.

templates

The app/host/templates/ directory contains all the html temples used to render the Blast web pages.

tests

The app/host/tests/ directory contains all code used to test Blast.

migrations

The app/host/migrations/ directory contains all the Django database migrations which are applied upon startup of Blast.