The source of https://www.givefood.org.uk - built using Django, hosted at Mythic Beasts in Shoreditch, London using Coolify and fronted by Cloudflare.
| 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 | 📖 |
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 3000 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
- We have an API at https://www.givefood.org.uk/api/
- CSV dumps of our data are here https://www.givefood.org.uk/dumps/
- Our data is versioned in git here https://github.com/givefood/data
- Email mail@givefood.org.uk
To set up for local development, run the following:
# Install dependencies
uv sync
# Run the development server
uv run manage.py runserverThe project includes a basic test suite using pytest. To run the tests:
# Run all tests
uv run pytest
# Run with verbose output
uv run pytest -v
# Run tests for a specific app
uv run pytest givefood/tests/
uv run pytest gfapi2/tests.py
# Run with coverage report
uv run pytest --cov=givefood --cov=gfapi2The 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 PostgreSQL, matching the production database configuration.
