Code Monkey home page Code Monkey logo

gi-bill-comparison-tool's Introduction

GI Bill Comparison Tool Build Status

This web-based tool allows a veteran to explore education benefits covered under the GI Bill.

The application is developed on a Ruby on Rails stack.

First Time Setup (Short Version)

See the long version below if this is not enough detail.

  1. Install Ruby 2.2.x
  2. Install PostgreSQL
  3. Clone this repo
  4. bundle install
  5. rake load_csv[data.csv]

First Time Setup (Long Version)

For now, the instructions assume the developer is using Mac OS X. However, the same steps can be completed slightly different in Windows and Linux platforms.

Homebrew

This will allow you to install applications easily. Follow the instructions on the Homebrew website.

Ruby

(You can skip rbenv steps if you already have Ruby installed or have a favorite Ruby version manager).

First, install rbenv which is a tool that manages Rubies and different versions of it.

brew install rbenv ruby-build

From here, add rbenv to your PATH by adding the following line to ~/.profile:

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

Now, you can install Ruby (at time of writing, 2.2.3 is used for this application).

rbenv install 2.2.3

After the download and install completes, move into the cloned directory and set the Ruby version:

echo "2.2.3" >> .ruby-version

Two last Ruby things are needed: Rails (the web framework)

  • Bundler (to install dependencies)

Issue the following command:

gem install rails bundler

PostgreSQL

This is the database. The easiest way to get setup with a PostgreSQL database is to install the Postgres.app and start it when you are working on this application.

Install Ruby Dependencies

Now, clone this repository and navigate to it via a terminal.

Install the application's dependencies:

bundle install

This step will have to be performed anytime Gemfile is modified.

Setup Database (Production and Development)

First, make sure Postgres is running. Next, create the database:

rake db:create

This creates an empty database for your current environment (either production or development). From here, migrate any database changes using this command:

rake db:migrate

This creates the tables, attributes, and indexes in the databse that the application needs to store data. At the current time, the data for the application is extracted from a CSV file that is compiled from various sources.To load data into the database, there is a rake task that will transfer data from this CSV file to the database. By convention, the latest data will be found in the data.csv file (however, you may have reason to use another version of the data in its own CSV file). To run the rake task choose a CSV that you want to load, and issue the following rake command:

rake load_csv[(the name of the CSV to load)]

For example:

rake load_csv[data.csv]

This will format and transfer the data in the CSV to the database.

A Note About Deployment to Production/Staging

When deploying the application to production or staging, and if a change to the raw CSV data is part of that deployment, the

rake load_csv[data.csv]

task must be run both in production and staging to populate the database with the new data.

Running the Application

Now that you're all setup, simply start the application:

rails s

Then, open your web browser and navigate to:

http://127.0.0.1:3000/

Troubleshooting Tips

To prevent routing error on jquery pngs, run

rake assets:precompile

Assets

Are from the va_common gem. To update assets, or header or footer, please go here:

https://github.com/department-of-veterans-affairs/va_common

gi-bill-comparison-tool's People

Contributors

alexose avatar bshyong avatar crwallace avatar ericschles avatar greggersh avatar jkassemi avatar knkski avatar kreek avatar mollyblake avatar mphbass avatar mphprogrammer avatar patrickvinograd avatar rickleegit avatar saintsoup52 avatar shawnarnwine avatar webinista 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gi-bill-comparison-tool's Issues

SEARCH RESULTS - "Showing n results matching..."

The text that tells the user how many search results are being shown is not tied into the filter counts. It always displays the total number of returned records regardless of applied filters.

Note in the screen cap, we have selected schools and there are 15 of them but the "Showing" line still reads 25.

screen shot 2015-11-01 at 7 58 30 am

School name conversions causes in appropriate lower case

We had this problem before... ITT Tech needs to stay uppercase and I think the rakefile is making the first character of each word upper case.

image

Also any school name with a "-" the following word is lower case. Since the IPEDS/WEAMS naming standard doesn't have spaces before and after the hypen this will high frequency issue.

Landing page adjustments for post-monday

Moving these to a separate issue for myself

  • Radio buttons for "will you be taking classes online?"
  • building out top timeline navigation bar and replacing the screenshot.
  • Treatment for "Use the VA's GI Bill Comparison Tool to make the most of your GI Bill Benefit.

Missing Link to Yellow Ribbon Rates, SVA Group & VSOC Counselor

On the current version of the GI Bill Comparison Tool we link directly to the Yellow Ribbon Scholarship information for a school (based on the state of the school), link to the SVA group on campus and the mail address of the VSOC counselor.

Right now those very helpful links are missing... The Yellow Ribbon link is the most important link we need to bring back in.

image

