wevote / WeVoteServer

We Vote's API application server written in Django/Python. Election data pulled from many sources, used by https://github.com/wevote/WebApp and https://github.com/wevote/WeVoteCordova and https://github.com/wevote/Campaigns.
https://api.wevoteusa.org
MIT License
51 stars 480 forks source link

Build Status Coverage Status Ruff

README for WeVoteServer

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.

Installing Python/Django API Server

To install and develop the WeVote API server, follow the instructions below based on your preferred environment.

  1. Use these Simplified Instructions for Mac leveraging the free (and powerful) PyCharm IDE and debugger (recommended!)

  2. Install directly on your Linux machine (or use WSL on Windows)

  3. Use Docker

Installing We Vote Mobile Web Application (React/Flux)

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.

We also have a ReactNative for iOS and Android that is currently on hold.

After Installation: Working with WeVoteServer Day-to-Day

Read about working with WeVoteServer on a daily basis

Need to upgrade Python?

3a. Install Python/Django on Mac

3b. Install Python/Django on Linux

If you need to test donations and have not updated your openssl and pyopenssl during install and setup, you will need to update your local.

See Instructions for Scheduled Tasks

How to run the WeVoteServer tests

How to run the WeVoteServer Locust Load Tests

Join Us

We meet weekly on Google hangouts, and on a team Slack. Please contact Dale.McGrew@WeVote.US for more information.