Code Monkey home page Code Monkey logo

openbudgetokc's Introduction

Open Budget OKC

Build Status

Chat

Join the Code for OKC Slack room here: http://slack.codeforokc.org/. Once there, check out the #openbudgetokc channel for discussion about this project.

Getting Started

Fork me!

Fork and clone the project!

$ git clone [email protected]:[your-user]/openbudgetokc.git
$ cd openbudgetokc

Read helpful info about image sizes, data types and color schemes on the wiki.


Developing Locally

Code Pen

To work on a given d3 feature, we suggest Code Pen to work on a particular graphical feature. Once it is ready, branch this repo and tie it into our data.

Generating json files from a csv

We have a small script written in ruby for generating a json file from a csv of city data. The script asks for the file and then steps through each required field and asks you to specify the correct header which matches.

To run the script

$ cd <project_root>/data-utilities
$ ruby data_to_json.rb

Harp

This site is built on Harp using Node.js That means you can run it locally with minimal setup!

What you'll need:

Install & Run

Once you have npm installed,

# to install dependencies and run
npm install && npm start

# npm install can be omitted on subsequent runs
npm start

Deployment

Currently deployment takes place by running either npm build or yarn build.

This will build the project in the docs folder.
Do this in a branch and push to master.

This will automatically update the site.

Pitfalls

  • node version 6

Currently, there is a problem with installing on node V6 It can be fixed by changing the harp line to

  • "harp": "https://github.com/sintaxi/harp.git#v0.21.0-pre" in the package.json at the root of this project.

Making Changes

This project is coded with:

Creating & Editing Pages

  • Page content is inserted into the layout.jade file (which includes basic header and footer snippets)
  • Create your .jade file
  • Add a link to the main nav in the appropriate place
  • Add relevant metadata in _data.json (page title, page slug (url), ...)
  • If your page uses custom page-specific css, add it to a new .scss partial and import it into the main stylesheet. (Make sure to namespace it the same way the others are.)

Adding additional datasets to the Flow diagram page

To request revenue and expense data for a new fiscal year, submit an Open Records request and type the following in the description field. Update FYXX with the last two digits of the year (ex: FY16).

-A csv file of the City of Oklahoma City revenue and expenditure budget for FYXX, including Fund, Fund name, Operating Unit, Operating Unit Description, Agency, Agency Name, Program ID, Program Name, Line of Business ID, Line of Business name, Account, Account Name, Account Description, Budget Amount. (Budget database query names qry_Current_Yr_Budget_detail and qry_Current_Yr_Budget_Detail_Revenue)

This chart takes as input the full budget datatable from data.oaklandnet.com (in CSV format)

Right now the 2015-17 Proposed page is an unpublished placeholder, pending the data release. When the data becomes available:

  1. add the CSV to _src/data/proposed_1517_flow/ and remove the placeholder file FY13-14__FY14-15.csv
  2. rename the file to include the two fiscal years it includes, separated by two underscores ("FY15-16__FY16-17.csv")
  3. open the csv and make sure all column headings are standardized to the following names:
    • budget_year
    • department
    • division
    • org_code
    • org_description
    • fund_code
    • fund_description
    • account_type (this should be the Expense/Revenue column, if there are duplicate names)
    • account_category
    • account_code
    • account_description
    • amount
    • (any other columns should be deleted)
  4. test it in Harp in the dev branch, and it should compile properly for deployment

Contributing

If you're new to contributing to open source projects Github has a pretty great video series.

If you're comfortable already, our workflow is:

openbudgetokc's People

Contributors

adstiles avatar ixley avatar mkchandler avatar smurphy8 avatar macfarlandian avatar ppopp avatar jagthedrummer avatar mascott avatar tdooner avatar cahiller avatar mikeubell avatar makenova avatar daguar avatar jeinokc avatar okjed avatar loganhuskins avatar markbrough avatar railsnewbie257 avatar bitdeli-chef avatar gitter-badger avatar alex-code4okc avatar peterpih avatar wrought avatar

Watchers

Ryan Hoegg avatar James Cloos 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.