Code Monkey home page Code Monkey logo

dc-campaign-finance-watch's Introduction

Status

Build Status

DC Campaign Finance Watch

This project is aimed at providing greater transparency to local DC election finances, which have historically been pretty opaque.
The project provides an open API for querying the data as well as a front end that provides visualizations of the data and is eay to compare multiple campaigns.

All of our data is pulled from the Office of Campaign Finance

The site is very much in a beta status, so if you notice any issues or have any suggestions please open a ticket.

Development (Docker or Local)

The data is stored in several MongoDB collections on which an express based RESTish API sits and is run on AWS EC2.
The front end is built with React and is run through github pages

1. Fork the repo

Visit https://github.com/codefordc/dc-campaign-finance-watch repo.

In the top-right corner of the repo, click Fork Github Help

2. Clone the repo and access on your local

git clone https://github.com/<your github username>/dc-campaign-finance-watch
cd dc-campaign-finance-watch

3a. Continue the following to use docker or skip to 3b for local, non docker config

Install Docker and Docker Compose

Get Docker Download and Install docker based on your current system.

Get Docker-Compose Download and Install docker-compose based on your current system.

The following assume that you've install docker and docker-compose on your current system.

Setup front end development on docker machine

This will run a local instance of the frontend that will talk to the public API.
Any changes you make to source files should be automatically reloaded in the browser.

docker-compose up dc-campaign-finance-ui

3b. Setup front end development on local machine

Install Node Version Manager

With nvm installed, execute:

nvm install 6.10.2
nvm use 6.10.2

Install Yarn

With the above node version set and yarn installed, execute:

yarn

After npm install complete, execute:

yarn start

Visit DC Campaign Finance Local App to see running app.

Working on the backend API

Docker development env

This will start a mongodb and seed it with dc-campaign-finance-mongodatabase.zip content. Each call to mongo-seed will drop the existing database.

docker-compose up mongo-seed

The following assume that you've seeded your mongodb. It will start a web app connected to your local api.

docker-compose up dc-campaign-finance-api

Visit DC Campaign Finance Local App to see running app.

Docker production env

This will run a production instance of the frontend that will talk to the public API.

docker-compose -f docker-compose.yml -f docker-compose.production.yml up -d

Contributing

Contributions are always welcome! We are in the process of pulling together a checklist for submitting a PR, but for now the only thing to keep in mind is to avoid adding a PR with linting errors. There is an .eslintrc file included in the repo that should help out with that.

dc-campaign-finance-watch's People

Contributors

bcell avatar donaldbraman avatar elieri avatar funmiojo avatar jkoul avatar joshdata avatar mchelen avatar mkalish avatar mringer avatar pythagoraswitch avatar romoy avatar sdotson avatar tingaloo avatar

Watchers

 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.