CODE REVIEW: Ryan (DO NOT MERGE)

Most of this looks pretty good! Nice UI. Really glad to see decent tests, though they could use a bit more depth.

PLEASE get the javascript out of your views. That's a terrible practice to pick up.