Create React App with Typescript, Redux Toolkit, Redux Saga, React Hook Form , React-i18next and Material UI.
- React.js with Redux Saga.
- Typescript for type safety
- Core libraries
- Other tools/libraries
- Opinionated folder structure
- Internationalization for react app using React-i18next
- Material UI
- dummyJSON (https://dummyjson.com/docs/products)
./src
├── App.tsx # Application entrypoint
├── assets # assets folder contains all the static files (images, fonts, etc).
├── components # shared components
├── config # global configuration, env variables etc.
│ ├── Env.ts
│ └── i18n
├── features
│ ├── feature # 'feature'
│ │ ├── api # API folder contains http service calls
│ │ ├── assets # 'feature' assets folder
│ │ ├── components # 'feature' components
│ │ ├── hooks # 'feature' hooks
│ │ ├── index.ts # entry point for 'feature' public API
│ │ ├── store # 'feature' state stores contains slices, sagas, etc.
│ │ └── types # 'feature' typescript types
│ └── another_feature # 'another_feature'
├── hooks # shared hooks
├── libs # libraries imported or exported that can be used in different projects
│ ├── core
│ └── ui
├── pages # contains all application pages
├── routes # routes configuration
├── store # root store and store settings
nvm
brew install nvm
Node.js v18
nvm install v18.12.0
Pnpm
npm install -g pnpm
Docker
Docker Desktop Download
Requires Node >=14.x
Install NPM packages:
pnpm install
To start the application in the development mode run:
pnpm dev
To build the application for production, run:
pnpm build
To lint the application run:
pnpm lint
To docker the application build:
pnpm docker:prod:build
To docker the application start:
pnpm docker:prod:start
To docker the application stop:
pnpm docker:prod:stop