Git Product home page Git Product logo

item-chimp's Introduction

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.

item-chimp's People

Contributors

hsubox76 avatar kennyt avatar meisterpeeps avatar michaelcheng924 avatar spidy88 avatar vinwin avatar wdk122 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

item-chimp's Issues

Front-end product search page

Front-end React page has ability for users to enter a search for a product and view results. Users should able to filter by sites, price, and min/max star rating. Also allows price comparisons. Ties in to D3 display (separate task).

Let users create a watchlist

Involves saving data to intermediate table and product table. Then cronjob(?) to check that product every day and email user if there are changes (price change or new reviews - external or internal). Big task!

User following

If you follow a user, you will be notified when that user posts a new review. Follow button should be in user's profile page probably?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.