All Projects → linkmesrl → react-redux-dashboard

linkmesrl / react-redux-dashboard

Licence: other
React Redux Dashboard with redux-saga and local-storage support

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to react-redux-dashboard

marvel-jarvig
Marvel JARVIG (Just A Rather Very Interesting Game) is a game that lets you find and discover Marvel Comics characters based on their name, image and description!
Stars: ✭ 13 (-72.92%)
Mutual labels:  redux-saga
QWidgetsCollection
A collection of customized Qt widgets
Stars: ✭ 28 (-41.67%)
Mutual labels:  widgets
PygameWidgets
A module for use with Pygame. Includes fully customisable buttons, textboxes, sliders and many more, as well as the ability to create and run animations on these widgets.
Stars: ✭ 34 (-29.17%)
Mutual labels:  widgets
laravel-react-boilerplate
Laravel React Boilerplate with Ant Design, Route-Level Code Splitting, Redux, Sanctum Auth
Stars: ✭ 49 (+2.08%)
Mutual labels:  redux-saga
data-flow
frontend data flow explored in React
Stars: ✭ 19 (-60.42%)
Mutual labels:  redux-saga
react-native-basekit
Basic setup for react-native projects using react-native , redux, redux-sagas, react-navigation
Stars: ✭ 16 (-66.67%)
Mutual labels:  redux-saga
movies
a project build with react、redux、 redux-saga、 express 、mongodb、ssr also ☀️
Stars: ✭ 76 (+58.33%)
Mutual labels:  redux-saga
delivery-app-mobile
🍕React Native food delivery app
Stars: ✭ 143 (+197.92%)
Mutual labels:  redux-saga
qt-ribbon
A ribbon bar implementation for Qt widgets applications
Stars: ✭ 43 (-10.42%)
Mutual labels:  widgets
Examples Qt
Shows how to use Qt widgets only by programming code (c++17).
Stars: ✭ 38 (-20.83%)
Mutual labels:  widgets
davinci
A flutter package to convert any widget to an Image.
Stars: ✭ 33 (-31.25%)
Mutual labels:  widgets
next-react-boilerplate
🔥 NextJS with additional tech feature like react-boilerplate. Demo >>
Stars: ✭ 20 (-58.33%)
Mutual labels:  redux-saga
react-phoenix-users-boilerplate
Elixir/Phoenix + React + users template/boilerplate.
Stars: ✭ 71 (+47.92%)
Mutual labels:  redux-saga
black hole flutter
🛠 A package absorbing all Flutter utility functions, including extension functions and commonly used widgets
Stars: ✭ 18 (-62.5%)
Mutual labels:  widgets
ssGUI
◀️ Super Simple GUI Library for C++ ▶️
Stars: ✭ 21 (-56.25%)
Mutual labels:  widgets
widgets
🚀 Dojo - UI widgets.
Stars: ✭ 82 (+70.83%)
Mutual labels:  widgets
react-native-ecommerce
E-commerce mobile application developed using React Native 👔 🎩
Stars: ✭ 60 (+25%)
Mutual labels:  redux-saga
dva-vue
🌱 Vue and dva-core based
Stars: ✭ 34 (-29.17%)
Mutual labels:  redux-saga
fhir-app-starter
🔥 Open Source FHIR App project starter. Start building your app right away.
Stars: ✭ 21 (-56.25%)
Mutual labels:  redux-saga
nextjs-redux-instagram
🌏 The simple Instagram was written by next.js & redux-saga & recompose
Stars: ✭ 48 (+0%)
Mutual labels:  redux-saga

React Redux Dashboard

A json-configurable dashboard bootstrapped with create-react-app made with react, redux, redux-saga and react-google-charts

Screenshot

Table of Contents

Installation

First install the dependencies:

npm install

Then you need to have a server running to load data inside plugins. You can install json-server, a JSON configurable server:

npm install -g json-server

and then run:

json-server --watch server.json --port 3001

to start the server, using the configuration inside server.json file.

Run

By default the app is listening on localhost:3001. Run the app:

npm start

Usage

Add an Endpoint

To add an endpoint edit src/util/endpoints.json with:

  {
    "ENDPOINT_NAME": {
      "url": "ENDPOINT_URL"
    }
  }

Dashboard configuration

The Demo dashboard is pre-configured. You can add/remove rendered plugins by editing src/util/dashboards.json.

