Folder Structure

StrikingDash folder organized according to their purpose, this section will give you an overview of specific folder and their role in application.
As it's bootstraped using CRA `src` contains all our application code

Components

This folder contains all the available & re-useable UI components. For example, buttons, table, charts etc

Config

As the name suggest, this folder contains configuration options for the whole project, including theming, api, data service (RESTful client) etc

Container

This theme usages Container-Component architecture. Container folder contains all the container, which could be treated as individual page of website.
To know more https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0

DemoData

This is self explanatory, it contains demo data

Hooks

This folder contains the custom react hooks

Layout

Layout folder contains layout components such menu, adminLayout etc

Redux

Important folder, this folder is for managing state of the whole application, StrikingDash uses Redux thus the name.
This folder contains some sub folders that encapsulates redux logic of specific feature.More on state in later section.

State

As mentioned before redux has been used as state management solution with redux-thunk for side-effects.
Every feature is organized in a folder containing three fundamental atomic part of redux flow as three separate file: actions, reducer, actionCreators for better structure.
For asynchronous state operations, well opinionated three actions model has been used. And the actions consist of [state]\_BEGIN,[state]\_SUCCESS,[state]\_FAILED.
For reference https://blog.logrocket.com/managing-asynchronous-actions-in-redux-1bc7d28a00c6/

env

.env file usually contains sensitive data of your application such API key, app secret, or other environment specific setting.
To know more https://create-react-app.dev/docs/adding-custom-environment-variables/

Routes

For routing react-router https://reactrouter.com/ has been used. This folder contains all the application routes

Static

All the static assets such as images, fonts, icons, css files are in this folder

Utility

Utility folder should have utility function such as localStorage control, different data manipulation functions etc