GI Bill Comparison Tool
Welcome to the US Department of Veterans Affairs GI Bill Comparison Tool, a web application for veterans to calculate their educational benefits and research approved programs.
How it Works
The application is a simple static website generated by Jekyll. There is no server-side component – the JavaScript in gib-comparison-tool.js
does all the data handling and calculations in the browser. There is only one page: index.html
.
Building the Site
Jekyll is used to generate the static content for this site. Jekyll requires Ruby and the jekyll
gem. Read more about getting started in their documentation.
To build the site, simply run jekyll build
in the command line. The site will be generated into the ./_site
directory. The contents of this directory can then be hosted on any server's public directory. To view the site locally, run jekyll serve
, and a development server will start at http://localhost:4000/
.
Updating the Data
The application uses a lot of open data from a CSV file named data.csv
in the _data/
directory with the following headers (in this order):
facility_code | institution | city | state | zip | country | type | cross | ope | bah | poe | yr | gibill | student_veteran | student_veteran_link | vetsuccess_name | vetsuccess_email | eight_keys | correspondence | flight | grad_rate | grad_rate_rank | default_rate | avg_stu_loan_debt | avg_stu_loan_debt_rank | indicator_group | salary | calendar | tuition_in_state | tuition_out_of_state |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
String | String | String | String | String | String | String | Integer | String | Integer | Boolean | Boolean | Integer | Boolean | String | String | String | Boolean | Boolean | Boolean | Float | Integer | Float | Integer | Integer | Integer | Integer | String | Integer | Integer |
The application doesn't query the CSV, but instead looks for data in the api/
directory. A Rake task is used to parse the CSV, normalize the data, and build the JSON fragments that will populate the api/
directory.
To generate the API, run rake build
. This should be done each time a change is made to the CSV file.