Code Monkey home page Code Monkey logo

budget.boston.gov's Introduction

budget.boston.gov

Overview

The City of Boston's Office of Budget Management (OBM) engaged the Department of Innovation and Technology’s (DoIT) Digital Team in fall 2016 to create a website that displayed the City of Boston’s budget books online.

The books come in a three-volume set totaling well over 800 pages.

  • Volume 1 contains the budget narrative describing the City’s investments and explaining why it made those investments.
  • Volumes 2 and 3 are much more data heavy and are divided by City Cabinet. Each Cabinet section has information down to the program level (Cabinet >> Department >> Program) on actual and projected budgets, as well as personnel and capital plan data.

This web application uses JSON files that were automatically exported from a content management system for Volumes 2 and 3 and displays them online, often alongside Volume 1 content. The site also displays markdown files created from remaining Volume 1 content.

Parts of the site:

  • Executive Summary - the Executive Summary of Volume 1 of the budget book. Some sections are compressed to be “featured analysis cards”, which link off to pages offering analysis on a specific topic.
  • Featured Analysis - a grouping of all featured analysis cards, ordered by section.
  • Capital Projects - a mostly-automated display of information from the Capital Planning chapter (Volume 1) and capital projects (Volumes 2 and 3).
  • Operating Budget - a mostly-automated display of information from the Summary Budget chapter (Volume 1) and operating budget data (Volumes 2 and 3).
  • Sidebar - links to pages that can help people understand the budget or offer people insight into the City’s financial management.

The site is hosted on Heroku and assets are built using Gulp and Jekyll. It uses JSON, markdown, JavaScript, and HTML.

Getting started (technical)

This Jekyll implementation creates static archives of the City of Boston's fiscal budgets. It uses Gulp to build everything, so that we can more easily incorporate things like BrowserSync, Stylus and any necessary plugins.

To get up and running, download (or fork) this repo. Then in your project run:

bundle install
npm install

Now use gulp to build the site. REQUIRED: Set a "source" in order to build the project using data from a specific fiscal year, for example:

gulp --source fy18_recommended

For local development pass the "local" flag:

gulp --local --source fy18_recommended

At this point, you should be able to visit your site at http://127.0.0.1:4000.


In order to prevent breaking relative links from the boston.gov wrapper and serve the appropriate assets (like images, css, and js) from boston.gov, we need to preserve its base_url (found in the <head as <base href="https://www.boston.gov">). We also need to be able to use relative links and assets specific to the budget app when runing this site locally and in production. We accomplish this with the url directive in _config.yml. We also needed to create a config file with a url specifically for local dev. If you've already built the site with gulp, you can run it locally using that config file:

bundle exec jekyll serve --config _config_dev.yml

This will make the site available at http://127.0.0.1:4000/


Deployment

You can create an environment specific configuration file in order to serve the site from a URL that differs from your production domain. For example, set the URL for a staging site in _config_stg.yml and pass the "staging" flag like so:

gulp --staging --source fy18_recommended

Our particular deployment uses Travis CI to infer the build environment based on the branch.

Our deployment for this project uses git tags to specify which source to build the site from. So if you are pushing your contributions to the repository, be sure to pass the "tags" flag like so:

git push origin develop --tags

If you are creating a new set of source content for the site (for example fy18_adopted), first add it to the _source directory. Then make sure to tag your commit with the same name as your folder. In this example:

git tag fy18_adopted

Components

To create custom pages, you can simply add reusable components to markdown files.

IMPORTANT: Before adding any components you must add the "components:" key.

Here's a short list of some common components you can use:

Breadcrumbs Screenshot of breadcrumb page navigation

Set local key to true in order to use app domain (e.g. budget.boston.gov) instead of wrapper base domain (e.g. boston.gov)

- breadcrumbs:
  - title: Home
    url: "/"
  - title: Budget
    url: "/budget"
  - title: Operating Budget
    url: "/operating-budget"
    local: true
  - current: Cabinets
  - published: 3/28/17

Intro Screenshot of page introductory section

Set sidebar_menu to false in order to have full spanning title, short description, and description sections