A plugin has this configuration:

{
  "title": "TITLE",
  "name": "TYPE",
  "endpoints": [
    {
      "url": "ENDPOINT_NAME",
      "mapping": {
        "keys": {
          "label": "LABEL_KEY",
          "value": {
            "name": "VALUE_KEY"
          }
        }
      }
    }
  ],
  "layout": {
    "x": "X_POSITION",
    "y": "Y_POSITION",
    "w": "WIDTH",
    "h": "HEIGHT",
    "minW": "MIN_WIDTH",
    "maxW": "MAX_WIDTH",
    "minH": "MIN_HEIGHT",
    "maxH": "MAX_HEIGHT"
  }
}

Plugin options

General

TITLE: Title of the plugin in the Dashboard

TYPE: Plugin type (e.g. PieChart, ColumnChart, LineChart, Info, TableChart)

ENDPOINT_NAME: Endpoint name in src/util/endpoints.json

LABEL_KEY: Key in the object response used as single point/element label in a graph (e.g. name)

VALUE_KEY: Key in the object response used as single point/element value in a graph (e.g. count)

Plugin Specific
Info Plugin

VALUE_TYPE: Type of the value in the response (e.g. string [default], number, double, date, timeAgo)

{
  "endpoints": [
    {
      "mapping": {
        "keys": {
          "value": {
            "type": "VALUE_TYPE"
          }
        }
      }
    }
  ]
}
ColumnChart

VALUE_LABEL_KEY: Columns section label (e.g. Snacks or Candies)

{
  "endpoints": [
    {
      "mapping": {
        "keys": {
          "value": {
            "label": "VALUE_LABEL_KEY"
          }
        }
      }
    }
  ]
}
PieChart

See general configuration

LineChart

1ST_STATUS", 2ND_STATUS: Label for different types of data in a LineChart (e.g.view or purchase)

1ST_COLOR, 2ND_COLOR: Colors for different types of data in a LineChart (e.g.green or #b4da55)

1ST_LABEL, 2ND_LABEL, 3RD_LABEL: Labels for LineChart lines (e.g. [Time, Views, Purchases])

{
  "endpoints": [
    {
      "mapping": {
        "statuses": ["1ST_STATUS", "2ND_STATUS"],
        "colors": ["1ST_COLOR", "2ND_COLOR"],
        "labels": ["1ST_LABEL", "2ND_LABEL", "3RD_LABEL"]
      }
    }
  ]
}
TableChart

TABLE_ROW_LABEL: Table row label (e.g. Date)

TABLE_ROW_KEY: Table row key in the response (e.g. timestamp)

TABLE_ROW_TYPE: Table row type (e.g. date) [optional]

TABLE_ROW_FORMAT: Table row format (e.g. YYYY/MM/DD hh:mm) [optional]

{
  "endpoints": [
    {
      "columns": [
        {
          "label": "TABLE_ROW_LABEL",
          "value": "TABLE_ROW_KEY",
          "mapping": {
            "type": "TABLE_ROW_TYPE",
            "format": "TABLE_ROW_FORMAT"
          }
        }
      ]
    }
  ]
}
Layout

The dashboard is a 2-column grid which contains plugins with different size and position. It is divided like this:

+---------------------------------+
|    x: 0, y: 0  |  x: 1, y: 0    |
+---------------------------------+
|    x: 0, y: 1  |  x: 1, y: 1    |
+---------------------------------+
|    x: 0, y: 2  |  x: 1, y: 2    |
+---------------------------------+
|               ...               |

X_POSITION: X coordinate position of the plugin in the dashboard

Y_POSITION: Y coordinate position of the plugin in the dashboard

WIDTH: Width of the plugin (1 for half / 2 for the whole line)

HEIGHT: height of the plugin (1 for Info / 2 for others)

MIN_WIDTH: Minimum width of the plugin (1 for half / 2 for the whole line)

MAX_WIDTH: Maximum width of the plugin (1 for half / 2 for the whole line)

MIN_HEIGHT: Minimum height of the plugin (1 for Info / 2 for others)

MAX_HEIGHT: Maximum height of the plugin (1 for Info / 2 for others)

Define a Plugin

To add a plugin edit src/util/plugins.json. For the configuration see Dashboard configuration.

It is not necessary to add in the Layout part the X_POSITION and Y_POSITION keys.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].