Skip to content

bushwickayudamutua/bam-automation

Repository files navigation

bam-automation

Hi! Welcome to bam-automation. This repository contains code for syncing data between Bushwick Ayuda Mutua's services and performing routine and/or automated tasks. It contains three components, each of which contains a README with more information. If you're interested in helping us out with our efforts, fill our our volunteer form and select the Tech and data support / Soporte técnico y de datos working group. A volunteer coordinator will get in touch with shortly thereafter!

Local Development Setup

You'll first need python3.9 installed. If you're on a Mac, you can do this with Homebrew.

brew install python@3.9

Next you'll need to setup a virtual environment and install the dependencies for each subproject:

python3.9 -m venv .venv # create a virtualenv
source .venv/bin/activate # activate it
pip install -r requirements-dev.txt # install the development requirements
pip install -e ./core # install the bam-core library
pip install -r ./app/requirements.txt # install the automation API requirements
pip install -r ./notebooks/requirements.txt # install the notebook requirements

Finally, configure your local environment by copying .env.sample to .env and fill in the missing values. You'll need to ask someone in our Signal chat for access to these secrets:

cp .env.sample .env

Subfolders

This folder contains a fastapi application designed to provide additional functionality to Airtable automations via HTTP requests.

This folder contains a python module with reusable utilities for connecting and interacting with our tech services (Airtable, Dialpad, Twilio, Mailjet, Digital Ocean, etc). This module is automatically included in every function's virtual environment.

This folder contains code for Digital Ocean Functions which can be run via:

These deploy automatically via github actions.

This folder contains jupyter notebooks for repeatable analysis of our airtable data.