This repo goes hand-in-hand with the following blog post
cd api
# setup virtualenv
virtualenv -p python3.10 -v venv
pip install -r requirements.txt
# serve
uvicorn main:app --reload
cd ui
# install dependencies
npm run install
# serve
npm run watch
npm run watch --prefix ui & uvicorn api/main:app --reload && fg