lowFAT is a Django application used to support the administration of the Software Sustainability Institute Fellowship Programme.

This guide explains how to set up a local development environment for contributing to the project.

The public Developer Guide focuses on contributor workflows, project structure, development setup, and general maintenance concepts.

Additional operational and deployment documentation is maintained separately for authorised maintainers. This includes production infrastructure, deployment procedures, backup and recovery operations, server configuration, and related operational guidance.

Dependencies

lowFAT currently uses:

  • Python 3.10+
  • Django 4.2
  • SQLite3

We use venv for Python environments. Other environment managers, such as Conda, may also work but are not documented here.

The repository also includes Docker-related files and configuration for deployment and infrastructure workflows, but the standard contributor workflow currently uses a local Python virtual environment.

Initialisation

Only run the following commands after cloning the repository or when pulling new commits that require dependency or database updates.

Clone the repository:

git clone https://github.com/softwaresaved/lowfat.git
cd lowfat

Create and activate a Python virtual environment:

python3 -m venv .venv
source .venv/bin/activate

Install dependencies:

pip3 install wheel
pip3 install -r requirements.txt

Create a local environment file:

cp .env_template .env

Then edit .env:

  • add a Django secret key
  • ensure DEBUG=True is enabled for local development

Download and configure frontend assets:

bash bootstrap.sh

Apply database migrations and collect static files:

bash entrypoint.sh

Load the example development data:

python3 manage.py loaddata lowfat/fixtures/*.json

Create a superuser account:

python3 manage.py createsuperuser

Start the development server:

python3 manage.py runserver

Run

Once the server starts you should see output similar to:

Performing system checks...

System check identified no issues (0 silenced).
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

You should now be able to access the local development server at:

http://127.0.0.1:8000/

bootstrap.sh downloads and configures frontend assets such as Bootstrap, Font Awesome, Selectize, and related static files.

entrypoint.sh applies database migrations and collects static files before starting the application.