The core Hack Oregon application is meant to expose answers to 4 main questions about campaign finance using open data:
who? Who is being funded, and by which PACs, Corporations, and individuals.
what? What are the outcomes of campaign finance dollars at work? (good or bad)
when? When do cycles of campaign and funding take place and how does this effect the political process and civic life?
where? What does the breakdown of donors/funders look like in Oregon and how does 'place' effect the political process?
Components for the core application lives at the top level of each directory. Additionally, in each folder there is a community
folder for contributions that do not relate to the core application, but should exist on their own.
We're using yeoman for workflow. You'll also need the Compass, the css authoring framework.
# Install yeoman
npm install -g yeoman
# Install the yeoman generator for angular
npm install -g generator-angular
# Install compass
gem install compass
git clone <this_repo>
cd <this_repo>
#install node packages
npm install
Once everything is installed run:
grunt serve
to get your development server fired up.
Hack Oregon's front end is contained in an Angular JS app.
Additionally, we are using SASS which compiles into css and coffeescript.
Adding new styles: add a partial to the styles folder e.g. _mypartial.scss
and then include the partial in the main.scss
file with an import statement @import '_mypartial';
If you prefer to use plane css, simply import it by adding an import line to the main.scss
file: @import plainolcss.css;
Adding scripts: Read about how to add to the angular application with the yeoman angular-generator here. Using angular generator you can add new routes, controllers, views, etc. with the simple commands listed in their documentation. For example,
yo angular:route myAwesomeRoute
This will create a new route, a new controller for that route, as well as an html view that will be rendered at that route. If you are a javascript purist, you can run the same command with a flag that tells the generator to use javasript. For example,
yo angular:controller myAwesomeCtrl --coffee=false
You probably have some amazing ideas, and things you'd like to contribute - we'd love to include them. Here's how:
# fork this repo
git clone <your_fork>
git checkout -b <your_awesome_new_feature>
git branch -D master
# hack away!
https://gomockingbird.com/mockingbird/#44apvbt/sCsPR
When you feel like you are ready for your visualization or enhancement to be included submit a pull request. There may be some things to change (especially if you are working on the core application) and we'll work together to get things running nicely.