- intro:
  - title: Executive Summary
    short_desc: >
      <div>"This budget is a manifestation of my vision for a
      Thriving, Healthy, and Innovative Boston."</div>
      <div>- Martin J. Walsh, Mayor</div>
    description: >
      Mayor Walsh presented a balanced budget that maintains 
      high levels of support in critical areas such as education 
      and public safety, makes limited strategic investments,
      continues the City's commitment to addressing its long-term
      liabilities, and builds on the Administration's record of 
      strong fiscal management. This is made possible by the 
      Administration's achievement of efficiencies and savings. 
      The City's data-driven managerial approach was recently 
      validated by the affirmation of Boston's triple A bond rating.
    sidebar_menu: true

Text Block Screenshot of a block of text component

Omit the right_image key to have the text span the full screen

- text_block:
  - title: Introduction
    body: >
      At the time Mayor Walsh took office, the City of Boston had successfully 
      weathered the storms of previous recessions. However, several major revenue
      sources never fully recovered, cost pressures continued to grow, and deferred
      investments persisted across City government. In its first two years, the 
      administration has systematically engaged in independent operational reviews
      and other planning efforts aimed at making government more efficient in order 
      to address areas needing renewed attention.
    right_image: http://tomakeawebsite.net/wp-content/uploads/2015/03/Google-charts-plugin.jpg

Spanning Image Screenshot of an image that spans the full screen

spanning_image:
  - title: Lorem ipsum title
    desc: This is the description for the spanning image
    link:
      - text: Click Here
        url: https://google.com
    src: https://www.boston.gov/sites/default/files/styles/resp_wide_2000x800custom_boston_wide_1x/public/winter_swimming_10.jpg?itok=W91jOE5G&timestamp=1452037695
    alt: Placeholder alt text
    title: Placeholder image title

Grid Screenshot of a grid of items

- grid:
  - grid_title: Revenue
  - title: Revenue overview
    body: >
      Get a broad understanding of where Boston's revenue comes from.
    img: https://www.boston.gov/sites/default/files/styles/grid_card_image/public/allston2.jpg?itok=jMsIfnJ6
    link: 
      path: https://google.com
      external: true
  - title: Property tax
    body: >
      Property taxes provide more than two-thirds of the City's revenue. See the details of this important revenue source.
    img: https://www.boston.gov/sites/default/files/styles/grid_card_image/public/backbay5.jpg?itok=sA4Mz_05
    link: /featured-analysis/property-tax/
  - title: State aid
    body: >
      State aid to Boston never recovered after the Great Recession. Learn about the impacts.
    img: https://www.boston.gov/sites/default/files/styles/grid_card_image/public/bayvillage3.jpg?itok=iDf79UIP
    link: /featured-analysis/state-aid/

Table Screenshot of a simple table component

- table:
  - title: Budget summary
    right_text: 
      name: To some page
      link: /example
    columns:
      - "Category": Total revenues
        "FY15 Actual": 2,780.42
        "FY16 Actual": 2,883.01
        "FY17 Budget": 2,996.09
        "FY18 Budget": 3,139.79
      - "Category": Total expenditures
        "FY15 Actual": 2,773.06
        "FY16 Actual": 2,881.09
        "FY17 Budget": 2,996.09
        "FY18 Budget": 3,139.79
      - "Category": 
          name: Test Link
          link: /example
        "FY15 Actual": 
          value: 2773
          filter: money
        "FY16 Actual": 
          value: 288109
          filter: delimiter
        "FY17 Budget": 
          value: 90
          filter: percent
        "FY18 Budget": 3,139.79
      - "Category": Surplus (Deficit)
        "total": true
        "FY15 Actual": 7.36
        "FY16 Actual": 1.92
        "FY17 Budget": 0.00
        "FY18 Budget": 0.00

JS Table Screenshot of a table that pulls data from a JSON source

