Skip to content

CodeForPhilly/balancer-main

Repository files navigation

Balancer

Balancer is a website of digital tools designed to help prescribers choose the most suitable medications for patients with bipolar disorder, helping them shorten their journey to stability and well-being

Usage

You can view the current build of the website here: https://balancertestsite.com

Contributing

Join the Balancer community

Balancer is a Code for Philly project

Join the Code for Philly Slack and introduce yourself in the #balancer channel

The project kanban board is on GitHub here

Code for Philly Code of Conduct

The Code for Philly Code of Conduct is here

Setting up a development environment

Get the code using git by either forking or cloning CodeForPhilly/balancer-main

Tools used to run Balancer:

  1. OpenAI API: Ask for an API key and add it to config/env/env.dev
  2. Anthropic API: Ask for an API key and add it to config/env/env.dev

Tools used for development:

  1. Docker: Install Docker Desktop
  2. Postman: Ask to get invited to the Balancer Postman team balancer_dev
  3. npm: In the terminal run 1) 'cd frontend' 2) 'npm install' 3) 'cd ..'

Running Balancer for development

Running Balancer:

  • Start Docker Desktop and run docker compose up --build
  • The email and password are set in server/api/management/commands/createsu.py
  • Download a sample of papers to upload from https://balancertestsite.com

Running pgAdmin:

  • The email and password of pgAdmin are specified in balancer-main/docker-compose.yml
  • The first time you use pgAdmin after building the Docker containers you will need to register the server. The Host name/address, Username and Password are specified in balancer-main/docker-compose.yml

Local Kubernetes Deployment

Prereqs

  • Fill the configmap with the env vars
  • Install Devbox
  • Run the following script with admin privileges:
HOSTNAME="balancertestsite.com"
LOCAL_IP="127.0.0.1"

# Check if the correct line already exists
if grep -q "^$LOCAL_IP[[:space:]]\+$HOSTNAME" /etc/hosts; then
  echo "Entry for $HOSTNAME with IP $LOCAL_IP already exists in /etc/hosts"
else
  echo "Updating /etc/hosts for $HOSTNAME"
  sudo sed -i "/[[:space:]]$HOSTNAME/d" /etc/hosts
  echo "$LOCAL_IP      $HOSTNAME" | sudo tee -a /etc/hosts
fi

Steps to reproduce

Inside root dir of balancer

devbox shell
devbox create:cluster
devbox run deploy:balancer

The website should be available in https://balancertestsite.com:30219/

Architecture

The Balancer website is a Postgres, Django REST, and React project. The source code layout is:

Architecture Drawing

License

Balancer is licensed under the AGPL-3.0 license