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
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Tools to help students make informed financial decisions about college.
This project is not fully functional, but feel free to give it a spin. Here's how:
Install the setup dependencies if you don't have them.
Go to the local directory where you want the project to be created, make a virtual environment, clone this repository (or your own fork of it).
rtualenv college-costs
clone https://github.com/cfpb/college-costs.git .
irtualenvproject
Set up database assets and front-end resources:
andalone_setup.sh
Now you should be able to fire up a local web server:
nage.py runserver
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.
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
You can run python tests from the project root with this command:
test.sh
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
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.
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.
This project is based on the current CFPB Paying for College suite of tools for students.