Giter Site home page Giter Site logo

scottlogic / stockflux Goto Github PK

View Code? Open in Web Editor NEW
123.0 57.0 35.0 18.48 MB

StockFlux is a desktop application developed by Scott Logic that uses the OpenFin HTML5 container together with React, Redux, ES2015 and d3fc

License: MIT License

JavaScript 75.85% CSS 19.26% HTML 4.51% Batchfile 0.37%
react redux d3fc d3 openfin

stockflux's Introduction

StockFlux

Stockflux is a suite of applications, components and libraries developed by Scott Logic designed to showcase the latest in Openfin and FDC3.

main_screenshot

Here are a few things to try:

  • Group and dock multiple apps together
  • Reposition the launcher with the controls in the right hand side of the launcher
  • Quickly launch any one of our Applications from the icons on the left hand side
  • Search for a symbol and:
    • Add it to your watchlist
    • View the last 2 years of OHLC data
    • Read the latest news stories

Installing

In order to install the Launcher application, download the StockFlux installer here and run the executable. If you haven't already installed an OpenFin application, this will install the required runtime. It'll also add the shortcut to StockFlux to your desktop and start menu.

The project is deployed and hosted by AWS, so with each time the application is ran the latest released version will be used. This means no further installations will be needed to keep the installed project up to date.

Applications

Core

StockFlux Launcher

The launcher is considered the entry point for the applications. It allows the user to search for symbols and the ability to launch the News, Chart and Watchlist applications.

StockFlux Watchlist

The watchlist allows the user to save a list of symbols that they may wish to view news stories or chart data about.

StockFlux Chart

A chart application to show OHLC(Open, High, Low, Close) symbol data over the last 5 years.

StockFlux News

A simple news viewer that shows the user the latest 10 stories about their chosen symbol.

StockFlux Container

A headless app that creates and manages child windows of the Chart and News applications.

Supporting

StockFlux Core

A collection of common services and util methods that are shared across the suite of applications.

StockFlux Components

A collection of common components shared across the core applications.

Key Tech used

Run Locally

The suite was designed to be a set Openfin applications. To install Openfin for local development run the following command:

npm install -g openfin-cli

More information on Openfin-cli can be found here.

To start you must first build the some of the supporting applications.

npm install
npm run bootstrap
npm run build

To use the local developer proxy you will also need to build the proxy component using :

npm run proxy:build

For local development and to run the suite of apps from what is on the local machine a proxy override is needed. This is available on the following command:

npm run proxy:start

To run as a suite of apps run the following commands:

npm run all:start
npm run launcher:launch

In isolation each app can be ran individually within its own directory using the following commands:

npm run start
npm run launch

The applications run on the following ports:

Application Port
Chart 8051
Watchlist 8052
Launcher 8053
Container 8055
News 8056
Proxy 3000

If these port selections conflict with another service you may be running they can be changed in the package.json file of each application.

Run FDC3 service locally

To launch our apps together as a full suite that can interact with each other we need to run the FDC3 service locally. Since the FDC3 service is still in development phase we used the project at this commit locally and in AWS. The FDC3 service repo has instructions on how to run it locally but at the time of writing (25/06/2019) there is not a clear way of making it point at our App Directory URL. Currently it defaults to it's own json file. To make it point to either a local or AWS hosted version of our app directory we need to make the following change in the file AppDirectory.ts

const URL = {YOUR_URL}

If you are running the app directory locally, by default, it will be found at:

http://localhost:3000/api/apps/v1

The AWS hosted version is at:

https://stockflux.scottlogic.com/api/apps/v1

Once this change has been made you can run the service start launching applications from it.

The FDC3 service will be ran from port 3923

Sample App Directory

To run your own sample app directory please refer to the readme in the Stockflux-Cloud repository.

AWS Hosted Version

The application suite and it's APIs are all hosted on AWS. The standalone Openfin Installer can be found here

The installer requires no dependencies or prior configuration to be ran.

Project Package Dependency Diagram

package

How the apps communicate

The Application make use of the Intents API and the InterApplicationBus to launch each other and pass messages. The Chart and News applications are not launched via intents as we allow the user to launch multiple of them. The Container application registers their intents and creates child windows when called.

communications

stockflux's People

Contributors

akhmorgan avatar andysmithsl avatar asasusl avatar augusteba avatar bjedrzejewski avatar boyd-m avatar colineberhardt avatar dkerr-scottlogic avatar jackg188 avatar jdhodges avatar jleft avatar johnston97 avatar jrhenderson1988 avatar kangelsl avatar markjose avatar mbssantos avatar mic-smith avatar msuperina avatar oriondean avatar owennw avatar rjmcneill avatar swoods-scottlogic avatar wpferg 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stockflux's Issues

Build fails ...

After running npm install then running the build ...

C:\projects\OpenFinD3FC>grunt build
Running "showcase" task
Loading "Gruntfile.js" tasks...ERROR
>> Error: Cannot find module 'time-grunt'
Warning: Task "build" not found. Use --force to continue.

Aborted due to warnings.

Running "copy:main" (copy) task


Running "connect:livereload" (connect) task
Started connect web server on http://0.0.0.0:5000

Done, without errors.

Handle 404 better. Make 404 impossible with search terms.

User should be able to recover from 404. Possibly being shown the homepage/dashboard with an explanation why 404 happened. 404 should not happen with any search terms.

Search terms could simply disallow some characters that are problematic.

Create start page

Create an empty start page, not wired into anything, as per the balsamiq mock up.

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.