EFForg / call-congress

a simple server that connects calls between citizens and their congress person using the Twilio API
GNU Affero General Public License v3.0
34 stars 6 forks source link

Call Power

Connecting people to power through their phones.

The admin interface lets activists:

The server lets callers:

Campaign Configuration

1) Create a campaign with one of several types, to determine how callers are matched to targets.

2) Choose targets by segmenting on user location (determined by zipcode or lat/lon), and order by legislative chamber or random shuffle. For local and custom campaigns, campaigners can set a specific order by drag-and-drop.

3) Record audio prompts in the browser (Firefox/Chrome only), or edit with another program and upload as MP3 files. For dynamic prompts, you can also text-to-speech templates. Reuse versions between campaigns, or adjust your prompts as the campaign evolves.

4) Review the campaign setup, place a test call to yourself, and get the script to embed in your action platform.

Action Integration

For most uses, you can just place the <script> tag provided in the launch page into your action platform. This will add a post-submit callback to your action form to connect the caller, and optionally display the script in a lightbox.

For more complex integrations, Call Power provides javascript embeds and a full json API.

Installation Instructions

This application should be easy to host on Heroku, with Docker, or directly on any WSGI-compatible server. Requires Python, flask, a SQL database (we recommend Postgres, but Mysql should work), Redis or Memcache, and an SMTP server.

Read detailed instrustions at INSTALLATION.md

Political Data

Political data is downloaded as CSV files stored in this repository. These are read on startup and saved in a memory cache for fast local lookup.

To update these files with new data after elections, run cd call_server/political_data/data && make clean && make, and python manager.py loadpoliticaldata

Code License

See the license file for licensing information under the GNU AGPL. This license is applicable to the entire project, sans any 3rd party libraries that may be included.