Skip to content

@reactjs template with redux-toolkit and typescript included, And needed libs and pkgs installed and included as well.

License

Notifications You must be signed in to change notification settings

salihcodev/ts-react-redux-toolkit-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Chakra logo

Start to build awesome apps, And be more productive⚑️

There is no need for writing boring boilerplate any more :)


Netlify Status MIT License Github Stars CircleCI


Description

@reactjs template with redux-toolkit and typescript included, And needed libs and pkgs installed and included as well.


Available Scripts

In the project directory, you can run:

yarn start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

yarn test

Launches the test runner in the interactive watch mode.

yarn build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

yarn eject

Note: this is a one-way operation. Once you eject, you can’t go back!

If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.


File Structure

.../ts-react-redux-toolkit-template
β”‚
β”œβ”€β”€ config-overrides.js
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ Dockerfile.dev
β”œβ”€β”€ Dockerfile
β”‚
β”œβ”€β”€ public
β”‚Β Β  β”œβ”€β”€ assets
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ fonts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ OperatorMonoLig-BookItalic.otf
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ OperatorMonoLig-Book.otf
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ OperatorMonoLig-MediumItalic.otf
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── OperatorMonoLig-Medium.otf
β”‚Β Β  β”‚Β Β  └── images
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ loading.gif
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ logo.svg
β”‚Β Β  β”‚Β Β      └── notfound-cover.svg
β”‚Β Β  β”œβ”€β”€ favicon.ico
β”‚Β Β  β”œβ”€β”€ icon.svg
β”‚Β Β  β”œβ”€β”€ index.html
β”‚Β Β  β”œβ”€β”€ logo192.png
β”‚Β Β  β”œβ”€β”€ logo512.png
β”‚Β Β  β”œβ”€β”€ manifest.json
β”‚Β Β  └── robots.txt
β”‚
β”œβ”€β”€ src
β”‚Β Β  β”œβ”€β”€ api
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ base.ts
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ user
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── endpoints-referrers.ts
β”‚Β Β  β”‚Β Β  └── usual-collection-crud-callers
β”‚Β Β  β”‚Β Β      └── endpoints-referrers.ts
β”‚Β Β  β”œβ”€β”€ App.test.tsx
β”‚Β Β  β”œβ”€β”€ App.tsx
β”‚Β Β  β”œβ”€β”€ common
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ constants
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ interfaces
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ auth
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── auth.interface.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ comps
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ add-banner.interface.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ banner.interface.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ footer.interface.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ form-input.interface.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ header.interface.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ hero.interface.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ layout.interface.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── notifyer.interface.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── slices
β”‚Β Β  β”‚Β Β  β”‚Β Β      └── initial
β”‚Β Β  β”‚Β Β  β”‚Β Β          └── initial.interface.ts
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ styles
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ app.sass
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index.sass
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── utils
β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ _animation.util.sass
β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ _colors.util.sass
β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ _fonts.util.sass
β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ _helper-classes.util.sass
β”‚Β Β  β”‚Β Β  β”‚Β Β      └── _mixins.util.sass
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ types
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ signin-form.types.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── signup-form.types.ts
β”‚Β Β  β”‚Β Β  └── utilities
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ localstorage-dealer
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ localstorage-getters.util.ts
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── localstorage-setter.util.ts
β”‚Β Β  β”‚Β Β      └── scroll-to-top
β”‚Β Β  β”‚Β Β          └── scroll-to-top.util.ts
β”‚Β Β  β”œβ”€β”€ components
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ base
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── initial
β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ initial.comp.tsx
β”‚Β Β  β”‚Β Β  β”‚Β Β      └── style.sass
β”‚Β Β  β”‚Β Β  └── distributed
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ ad-banner
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ add-banner.comp.tsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ banner
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ banner.comp.tsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ footer
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ footer.comp.tsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ form-input
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ form-input.comp.tsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ header
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ header.comp.tsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ hero
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ hero.comp.tsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ layout
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ layout.comp.tsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β  β”‚Β Β      └── notifyer
β”‚Β Β  β”‚Β Β          β”œβ”€β”€ notifyer.comp.tsx
β”‚Β Β  β”‚Β Β          └── style.sass
β”‚Β Β  β”œβ”€β”€ index.tsx
β”‚Β Β  β”œβ”€β”€ react-app-env.d.ts
β”‚Β Β  β”œβ”€β”€ redux
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ hooks.ts
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ slices
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── initial
β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ initial.slice.ts
β”‚Β Β  β”‚Β Β  β”‚Β Β      └── logic
β”‚Β Β  β”‚Β Β  β”‚Β Β          └── async-call.sliceLogic.ts
β”‚Β Β  β”‚Β Β  └── store.ts
β”‚ Β Β β”‚Β Β 
β”‚Β Β  └── views
β”‚Β Β      β”œβ”€β”€ contact
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ contact.page.tsx
β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β      β”œβ”€β”€ landing
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ landing.page.tsx
β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β      β”œβ”€β”€ not-found
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ notfound.page.tsx
β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β      β”œβ”€β”€ signin
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ signin.page.tsx
β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β      β”œβ”€β”€ signup
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ signup.page.tsx
β”‚Β Β      β”‚Β Β  └── style.sass
β”‚Β Β      └── terms
β”‚Β Β          β”œβ”€β”€ style.sass
β”‚Β Β          └── terms.page.tsx
β”‚
β”œβ”€β”€ serviceWorker.ts
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ setupTests.ts
β”œβ”€β”€ package.json
└── yarn.lock
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE

Contribution

Project naming convention

  • For naming files and directories i like to use cabab-case
  • For naming functions, utilities i like to use camelCase is javascript used to be
  • For naming interfaces, types i like to use PascalCase

Read about naming-convention in programming (wiki)

How to contribute

If you don't know how to contribute or where you can start.. I suggest to visit those links below

Start to contribute

Things need contributions in this project

  • Create constants/footer.data.ts which is should contains footer data represented in arrays of objects, Or any other DS as needed.

    • then go to build footer with this data.
  • As same as footer, You can start build DS for header routes in the /constants directory.

    Also build the mobile-header menu and manage the responsiveness.

  • Create additional animations /common/styles/utils/_animation.util.sass

  • Remove bootstrap and its redundant dependencies then replace it with Chakra-ui OR Ant-design

  • Write terms & policy data in /constants to use it later in terms page.

  • Customize the project given components and modify it to be reusable as possible.


Support

Feel free to star the repo

follow me on twitter @salihcodev