Giter VIP home page Giter VIP logo

react-soft-ui-dashboard's Introduction

Start your Development with an Innovative Admin Template for Material-UI and React. Soft UI Dashboard React is built with over 70 frontend individual elements, like buttons, inputs, navbars, nav tabs, cards, or alerts, giving you the freedom of choosing and combining. The product comes with a simple JWT authentication flow: login/register/logout. The React Design is crafted by Creative-Tim on top of MUI Library.


Features

  • โœ… Innovative Soft UI Design from Creative-Tim
  • โœ… React, Redux, Redux-persist
  • โœ… Authentication: JWT Token
  • ๐Ÿ†• OAuth for Github
  • ๐Ÿ†• Full-stack ready using servers:

React Soft Dashboard - Open-source full-stack product


Tests

Compatibility matrix using Ubuntu 18.04 LTS as reference.

NodeJS NPM YARN
v14.0.0 โœ… โŒ
v15.0.0 โœ… โŒ
v16.15.0 โœ… โœ…

Video Presentation

This material explains how to deploy the product LIVE using the Drag & Drop Deployer.

React Soft Dashboard, open-source fullstack project - Video Presentation.


โœจ How to use it

To use the product Node JS (>= 12.x) is required and GIT to clone/download the project from the public repository.

๐Ÿ‘‰ Step #1 - Clone the project

$ git clone https://github.com/app-generator/react-soft-ui-dashboard.git
$ cd react-soft-ui-dashboard

๐Ÿ‘‰ Step #2 - Install dependencies via NPM or yarn

$ npm i
// OR
$ yarn

๐Ÿ‘‰ Step 3 - Edit the .env using the template .env.sample.

REACT_APP_BACKEND_SERVER='http://localhost:5000/api/'

REACT_APP_GITHUB_OAUTH_CLIENT_ID     = ... # Github OAuth Client
REACT_APP_GITHUB_OAUTH_CLIENT_SECRET = ... # Github OAuth Secret
REACT_APP_GITHUB_OAUTH_REDIRECT_URL  = ... # Github OAuth Callback URL

๐Ÿ‘‰ Step #4 - Start the app using HTTPS (used bu AOuth Callback)

$ export HTTPS=true   # bash
$ set    HTTPS=true   # Windows/CMD
$env:HTTPS = "true"   # Windows/Powershell

๐Ÿ‘‰ Step #5 - Start in development mode

$ npm run start 
// OR
$ yarn start

โœจ Configure the backend server

The product comes with a usable JWT Authentication flow that provides only the basic requests: login/logout/register.

๐Ÿ‘‰ API Server URL - src/config/constant.js

const config = {
    ...
    API_SERVER: 'http://localhost:5000/api/'  // <-- The magic line
};

๐Ÿ‘‰ API Server Descriptor - POSTMAN Collection

The API Server signature is provided by the Unified API Definition

  • API POSTMAN Collection - can be used to mock (simulate) the backend server or code a new one in your preferred framework.

โœจ Node JS API Server

The product is also open-source and is already configured to work with Berry Dashboard Template - product features:

  • Typescript / Node js / Express server
  • JWT authentication (passport-jwt strategy)
  • Persistence: SQLite

Links


Node JS API - Open-source API server built on top of Express Nodejs Framework.


Compile the API Server

๐Ÿ‘‰ Step #1 - Clone the project

$ git clone https://github.com/app-generator/api-server-nodejs.git
$ cd api-server-nodejs

๐Ÿ‘‰ Step #2 - Install dependencies via NPM or Yarn

$ npm i
// OR
$ yarn

๐Ÿ‘‰ Step #3 - Run the SQLite migration via TypeORM

$ yarn typeorm migration:run

๐Ÿ‘‰ Step #4 - Start the API server (development mode)

$ npm dev
// OR
$ yarn dev

The API server will start using the PORT specified in .env file (default 5000).



React Soft Dashboard - Provided by AppSeed.

react-soft-ui-dashboard's People

Contributors

app-generator avatar koladev32 avatar mominur-helios avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

react-soft-ui-dashboard's Issues

Docs - How to implement JWT authentication to a React Template

Hello @StefanENC,

The implementation process should be documented in full on a separate repository docs mirror. Once the content quality is good, we will merge the content in Gitbook.

Here is the invitation:
https://github.com/app-generator/docs-mirror/invitations

Please provide all steps that a beginner should follow in order to code this feature to another React Template. I will drop below a few sections (feel free to add more). Keep in mind that the content targets beginners:

  • Analyze Codebase
  • Detect master pages
  • Add dependencies
    • axios
    • formic
  • Code app store
  • Code Guard component that detects the authentication state
  • Update routes
  • Implement Sign IN via axios
  • Implement Logout

The page that should be updated is this one:
https://github.com/app-generator/docs-mirror/blob/main/react-implement-jwt-authentication.md

Ty!

Missing License file on repo

I understand on appseed you can specify the license to be purchased for the pro version, can you clarify which license this repo has? The website only mentions Free Product

SoftInput lose focus when I use onChange

Hello, I have a problem when I want to handle changes in the Softinput component.

When I enter a character, it only detects the first one I enter, then it loses focus. I have to click again.

Another error that I think derives from this is when I enter a normal input (< input />) with a handle change within a soft component, it works very slowly, it gets stuck when entering or deleting characters.

This is the code

/**
=========================================================
* Soft UI Dashboard React - v4.0.0
=========================================================

* Product Page: https://www.creative-tim.com/product/soft-ui-dashboard-react
* Copyright 2022 Creative Tim (https://www.creative-tim.com)

Coded by www.creative-tim.com

 =========================================================

* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*/

// @mui material components
import Grid from "@mui/material/Grid";
import Icon from "@mui/material/Icon";

// Soft UI Dashboard React components
import SoftBox from "components/SoftBox";
import SoftTypography from "components/SoftTypography";

// Soft UI Dashboard React examples
import DashboardLayout from "examples/LayoutContainers/DashboardLayout";
import DashboardNavbar from "examples/Navbars/DashboardNavbar";
import Footer from "examples/Footer";
import MiniStatisticsCard from "examples/Cards/StatisticsCards/MiniStatisticsCard";
import ReportsBarChart from "examples/Charts/BarCharts/ReportsBarChart";
import GradientLineChart from "examples/Charts/LineCharts/GradientLineChart";

// Soft UI Dashboard React base styles
import typography from "assets/theme/base/typography";

// Dashboard layout components
import BuildByDevelopers from "layouts/dashboard/components/BuildByDevelopers";
import WorkWithTheRockets from "layouts/dashboard/components/WorkWithTheRockets";
import Projects from "layouts/dashboard/components/Projects";
import OrderOverview from "layouts/dashboard/components/OrderOverview";

// Data
import reportsBarChartData from "layouts/dashboard/data/reportsBarChartData";
import gradientLineChartData from "layouts/dashboard/data/gradientLineChartData";
import outstandingGapChartData from "./data/outstandingGapChartData";
import tableData from "./data/pricingTableData";
import equipmentData from "./data/equipmentTableData";
import dealTableData from "./data/dealTableData";
import Table from "../../examples/Tables/Table";
import { useState } from "react";

function Dashboard() {
  //States
  const [outstanding, setOutstanding] = useState({ riskClass: 50, equipCost: 10, downPay: 20 });

  const { size } = typography;
  const { chart, items } = reportsBarChartData;
  const { columns, rows } = tableData(outstanding, setOutstanding);
  const { dealColumns, dealRows } = dealTableData();
  const { columnNames, rowNames } = equipmentData();

  const [riskClass, setRiskClass] = useState("");

  const handleSelectChange = (event) => {
    setRiskClass(event.target.value);
  };

  return (
    <DashboardLayout>
      <DashboardNavbar />
      <SoftBox py={3}>
        <SoftBox mb={3}>
          <Grid container spacing={3}>
            <Grid item xs={12} sm={6} xl={5}>
              <SoftBox
                mb={2}
                sx={{
                  "& .MuiTableRow-root:not(:last-child)": {
                    "& td": {
                      borderBottom: ({ borders: { borderWidth, borderColor } }) =>
                        `${borderWidth[1]} solid ${borderColor}`,
                    },
                  },
                }}
              >
                <input
                  type="number"
                  placeholder="Type here.."
                  name="riskClass"
                  id="riskClass123"
                  onChange={handleSelectChange}
                  value={riskClass}
                />
                <Table columns={columns} rows={rows} />
              </SoftBox>
              <SoftBox>
                <SoftTypography>Equipment:</SoftTypography>
              </SoftBox>
              <SoftBox
                sx={{
                  "& .MuiTableRow-root:not(:last-child)": {
                    "& td": {
                      borderBottom: ({ borders: { borderWidth, borderColor } }) =>
                        `${borderWidth[1]} solid ${borderColor}`,
                    },
                  },
                }}
              >
                <Table columns={columnNames} rows={rowNames} />
              </SoftBox>
            </Grid>
            <Grid item xs={12} sm={6} xl={7}>
              <GradientLineChart
                title="Outstanding gap position"
                height="40.25rem"
                chart={outstandingGapChartData}
              />
            </Grid>
          </Grid>
        </SoftBox>
        <SoftBox mb={3}>
          <Grid container>
            <Grid item xs={12} sm={12} xl={12}>
              <SoftBox>
                <SoftTypography>DEAL P&L:</SoftTypography>
              </SoftBox>
              <SoftBox
                sx={{
                  "& .MuiTableRow-root:not(:last-child)": {
                    "& td": {
                      borderBottom: ({ borders: { borderWidth, borderColor } }) =>
                        `${borderWidth[1]} solid ${borderColor}`,
                    },
                  },
                }}
              >
                <Table columns={dealColumns} rows={dealRows} />
              </SoftBox>
            </Grid>
          </Grid>
        </SoftBox>
      </SoftBox>
      <Footer />
    </DashboardLayout>
  );
}

export default Dashboard;

SignIN Page - Should accept Default Values (email/pass)

The SignIN page should be able to accept default values for email and pass.

This is useful in DEMO when the users click and authenticate without typing the credentials:

values:

  • email: `` (empty string)
  • pass: `` (empty string)

Ty!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.