{"id":18889759,"url":"https://github.com/scottlogic/stockflux","last_synced_at":"2025-04-14T23:30:58.092Z","repository":{"id":37926194,"uuid":"47250097","full_name":"ScottLogic/StockFlux","owner":"ScottLogic","description":"StockFlux is a desktop application developed by Scott Logic that uses the OpenFin HTML5 container together with React, Redux, ES2015 and d3fc","archived":false,"fork":false,"pushed_at":"2023-03-02T11:34:23.000Z","size":18927,"stargazers_count":124,"open_issues_count":177,"forks_count":35,"subscribers_count":58,"default_branch":"dev","last_synced_at":"2025-03-28T11:39:03.142Z","etag":null,"topics":["d3","d3fc","openfin","react","redux"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ScottLogic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-12-02T09:18:18.000Z","updated_at":"2024-11-11T19:27:40.000Z","dependencies_parsed_at":"2024-11-08T07:50:56.743Z","dependency_job_id":"5f9abdba-98f3-49b2-aa13-fcda6bf8bdec","html_url":"https://github.com/ScottLogic/StockFlux","commit_stats":null,"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2FStockFlux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2FStockFlux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2FStockFlux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2FStockFlux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ScottLogic","download_url":"https://codeload.github.com/ScottLogic/StockFlux/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248978473,"owners_count":21192797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["d3","d3fc","openfin","react","redux"],"created_at":"2024-11-08T07:50:48.337Z","updated_at":"2025-04-14T23:30:57.126Z","avatar_url":"https://github.com/ScottLogic.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StockFlux\n\nStockflux is a suite of applications, components and libraries developed by [Scott Logic](http://www.scottlogic.com) designed to showcase the latest in Openfin and FDC3.\n\n![main_screenshot](./stockflux.png)\n\nHere are a few things to try:\n\n- Group and dock multiple apps together\n- Reposition the launcher with the controls in the right hand side of the launcher\n- Quickly launch any one of our Applications from the icons on the left hand side\n- Search for a symbol and:\n  - Add it to your watchlist\n  - View the last 2 years of OHLC data\n  - Read the latest news stories\n\n## Installing\n\nIn order to install the Launcher application, download the StockFlux installer [here](https://install.openfin.co/download/?os=win\u0026config=https%3A%2F%2Fstockflux.scottlogic.com%2Fapi%2Fapps%2Fv1%2Fstockflux-launcher%2Fapp.json\u0026fileName=stockflux\u0026unzipped=true) 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.\n\nThe 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.\n\n## Applications\n\n### Core\n\n#### StockFlux Launcher\n\nThe 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.\n\n#### StockFlux Watchlist\n\nThe watchlist allows the user to save a list of symbols that they may wish to view news stories or chart data about.\n\n#### StockFlux Chart\n\nA chart application to show OHLC(Open, High, Low, Close) symbol data over the last 5 years.\n\n#### StockFlux News\n\nA simple news viewer that shows the user the latest 10 stories about their chosen symbol.\n\n#### StockFlux Container\n\nA headless app that creates and manages child windows of the Chart and News applications.\n\n### Supporting\n\n#### StockFlux Core\n\nA collection of common services and util methods that are shared across the suite of applications.\n\n#### StockFlux Components\n\nA collection of common components shared across the core applications.\n\n### Key Tech used\n\n- [React](https://reactjs.org/)\n- [Create React App](https://facebook.github.io/create-react-app/)\n- [FDC3](https://fdc3.finos.org/)\n- [Openfin](https://developers.openfin.co/docs)\n- [Openfin Layouts](https://developers.openfin.co/docs/layouts-api)\n\n### Run Locally\n\nThe suite was designed to be a set Openfin applications. To install Openfin for local development run the following command:\n\n```bash\nnpm install -g openfin-cli\n```\n\nMore information on Openfin-cli can be found [here.](https://github.com/openfin/openfin-cli)\n\nTo start you must first build the some of the supporting applications.\n\n```bash\nnpm install\nnpm run bootstrap\nnpm run build\n```\n\nTo use the local developer proxy you will also need to build the proxy component using :\n```bash\nnpm run proxy:build\n```\n\nFor 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:\n\n```bash\nnpm run proxy:start\n```\n\nTo run as a suite of apps run the following commands:\n\n```bash\nnpm run all:start\nnpm run launcher:launch\n```\n\nIn isolation each app can be ran individually within its own directory using the following commands:\n\n```bash\nnpm run start\nnpm run launch\n```\n\nThe applications run on the following ports:\n\n| Application | Port |\n| ----------- | ---- |\n| Chart       | 8051 |\n| Watchlist   | 8052 |\n| Launcher    | 8053 |\n| Container   | 8055 |\n| News        | 8056 |\n| Proxy       | 3000 |\n\nIf these port selections conflict with another service you may be running they can be changed in the `package.json` file of each application.\n\n### Run FDC3 service locally\n\nTo launch our apps together as a full suite that can interact with each other we need to run the [FDC3 service](https://github.com/HadoukenIO/fdc3-service) locally. **Since the FDC3 service is still in development phase we used [the project at this commit](https://github.com/HadoukenIO/fdc3-service/tree/0b0f21f0a7c9ec0cbf67b068bbb20563d2534566) 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`\n\n`const URL = {YOUR_URL}`\n\nIf you are running the app directory locally, by default, it will be found at:\n\n`http://localhost:3000/api/apps/v1`\n\nThe AWS hosted version is at:\n\n`https://stockflux.scottlogic.com/api/apps/v1`\n\nOnce this change has been made you can run the service start launching applications from it.\n\nThe FDC3 service will be ran from port `3923`\n\n#### Sample App Directory\n\nTo run your own sample app directory please refer to the readme in the [Stockflux-Cloud repository](https://github.com/ScottLogic/StockFlux-Cloud).\n\n#### AWS Hosted Version\n\nThe application suite and it's APIs are all hosted on AWS. The standalone Openfin Installer can be found [here](https://install.openfin.co/download/?os=win\u0026config=https%3A%2F%2Fstockflux.scottlogic.com%2Fapi%2Fapps%2Fv1%2Fstockflux-launcher%2Fapp.json\u0026fileName=stockflux\u0026unzipped=true)\n\nThe installer requires no dependencies or prior configuration to be ran.\n\n### Project Package Dependency Diagram\n\n![package ](./package-dependencies.png)\n\n### How the apps communicate\n\nThe Application make use of the [Intents API](https://fdc3.finos.org/docs/1.0/intents-intro) and the [InterApplicationBus](https://developer.openfin.co/jsdocs/stable/fin.desktop.InterApplicationBus.html) 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.\n\n![communications](./communication-dependencies.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottlogic%2Fstockflux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscottlogic%2Fstockflux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottlogic%2Fstockflux/lists"}