Code review for Ecometrix MVP

Hi Mike,

Here's a pull request covering the site, app, and API as we discussed this morning. I should also have the corresponding sequence diagram ready for our meeting tomorrow or Wednesday for you to review as well. I think the diagram can be reviewed separately, but I'll post a draft on the repo.

Just to clarify, here is an outline of the API and app interaction, which provides sessions management and content update services:

### Session Management
The session management is handled by the `userlist` and `sessions` collections on our server side database. Session management is initiated by the app by `app_login.js`, which uses the following calls to the `login` router:
 * **adduser:** When the new user form is filled, this POST request to `userlist` to insert a new user and update the corresponding session in `sessions`. Note that sessions are created automatically by MongoStore, and we are also appending `username`, `isLogged` (the number of times user has logged in), and `token` (the md5 hash of the current time and username).
 * **verify** This is a GET request from `userlist` to service the existing user login scenario. The router receives the request and checks the username and password from the `userlist` collection. Upon verification, we update the `sessions` collection with a new token that was generated at the time of the request. 
 * **resumeSession** This is a GET request from `sessions` to determine whether a session matching the request's session username exists. The read query is handled by MongoStore, so we just use the wrapper to check for an existing username via `req.sessions.username`.

### Content Update
Eventually this will include progress updates as well. All content updates are initiated by `app.js` and directed to the `posts` router by requesting the **posts/index** for each batch of questions, where "index" determines which batch of questions to return. The `posts` router is currently storing all of our questions in JSON, although we may start storing the JSON content in another location, such as `Firebase io` or another location that we discussed.

### Next steps
Sorry for the long description, but let me know if it can be improved in any way. Here are some next immediate steps after this code review:
 * Before we reach our "triage-able" MVP, I believe the only thing left to add is meaningful content. I will send you the GoogleDoc soon. 
 * I also think that the description and diagram (which I will post tomorrow or Wednesday) may be useful to explain the backend service related aspects for any upcoming MVP demos. I will work on this and it can be reviewed separately.
