- Install nvm, yarn, node
nvm install && nvm use
yarn
yarn build
yarn dev
Now open http://localhost:8080
and view the application!
Note: this current version uses webpack-dev-server, a production ready alternative will be added at a later stage in development
In order to separate between different parts of the application, I decided to manage this project as a monorepo and split it into modules. In order to manage the monorepo, I decided to use yarn workspaces as it's already built into yarn (as opposed to lerna, for example).
- The
services
module will handle all of the calls to outside services (both to the internal API and to external APIs). - The
components
module holds all of the React components the project uses. - The
application
module holds the webpack building infrastructure and different React providers (i.e. Redux providers).
Separating these into different modules, each with its own TS configuration, allows for fast build times for single artifacts and easier testing.