- js_table:
  - title: NERD
    json_source_url: "https://spreadsheets.google.com/feeds/list/1mfGnwQDsx5Am-_VDvcYiRUzuKsUjlhkx4hVjUOjl2Rc/od6/public/values?alt=json"
    columns:
      - column_name: Session Name
        json_key: gsx$title
      - column_name: Presenter
        json_key: gsx$presenter
      - column_name: Description
        json_key: gsx$description
      - column_name: Day
        json_key: gsx$day
      - column_name: Time
        json_key: gsx$time
  - title: Remote JSON
    json_source_url: "http://mysafeinfo.com/api/data?list=presidents&format=json"
    columns:
      - column_name: Name
        json_key: nm
      - column_name: Party
        json_key: pp
      - column_name: Term
        json_key: tm
  - title: Test
    json_source_url: "https://spreadsheets.google.com/feeds/list/17BxE2iSmejr7iJKoudYjqIe52c4z3bjqsjb2boDh8yw/od6/public/values?alt=json"
    columns:
      - column_name: Test HEY
        json_key: gsx$test
      - column_name: THINGY
        json_key: gsx$thing
      - column_name: Other Thing!
        json_key: gsx$otherthing

2 Column Text Block Screenshot of two columns of text

- text_col_2:
  - col: >
      <p>First Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam non turpis nibh.
      Sed eleifend orci pretium magna tempus vehicula. </p>
      <ol>
      <li>Donec sodales massa vel leo porttitor</li>
      <li>condimentum. Ut condimentum commodo quam.</li>
      <li>Phasellus sed metus eu velit pellentesque</li>
      </ol>
      <p>Paragraph Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam non turpis nibh.
      Sed eleifend orci pretium magna tempus vehicula.</p>
      <p>Paragraph Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam non turpis nibh.
      Sed eleifend orci pretium magna tempus vehicula.</p>
  - col:
    - blurb: >
        Second Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam non turpis nibh.
        Sed eleifend orci pretium magna tempus vehicula.
    - img: /img/mayor.jpg
    - blurb: >
        <blockquote>Donec sodales massa vel leo porttitor. Ut condimentum commodo quam.</blockquote>
        condimentum. Ut condimentum commodo quam. Phasellus sed metus eu velit pellentesque
        porta. Suspendisse iaculis feugiat accumsan.

3 Column Text Block Screenshot of three columns of text

- text_col_3:
  - col:
    - blurb: > 
        <p>Fisrt Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam non turpis nibh.
        Sed eleifend orci 
    - link:
       title: TEST
       path: /
    - blurb: > 
        pretium magna tempus vehicula. </p>
        <p>Donec sodales massa vel leo porttitor
        condimentum. Ut condimentum commodo quam. Phasellus sed metus eu velit pellentesque
        porta. Suspendisse iaculis feugiat accumsan.</p>
  - col: >
      Second Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam non turpis nibh.
      Sed eleifend orci pretium magna tempus vehicula.
      <blockquote>Donec sodales massa vel leo porttitor</blockquote>
      condimentum. Ut condimentum commodo quam. Phasellus sed metus eu velit pellentesque
      porta.
  - col: >
      Third Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam non turpis nibh.
      <ul>
      <li>Sed eleifend orci pretium magna tempus vehicula.</li>
      <li>Donec sodales massa vel leo porttitor</li>
      </ul>
      condimentum. Ut condimentum commodo quam. Phasellus sed metus eu velit pellentesque
      Sed eleifend orci.

budget.boston.gov's People

Contributors

094615 avatar 143839 avatar duffy-james avatar edwardpesce avatar fionawhim avatar hackajesse avatar jackhanlon avatar jimafisk avatar jimwilliamson-boston avatar johannabernstein avatar jsterritt avatar marymccoy avatar matthewcrist avatar memcdaniel avatar morzor avatar stevestephanou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

budget.boston.gov's Issues

Every budget tab should have the same sidebar

User story

The sidebar of each of the budget viz tabs should have a consistent set of links to help people understand how the budget works, look up any terms they don't understand, get access to datasets, or get insights into financial management, There will be specific URLs for each within the budget app and having access to the basics of the budget is important. Further, it's important to reduce expected maintenance of any sidebar links as much as possible for City staff.

Acceptance criteria

  1. Admins should be able to update the sidebar and have all sidebars update
  2. Sidebars should look the same across all tabs (spacing, font, hyperlinks, icons)
  3. Sidebars should have the same mobile responsiveness as Boston.gov sidebar components, not Boston.gov contact information (location on the page, font or icon scaling and wrapping, padding).
  4. On mobile, the sidebar slides below all page content (tables, graphs, copy).

