diff --git a/docs/drawing.svg b/docs/drawing.svg
new file mode 100644
index 00000000..0750d838
--- /dev/null
+++ b/docs/drawing.svg
@@ -0,0 +1,123 @@
+
+
diff --git a/frontend/package.json b/frontend/package.json
index 4b468468..b17c8c2d 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -14,8 +14,10 @@
"jspdf-autotable": "^3.5.14",
"prop-types": "^15.7.2",
"react": "^16.13.1",
+ "react-alice-carousel": "^2.5.1",
"react-apexcharts": "^1.3.9",
"react-burger-menu": "^2.6.13",
+ "react-collapsible": "^2.8.3",
"react-collapsible-content": "^1.0.0",
"react-dom": "^16.8.6",
"react-grid-system": "^7.1.2",
diff --git a/frontend/src/components/dashboard/UnresolvedTicketsComponent.js b/frontend/src/components/dashboard/UnresolvedTicketsComponent.js
index 603be24e..952cbda6 100644
--- a/frontend/src/components/dashboard/UnresolvedTicketsComponent.js
+++ b/frontend/src/components/dashboard/UnresolvedTicketsComponent.js
@@ -32,8 +32,13 @@ function UnresolvedTicketsComponent({ containerStyles }) {
title='Unresolved tickets'
link='View details'
subtitle='Group:'
+
subtitleTwo='Support'
items={[
+ renderStat('Waiting on Feature Request', 4238),
+ renderStat('Awaiting Customer Response', 1005),
+ renderStat('Awaiting Developer Fix', 914),
+ renderStat('Pending', 281),
renderStat('Waiting on Feature Request', 4238),
renderStat('Awaiting Customer Response', 1005),
renderStat('Awaiting Developer Fix', 914),
diff --git a/frontend/src/components/details/ColumnChartComponent.jsx b/frontend/src/components/details/ColumnChartComponent.jsx
index 6cb1c186..2b7f8e4a 100644
--- a/frontend/src/components/details/ColumnChartComponent.jsx
+++ b/frontend/src/components/details/ColumnChartComponent.jsx
@@ -68,7 +68,7 @@ const ColumnChartComponent = () => {
},
responsive: [
{
- breakpoint: 300,
+ breakpoint: 6400,
options: {
chart: {
width: 500
diff --git a/frontend/src/components/details/PieChartComponent.jsx b/frontend/src/components/details/PieChartComponent.jsx
index 26f93143..17fcc291 100644
--- a/frontend/src/components/details/PieChartComponent.jsx
+++ b/frontend/src/components/details/PieChartComponent.jsx
@@ -41,7 +41,7 @@ const PieChartComponent = () => {
],
responsive: [
{
- breakpoint: 5600,
+ breakpoint: 6400,
options: {
chart: {
height: '300px'
diff --git a/frontend/src/components/mydashboard/MydashboardComponent.js b/frontend/src/components/mydashboard/MydashboardComponent.js
new file mode 100644
index 00000000..5ccbee61
--- /dev/null
+++ b/frontend/src/components/mydashboard/MydashboardComponent.js
@@ -0,0 +1,59 @@
+import React from 'react';
+import { Column } from 'simple-flexbox';
+import { createUseStyles } from 'react-jss';
+import MydashboardItemComponent from './MydashboardItemComponent';
+import { Container } from 'react-grid-system';
+
+const useStyles = createUseStyles({
+ cardsContainer: {
+ marginRight: -30,
+ marginTop: -30
+ },
+ cardRow: {
+ marginTop: 30,
+ '@media (max-width: 768px)': {
+ marginTop: 0
+ }
+ },
+ miniCardContainer: {
+ flexGrow: 1,
+ marginRight: 30,
+ '@media (max-width: 768px)': {
+ marginTop: 30,
+ maxWidth: 'none'
+ }
+ },
+ todayTrends: {
+ marginTop: 30
+ },
+ lastRow: {
+ marginTop: 30
+ },
+ unresolvedTickets: {
+ marginRight: 30,
+ '@media (max-width: 1024px)': {
+ marginRight: 0
+ }
+ },
+ tasks: {
+ marginTop: 0,
+ '@media (max-width: 1024px)': {
+ marginTop: 30
+ }
+ }
+});
+
+function DashboardComponent() {
+ const classes = useStyles();
+ return (
+
+
+
+
+
+
+
+ );
+}
+
+export default DashboardComponent;
diff --git a/frontend/src/components/mydashboard/MydashboardItemComponent.js b/frontend/src/components/mydashboard/MydashboardItemComponent.js
new file mode 100644
index 00000000..cf7e46b7
--- /dev/null
+++ b/frontend/src/components/mydashboard/MydashboardItemComponent.js
@@ -0,0 +1,199 @@
+import React from 'react';
+import { Column } from 'simple-flexbox';
+import { createUseStyles, useTheme } from 'react-jss';
+import PieChartComponent from 'components/details/PieChartComponent';
+import { Col, Container, Row } from 'react-grid-system';
+import Collapsible from 'react-collapsible';
+import Slideshow from './Slideshow';
+
+const data = [];
+
+for (let x = 1; x <= 24; x++) {
+ data.push({ x: x, y: Math.floor(Math.random() * 100) });
+}
+
+const useStyles = createUseStyles((theme) => ({
+ container: {
+ backgroundColor: '#FFFFFF',
+ border: `1px solid ${theme.color.lightGrayishBlue2}`,
+ borderRadius: 4,
+ cursor: 'pointer'
+ },
+ graphContainer: {
+ marginTop: 24,
+ marginLeft: 0,
+ marginRight: 0,
+ width: '100%'
+ },
+ graphSection: {
+ padding: 24
+ },
+ graphSubtitle: {
+ ...theme.typography.smallSubtitle,
+ color: theme.color.grayishBlue2,
+ marginTop: 4,
+ marginRight: 8
+ },
+ graphTitle: {
+ ...theme.typography.cardTitle,
+ color: theme.color.veryDarkGrayishBlue
+ },
+ legendTitle: {
+ ...theme.typography.smallSubtitle,
+ fontWeight: '600',
+ color: theme.color.grayishBlue2,
+ marginLeft: 8
+ },
+ separator: {
+ backgroundColor: theme.color.lightGrayishBlue2,
+ width: 1,
+ minWidth: 1
+ },
+ statContainer: {
+ borderBottom: `1px solid ${theme.color.lightGrayishBlue2}`,
+ padding: '24px 32px 24px 32px',
+ height: 'calc(114px - 48px)',
+ '&:last-child': {
+ border: 'none'
+ }
+ },
+ stats: {
+ borderTop: `1px solid ${theme.color.lightGrayishBlue2}`,
+ width: '100%'
+ },
+ statTitle: {
+ fontWeight: '600',
+ fontSize: 16,
+ lineHeight: '22px',
+ letterSpacing: '0.3px',
+ textAlign: 'center',
+ color: theme.color.grayishBlue2,
+ whiteSpace: 'nowrap',
+ marginBottom: 6
+ },
+ statValue: {
+ ...theme.typography.title,
+ textAlign: 'center',
+ color: theme.color.veryDarkGrayishBlue
+ }
+}));
+
+function MydashboardItemComponent() {
+ const theme = useTheme();
+ const classes = useStyles({ theme });
+
+ function renderStat(title, value) {
+ return (
+
+
+
+ {title}
+ {value}
+
+
+ );
+ }
+
+ return (
+
+
+
+
+ Catagories
+
+
+
+
+
+
+
+
+
+ Favorites
+
+
+ {renderStat('Fav Project 1', 'Transmission')}
+ {renderStat('Fav Project 2', 'Generation')}
+ {renderStat('Fav Project 3', 'Industrial App')}
+ {renderStat('Fav Project 1', 'Transmission')}
+ {renderStat('Fav Project 2', 'Generation')}
+ {renderStat('Fav Project 3', 'Industrial App')}
+ {renderStat('Fav Project 1', 'Transmission')}
+ {renderStat('Fav Project 2', 'Generation')}
+ {renderStat('Fav Project 3', 'Industrial App')}
+
+
+
+
+
+ My chart
+
+
+
+
+
+
+
+ My Recent Projects
+
+
+
+
+
This is the collapsible content.
+
+
+
+
+
This is the collapsible content.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default MydashboardItemComponent;
diff --git a/frontend/src/components/mydashboard/Slideshow.js b/frontend/src/components/mydashboard/Slideshow.js
new file mode 100644
index 00000000..ab040636
--- /dev/null
+++ b/frontend/src/components/mydashboard/Slideshow.js
@@ -0,0 +1,48 @@
+import React, { Component } from 'react';
+import AliceCarousel from 'react-alice-carousel';
+import 'react-alice-carousel/lib/alice-carousel.css';
+import IndustrialImage from 'assets/dummyImages/Industrialapplications.jpg';
+import PowerGeneration from 'assets/dummyImages/powerGeneration.jpg';
+import PowerTransmission from 'assets/dummyImages/powerTransmission.jpg';
+//import './mydashboard.css';
+
+export default class Slideshow extends Component {
+ constructor(props, context) {
+ super();
+ this.state = {
+ images: [IndustrialImage, PowerGeneration, PowerTransmission]
+ };
+ }
+ getData() {
+ const img = this.state.images.map((m) => );
+ }
+ responsive = {
+ 0: { items: 1 },
+ 1024: { items: 1 }
+ };
+ componentDidMount() {
+ this.getData();
+ }
+
+ render() {
+ const items = [
+ ,
+ ,
+
+ ];
+ return (
+
+ );
+ }
+}
diff --git a/frontend/src/components/mydashboard/index.js b/frontend/src/components/mydashboard/index.js
new file mode 100644
index 00000000..d8a1fa5a
--- /dev/null
+++ b/frontend/src/components/mydashboard/index.js
@@ -0,0 +1,3 @@
+import mydashboardComponent from './mydashboardComponent';
+
+export default mydashboardComponent;
diff --git a/frontend/src/components/mydashboard/mydashboard.css b/frontend/src/components/mydashboard/mydashboard.css
new file mode 100644
index 00000000..8533e5bb
--- /dev/null
+++ b/frontend/src/components/mydashboard/mydashboard.css
@@ -0,0 +1,149 @@
+.MydashboardContainer {
+ background-color: #ffffff;
+ /* border:0.5px solid #00b300; */
+ border-color: #00b300;
+ border-radius: 4px;
+ cursor: 'pointer';
+ min-width: 360;
+ max-width: 450;
+ min-height: 500px;
+ max-height: 500px;
+ margin-top: 10px;
+ position: fixed;
+
+}
+
+.FavCardsContainer {
+ background-color: #ffffff;
+ /* border:0.5px solid #00b300; */
+ border-radius: 4px;
+ cursor: 'pointer';
+ min-width: 360;
+ max-width: 450;
+ min-height: 500px;
+ max-height: 500px;
+ margin-top: 10px;
+ position: fixed;
+ overflow-y: visible;
+ overflow-y: scroll;
+} /* Make images easier to work with */
+.img {
+ max-width: 100%;
+ display: block;
+}
+.ProjectsCardsContainer {
+ background-color: #ffffff;
+ /* border:0.5px solid #00b300; */
+ border-radius: 4px;
+ cursor: 'pointer';
+ min-width: 360;
+ max-width: 450;
+ min-height: 500px;
+ max-height: 450px;
+ margin-top: 10px;
+ margin-bottom:10px;
+ position: fixed;
+ overflow-y: visible;
+ overflow-y: scroll;
+}
+
+.star {
+ float: right;
+ color: var(--global--button--text--color);
+ text-decoration: none;
+ font-size: 24px;
+ border-style: none;
+ cursor: pointer;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+.dashboardCardSubTitle i{
+ font-size: 10px;
+}
+
+.dashboardCardSubTitle{
+
+ font-family: inherit;
+ font-style: normal;
+ font-weight: bold;
+ font-size: var(--global--text-title--FontSize)-2;
+ letter-spacing: 0.5px;
+ color: #643082;
+ margin-bottom: 10px;
+ padding-left: 0px;
+ margin-top: 0px;
+ margin-bottom: 5px;
+ margin-left: 0px;
+
+
+
+}
+.dashboardTitle {
+ font-family: inherit;
+ font-style: normal;
+ font-weight: bold;
+ font-size: var(--global--text-title--FontSize);
+ letter-spacing: 0.5px;
+ color: #643082;
+ margin-bottom: 10px;
+ padding-left: 0px;
+ margin-top: 0px;
+ margin-bottom: 5px;
+ margin-left: 0px;
+}
+.dashboardCardSubTitle p{
+ font-family: inherit;
+ font-style: normal;
+ font-weight: normal;
+ font-size: var(--global--text-subtitle--FontSize);
+ letter-spacing: 0.5px;
+ color: var(--global--text--color);
+
+}
+
+.dashboardTitle i {
+ margin-right: 5px;
+ margin-left: 0px;
+}
+
+.favIcon {
+ float: left;
+ display: flex;
+ flex-direction: row;
+ font-weight: bold;
+ /* color: var(--global--panel--color); */
+ background-color: var(--global--background--color);
+ color: var(--global--button--text--color);
+ text-decoration: none;
+ font-size: 22px;
+ text-align: right; /* If you want the text to be centered */
+ border-style: none;
+ padding: 10px;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+
+.Collapsible :hover{
+
+ cursor: pointer;
+ color:#643082;
+
+}
+.active,
+.collapsible:hover {
+ background-color: #ccc;
+}
+
+/* Style the collapsible content*/
+.content {
+ padding: 0 18px;
+ display: none;
+ overflow: hidden;
+ background-color: #f1f1f1;
+}
+.alice-carousel ul li img {
+ height: 400px;
+ width: 100%;
+ object-fit: cover;
+}
diff --git a/frontend/src/index.css b/frontend/src/index.css
index 05f35ccc..9b6a0c07 100644
--- a/frontend/src/index.css
+++ b/frontend/src/index.css
@@ -8,6 +8,7 @@
@import url('components/productGrid/ProductGridIndex.css');
@import url('routes/privateSection.css');
@import url('components/details/details.css');
+@import url('components/mydashboard/mydashboard.css');
/* css resets */
/* Box sizing rules */
diff --git a/frontend/src/routes/PrivateRoutes.js b/frontend/src/routes/PrivateRoutes.js
index e1f4448b..afb83287 100644
--- a/frontend/src/routes/PrivateRoutes.js
+++ b/frontend/src/routes/PrivateRoutes.js
@@ -20,7 +20,8 @@ const ProductSolutionsServices = lazy(() =>
import('./dynamicPaths/ProductSolutionsServicesComponent')
);
// importing required components
-const DashboardComponent = lazy(() => import('../components/dashboard'));
+//const DashboardComponent = lazy(() => import('../components/dashboard'));
+const mydashboardComponent = lazy(() => import('../components/mydashboard/MydashboardComponent'));
/**
* Defining new Routes using private routes function
@@ -34,7 +35,7 @@ function PrivateRoutes() {
}>
-
+