GithubHelp home page GithubHelp logo

isabella232 / fec-graph-search Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 18f/fec-graph-search

0.0 0.0 0.0 1.21 MB

DEPRECATED

License: Other

Ruby 89.25% CoffeeScript 2.15% JavaScript 2.43% CSS 6.16%

fec-graph-search's Introduction

FEC Graph Search

Election data can be confusing. Searching through it, shouldn't be.

Build Status Code Climate Test Coverage

Screenshot Screenshot

Getting Started

  1. Clone the repository git clone [email protected]:18F/fec-graph-search.git
  2. From the project root, install the necessary dependencies with bundle install.
  3. Spin up Neo4j with the Neo4j docker container: vagrant up --provider=docker (from the docker-neo4j project root). Or, install Neo4j locally with rake neo4j:install and rake neo4j:start.
  4. Copy the example files with cp config/database.yml.example config/database.yml && cp .env.example .env and update values as necessary.
  5. Start the application with foreman start.
  6. Open the website at localhost:4000.

Dependencies

  • Ruby 2 and bundler - rbenv or RVM
  • Neo4j
    • You can install with the included gem via rake neo4j:install or try a Docker container launched with Vagrant for instant provisioning, aptly named docker-neo4j.
  • Redis - brew install redis
  • Postgres

More Information

This is an experiment in making sense of the data provided by the Federal Election Commission.

Note: This project is still in alpha and may never be deployed. We're still investigating the best ways to present this data to the public.

The Philosophy

Generate relevant views of FEC data based on real-world search scenarios.

The Solution

  • Employ a Neo4j graph database and populate with massaged data to represent our domain entities and their relationships.
  • Parse query strings using Treetop to define a parsing expression grammar:
    • Treetop will generate a Ruby parser that transforms streams of characters written into your language into abstract syntax trees representing their structure. You'll then describe the semantics of your language in Ruby by defining methods on the syntax trees the parser generates.
  • Generate useful output of tabular, graphic and qualitative data.

Roadmap

  • Typeahead and autocompletion
  • Visualizations eg. Timeseries

Credits

Huge thanks to Max DeMarzi for his continued work with Neo4j and its community. The Neo Graph Search proof of concept was the initial inspiration for FEC Graph Search.

Contributing

Please read the Contribution Guide and submit a pull request.

License

The project is in the public domain, and all contributions will also be released in the public domain. By submitting a pull request, you are agreeing to waive all rights to your contribution under the terms of the CC0 Public Domain Dedication.

This project constitutes an original work of the United States Government.

fec-graph-search's People

Contributors

amoose avatar

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.