The trading client GUI is a single page app (SPA) build using JavaScript vNext (i.e. Ecmascript 6 transpiled with babeljs.io).
- Html, javascript, css etc is built (i.e. transpiled and bundled) with webpack. Script targets in
package.jsonkick off webpack, tests etc. - Tests use Karma & Jasmine.
- Streaming data abstractions are build with RxJs.
- GUI state management is done with esp-js, a scalable state management library that puts your model at the forefront of the design. It works well with uni directional data flow architecture.
- Connectivity to the backend is done via AutobahnJs.
- Styles build using Sass.
Please ensure you have Node(>=v5), npm(>=v3.5) and Git installed on your machine and on your path.
There are no additional packages to install other than Git and a recent build of Node.
You might want to increase the limit on the number of files Linux will watch. Here's why.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- Install the C++ Compiler. Visual Studio Express comes bundled with a free C++ compiler. Or, if you already have Visual Studio installed: Open Visual Studio and go to File -> New -> Project -> Visual C++ -> Install Visual C++ Tools for Windows Desktop. The C++ compiler is used to compile browser-sync (and perhaps other Node modules).
Clone the repo and install the necessary node modules:
npm install # Install Node modules listed in ./package.json
npm start # Compile and launches the webpack dev serverYou can then browse the app at http://localhost:3000
npm run devSame as npm run start, runs the webpack build system with webpack-dev-server (by default found at http://localhost:3000).
npm run testRuns unit tests with Karma and Jasmine.
npm run test:devSimilar to npm run test, but will watch for changes and re-run tests.
npm run lintRun ESLint against all .js files in ~/src.
Note the linter also runs by default during normal dev watch build (npm run dev).
npm run deployRun webpack using the webpack config.