Display the Fixed Costs table (level 2)

  • The table should be titled "Fixed costs"
  • The table consists of 6 column headers (L to R): Fixed Cost, FY14, FY15, FY16, FY17, FY18
  • The Fixed Cost column displays each fixed cost item in alphabetical order from A to Z (Charter School Tuition, Debt Service, MBTA, Other State Assessments, Pensions, Reserve, Suffolk County Sheriff Dept.)
  • Only two of the fixed cost names are clickable and will be styled as all hyperlinks are styled in the tables. Those fixed costs are Debt Service and Other State Assessments. On click, both fixed costs go to their level 3 table.
  • The last row of the Program column should be "Totals:"
  • To the right of the title of this table, include a hyperlink returning to the Expenditure Categories table. The hyperlink should read "Back to all spending"

Pages seem delayed

When on the tabbed content pages, they seem to have a delay when scrolling and on mouseover.

Please investigate and lmk!

Be able to edit in a text editor

User story

Content editors need to be able to edit the executive summary to add images, graphics, hyperlinks, and other types of HTML-based elements.

Acceptance criteria

  1. Ability to use a text editor to edit the page's HTML file.

Display the Departments table (level 3)

  • The table should be titled "Appropriations by department"
  • The table consists of 5 column headers (L to R): Department, FY15 actual, FY16 actual, FY17 budget, FY18 budget
  • The Department column displays each department under the selected cabinet in alphabetical order from A to Z
  • On department name click, each department goes to its level 4 table, which is the table displaying the list of programs underneath the selected department
  • The last row of the Department column should be "Totals:"
  • The data for this table should be from the Operating Budget only. Do not include external funds or capital projects.
  • To the right of the title of this table, include a hyperlink returning to the Cabinets table. The hyperlink should read "Back to all cabinets"
  • Styled per #7

Should have app usage data

User story

In order to understand what people care about, admins should be able to measure standard google analytics metrics (page views, time on page, bounce rates, etc). Occasionally, admins add extra tags using google tag manager - tags getting the same information should be usable on the budget web app, too, to give admins a comparable set of data to analyze.

Acceptance criteria

  1. Google Analytics is actively returning data on budget app usage
  2. Google Tag Manager is implemented on the app with the same events as on Boston.gov.
  3. Google Tag Manager is tracking in-page clicks and knows which category, department, project, program, etc. the user was on when they clicked something.

Display the Capital Projects table (level 1)

  • The table should be titled "Investment category"
  • The table consists of 7 column headers (L to R): Category, Thru [date], FY17 budget, FY18 budget, FY19-22 budget, Non-capital fund, Total (which is the total amount for each row)
  • The Category column displays each group in alphabetical order from A to Z
  • Category names are clickable and go to the associated level 2 table, which shows departments with projects under that category.
  • The last row of the Category column should be "Totals:"

Pull in JSON to Operating Budget Tab

User story

SaviorLabs is producing a set of JSON documents for content from the Office of Budget Management budget books. The Spending tab landing and sub pages need to pull in content from those documents and programmatically display selected content.

Acceptance criteria

  1. The content displaying can be completely changed by referencing a different part of a JSON document
  2. The content displaying does not have to display in the same order in which it is ordered in the CMS providing content for the API.
  3. On clicking within the table on any Spending Tab page, the content displaying can change based on the JSON

Display Department Capital Projects table (level 2)

  • The table should be titled "Investments by department"
  • The table consists of 7 column headers (L to R): Department, Thru [date], FY17 forecast, FY18 budget, FY19-22 budget, Non-capital Fund, Total (which is the total amount for each row)
  • The Department column displays each department with projects in the selected category in alphabetical order from A to Z
  • Department names are clickable and go to the associated level 3 table, which shows all of a selected department's projects.
  • The last row of the Department column should be "Totals:"
  • To the right of the title of this table, include a link returning to the previously selected category table. The hyperlink should read "Back to all categories"
  • Styled per #7

Operating Budget Tab

Elements of this epic:

  • Operating Budget landing page
  • Operating Budget sub pages (after clicking in the table)
  • Table behavior
  • Graph behavior and comps

Display the current FY's external funds projects

