Coder Social home page Coder Social logo

big-data-trend-visualizer's Introduction

big-data-trend-visualizer

an implementation of using hadoop to process big data and visualize it in a web ui. our first planned visualization is to use Nasdaq ITCH data transformed in VWAP. See 'Contribute to VWAP Visualization' below.

Build Status

Demo: /web

Design

design

API

Deploy

Prior to running deploy steps, please complete 'Prerequisites'

  1. cd api
  2. export AWS_PROFILE=big-data-trends-visualizer
  3. mvn clean install package -Drelease.version=prod && serverless deploy --stage=prod

Prerequisites

  1. Install nvm, see https://github.com/nvm-sh/nvm
  2. Install node, run nvm use v12
  3. Install serverless, run npm install -g serverless
  4. Install serverless plugins npm install -g serverless-plugin-scripts
  5. Install Maven, see http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
  6. Install AWS CLI, see https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html

eg. on Mac I ran brew install awscli

  1. Run aws configure, and enter your AWS credentials. The aws_access_key_id and aws_secret_access_key are secret, reach out to get access.

Edit ~/.aws/credentials and ensure the the profile is named big-data-trends-visualizer

 [big-data-trends-visualizer]
 aws_access_key_id = ********************
 aws_secret_access_key = ****************************************

Web

The web front is composed of 2 views web/home/index.html and web/visualizer/index.html

Run Locally

  1. cd web
  2. npm install
  3. npm start
  4. Open URL http://127.0.0.1:1643/home/ in web browser

Adding dependencies

  1. cd web
  2. npm install
  3. npx bower install <package-name>, see https://bower.io/ for more
  4. IMPORTANT: We are using github pages to host the webpage, please check in all bower_components files

VWAP Visualization

Our planned prototype will target a VWAP Visualization. The idea is to create a visualization for the Nasdaq ITCH data and generate a Volume Weighted Average Price visualization.

  1. Add front end visualization to web/visualizer/index.html

Use D3, see https://d3js.org/, or other library

  1. Split NASDAQ data

Determine the schema of the NASDAQ dataset, see S3 bucket, see https://console.aws.amazon.com/s3/buckets/nasdaq-itch/?region=us-east-1

  1. Write Hadoop Map Reduce Algorithm

Transform from ITCH to VWAP on a cluster of Hadoop machines

  1. Connect the input and output of Hadoop result to the API

Integrate our on-deman API with the Hadoop cluster. This requires us to deliver the input and output to the Hadoop cluster, store it somewhere to be retrieved, and wire it up to an API that returns the result to the customer

Hadoop

To see the Hadoop VWAP implementation, see /hadoop. This code is responsible for converting from ITCH-5.0 to a data trend for a given stock symbol. To see more details on how we convert from Nasdaq ITCH see data/nasdaq/README.md.

The main hadoop application can be found at hadoop/src/main/java/dk/njit/cs643/itch50/vwap/VWAP.java

Resources

big-data-trend-visualizer's People

Contributors

ac547 avatar dclaze avatar jobybejoy avatar

Watchers

 avatar  avatar

Forkers

ac547 jobybejoy

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.