Representable is creating maps of communities to fight for equal and impartial representation. The core web app is written in Django with Javascript/HTML/CSS frontend and Postgres/PostGIS backend.
- There is a mapping & visualization app that allows orgs and users to draw their communities of interests. This is written in React & built using
createreactappandMaterial UI. - In development is a dashboard component that allows orgs to define their turfs to do census outreach. This is build in Vue, Flask, and Airflow.
Check out our Docs site for a guide to installing Representable and contributing to various parts of the site. If you find any issues, we would love to know! Please open an issue request for any incomplete documentation.
cp .env.example .env # update the variables
docker compose up -d
docker compose exec app /bin/bash
# run once to: setup the database, superuser, and test the app
export DJANGO_SETTINGS_MODULE=representable.settings.dev
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py loaddata states.json
python manage.py collectstatic
python manage.py test
# run the django server
python manage.py runserver 0:8000 --settings=representable.settings.devIn another terminal run
docker compose exec app-plus /bin/bash
uv run python app.pyIf you need a live vue instance
docker compose exec app-plus /bin/bash
cd vue-project
bun run dev --port 8888 --host 0.0.0.0- If you update .env, you must run
source .envto refresh it in your container.
For bug reports and general feature requests, please open a Github issue. We welcome all feedback and suggestions!
We take security very seriously at Representable.org. Please send an email to team@representable.org with any security issues and we'll open a private issue request with your concerns. We aim to respond to all security issues in a timely manner.
Our core team of engineers is currently 6 members strong, though we've been supported by many others along the way. See more about our team and how we work at representable.org/about
- Somya Arora
- Kyle Barnes
- Chukwuagoziem Uzoegwu
- Jason Yuan
- Anna Eaton
- Izzy Zaller
Representable began as a final project for Princeton University course Advanced Programming Techniques, taught by Brian Kernighan. The original project team is:
- Theodor Marcu
- Lauren Johnston
- Preeti Iyer
- Somya Arora
- Kyle Barnes
Representable is under the GPL-3.0 License.