@matthewcrist we should talk about the functionality of this table before this ticket is complete

  • Display this table at level 4 below the Programs table.
  • The table is titled "External Funds budget"
  • The table consists of 3 column headers (L to R): Fund Name, FY18, Total
  • Under Fund Name, display the list of funds in alphabetical order, A to Z
  • On fund name click, display the External Fund Projects "Project Mission" per the comp.

Display the Fixed Costs Detail table (level 2)

  • The table should be titled whatever was clicked in the previous table (either "Debt service" or "Other State assessments")
  • The table consists of 5 column headers (L to R): Fixed cost, FY15 actual, FY16 actual, FY17 budget, FY18 budget
  • The Fixed costs column displays "Fixed costs:" in the table header and "Totals:" in the row below
  • Nothing in the table is clickable.
  • To the right of the title of this table, include a hyperlink returning to the Expenditures table (level 1). The hyperlink should read "Back to all expenditures"
  • Style the table per #7

Display the Program Appropriations table (level 5)

  • The table should be titled "Appropriations"
  • The table consists of 5 column headers (L to R): Category, FY15 actual, FY16 actual, FY17 budget, FY18 budget
  • The Category column displays each type of appropriation under the selected program in the following order (top to bottom): Personnel services, Contractual services, Supplies and materials, Current charges and obligations, Equipment, Other
  • If a "category" has no value across any FY, exclude it from the list
  • Type names are not clickable. This is the lowest level of table.
  • The last row of the Program column should be "Totals:"
  • To the right of the title of this table, include a hyperlink returning to the Programs table. The hyperlink should read "Back to programs in this department"
  • The data for this table should be from the Operating Budget only. Do not include external funds or capital projects.
  • The data for the Type column may look like "Personnel services" and "Non-Personnel" only depending on how the API delivers the data. However, it should be "Personnel services" and also each of the "Non-Personnel" types broken out individually rather than aggregated. Ask Jesse if at all confused.

Capital Tab

Elements of the Capital Tab:

  • Capital projects landing page
  • Capital projects sub pages (after clicking in the table)
  • Table behavior
  • Graph behavior and comps

Display the Expenditure Category table (the highest level aka level 1)

  • The table should be titled "Expenditures"
  • The table consists of 5 column headers (L to R): Category, FY15 actual, FY16 actual, FY17 budget, FY18 budget
  • Under Category, display the following list (T to B): City appropriations, Public Health Commission, Boston Public Schools, Reserve for collective bargaining, Other post employment benefits, Pensions, Debt service, Charter School Tuition, MBTA, Other State assessments, Suffolk County Sheriff Dept., Reserve
  • On Boston Public School click, goes to Education Cabinet table (level 3), which shows the School Department in the table
  • On Public Health Commission click, goes to Public Health Commission department table (level 4), which shows the Public Health Commission programs in the table.
  • On other category name click, all other categories go to their level 2 table if one exists. Level 2 tables do not exist for Reserve for collective bargaining, Other post employment benefits, Pensions, Charter School Tuition, MBTA, Suffolk County Sheriff Dept., or Reserve
  • The bottom row in the table will be labeled "Surplus (Deficit):" and should be styled the same as the Totals row
  • The row above the bottom row in the table will be labeled "Totals:"
  • Style the table per #7

Be able to edit in a text editor

User story

Content editors need to be able to edit the executive summary to add images, graphics, hyperlinks, and other types of HTML-based elements.

Acceptance criteria

  1. Ability to use a text editor to edit the page's HTML file.

Featured Analysis Tab

The tab page is an HTML page hosted on Heroku.
The featured analysis page (with the copy, images, any details, etc.) is a markdown page.

Elements of the Featured Analysis Tab:

  • Featured Analysis landing page
  • Featured Analysis sub page (after clicking a card)
  • Sidebar

Display the Other Appropriations table (level 2)

  • The table should be titled "Other appropriations"
  • The table consists of 6 column headers (L to R): Appropriation, FY14, FY15, FY16, FY17, FY18
  • The Appropriation column displays each appropriation in alphabetical order from A to Z (Other Post Employment Benefits, Reserve for Collective Bargaining)
  • Nothing is clickable in the table. This is the lowest level for other appropriations
  • The last row of the Appropriation column should be "Totals:"
  • To the right of the title of this table, include a hyperlink returning to the Expenditure Categories table. The hyperlink should read "Back to all spending"