<a href='#crh-start'></a><a href='#crh-data-%7B%22processed%22%3A%20%5B%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14466571%22%2C%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14466791%22%2C%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14466816%22%2C%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14467110%22%2C%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14467960%22%2C%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14467967%22%2C%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23issuecomment-47801272%22%5D%2C%20%22comments%22%3A%20%7B%22Pull%2011de5d0bb3b267efe0a39c88eecadfcc858007b2%20public/app/app_addUser.html%2017%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14466816%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22hide%20password%22%2C%20%22created_at%22%3A%20%222014-07-02T16%3A19%3A32Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/3292701%3F%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mtshomsky%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20public/app/app_addUser.html%3AL1-29%22%7D%2C%20%22Pull%2011de5d0bb3b267efe0a39c88eecadfcc858007b2%20public/app/app.css%20108%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14467967%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22missing%20%23%22%2C%20%22created_at%22%3A%20%222014-07-02T16%3A35%3A50Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/3292701%3F%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mtshomsky%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20public/app/app.css%3AL1-206%22%7D%2C%20%22Pull%2011de5d0bb3b267efe0a39c88eecadfcc858007b2%20public/app/app.css%2099%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14467960%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22missing%20%23%22%2C%20%22created_at%22%3A%20%222014-07-02T16%3A35%3A40Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/3292701%3F%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mtshomsky%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20public/app/app.css%3AL1-206%22%7D%2C%20%22Pull%2011de5d0bb3b267efe0a39c88eecadfcc858007b2%20public/app/app.html%2031%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14466571%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Potentially%20one%20too%20many%20%5C%22a%5C%22s%20at%20the%20end%20of%20EcoScore%200%22%2C%20%22created_at%22%3A%20%222014-07-02T16%3A15%3A15Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/3292701%3F%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mtshomsky%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20public/app/app.html%3AL1-139%22%7D%2C%20%22General%20Comment%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23issuecomment-47801272%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22When%20you%20make%20those%20changes%20LGTM%22%2C%20%22created_at%22%3A%20%222014-07-02T16%3A42%3A56Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/3292701%3F%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mtshomsky%22%7D%7D%5D%2C%20%22title%22%3A%20%22General%20Comment%22%7D%2C%20%22Pull%2011de5d0bb3b267efe0a39c88eecadfcc858007b2%20views/layout.jade%2011%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14467110%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Let%27s%20not%20include%20jquery%20twice%20unless%20we%20need%20to%22%2C%20%22created_at%22%3A%20%222014-07-02T16%3A24%3A02Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/3292701%3F%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mtshomsky%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20views/layout.jade%3AL1-14%22%7D%2C%20%22Pull%2011de5d0bb3b267efe0a39c88eecadfcc858007b2%20public/app/app.js%20372%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/LukeSwart/ecometrix_site-api/pull/1%23discussion_r14466791%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22Non-issue%3A%20I%20like%20JQuery%20a%20lot.%20%20We%20may%20benefit%20from%20an%20Ember%20or%20Angular%20refactor.%22%2C%20%22created_at%22%3A%20%222014-07-02T16%3A19%3A08Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/3292701%3F%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/mtshomsky%22%7D%7D%5D%2C%20%22title%22%3A%20%22File%3A%20public/app/app.js%3AL1-373%22%7D%7D%7D'></a>
<a href='https://www.codereviewhub.com/'><img src='http://www.codereviewhub.com/site/github-bar.png' height=40></a>
- [ ] <a href='#crh-comment-Pull 11de5d0bb3b267efe0a39c88eecadfcc858007b2 public/app/app.html 31'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/LukeSwart/ecometrix_site-api/pull/1#discussion_r14466571'>File: public/app/app.html:L1-139</a></b>
- <a href='https://github.com/mtshomsky'><img border=0 src='https://avatars.githubusercontent.com/u/3292701?size=16' height=16 width=16'></a> Potentially one too many "a"s at the end of EcoScore 0
- [ ] <a href='#crh-comment-Pull 11de5d0bb3b267efe0a39c88eecadfcc858007b2 public/app/app.js 372'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/LukeSwart/ecometrix_site-api/pull/1#discussion_r14466791'>File: public/app/app.js:L1-373</a></b>
- <a href='https://github.com/mtshomsky'><img border=0 src='https://avatars.githubusercontent.com/u/3292701?size=16' height=16 width=16'></a> Non-issue: I like JQuery a lot.  We may benefit from an Ember or Angular refactor.
- [ ] <a href='#crh-comment-Pull 11de5d0bb3b267efe0a39c88eecadfcc858007b2 public/app/app_addUser.html 17'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/LukeSwart/ecometrix_site-api/pull/1#discussion_r14466816'>File: public/app/app_addUser.html:L1-29</a></b>
- <a href='https://github.com/mtshomsky'><img border=0 src='https://avatars.githubusercontent.com/u/3292701?size=16' height=16 width=16'></a> hide password
- [ ] <a href='#crh-comment-Pull 11de5d0bb3b267efe0a39c88eecadfcc858007b2 views/layout.jade 11'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/LukeSwart/ecometrix_site-api/pull/1#discussion_r14467110'>File: views/layout.jade:L1-14</a></b>
- <a href='https://github.com/mtshomsky'><img border=0 src='https://avatars.githubusercontent.com/u/3292701?size=16' height=16 width=16'></a> Let's not include jquery twice unless we need to
- [ ] <a href='#crh-comment-Pull 11de5d0bb3b267efe0a39c88eecadfcc858007b2 public/app/app.css 99'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/LukeSwart/ecometrix_site-api/pull/1#discussion_r14467960'>File: public/app/app.css:L1-206</a></b>
- <a href='https://github.com/mtshomsky'><img border=0 src='https://avatars.githubusercontent.com/u/3292701?size=16' height=16 width=16'></a> missing #
- [ ] <a href='#crh-comment-Pull 11de5d0bb3b267efe0a39c88eecadfcc858007b2 public/app/app.css 108'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/LukeSwart/ecometrix_site-api/pull/1#discussion_r14467967'>File: public/app/app.css:L1-206</a></b>
- <a href='https://github.com/mtshomsky'><img border=0 src='https://avatars.githubusercontent.com/u/3292701?size=16' height=16 width=16'></a> missing #
- [ ] <a href='#crh-comment-General Comment'></a> <img src='http://www.codereviewhub.com/site/github-remaining.png' height=16 width=60>&nbsp;<b><a href='https://github.com/LukeSwart/ecometrix_site-api/pull/1#issuecomment-47801272'>General Comment</a></b>
- <a href='https://github.com/mtshomsky'><img border=0 src='https://avatars.githubusercontent.com/u/3292701?size=16' height=16 width=16'></a> When you make those changes LGTM


<a href='https://www.codereviewhub.com/LukeSwart/ecometrix_site-api/pull/1?mark_as_completed=1'><img src='http://www.codereviewhub.com/site/github-mark-as-completed.png' height=26></a>&nbsp;<a href='https://www.codereviewhub.com/LukeSwart/ecometrix_site-api/pull/1?approve=1'><img src='http://www.codereviewhub.com/site/github-approve.png' height=26></a>&nbsp;<a href='https://github.com/LukeSwart/ecometrix_site-api/pull/1'><img src='http://www.codereviewhub.com/site/github-refresh.png' height=26></a>
<a href='#crh-end'></a>