Giter VIP home page Giter VIP logo

demand-progress's Introduction

demand-progress

A functioning democracy requires an engaged citizenry.

Our stakeholder, Demand Progress is focused on Internet Freedom, Open Government, and Financial Reform. It works on a bipartisan basis to make information about Congress available to the public through the Congressional Data Coalition. In order for civil society to hold government accountable they must keep track of shifting legislative schedules and content.

It is difficult to follow when Congress has scheduled a committee/subcommittee hearing/meeting without a paid subscription to a news service that gathers this info.

The Senate and House release meeting notices online in structured data formats, but there’s no well-designed publicly-available central place to see all the notices from the different committees or subcommittees. (The closest attempt is run by GovTrack, and it is good but is missing key features).

The Demand Progress team will build a user-friendly web based weekly agenda (calendar) for congressional hearings and markups. Users will be able to view the week with Monday at the top of the page, with items organized chronologically in a list, broken out by day of the week and hour. Each item will contain sufficient information about the proceeding, including who is holding it (committee and or subcommittee), the subject matter, a link to the committee website, the date and time, and where it can be watched online. With one click, users will be able to add these events to their own calendar, either singly or a set of items at a time. In addition, users will be able to visually identify changed calendar items updated in the last 24 hour. If time allows we will have a couple other stretch goals requested by our stakeholder including a tool for converting PDF's of pre-introduction legislation to plain text and/or a tool for parsing organizational sign-on lists for letters of support.

Team Leads: David Bock and Joel Cahalan

Local setup

Repo pulldown and clicky setup

Install dependencies

  • Install ruby 2.3.1: $ rbenv install 2.3.1 or $ rvm install 2.3.1
  • Install bundler gem: $ gem install bundler
  • Install ruby dependencies: $ bundle install
  • Install javascript dependencies: $ yarn install

Rig up your environment

  • Create your database user in postgres: $ createuser -s -r demand-progress
  • Create your database and tables: $ rails db:setup
  • Set your propublica API key: $ export PROPUBLICA_API_KEY=YOUR_API_KEY_VALUE
  • Load the committees data: $ rake committees:senate:load && rake committees:house:load

Fire it up!

  • Start the server: rails server

demand-progress's People

Contributors

afrodevgirl avatar colinxfleming avatar compostbrain avatar crawfoal avatar csexton avatar danielschuman avatar jaydorsey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

demand-progress's Issues

create a transformation layer in ruby to transform database data into UI consumable data

The first (and maybe only, tbd) example is:

The database is storing the events like this:

events = [
  {
    id: 4,
    topic: "this is a topic",
    occurs_at: "2018-06-09T10:45:00Z"
  },
  {
    id: 5,
    topic: "this is a topic2",
    occurs_at: "2018-06-09T11:45:00Z"
  }
]

The UI would like to receive the events like this:

events = [
  {
    agenda_date: "2018-06-09",
    events: [
      {
        id: 1,
        topic: "this is a topic",
        occurs_at: "2018-06-09T10:45:00Z"
      },
      {
        id: 2,
        topic: "this is another topic",
        occurs_at: "2018-06-09T11:45:00Z"
      }
    ]
  },
  {
    agenda_date: "2018-06-10",
    events: [
      {
        id: 3,
        topic: "this is a topic on the 10th",
        occurs_at: "2018-06-10T10:45:00Z"
      },
      {
        id: 4,
        topic: "this is another topic on the 10th",
        occurs_at: "2018-06-10T11:45:00Z"
      }
    ]
  }
]

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.