Skip to content

bellingcat/CouncilSearcher

Council Searcher

Bellingcat logo: Discover BellingcatDiscord logo: Join our communityRight arrow icon: Try out the tool

This project makes local council meetings searchable.

It provides backend infrastructure (fastAPI and SQLite database) for capturing meeting information including transcripts (which may be extracted from video caption files or synthesized separately from meeting audio).

It also provides a vuetify frontend for searching meetings transcripts.

Currently, the project supports one provider, Public I, a company that provides AV services to many councils in the UK and Ireland.

Development

Contributions of all types are welcomed, but we particularly encourage people to add support for different providers.

To add support for a new provider, subclass api/providers/provider.py and implement the required methods.

API

Docker

The API can be developed and deployed with docker:

docker compose -f docker-compose.base.yaml -f docker-compose.dev.yaml build
docker compose -f docker-compose.base.yaml -f docker-compose.dev.yaml up

In production:

docker compose -f docker-compose.base.yaml -f docker-compose.prod.yaml build
docker compose -f docker-compose.base.yaml -f docker-compose.prod.yaml up -D

Make sure to add an admin_password.txt and admin_user.txt to the secrets directory in the project root.

The api domain can be set with TRAEFIK_DOMAIN in the .env file. For deployment, TRAEFIK_SSLEMAIL should also be set for automatic SSL provisioning via letsencrypt.

fastAPI

The API uses fastAPI and can be initialised with

fastapi dev api/API.py

Use fastapi run api/API.py for deployment.

The --port flag can be used to specify the desired port.

Frontend

The vuetify and Vue.js frontend can be run in development mode from the council-searcher directory with:

npm run dev

Other standard vite scripts are available:

npm run build

npm run preview

And linting can be carried out with:

npm run lint

Separate development and production environment files, council-searcher/.env.development and council-searcher/.env.production, can be used to set the desired API endpoint to be used by the front-end.

About

Find verbatim quotes from council meetings in the UK and Ireland using this free open source research tool by Bellingcat.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors