Skip to content

Commit

Permalink
Added Workbench and training apps.
Browse files Browse the repository at this point in the history
  • Loading branch information
robmoffat committed Sep 25, 2024
1 parent 5cfd6ba commit e13ac3d
Show file tree
Hide file tree
Showing 78 changed files with 17,312 additions and 70 deletions.
84 changes: 64 additions & 20 deletions directory/sail.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,43 +37,87 @@
}
},
{
"appId": "trading-view-chart-2",
"name": "Trading View Chart",
"title": "Trading View Chart (New Window)",
"description": "Displays a chart of a given stock, using the TradingView applications",
"appId": "workbench",
"name": "FDC3 Workbench",
"title": "FDC3 Workbench - Sail Version",
"description": "Part of the WebFDC3 Demo - Port of the FDC3 Workbench. Must be started separately on localhost:3000",
"type": "web",
"details": {
"url": "/static/example-apps/tradingview/chart.html"
},
"screenshots": [
{
"src": "/static/example-apps/tradingview/chart.png",
"label": "Demo Screenshot"
}
],
"hostManifests": {
"sail": {
"forceNewWindow": true
}
"url": "http://localhost:3000/toolbox/fdc3-workbench/"
},
"version": "1.0.0",
"publisher": "FINOS",
"icons": []
},
{
"appId": "pricer",
"name": "Pricer",
"title": "Pricer",
"description": "A demo app for the FDC3 Developer Course",
"icons": [
{
"src": "/static/example-apps/tradingview/tradingview-icon.png"
"src": "http://localhost:5000/static/pricer/icon.png"
}
],
"screenshots": [
{
"src": "http://localhost:5000/static/pricer/screenshot.png",
"label": "Demo Screenshot"
}
],
"type": "web",
"details": {
"url": "http://localhost:5000/static/pricer/index.html"
},
"interop": {
"intents": {
"listensFor": {
"ViewChart": {
"ViewQuote": {
"displayName": "View Quote",
"contexts": [
"fdc3.instrument"
],
"displayName": "View Chart"
]
},
"demo.GetPrices": {
"displayName": "Get Prices",
"contexts": [
"fdc3.instrument"
]
}
}
}
},
"hostManifests": {
"sail": {
"injectApi": "2.0"
}
}
},
{
"appId": "tradelist",
"name": "TradeList",
"title": "TradeList",
"description": "A demo app for the FDC3 Developer Course",
"icons": [
{
"src": "http://localhost:5000/static/tradelist/icon.png"
}
],
"screenshots": [
{
"src": "http://localhost:5000/static/tradelist/screenshot.png",
"label": "Demo Screenshot"
}
],
"type": "web",
"details": {
"url": "http://localhost:5000/static/tradelist/index.html"
},
"interop": {},
"hostManifests": {
"sail": {
"injectApi": "2.0"
}
}
}
],
Expand Down
1 change: 1 addition & 0 deletions fdc3-workbench/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SKIP_PREFLIGHT_CHECK=true
8 changes: 8 additions & 0 deletions fdc3-workbench/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.github/
build/
dist/
node_modules/
*.d.ts
*.md
yarn.lock
package.json
73 changes: 73 additions & 0 deletions fdc3-workbench/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{
"parser": "@typescript-eslint/parser",
"env": {
"browser": true,
"es6": true,
"commonjs": true
},
"extends": ["plugin:react/recommended", "prettier"],
"settings": {
"react": {
"version": "detect"
}
},
"globals": {
"fdc3": "readonly"
},
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 2018,
"sourceType": "module"
},
"plugins": ["react", "import", "@typescript-eslint"],
"rules": {
"react/jsx-uses-vars": 2,
"class-methods-use-this": 0,
"no-plusplus": 0,
"no-undef": 2,
"prefer-arrow-callback": 1,
"prefer-destructuring": [
"warn",
{
"object": true,
"array": false
}
],
"quote-props": ["warn", "as-needed"],
"lines-between-class-members": 1,
"@typescript-eslint/no-unused-vars": 1,
"prefer-template": 1,
"arrow-parens": 1,
"no-extra-semi": 1,
"no-shadow": 1,
"import/first": 1,
"@typescript-eslint/no-use-before-define": 1,
"no-redeclare": 1,
"arrow-body-style": [
"warn",
"as-needed",
{
"requireReturnForObjectLiteral": true
}
],
"one-var-declaration-per-line": ["warn", "always"],
"no-mixed-operators": 1,
"no-multiple-empty-lines": 1,
"no-multi-spaces": 1,
"default-case": 1,
"no-unneeded-ternary": 1,
"operator-assignment": ["warn", "never"],
"object-property-newline": [
"warn",
{
"allowAllPropertiesOnSameLine": true
}
],
"new-cap": 1,
"no-case-declarations": 1,
"react/prop-types": 0,
"react/no-string-refs": 0
}
}
24 changes: 24 additions & 0 deletions fdc3-workbench/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

.eslintcache
npm-debug.log*
yarn-debug.log*
yarn-error.log*
8 changes: 8 additions & 0 deletions fdc3-workbench/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.github/
build/
dist/
node_modules/
*.d.ts
*.md
yarn.lock
package.json
7 changes: 7 additions & 0 deletions fdc3-workbench/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"useTabs": true,
"arrowParens": "always",
"trailingComma": "es5",
"proseWrap": "always",
"printWidth": 120
}
3 changes: 3 additions & 0 deletions fdc3-workbench/NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FDC3 Workbench - Fintech Open Source Foundation (https://www.finos.org/)
Copyright 2021-2023 Finsemble, inc. [email protected]
Copyright 2021 2023 Contributors to the FDC3 standards project
39 changes: 39 additions & 0 deletions fdc3-workbench/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# <a href='http://fdc3.finos.org'><img src='https://fdc3.finos.org/img/fdc3-logo-2019-color.png' height='150' alt='FDC3 Logo' aria-label='fdc3.finos.org' /></a>

# FDC3 Workbench
When developing interoperability for your application with other apps on a Financial services desktop, using the [FDC3 standard](https://fdc3.finos.org/docs/fdc3-intro), the first step is often to develop a test harness or workbench tool with which to exchange messaging. The FDC3 Workbench is designed to provide that tooling so that you can focus on implementing FDC3 support in your application.

_Created and contributed to [FDC3](http://fdc3.finos.org) by [Finsemble, Inc.](https://finsemble.com/) in 2021._

## Getting Started

1. Clone the repository

`git clone https://github.com/finos/FDC3.git`

2. Install dependencies

`cd toolbox/fdc3-workbench & yarn install`

3. Start the development server

`yarn start`

4. Add the URL http://localhost:3000 to your FDC3-enabled container or desktop agent and ensure it has access to the `window.fdc3` object.

## Packages

Core:
- [Create React App](https://github.com/facebook/create-react-app) - with TypeScript
- [MATERIAL-UI](https://material-ui.com) - v4
- [MobX](https://mobx.js.org/README.html) - state management

Also using Eslint, Husky and Prettier please configure your IDE to work properly with code style rules.

Minor:
- [JsonEditor](https://github.com/josdejong/jsoneditor) - lib to add json editor field with json schema validation
- [nanoid](https://www.npmjs.com/package/nanoid) - A tiny, secure, URL-friendly, unique string ID generator for JavaScript.

## Known Issues

- The following console error may appear periodically: `Warning: findDOMNode is deprecated in StrictMode.`, this is a [well-known issue in material-ui](https://github.com/mui-org/material-ui/issues/13394) and will be fixed in v5, which (at the time of writing) is currently in beta.
21 changes: 21 additions & 0 deletions fdc3-workbench/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="FDC3 workbench application, designed to help develop and test FDC3 integrations"
/>
<link rel="apple-touch-icon" href="/fdc3-icon-192.png" />
<link rel="manifest" href="/manifest.json" />
<title>FDC3 Workbench</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script type="module" src="/src/index.tsx"></script>
</body>
</html>
Loading

0 comments on commit e13ac3d

Please sign in to comment.