Thanks to visit codestin.com
Credit goes to github.com

Skip to content

givefood/givefood

Repository files navigation

Give Food

The source of https://www.givefood.org.uk - built using Django, hosted at Mythic Beasts in Shoreditch, London using Coolify and fronted by Cloudflare.

Structure

App Name Description URL Docs
gfadmin Admin tool https://www.givefood.org.uk/admin/ 📖
gfapi1 Deprecated first version of our API https://www.givefood.org.uk/api/1/ 📖
gfapi2 Current API https://www.givefood.org.uk/api/ 📖
gfapi3 Future API https://www.givefood.org.uk/api/3/ 📖
gfauth Google OAuth authentication https://www.givefood.org.uk/auth/ 📖
gfdash Data dashboards https://www.givefood.org.uk/dashboard/ 📖
gfdumps Data dumps management https://www.givefood.org.uk/dumps/ 📖
gfoffline Offline tasks N/A 📖
gfwfbn What food banks need tool https://www.givefood.org.uk/needs/ 📖
gfwrite Allow users to contact their MPs https://www.givefood.org.uk/write/ 📖
givefood Public app https://www.givefood.org.uk 📖

Useful links

About Us

We are a UK charity that uses data to highlight local and structural food insecurity then provides tools to help alleviate it.

We maintain the largest publicly available database of food banks and what they are requesting to have donated in the UK. We currently cover over 8500 locations.

Our data is used by governments, councils, universities, supermarkets, political parties, the NHS, broadcasters, food manufacturers, hundreds of national & local news websites, and apps.

Give Food is a registered charity in England & Wales 1188192

Data

Contact us

Local development

To set up for local development, run the following:

uv run manage.py runserver

Running tests

The project includes a basic test suite using pytest. To run the tests:

# Run all tests
pytest

# Run with verbose output
pytest -v

# Run tests for a specific app
pytest givefood/tests/
pytest gfapi2/tests.py

# Run with coverage report
pytest --cov=givefood --cov=gfapi2

The test suite includes:

  • Unit tests for utility functions (text processing, geographic calculations, etc.)
  • Integration tests for API endpoints
  • Basic view tests for the main application

Tests use SQLite in-memory database for speed and simplicity.