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 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
- 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 [email protected]
- Twitter https://twitter.com/GiveFoodCharity
- Facebook https://www.facebook.com/GiveFoodOrgUK
To set up for local development, run the following:
uv run manage.py runserver
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=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 SQLite in-memory database for speed and simplicity.