Skip to content

Easily compare reviews and prices to make informed purchasing decisions

License

Notifications You must be signed in to change notification settings

PebbleFrame/item-chimp

Repository files navigation

ItemChimp

A Data Visualization Tool for Shoppers

Team

  • Product Owner: Christina Holland
  • Scrum Master: Michael Cheng
  • Development Team Members: Jeff Peoples, Vinaya Gopisetti

Table of Contents

  1. Usage
  2. Requirements
  3. Development
    1. Installing Dependencies
    2. Tasks
  4. Team
  5. Contributing

Usage

This app is built with React.js on the front-end and Node.js/Express on the back-end. There are several major parts of this app:

  1. Front-end: React.js - React allows each part of the UI to be broken into modular components. These components can be inserted into other components easily to maintain an organized separation of concerns. The various components for the React front-end are found in the client folder.

  2. Back-end: Node.js/Express Framework - The Express framework provides middleware to make working with Node much simpler.

  3. Database: MySql (Bookshelf ORM) - MySql, a relational database, is used to store user and review data. The schema and models for our MySql database can be found in server/db.

  4. APIs: The two primary APIs used in this app are the Walmart and Best Buy APIs. The Amazon API is also incorporated into this app, but unfortunately, Amazon does not return reviews directly, so we cannot utilize its review data for our D3 visualization.

  5. D3 - D3 is used to visualize the data retrieved from API requests.

  6. Browserify - Browserify is used to allow the require statement to be used on browser code. It recursively analyzes all the require calls in the app and builds a bundle that is served up to the browser in a single <script> tag. It is standard practice to use something like Browserify (or Webpack) with React.js.

  7. Grunt - Grunt is used to run the server (nodemon) and browserify at the same time, so that whenever a React file is changed, browserify will automatically compile it. Therefore, use grunt serve for development.

Requirements

  • Node 0.10.x
  • MySql

Development

Installing Dependencies

From within the root directory:

sudo npm install -g bower
npm install
bower install

To set up the MySql database:

mysql.server start
mysql -u root < server/db/schema.sql

schema.sql will build the necessary database for the app.

Getting started

To start the app, simply use

grunt serve

from the root directory.

Roadmap

View the project roadmap here

Contributing

See CONTRIBUTING.md for contribution guidelines.

About

Easily compare reviews and prices to make informed purchasing decisions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published