Skip to content
Gergana Minova a.k.a. Gigi edited this page Sep 19, 2019 · 5 revisions

FOOD MILES

Team:

Installation

npm install

Create a .env file and paste your database links there:

TEST_DATABASE_URL=yourPostgreSQLTestingLink
DATABASE_URL=yourPostgreSQLLink
npm run db_init
npm run lint
npm test
npm run watch

Tasks

1st task (mob)

  • files structure / project architecture

Set up / dependencies

  • npm scripts
  • npm init and install / package.json
  • Readme instructions on setting up .env etc.
  • linter setup / eslint

DB

  • db basic setup
  • db build sql / schema definition / initial data
  • Schema https://dbdiagram.io/d/5d7637ed83427516dc0b77f7
  • DB queries
    • Get all food items for sale (names)
    • Using supermarket name and items in shopping list, return each of the item name, location and flag.
    • From supermarket and shopping list, return the average score of each item
    • From supermarket and shopping list: return list of supermarkets ordered by the average score of the items
  • input initial dummy data / script random ?

Express server

  • express.js setup / basic routes

    • static assets setup
    • View Engine setup
    • "/" - onboarding page
    • "/select" - slection page
    • "/results" - list of supermarkets
    • "/itemsbysupermarket" - granular breakdown on data
    • error pages 404 & 500
  • Way to translate average score to what is displayed in our rating e.g. 'Mostly sourced locally'

Pages and components

  • Components:
    • Onboarding page
    • Item selection backend
    • Item selection frontend update
    • Shopping list component w/ updates
    • Results page
    • Breakdown page
    • Main Layout
    • Header (with back > logo / home buttons)

Tests / deployment

  • Basic test running (e.g. 1 + 1 = 2)
  • deploy on Heroku
  • Travis CI

Images / SASS

  • assets folder with initial images
  • Initial styling with SASS

Stretch goals

  • About Us Page
  • MENU for selecting items/ dropdown filters

DevOps

  • automated build and test for DB test
  • Travis continuous integration
  • Continuous delivery to Heroku

Dependecies

  • express-handlebars
  • nodemon
  • node-sass
  • express
  • tape
  • tap-spec
  • supertest
  • nock
  • pg
  • eslint
  • normalize.css
  • SASS
  • body-parser
  • dotenv
  • serve-favicon

Inspirational Quote

“If you decide that you’re going to do only the things you know are going to work, you’re going to leave a lot of opportunity on the table.” — Jeff Bezos

What's our long-term goal?

1. WHAT? Define the problem:

  • Global Warming
  • Food Mileage/ Shipping and Logistics
  • Hard to access food origin information before going shopping
  • Hard to plan food meals which contain local ingredients
3. WHY?
  • I'd like to be better informed of where my food comes from
  • I'd like to know in advance the options available
  • Help people eat more seasonal and local food
  • Support local producers/suppliers
  • Contribute to local economy
  • Prevent food waste of local produce GOAL: Reduce local food waste, Reduce Global warming buy buying local over imported foos and Help local economy

5. HOW?

  • Build an app where users post where food is coming from
  • Integrate notifications, for example Local strawberries have just become available, rather than buying imported ones

Assumptions

Our app user:

  • Cares about local produce
  • Does her own shopping
  • Uses a shopping list
  • Buys it in person
  • Likes cooking
  • Can afford to pay more for quality / ethical goods
  • Willing to travel to different / further supermarkets to get the produce they want
  • Uses the internet and apps - digitally savvy

Main user journey

  1. As a user, I need an easy way to find out how local my shopping list is by comparing supermarkets and where they source their food from.

Supporting user journeys

  1. Browsing / searching / adding As a user I need to be able to find different types of food items and add them to my shopping list.

  2. Results / analysis / selection As a user I need to be able to quickly see the 'how local' scores of my shopping list and individual items.

  3. Accessibility As a user the site needs to be accessible and easy to navigate.