this is a sample of the ReactJs project for starting easily and fast.
In this project, we added some configs and installed some necessary packages. they help you to ready very fast and don't waste time them.
-
- Eslint
- Prettier
- Stylelint
- Dockerfile
.envfile- Commit lint
- Redux Config
- Style Config
- SEO & PWA tags
jsconfigfiletsconfigfile- Folder structure
- API cache system
- Private route system
lint-stagedconfig- Custom
manigest.json constantsstructure- First loading animation
- API Pattern for request
- Lock API request system
- Cancel duplicate request
- Reset default browser CSS
- Scroll to the top when route change
- Transform data system for API request
- Pre-Commit and Commit-Message config (husky)
- TypeScript
- sass (for component module sass)
- animate.css (for your animations)
- tailwindcss (for main style system)
- lodash (for working easily with array)
- axios (for API service and request system)
- classnames (for merge ClassNames and module sass)
- react-router-dom (for routing system in your project)
- prop-types (for specify type in your JSX & component file)
- react-toastify (for notify message to user in your project)
- react-device-detect (for check devices and specify mobile type)
- @reduxjs/toolkit & react-redux (for state management in your project)
-
husky
-
eslint (+ plugins and configs)
-
prettier (+ plugins and configs)
-
stylelint
-
lint-staged
-
eslint-config-airbnb
-
commitlint + config-conventional
-
- useApi (for requests)
- usePageData (for page requests)
- useCopyToClipboard (for copy text)
- useOnScreen (for traking an element on screen)
-
- Snackbar
htmlDecodefunction- URLs for share in social
generateSnackbarfunctionapiRequestObjectfor API patternremoveUndefinedFromObjectfunction- Log system (Empty function for your config)
redirectandattachObjectQueriesToUrlfunctionstruncateandshouldTruncatefunctions for your textsisDemo,isProduction,isDevelopment,appVersionandappNamevariablesfaToEn,enToFa,arToFa,faPriceToEnNumberandformatPricefunctions for your numbers (persian language)
-
You can use the AnimateCSS framework for your animations, add the class
animate__animatedto an element, along with any of the animation names white theanimate__prefix.<h1 class="animate__animated animate__bounce">An animated element</h1> -
You can use
Vazirfont in this project. for changeENtoFAnumber with font, usefa-num-fontandfa-num-font-boldclass. also you can usevazir-boldfor bold type. -
You can import file from
srcaddress like this:import { INDEX_PAGE_ROUTE } from 'routes/RedirectRoutes';
-
Your API
TODO
-
useApi
TODO
-
usePageData
TODO
- First Git Clone Or Download Project
- Copy and rename
.env.exampleto.env npm installoryarn add- Just Run:
npm start - Run white style watching:
- Windows:
npm run dev:windows - Linux or MaxOs:
npm run dev
- Windows:
- Test:
npm run test - Build:
npm run build - Eslint:
npm run lint:fix - Prettier:
npm run pretty - Stylelint:
npm run lint:style - Styles (Watching):
npm run styles - Build Styles:
npm run build:styles
- Scripts
- Storybook
- Test config
- E2E test config
- Folder Structure
- Convert js to ts
- Add API pattern Doc to MD file
- Add usePageData & UseApi Doc to MD file