diff --git a/README.md b/README.md index 6425f13..10c0007 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,132 @@ [![Build Status](https://travis-ci.com/fac-14/race-to-zero.svg?branch=master)](https://travis-ci.com/fac-14/race-to-zero) [![codecov](https://codecov.io/gh/fac-14/race-to-zero/branch/master/graph/badge.svg)](https://codecov.io/gh/fac-14/race-to-zero) -## Overview +# Race to Zero + +![](https://media.giphy.com/media/ful6IbWkBsVhe/giphy.gif) -### Description Race to Zero helps users start achieving a zero waste lifestyle. Through simple challenges and information, users can discover easy ways to begin reducing their waste and learn why, tracking their progress through a points and achievements based gaming system. -### Team Roles -[Joe](https://github.com/thejoefriel) - Scrum Master -[Emma](https://github.com/SleepySheepy172) - DevOps -[Armand](https://github.com/Armand-Lluka) - Researcher -[Simon](https://github.com/dupreesi) - QA +### The Team +[Joe](https://github.com/thejoefriel) - Scrum Master | +[Emma](https://github.com/SleepySheepy172) - DevOps | +[Armand](https://github.com/Armand-Lluka) - Researcher | +[Simon](https://github.com/dupreesi) - QA ### Tech Stack -| Core | DevTools | Testing | +| Core | Testing | Other | | - | -------- | -------- | -|Node|Codecov|nodemon -|Express|eslint|supertest -|Handlebars|bcryptjs|nyc -|PostgreSQL|body-parser|tap-spec -|HTML|env2|tape -|CSS|express|| -|Sass|express-handlebars|| -||serve-favicon|| +|Node|jest|bcryptjs +|Express|supertest|pg-promise +|Handlebars|eslint|body-parser +|PostgreSQL|nyc|serve-favicon +|HTML|codecov|env2| +|CSS|nodemon|| +|Sass||| + + +## Getting Started +How to get a copy of the project up and running on your local machine. + +*Please ensure you have this software **installed and running** on your local machine **before** you attempt to run this webapp.* +> **Node** (via nvm recomended) +> see: https://github.com/creationix/nvm + +> **PostgreSQL** +> see: https://wiki.postgresql.org/wiki/Detailed_installation_guides + +### Setup + +#### 1. Clone the repo: + +``` +$ git clone https://github.com/fac-14/race-to-zero.git +$ cd race-to-zero +``` +#### 2. Install *Dependencies* from NPM + +``` +$ npm i +``` + +#### 3. Ensure you have the Required Environment Variables + +create a `.env` file in your `race-to-zero` directory. +add a line for your `DATABASE_URL` variable and one for `TEST_DB_URL`. +```sh +DATABASE_URL = postgres://simon:pw123@localhost:5432/race_zero +TEST_DB_URL = postgres://simon:pw123@localhost:5432/test_race2 +``` + +#### 4. Make sure the Databases are setup +create a `race-zero` and `test_race2` database in psql and alter the database owner. +``` +$ psql (or pgcli) +# CREATE DATABASE race_zero; +# CREATE DATABASE test_race2; +# CREATE SUPERUSER simon WITH PASSWORD 'pw123'; +# ALTER DATABASE race_zero OWNER TO simon; +# ALTER DATABASE test_race2 OWNER TO simon; +``` +populate the `race_zero` database. +``` +$ npm run build +``` + +#### 5. Run the Tests +to make sure everything is working as it should. +``` +npm test +``` + +#### 5. Run the Server + +``` +npm run dev +``` + +That's it. +Now, play with it to your heart's content! + + +## Design + +### Initial Problem + +The UK is poor at recycling. + +### Secondary & User Research + +- People want to recycle more +- Don't really know what, how, where to recycle +- Don't see a big difference / there's confusion between recycling, reducing waste, re-using items - these all get conflated as the same issue for people +- Want to find easy ways to understand why waste matters +- Want easy ways to learn how to reduce waste +- Want a fun way to track progress to motivate them to do more +- There are lots of blogs/websites about reducing waste and zero waste living but they are often information overload + +### Goals + +Create a fun way for people to working towards a zero waste lifestyle + +### Initial Prototype + +[View initial prototype for user testing here](https://projects.invisionapp.com/share/N8NX3P536EQ) + +### User testing + +Tested with four users. Key findings: + +- Need to re-assess how the user interacts with challenges in relation to accepting and completing them + +- Wanted more ways to get a sense of 'reward' for completed challenges + +- The app design was popular and felt familiar to people + +- Finding the stats seemed more difficult than finding the sign out option - moving this to the avatar dropdown could be more user friendly + -### User stories +## User stories #### Unregistered User Stories - [ ] As a unregistered user I want to be able to see a landing page so I can find out more about the zero waste challenge. @@ -84,42 +186,7 @@ Race to Zero helps users start achieving a zero waste lifestyle. Through simple - [ ] As a logged in user I want to be able to find out more information about zero-waste topics(plastics, food waste, clothing waste etc) from the dashboard, so that I can learn more about zero waste at any point. -## Design - -### Initial Problem - -The UK is poor at recycling. - -### Secondary & User Research - -- People want to recycle more -- Don't really know what, how, where to recycle -- Don't see a big difference / there's confusion between recycling, reducing waste, re-using items - these all get conflated as the same issue for people -- Want to find easy ways to understand why waste matters -- Want easy ways to learn how to reduce waste -- Want a fun way to track progress to motivate them to do more -- There are lots of blogs/websites about reducing waste and zero waste living but they are often information overload - -### Goals - -Create a fun way for people to working towards a zero waste lifestyle - -### Initial Prototype - -[View initial prototype for user testing here](https://projects.invisionapp.com/share/N8NX3P536EQ) - -### User testing - -Tested with four users. Key findings: - -- Need to re-assess how the user interacts with challenges in relation to accepting and completing them - -- Wanted more ways to get a sense of 'reward' for completed challenges - -- The app design was popular and felt familiar to people - -- Finding the stats seemed more difficult than finding the sign out option - moving this to the avatar dropdown could be more user friendly - + ## Build ### Day One @@ -135,5 +202,3 @@ Tested with four users. Key findings: - map out database schema ![](https://files.gitter.im/foundersandcoders/Trash-Team/A64Y/Screen-Shot-2018-09-11-at-16.08.41.png) - -