datamade/college-costs

Name: college-costs

Owner: datamade

Description: A tool to help students weigh the costs and rewards of a college program.

Forked from: cfpb/college-costs

Created: 2016-12-07 22:20:16.0

Updated: 2016-12-07 22:20:18.0

Pushed: 2016-11-21 03:26:29.0

Homepage: null

Size: 41386

Language: CSS

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Build Status Coverage Status

Paying for College

Tools to help students make informed financial decisions about college.

Setup dependencies
Code dependencies
Testing dependencies
Data specifications
Installation

This project is not fully functional, but feel free to give it a spin. Here's how:

The college-cost tools should show up at localhost:8000/paying-for-college2/

The app is set up to run as a component of CFPB's website, consumerfinance.gov, so if you run it locally, some fonts and font-related icons may not load because of Cross-Origin Resource Sharing policies.

Search

The app has a simple API for searching schools by name or nickname. The endpoint, to which you can append a querystring, is:

erstanding-your-financial-aid-offer/api/search-schools.json

Elasticsearch needs to be running locally for search to work.
Your launch command will vary depending on which version of Elasticsearch is installed.

For 2.x versions installed on a mac with homebrew, this is an example command:

ticsearch --path.conf=/Users/[MAC USERNAME]/homebrew/opt/elasticsearch/config/elasticsearch.yml

1.x versions use a --config= param instead of path.conf=

With elasticsearch running, you can now build an index of college data:

nage.py rebuild_index

Now you should get a json response when hitting the search API. You can search by school name or nickname, such as:

http://localhost:8000/paying-for-college2/understanding-your-financial-aid-offer/api/search-schools.json?q=jayhawks

Running tests
Python Tests

You can run python tests from the project root with this command:

test.sh
Javascript Tests

To run JavaScript unit tests:

test

To run functional tests, you need to make sure that you have version 4.0+ of Node.js. Install/upgrade it using either npm or brew.

You'll also need webdriver-manager and protractor:

install -g webdriver-manager protractor
river-manager update --standalone

To run the tests:

art webdriver in a terminal tab:
river-manager start
 you're running it on a localhost, in a fresh tab:
on manage.py runserver
d in a third tab:
ractor test/functional/conf.js
Load Tests

Before you run load tests, you will first need to download and unzip JMeter 3.0.

In terminal, execute JMeter and run the following command to open JMeter GUI:

h to JMeter Folder]/bin/jmeter.sh -t [Path to this repository]/college-costs/test/load_testing/Offer.jmx -Jserver_url [parent domain to test] -Jthreads [number of users hitting the site, default: 1] -Jrampup [adding 1 user per specified second, default 5]

As an example to if I am in a folder where JMeter and this repository were in, and I am testing it locally on port 8000 with 8 users and add 1 user per 3 seconds:

he-jmeter-3.0/bin/jmeter.sh -t college-costs/test/load_testing/Offer.jmx -Jserver_url localhost:8000 -Jthreads 8 -Jrampup 3

The corresponding Offer.csv in test/load_testing specified the parameters being used for testing. The order and name of each column is specified in the JMX file under CSV Offer.

Getting involved

If you find a bug or see a way to improve the project, we'd love to hear from you. Add an issue, or fork the project and send us a pull request with your suggested changes.


Open source licensing info
  1. TERMS
  2. LICENSE
  3. CFPB Source Code Policy

Credits and references

This project is based on the current CFPB Paying for College suite of tools for students.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.