Make sure that NodeJS is installed (https://nodejs.org/en/)
cd client
npm install
npm start
(Or npm start disable-css-hmr
to disable CSS hot reload, theme toggle only works with this option disabled)cd server
npm install
npm run nodemon
to start an HTTP server with hot-loading and TypeScript server in watch modecd client
npm install
npm run build
cd server
npm install
npm run build
npm start
The application is organized using a feature module based approach with smart/dumb component architecture. Each new feature will result in a new directory being created, directly under the feature module's directory, a component should be created, this component will become the only smart component of this feature. Inside the feature module directory, appropriate child directories should be added, and they are:
Smart components are only responsible for data modeling and network calls, and this smart component will use the child components declared inside views directory to render all the necessary data that it handles, this creates a single of truth which makes it extremely easy to debug if the rendered data doesn't match expectations.