This WeVoteServer repository contains a Python/Django-powered API endpoints server. We take in ballot data from Google Civic API, Ballotpedia, Vote Smart, MapLight, TheUnitedStates.io and the Voting Information Project. We then serve it up to voters, and let voters Support/Oppose and Like ballot items. We are also building tools to capture and share voter guide data.
You can see our current alpha version for recent national and some reigonal elections here: https://WeVote.US/
To get started as a We Vote developer, sign the Contributor License Agreement.
To install and develop the WeVote API server, follow the instructions below based on your preferred environment. We strongly recommend using Docker, it handles all of the installation automatically, and with the same versions of tools (Node, Postgres, etc) that are used in production.
-
Use Docker
-
Install directly on your Linux machine, or use WSL (Windows Subsystem for Linux) on Windows
-
Or use these Simplified Instructions for Mac leveraging the free (and powerful) PyCharm IDE and debugger
The website front end application is powered by the We Vote WebApp
We distribute the We Vote WebApp in an Apache Cordova wrapper, with some native features, to provide iOS and Android apps.
See the iOS We Vote 2018 Ballot, @WeVote in the iTunes app store for iPhones and iPads.
See the Android We Vote 2018 Ballot, @WeVote in the Google Play store for most Android phone and tablet devices.
Read about working with WeVoteServer on a daily basis
How to run the WeVoteServer tests
How to run the WeVoteServer Locust Load Tests
Maintaining clean code: Linting and Formatting
We meet weekly on Google hangouts, and on a team Slack. Please contact Dale.McGrew@WeVote.US for more information.