Nothing presented in the issues or in this repo is a final product unless it is marked as such or appears on www.consumerfinance.gov/owning-a-home. Some copy or formulas may be replaced with dummy text to ensure that we follow any and all privacy and security procedures at the CFPB. All the designs, layouts, and evolution of our decision making process are accurate.
We are working under an agile framework, and plan to use this repo to publish, receive feedback, and iterate on that feedback as often as possible. Our goal is to see user trends and reactions to our work. We want as much feedback as possible to help us make informed decisions so that we can make this tool better. Unfortunately, we will not be able to respond to every piece of feedback or comment we receive, but intend to respond with our progress through the evolution of the tool.
Sheer is "A Jekyll-inspired, elasticsearch-powered, CMS-less publishing tool."
To get started with Sheer:
Install Elasticsearch however you'd like. (we use homebrew)::
$ brew install elasticsearch
Check out the sheer Github project:
$ git clone https://github.com/rosskarchner/sheer.git
create a virtualenv for sheer:
$ mkvirtualenv sheer
The new virtualenv will activate right away. to activate it later on (say, in a new terminal session) use the command "workon sheer"
Install sheer into the virtualenv with the -e flag (which allows you to make changes to sheer itself):
$ pip install -e ~/path/to/sheer
Install sheer's python requirements:
$ pip install -r ~/path/to/sheer/requirements.txt
You should now be able to run the sheer command:
$ sheer
usage: sheer [-h] [--debug] {inspect,index,serve} ...
sheer: error: too few arguments
Currently owning-a-home's Rate Checker is powered by a private API that returns mortgage rate data. To configure owning-a-home you will need to point to an API url in config/config.js
. To do this:
In the config folder, copy the example-config.js
file and rename it config.js
Change line 3 to point to an appropriate API url:
config.rateCheckerAPI = 'YOUR API URL HERE';
The owning-a-home front-end currently uses the following:
- LESS
- Capital Framework
- Grunt
- node/CommonJS style modules (compiled with Browserify)
- Bower & npm for package management
- Install node.js however you'd like.
- Install Grunt, Bower and Browserify:
$ npm install -g grunt-cli bower browserify
Each time you fetch from upstream, install dependencies with npm and run grunt
to build everything:
$ npm install
$ grunt
To work on the app you will need sheer running to compile the templates in _layouts
. There is also a grunt watch
command that will recompile Less and JS on the fly while you're developing.
# use the sheer virtualenv
$ workon sheer
# navigate to the built app directory that grunt created
$ cd dist
# start sheer
$ sheer serve
# open a new command prompt and run:
$ grunt watch
To view the site browse to: http://localhost:7000
Browser tests can be found in test/browser_testing/
directory. To run them you will need Chromedriver.
Once Chromedriver is downloaded, unzip the chromedriver file and copy it to a folder that is accessible to the development environment, such as /usr/bin/
.
Before running tests, you will need to set up a Python virtual environment, install dependencies, and create an enviconment.cfg file.
$ cd test/browser_testing/
$ mkvirtualenv oah-tests
$ pip install test/browser_testing/requirements.txt
Rename test/browser_testing/features/example-environment.cfg
to environtment.cfg
and edit the file to point the chromedriver_path
to your local chromedriver file.
$ workon oah-tests
$ behave -k
We welcome contributions, in both code and design form, with the understanding that you are contributing to a project that is in the public domain, and anything you contribute to this project will also be released into the public domain. See our CONTRIBUTING file for more details.