Giter Site home page Giter Site logo

progressive_voting's People

Contributors

mechanicalgirl avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

progressive_voting's Issues

data needed for each House district and Senate seat

  1. primary and election dates if available

  2. incumbent:
    name
    party affiliation
    url (if Democrat)
    Twitter handle (if Democrat)
    Facebook url (if Democrat)

  3. any challenging candidates (if Democrat):
    name
    party affiliation
    url
    Twitter handle
    Facebook url

    (can probably get incoming candidate data from fec.gov?)

Ideas for tracking races

Mentioning these because they’d both require changes to the data model, I think:

  1. Races will go through a variety of states: incumbent democrat, incumbent Republican with no declared challenger, incumbent Republican with declared challenger, open seat because of retiring Congressperson, et cetera. We should distinguish these things somehow. Races without declared challengers could link to the Swing Left fundraising page for that seat.
  2. It’s probably worth highlighting the congressional districts that are viewed as being competitive. I wouldn’t want to discourage anyone from donating to (e.g.) the Democrat running for Chaffetz’s seat, but I also think that a visitor would want to know which districts are considered most winnable. One of the major forecasters (can’t remember who) divides seats into Safe GOP, Likely GOP, Leaning GOP, Toss-up, Leaning Dem, Likely Dem, and Safe Dem. Those middle three categories are the ones viewed as the best opportunities for flipping the House in 2018.

template - front page

If you go to http://www.progressivevoting.com/preview/, you can see a rough list of what we have to work with so far - a list of House districts and Senate seats per state that link to a page with incumbent/candidate information.

What we need is a way to organize this information neatly on the page (I want to do a map overlay eventually, but we don't have the geo data, so for now forget that). We can do additional grouping/ordering in the view if needed to accommodate a page layout.

I'd also like to include a search box for searching by candidate name (functionality we'll implement in another ticket).

data - collect incumbent info for House districts

I went through last night and added data for all the incumbent Senators - I used a wikipedia page and it only took about two hours to do it all manually, but if there is a way to automate this for House incumbents, all the better.

The data we need:

  • state and district
  • name
  • party
  • term end (If you look at the values I added for Senators, you'll see that these are not the true ends of terms, but really just the date of the next election when this incument is being challenged ... Nov. 2018, Nov. 2020, Nov. 2022, etc.)

friendly name for district

If I've got a district object I'd like a user-friendly way to format it — e.g., instead of "TX-21-H" something like “Texas 21st Congressional District.”

collecting receipts

This is one essential task that requires no coding, and that everyone can participate in.

One of the things I want to track for Republican incumbents (and even some Dems - I'm looking at you, Joe Manchin) is a list of reasons to vote them out. When election time comes, I want voters to be reminded of the slimeball things they've done.

That includes records on key votes (like the AHCA), but also scandals and lawsuits they're involved in, or things like this stupid letter that 22 Senators sent to Trump asking him to leave the Paris accord:

https://twitter.com/indivisibleteam/status/870445848953540608?refsrc=email&s=11

All these items will be added to the "reasons to vote them out" text field in each Senator's/Rep's record. That, unfortunately, is going to be a manual process, but I don't mind doing it - it's a "sitting in front of the TV one evening" task. (Idea: maybe we could add some kind of scoring process based on the items each MoC has in their record.)

So I'm going to keep this issue open as a running list of items to add to records. I just learned yesterday that you can put checkboxes in GitHub issues, so my suggestion is to add each new link or item as a checkbox, then check it off when it's been added to the database:

template - district page

If you click through to one of the district pages (from http://www.progressivevoting.com/preview/), e.g.: http://www.progressivevoting.com/district/CO-Senate/, you can see the kind of data we have to work with so far.

Every House district/Senate seat page will list 1 incumbent (2 for the Senate seats), plus upcoming voting dates, and any active Dem candidates (e.g. http://www.progressivevoting.com/district/CA-49/).

For Republican incumbents, we'll have names but no other contact info, plus a list of the "reasons to vote them out" (terrible voting record, lawsuits and scandals, etc). For Dem incumbents there'll be "reasons to keep them" (strong on gun control, strong on LGBT rights and reproductive rights, etc.). Dem incumbents and candidates will also have contact information including Twitter handles, Facebook pages, where to donate to their campaigns, etc.

design - overall look

page colors, global layout, css, logo (based on the ProgressiveGiving.com logo)

elements to include on every page:

  • header and footer
  • links to the Twitter and FB pages
  • link to email signup (tbd)

Twitter bot

to tweet available messages from the Messages queue

scraper - incoming Dem candidates

Current filing data can be found here (no idea when this is going to move out of 'beta', but I imagine the URL will change eventually):

https://beta.fec.gov/data/candidates/?cycle=2018&office=S&party=DEM
https://beta.fec.gov/data/candidates/?cycle=2018&office=H&party=DEM

It would be awesome if they provided a method for ordering by filing date, so that we could just get the latest entries, but I don't see a way to do that. :/

The only data we need from this is:

  • candidate name
  • state
  • district (00 for Senate)

Candidate ID might also be nice to have; definitely don't need filing dates. (Contact info, like candidate web site urls, Twitter, Facebook, etc. will have to be entered manually for every candidate - I don't see a way around that.)

I'd start with dumping it into a csv first, but after some review and testing, this data could probably be written directly to the Candidates table. Ultimately I'd want to run it no more than once a day on a cron.

build an API

This is for farther down the road, but once we have a good data set and a good process for maintaining it, we should build an API so that other people can access it.

scraper - district geo data

Ultimately I'd like to do some map vis on the home page, but we have zero geo data so far. So how this works is ultimately going to be up to whoever collects the data. Do we want to collect lat/lngs? Does district data exist out there already in some form? Is there a 3rd-party zip code search that we could incorporate somehow? Obviously, this is all still tbd, just an idea for the future.

scraper - election dates

For each House district/Senate seat, we need the dates of:

  • the next upcoming primary
  • early voting start/end dates if available
  • the next official election date

I don't think that there is a single source for all of this info - it might mean collecting the data manually from each state's election web site. Would be awesome if there was a single federal source for all these dates. I'll keep looking.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.