Add CTA to view the capital budget

People who are seeing this table will be interested not only in the operating budget, but also the capital budget. This button will help them contextually navigate to the capital part of the budget visualization.

  • If there is a capital budget available at the program level (level 4), add a button CTA. Otherwise, do not display any button.
  • Button should read "View capital projects"
  • Button should link to the associated department's capital projects page
  • Button should be styled as class="button" per Boston.gov style guidelines (optimistic blue background, white and montserrat font, on-mouseover background changes to freedom trail red)

Pull in content from the Budget Viz API JSON

User story

SaviorLabs is producing a set of JSON documents for content from the Office of Budget Management budget books. The Capital Projects tab landing and sub pages need to pull in content from those documents and programmatically display selected content.

Acceptance criteria

  1. The content displaying can be completely changed by referencing a different part of a JSON document
  2. The content displaying does not have to display in the same order in which it is ordered in the CMS providing content for the API.
  3. On clicking within the table on any Capital Projects Tab page, the content displaying can change based on the JSON

Style the table component

Styling

  • Add a black, montserrat, all-caps title and horizontal rule above tables as on components on Boston.gov
  • Level 2+ tables have a right-justified link in the title line above the horizontal rule that takes users back to the previous table. That link should be optimistic blue, italicized Lora. On mouse-over, it should change to freedom trail red and underlined.
  • The top row in a table should be left justified (different from the status quo on Boston.gov, which we will change), black background, and white montserrat
  • The row containing a "Total:" for a table should be right justified across the whole row, white background, and black, bolded Lora
  • Rows in between the Total and Header rows should be left justified (different from the status quo on Boston.gov, which we will change), white background, and black lora (no itals or bold).
  • Hyperlinks should be optimistic blue and, on mouseover, underlined (different from the status quo on Boston.gov, which we will change)

Display Department Projects table (level 3)

  • The table should be titled "Department capital projects"
  • The table consists of 7 column headers (L to R): Category, Project, Location, Status, FY18 Projected, Total
  • The Project column displays each project in alphabetical order by category and then by project from A to Z
  • Project names are clickable and go to the associated dedicated project page.
  • The last row of the Category column should be "Totals:"
  • To the right of the title of this table, include a hyperlink returning to the Departments capital projects table (level 2). The hyperlink should read "Back to all departments"

Be able to view the capital projects ESRI map

User story

People are attracted to maps. This is a map we'd like to display prominently on the Capital Projects tab. People who might not know what a capital project is may stay on this page as a result of seeing the map and choosing to explore.

Acceptance criteria

  1. Website viewers can see this map on the Capital Projects tab landing page. It is not necessary on sub pages.
  2. The map is functional on mobile (this may be primarily for the GIS team)
  3. Website viewers of the map can zoom in and out on both desktop and mobile

Display the Programs table (level 4)

  • The table should be titled "Appropriations by program"
  • The table consists of 5 column headers (L to R): Program, FY15 actual, FY16 actual, FY17 budget, FY18 budget
  • The Program column displays each program under the selected department in alphabetical order from A to Z
  • On program name click, each program goes to its level 5 table, which is the table displaying the operating budget specifics of the selected program
  • The last row of the Program column should be "Totals:"
  • The data for this table should be from the Operating Budget only. Do not include external funds or capital projects.
  • To the right of the title of this table, include a hyperlink returning to the Departments table. The hyperlink should read "Back to departments in this cabinet"
  • Style per #7

Display the Cabinets table (level 2)

  • The table should be titled "Appropriations by cabinet"
  • The table consists of 5 column headers (L to R): Cabinet, FY15 actual, FY16 actual, FY17 budget, FY18 budget
  • The Cabinet column displays each cabinet in alphabetical order from A to Z
  • On cabinet name click, each cabinet goes to its level 3 table, which is the table displaying the list of departments underneath the selected cabinet
  • The last row of the Cabinet column should be "Totals:"
  • The data for this table should be from the Operating Budget only. Do not include external funds or capital projects.
  • To the right of the title of this table, include a hyperlink returning to the Expenditure Categories table. The hyperlink should read "Back to all expenditures"
  • Style per #7

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.