Skip to content
An application for sharing local tech industry compensation. It is configured for London, Ontario, but can easily be modified for any region. Built with Flask and SQLAlchemy.
Python HTML JavaScript CSS Dockerfile Mako Shell
Branch: master
Clone or download

Open Pay

A web application for sharing local tech industry compensation. It aims to freely provide compensation data to students, employees, and employers in the local tech industry so they can make informed career and hiring decisions.

Key Project Features

  • Capture data beyond only salary: employee benefits, specific tools used in a job, years with current employer, total number of employers during career, etc...
  • Anonymous and verified submissions: using any email, or using a "verified" email based on whitelisted domains. Specific emails addresses will never be shared.
  • Segmented data by year - allow multiple submissions from the same sources every year in order to keep the data up to date.
  • (TODO) A side tool for valuing non-salary benefits using NPV calculations.


Option 1: Running With Docker

You can use Docker and docker-compose to create a container which will grab all of the dependencies for you. First, create a .env file in your root directory. Set where the DB container will store its data using the HOST_SQL_STORAGE_PATH= variable.

docker-compose build
docker-compose up

You'll need to run the database migrations and seed the database if you haven't:

docker exec -it open_tech_pay_app /bin/bash
flask db init
flask db upgrade
python utils/seeding/

Option 2: Using pipenv for local development without Docker

TODO Readme

Unit tests

They're in the /tests folder. Create a config file in the tests directory. You should set up a seperate DB just for tests.

python -m unittest discover
You can’t perform that action at this time.