Remove private repository dependency

Doing the initial setup, but couldn't get past bundle install because of dependency on a private repo:

image

Tried a work-around by not including development and test groups, but didn't work for some reason:

image

For now, just locally commenting out the group this dependency is enclosed in to get past.

image

I'm a newbie to Capistrano. Is this required? (cc @mphprogrammer )

RESPONSIVE D - (for after Monday!!)

We will need to work out several items related to Responsive D:

  • Div stack order
  • About you menu
  • Filter Menu
  • Modal scaling

I am sure there will be others.

Data Repeating

Two identical rows (facility_code: 24805535 Academy of Court Reporting) save the dodmou column (one is yes the other no). The facility codes should be unique. Assuming dodmou = yes as per existing tool.

Two identical rows (facility_code: 2803638 All-State Career School - Lester) save the dodmou column (one is yes the other no). The facility codes should be unique. Assuming dodmou = yes as per existing tool.

Two identical rows (facility_code: 14927423 ANOKA TECHNICAL COLLEGE) save the dodmou column (one is yes the other no). The facility codes should be unique. Assuming dodmou = yes as per existing tool.

Two identical rows (facility_code: 14965423 ANOKA-RAMSEY COMMUNITY COLLEGE) save the dodmou column (one is yes the other no). The facility codes should be unique. Assuming dodmou = yes as per existing tool.

There are many more with dup data save the dodmou column.

INFO MODAL - Close Icon Issue

The modal looks perfect! One little bug...

The close icon does not close the modal, it only sets the page to the header behind the modal. Clicking on the canvas is the only way to close the modal currently.

START PAGE - Type-ahead (Autocomplete) size and scroll

We have a bit of an issue with the type-ahead.

