This is a web-based trading simulation software I designed to test the theory of how robots may effect peoples trust in the financial markets. I give a detailed analysis in my dissertation, thus I recommend all viewers to read my paper before continuing.
- react for managing the presentation logic of application.
- typescript to use the typescript features in JS.
- redux for generating and managing state model.
- reselect memoized selectors for redux state.
- redux-saga for redux middleware.
- axios for making AJAX calls to a server.
- material-ui for frontend template.
- node-sass for sass support.
- react-countup for summary numeric values animaition.
- lodash.get to access nested value from object.
- prettier for code formatting.
- husky for preventing bad git commit and push.
- lint-staged for running lint on stagged files.
In order to get started developing, you'll need to do a few things first.
- Install all of the
node_modules
required for the package. Depending on the computer's configuration, you may need to prefix this command with asudo
.
npm install
or
sudo npm install
yarn
can be used it is already installed
yarn install
or
sudo yarn install
- Lastly, run the start command to get the project off the ground.
npm start
or
yarn start
- Head over to http://localhost:3000 to see the app live!
This is where application will be compiled. Assets, like images and fonts, should be placed directly within this folder. Also in this folder is a default index.html
file for serving up the application.
The client folder houses the client application for project. This is where client-side Javascript components (and their directly accompanying styles) live.
API directory contains the api calls which are triggering through the app. The purpose of api/ directory is to create an abstract layer for api with function with the paramters.
Components contains all the feature of blocks application page. Components should work like feature based widgets and should be rendered through the pages.
Config directory contains all the configurations of the app like app name, api base path, api routes etc.
Pages contains all the application pages or top level components.
Store directory has the redux store configuration and root reducer of app.
Actions directory contain action-types, action-creators for each app module.
Reducers directory contain reducers for each app module.
Sagas directory contain sagas for each app module.
Selectors directory contain memoized selectors for each app module.
Types directory any custom types by any part of application.
Utilities that can be used by any part of application.