FEC Graph Search
Election data can be confusing. Searching through it, shouldn't be.
Getting Started
- Clone the repository
git clone [email protected]:18F/fec-graph-search.git
- From the project root, install the necessary dependencies with
bundle install
. - Spin up Neo4j with the Neo4j docker container:
vagrant up --provider=docker
(from the docker-neo4j project root). Or, install Neo4j locally withrake neo4j:install
andrake neo4j:start
. - Copy the example files with
cp config/database.yml.example config/database.yml && cp .env.example .env
and update values as necessary. - Start the application with
foreman start
. - 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.
- You can install with the included gem via
- 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.