In the current GI Bill Tool (https://department-of-veterans-affairs.github.io/gi-bill-comparison-tool/), the type ahead results are rendered in a fixed height window that the user can scroll through to find an exact match. The stakeholders BADLY want this functionality to be retained.

@emilyville took a most appreciated stab at this and was able to restrict the number of results shown, but sadly, this will not meet the stakeholders needs. There are a variety of reasons for it which I can tell you but will make this too long.

Is there another solution that meets the following requirements:

  • Will work with @mphprogrammer's application (see Marc)
  • Will provide a fixed height window of results (either by number of results or dimensions) that will;
  • Allow us to set up an overflow: scroll scenario so all matching results are accessible from this feature?

This working to the requirements above is actually more of a big deal than it may appear on the surface.

Having this working for Monday would be a huge plus!!

HEADER - Logo flush left to broswer

The logo in the header is currently appears to be flush left to the browser viewport. is it supposed to be this way or is it supposed to be flush left to the container?

screen shot 2015-10-22 at 4 22 08 pm

SEARCH RESULTS - Styling refinements

Just a few refinements that map to wires, please. THANKS!!

  • Icons (fontawesome) for Tuition, Housing, Books.
  • Need a graphical way to represent N/A or null results. (For now, proposing big N/A in light gray)
  • Caution Flag styling when available.

SEARCH RESULTS - Change to Filter - Type of School

@mphprogrammer,

TL;dr: Change Type of School filter from check boxes to dropdown.

This is not a massive priority, but if we get a chance, can we change the Type of Schools filter interaction from check boxes to a dropdown. The more I use this tool, the less the check boxes make sense since each institution can only be one type.

The label should have the record count for the current selection. The default selection should be "All".

screen shot 2015-11-01 at 10 10 52 am

STAGING ENVIRONMENT - ASAP after Coy meeting

At some point not long after the Curt Coy meeting (assuming no product breaking changes) we need to get an AWS staging environment deployed.

We want to be able to test this with a small user group prior to launch if possible. Plus we have a large number of stakeholder reviewers that will not be capable of installing and running the app on a local environment.

SEARCH RESULTS - Pagination

Need a way to paginate the search results. A few considerations:

  • FE Filtering effects result count and subsequently page count.
  • Not opposed to a lazy load if it is both 508 compliant and responds to filter inputs (although in thinking that through, this will likely face the same challenges as any pagination solution)
  • There is no way around some form of pagination. If necessary, we may need to trigger a page reload to accomplish it. As unfortunate as this would be, it might be a more acceptable LOE than trying to integrate with FE filtering. I looked at amazon and home depot as analogs. They both seem to be pinging the server following engagement with the filters - Amazon reloads, Home Depot appears to be working some Ajaxy pixie dust.
  • No pressure, but the filtering is a core part of the functionality, so if additional brain power is needed to pull this off in a usable manner, let's assemble it sooner than later. :-)

SCHOOL PROFILE - Data visualization styling

@EricSchles the visualization seem to be working great! Thanks!

They do need some styling, however, and there are a few issues that I am seeing as I look through the code. I am pretty sure I could make these changes, but I do not want to mess with this as if seems a bit fragile.

  • The 'vets' and 'all' bars need to be different classes. I need to be able to style each separately.
  • We need to set a min-max for the numeric text as it relates to the height of the bars. Currently, if the bar is representing 0% (as shown) the value covers the label. The idea behavior would set a minimum height that, in the case of a bar that is shorter than the height of the value itself, places the value above the bar.
  • There is quite likely a good reason for the way you implemented but I am curious as to why we did not put all of the code for each viz in its own erb and just render partials on the profile page? Would be much easier to sort everything out. Is this a reason this needed to be done this way?

I am pretty sure that I can handle the remainder of the styling. I am going to move the if/else statements to simply not render the divs if no data is available for the entire chart, instead of displaying a message.

@mphprogrammer: is there a way to simply not render the entire accordion if there is no data for a specific entity at all? Instead of showing an empty accordian?

screen shot 2015-11-01 at 7 00 00 am

SCHOOL PROFILE - General Styling

Wires show overall styling requirements.

Accordions use USDS standards. All accordions open by default for the time being.

For the benefits calculator, please refer to the screencap below. Mirror layout but style to match ours.

Also included is wires file below screencap.

screen shot 2015-10-25 at 9 32 48 am

for 10292015_v3.pdf

SEARCH RESULTS - Institution/Schools

These are currently set up as 'and' filters, and selecting both filters to null results.

Proposed fix:

Add a selector for "all" that is the default filter (above School and Employer)
Change School and Employer filters to 'or' filters.

SCHOOL PROFILE - Data Viz Integration

FOR MONDAY:

Need at least one functioning data viz on the school profile page.

If this is not going to happen, please let @rickleegit know by Sunday evening so that I can plan accordingly. Plan B is to insert the attached graphic into the layout, but would prefer this be a last resort.

outcome measures alt1a nova

START PAGE - Taking all online classes?

Known Issue. Logging it for posterity!

Taking all online classes FOR Monday:

On the "Taking all online classes?" question, the label should be "Will you be taking classes online?"

This UI element should appear ABOVE the search field. It is currently below it.

Options should be - All, None, Both online and on-campus classes. (all, yes) (None, no) (Both, no)

AFTER Monday
The responses should be radio buttons each with the following labels All, None, Both online and on-campus classes. (I know we need to work out how this works on pgs 2-3.

PROFILE - Return to Search Results

Please add a "Back to Search Results" text link above the school name. Standard link styling.

Do we need to resend the query with this link?

START PAGE - Search field

Can we make this the Design Standards Pattern with the text field connected to the search button?

screen shot 2015-10-22 at 4 19 50 pm

Also, can we change the hint to "Search by School, Employer or State"?

We know we need to break with width standards on these. Just recording for posterity!

"0" Graduation Rate should up as 0%

Oxnard College has a graduation rate of 0% and should show up accordingly.

if the data is I provided was blank then it should say no data (or something similiar).

START PAGE: Dropdown menu

This is a known issue. Just logging it...

The value labels in the dropdowns are a little hinky. Looks as if they are using the browser UI components and the alignment is off.

START PAGE - About Your School Field Ordering Error

I may have miscommunicated the placement of this element.

The online classes menu should be in the Step 2 container and above the search field.

Currently it appears in the Step 1 container below the length of service element as shown in the screencap. The screencap is incorrect.

screen shot 2015-10-25 at 9 20 19 am

START PAGE - Facilities Code Populates in Search Field

Odd thing. If I execute a search and select a school from the type ahead list, the schools facilities code seems to appear for a second. If I use the browser native back button to initiate a new search, the facilities code is already populated in the search field.

screen shot 2015-10-24 at 2 48 19 pm

TOOL Specific - Google Analytics Integration

Existing Accounts:

from Patrick Campbell:

Ideally we would have two GA account running at the same time (POE Account and VA DAP)... that means we can have historical data since launch.
· POE GA Account - UA-46533988-2
· VA GA Account - ???

SEARCH RESULTS - Filters

EDIT: Actually let's discuss this. I am not confident that the proposed solution originally attached to this issue is the bet solution.


Possible to hide filters with zero record counts?

The most glaring use case is as follows:

User selects 'Employer'
All filters have zero matching records except OJT

BTW, Can we spell out OJT to read On-the-job Training?

SEARCH RESULT and SCHOOL PROFILE - About you parameters

These are looking great! Just a few refinements:

  • set width so overflow is not hidden.
  • For dependent fields, can we use a version of the focus state that is red instead of blue to highlight possible required user selections if the parent parameter is changed?

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.