diff --git a/package.json b/package.json
index 36800b1..a5c9876 100644
--- a/package.json
+++ b/package.json
@@ -37,11 +37,14 @@
"@material-ui/icons": "^4.9.1",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
+ "bootstrap": "^4.5.0",
"history": "^4.10.1",
"react": "^16.13.1",
+ "react-bootstrap": "^1.0.1",
"react-dom": "^16.13.1",
"react-redux": "^7.2.0",
"react-router-dom": "^5.1.2",
+ "reactstrap": "^8.4.1",
"redux": "^4.0.5",
"redux-devtools-extension": "^2.13.8",
"redux-thunk": "^2.3.0",
diff --git a/src/App.css b/src/App.css
index 58328e3..cc5b9b0 100644
--- a/src/App.css
+++ b/src/App.css
@@ -1,6 +1,6 @@
-.App {
- position: relative;
- width: 100%;
- height: 100%;
-}
-
+/* html,
+body {
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans',
+ 'Droid Sans', 'Helvetica Neue', sans-serif;
+ background-color: rgb(245, 245, 245);
+} */
diff --git a/src/_nav.js b/src/_nav.js
new file mode 100644
index 0000000..bd31b71
--- /dev/null
+++ b/src/_nav.js
@@ -0,0 +1,28 @@
+export default {
+ items: [
+ {
+ name: 'Dashboard',
+ url: '/dashboard'
+ },
+ {
+ name: 'About',
+ url: '/dashboard/about'
+ },
+ {
+ name: 'Donate',
+ url: '/dashboard/donate'
+ },
+ {
+ name: 'History',
+ url: '/dashboard/history'
+ },
+ {
+ name: 'MyAccount',
+ url: '/dashboard/myaccount'
+ },
+ {
+ name: 'Support',
+ url: '/dashboard/support'
+ }
+ ]
+};
diff --git a/src/components/Navigations/NavBar/index.js b/src/components/Navigations/NavBar/index.js
index e8c8722..fe1bd6e 100644
--- a/src/components/Navigations/NavBar/index.js
+++ b/src/components/Navigations/NavBar/index.js
@@ -1,14 +1,18 @@
-/* eslint-disable linebreak-style */
/* eslint-disable no-unused-vars */
-import React from 'react';
+/* eslint-disable class-methods-use-this */
+import React, { Component, Fragment } from 'react';
+import Navbar from 'react-bootstrap/Navbar';
-import NavigationItem from '../NavigationItem';
-import classes from './style.css';
+class Index extends Component {
+ render() {
+ return (
+
+
+ Broomy
+
+
+ );
+ }
+}
-export default (props) => (
-
- Home which is same as Landing Page here
- If you wanna go to orders page
- If you wanna go to orders page
-
-);
+export default Index;
diff --git a/src/components/Navigations/Sidedrawer/CustomerSidebar.js b/src/components/Navigations/Sidedrawer/CustomerSidebar.js
new file mode 100644
index 0000000..b63bd02
--- /dev/null
+++ b/src/components/Navigations/Sidedrawer/CustomerSidebar.js
@@ -0,0 +1,17 @@
+/* eslint-disable no-unused-vars */
+/* eslint-disable class-methods-use-this */
+import React, { Component, Fragment } from 'react';
+import Side from './Side';
+
+class CustomerSidebar extends Component {
+ render() {
+ const { active, items } = this.props;
+ return (
+
+
+
+ );
+ }
+}
+
+export default CustomerSidebar;
diff --git a/src/components/Navigations/Sidedrawer/NavItem.js b/src/components/Navigations/Sidedrawer/NavItem.js
new file mode 100644
index 0000000..c80371d
--- /dev/null
+++ b/src/components/Navigations/Sidedrawer/NavItem.js
@@ -0,0 +1,22 @@
+// eslint-disable-next-line no-unused-vars
+import React, { Component } from 'react';
+
+class NavItem extends Component {
+ function handleClick (){
+ const { path, onItemClick } = this.props;
+ onItemClick(path);
+ };
+
+ render() {
+ const { active } = this.props;
+ return (
+
+
+
+ );
+ }
+}
+
+export default NavItem;
diff --git a/src/components/Navigations/Sidedrawer/Side.js b/src/components/Navigations/Sidedrawer/Side.js
new file mode 100644
index 0000000..16768c7
--- /dev/null
+++ b/src/components/Navigations/Sidedrawer/Side.js
@@ -0,0 +1,28 @@
+// eslint-disable-next-line no-unused-vars
+import React, { Fragment } from 'react';
+
+export default function Side(items) {
+ return (
+
+
+ {
+ items.map(({
+ label, name, items: subItems, ...rest
+ }) => (
+
+ {label}
+ {Array.isArray(subItems) ? (
+
+ {subItems.map((subItem) => (
+
+ {subItem.label}
+
+ ))}
+
+ ) : null}
+
+ ))}
+
+
+ );
+}
diff --git a/src/components/Navigations/Sidedrawer/SideNav.js b/src/components/Navigations/Sidedrawer/SideNav.js
new file mode 100644
index 0000000..7ea6b9e
--- /dev/null
+++ b/src/components/Navigations/Sidedrawer/SideNav.js
@@ -0,0 +1,75 @@
+// // eslint-disable-next-line no-unused-vars
+// import React, { Component } from 'react';
+// import { withRouter } from 'react-router-dom';
+
+// class SideNav extends Component {
+// constructor(props) {
+// super(props);
+// this.state = {
+// activePath: props.location.pathname,
+// items: [
+// {
+// /* path is used as id to check which NavItem is active basically */
+// path: '/myaccount',
+// name: 'myaccount',
+// /* Key is required, else console throws error. Does this please you Mr. Browser?! */
+// key: 1
+// },
+// {
+// path: '/order',
+// name: 'order',
+// key: 2
+// },
+// {
+// path: '/donate',
+// name: 'donate',
+// key: 3
+// },
+// {
+// path: '/history',
+// name: 'history',
+// key: 3
+// },
+// {
+// path: '/support',
+// name: 'support',
+// key: 3
+// },
+// {
+// path: '/about',
+// name: 'about',
+// key: 3
+// }
+// ]
+// };
+// }
+
+// onItemClick = (path) => {
+// /* Sets activePath which causes rerender which causes CSS to change */
+// this.setState({ activePath: path });
+// };
+
+// render() {
+// return (
+//
+// {
+// /* items = just array AND map() loops thru that array AND item is param of that loop */
+// items.map((item) => (
+// /* Return however many NavItems in array to be rendered */
+//
+// ))
+// }
+//
+// );
+// }
+// }
+
+// export default withRouter(SideNav);
diff --git a/src/components/Screens/Auth/AdminDashboard.js b/src/components/Screens/Auth/AdminDashboard.js
new file mode 100644
index 0000000..83f2942
--- /dev/null
+++ b/src/components/Screens/Auth/AdminDashboard.js
@@ -0,0 +1,29 @@
+/* eslint-disable no-unused-vars */
+/* eslint-disable class-methods-use-this */
+import React, { Component } from 'react';
+import Container from 'react-bootstrap/Container';
+import Row from 'react-bootstrap/Row';
+import Col from 'react-bootstrap/Col';
+import Button from 'react-bootstrap/Button';
+
+class AdminDashboard extends Component {
+ render() {
+ return (
+
+
+
+
+
+
+
+
+
+
+ Hello
+
+
+ );
+ }
+}
+
+export default AdminDashboard;
diff --git a/src/components/Screens/Auth/AdminLogin.js b/src/components/Screens/Auth/AdminLogin.js
new file mode 100644
index 0000000..d1e4713
--- /dev/null
+++ b/src/components/Screens/Auth/AdminLogin.js
@@ -0,0 +1,42 @@
+/* eslint-disable no-unused-vars */
+/* eslint-disable class-methods-use-this */
+import React, { Component } from 'react';
+import { Link } from 'react-router-dom';
+import Container from 'react-bootstrap/Container';
+import Row from 'react-bootstrap/Row';
+import Col from 'react-bootstrap/Col';
+
+class AdminLogin extends Component {
+ render() {
+ return (
+
+
+
+
+ Email address
+
+ We'll never share your email with anyone else.
+
+
+
+ Password
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default AdminLogin;
diff --git a/src/components/Screens/Auth/AgentDasboard.js b/src/components/Screens/Auth/AgentDasboard.js
new file mode 100644
index 0000000..17f74b3
--- /dev/null
+++ b/src/components/Screens/Auth/AgentDasboard.js
@@ -0,0 +1,29 @@
+/* eslint-disable no-unused-vars */
+/* eslint-disable class-methods-use-this */
+import React, { Component } from 'react';
+import Container from 'react-bootstrap/Container';
+import Row from 'react-bootstrap/Row';
+import Col from 'react-bootstrap/Col';
+import Button from 'react-bootstrap/Button';
+
+class AgentDashboard extends Component {
+ render() {
+ return (
+
+
+
+
+
+
+
+
+
+
+ Hello
+
+
+ );
+ }
+}
+
+export default AgentDashboard;
diff --git a/src/components/Screens/Auth/AgentSignUp.js b/src/components/Screens/Auth/AgentSignUp.js
new file mode 100644
index 0000000..842ba20
--- /dev/null
+++ b/src/components/Screens/Auth/AgentSignUp.js
@@ -0,0 +1,54 @@
+/* eslint-disable no-undef */
+/* eslint-disable linebreak-style */
+/* eslint-disable class-methods-use-this */
+/* eslint-disable no-unused-vars */
+import React, { Component } from 'react';
+
+// Bootstrap
+import Container from 'react-bootstrap/Container';
+import Row from 'react-bootstrap/Row';
+import Col from 'react-bootstrap/Col';
+import Form from 'react-bootstrap/Form';
+import Button from 'react-bootstrap/Button';
+
+class SignUp extends Component {
+ render() {
+ return (
+
+
+
+
+ Company Name
+
+
+
+ Country
+
+
+
+ Phone Number
+
+
+
+ Email address
+
+
+
+ Password
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default SignUp;
diff --git a/src/components/Screens/Auth/CustomerDashboard.js b/src/components/Screens/Auth/CustomerDashboard.js
new file mode 100644
index 0000000..5d8f261
--- /dev/null
+++ b/src/components/Screens/Auth/CustomerDashboard.js
@@ -0,0 +1,37 @@
+/* eslint-disable no-unused-vars */
+import React, { Component, Fragment, Suspence } from 'react';
+import { Route } from 'react-router-dom';
+import { Container, Row, Col } from 'reactstrap';
+
+const customer = React.lazy(() => import('../../Navigations/Sidedrawer/CustomerSidebar'));
+
+class CustomerDashboard extends Component {
+ constructor(props) {
+ super(props);
+
+ this.toggle = this.toggle.bind(this);
+ this.state = {};
+ }
+
+ // eslint-disable-next-line class-methods-use-this
+ toggle(e) {}
+
+ // eslint-disable-next-line class-methods-use-this
+ render() {
+ return (
+
+
+
+
+
+
+
+
+ Hello
+
+
+
+ );
+ }
+}
+export default CustomerDashboard;
diff --git a/src/components/Screens/Auth/Profile.js b/src/components/Screens/Auth/Profile.js
new file mode 100644
index 0000000..e522b09
--- /dev/null
+++ b/src/components/Screens/Auth/Profile.js
@@ -0,0 +1,70 @@
+/* eslint-disable no-unused-vars */
+import React, { Component, Fragment } from 'react';
+import Container from 'react-bootstrap/Container';
+import Row from 'react-bootstrap/Row';
+import Col from 'react-bootstrap/Col';
+
+class Profile extends Component {
+ // eslint-disable-next-line class-methods-use-this
+ render() {
+ return (
+
+
+
+
+
+
+
Profile
+
+
+
+
+ -
+ First Name: Broomy{' '}
+
+ -
+ Last Name: Clean
+
+ -
+ Email Address: broomyclean@broomy.com
+
+ -
+ Phone Number: 08070006900
+
+ -
+ Address: cadastral zone wuse
+
+ -
+ Country: Nigeria
+
+
+
+
+

+
+
+
+
+
order
+
+ - Cras justo odio
+ - Dapibus ac facilisis in
+ - Morbi leo risus
+ - Porta ac consectetur ac
+ - Vestibulum at eros
+
+
+
+
map
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default Profile;
diff --git a/src/components/Screens/Auth/SignIn.js b/src/components/Screens/Auth/SignIn.js
deleted file mode 100644
index 6280d68..0000000
--- a/src/components/Screens/Auth/SignIn.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable linebreak-style */
-/* eslint-disable no-unused-vars */
-/* eslint-disable class-methods-use-this */
-import React, { Component, Fragment } from 'react';
-import withStyles from '@material-ui/core/styles/withStyles';
-import history from '../../../history';
-
-const styles = (theme) => ({
- ...theme.spreadthis
-});
-
-export class login extends Component {
- render() {
- return (
-
- This is the sign in page
-
-
- );
- }
-}
-
-export default withStyles(styles)(login);
diff --git a/src/components/Screens/Auth/Signup.js b/src/components/Screens/Auth/Signup.js
new file mode 100644
index 0000000..73f3210
--- /dev/null
+++ b/src/components/Screens/Auth/Signup.js
@@ -0,0 +1,64 @@
+/* eslint-disable no-undef */
+/* eslint-disable linebreak-style */
+/* eslint-disable class-methods-use-this */
+/* eslint-disable no-unused-vars */
+import React, { Component } from 'react';
+import Container from 'react-bootstrap/Container';
+import Row from 'react-bootstrap/Row';
+import Col from 'react-bootstrap/Col';
+import Form from 'react-bootstrap/Form';
+import Button from 'react-bootstrap/Button';
+
+class Signup extends Component {
+ render() {
+ return (
+
+
+
+ signup
+
+
+
+
+
+ First Name
+
+
+
+ Last Name
+
+
+
+ Email address
+
+
+
+ Country
+
+
+
+ Phone Number
+
+
+
+ Password
+
+
+
+
+
+ Loading...
+
+
+
+
+
+
+ );
+ }
+}
+
+export default Signup;
diff --git a/src/containers/LandingPage/index.js b/src/containers/LandingPage/index.js
index e4c1a83..63b98b2 100644
--- a/src/containers/LandingPage/index.js
+++ b/src/containers/LandingPage/index.js
@@ -1,23 +1,114 @@
+/* eslint-disable class-methods-use-this */
+/* eslint-disable no-undef */
+/* eslint-disable max-len */
/* eslint-disable linebreak-style */
/* eslint-disable no-unused-vars */
-/* eslint-disable class-methods-use-this */
+
import React, { Component, Fragment } from 'react';
-import withStyles from '@material-ui/core/styles/withStyles';
-import history from '../../history';
+import { Link } from 'react-router-dom';
-const styles = (theme) => ({
- ...theme.spreadthis
-});
+// Bootstrap
+import Container from 'react-bootstrap/Container';
+import Row from 'react-bootstrap/Row';
+import Col from 'react-bootstrap/Col';
+import Form from 'react-bootstrap/Form';
+import Button from 'react-bootstrap/Button';
+import Jumbotron from 'react-bootstrap/Jumbotron';
+import NavBar from '../../components/Navigations/NavBar/index';
+import './styles.css';
-export class LandingPage extends Component {
+class LandingPage extends Component {
render() {
+ const customer = (
+
+
+ Email address
+
+ We'll never share your email with anyone else.
+
+
+
+ Password
+
+
+
+
+
+
+
+
+
+
+ );
+ const admin = (
+
+
+ Email address
+
+ We'll never share your email with anyone else.
+
+
+
+ Password
+
+
+
+
+
+
+
+
+ Loading...
+
+
+
+
+ );
return (
- This is Landing Page
-
+
+
+
+
+
+ Cleaner city initiative!
+ support Broomy in the cleaning of a community.
+
+
+
+
+
+
+
+ {customer}
+
+
+ forgot password
+ click here
+ or
+ signup
+
+
+
+
+
);
}
}
-export default withStyles(styles)(LandingPage);
+export default LandingPage;
diff --git a/src/containers/LandingPage/styles.css b/src/containers/LandingPage/styles.css
index e69de29..34a9e3e 100644
--- a/src/containers/LandingPage/styles.css
+++ b/src/containers/LandingPage/styles.css
@@ -0,0 +1,16 @@
+.wrapper {
+ width: '1200';
+ margin: '100px auto 0 auto';
+ display: flex;
+ justify-content: center;
+ flex-direction: row;
+}
+
+.columnWrapper {
+ flex-grow: 1;
+ flex-basis: 600;
+}
+
+.input {
+ display: block;
+}
diff --git a/src/hoc/AppHeader.js b/src/hoc/AppHeader.js
new file mode 100644
index 0000000..754eae9
--- /dev/null
+++ b/src/hoc/AppHeader.js
@@ -0,0 +1,100 @@
+// eslint-disable-next-line no-unused-vars
+import React, { Fragment, useState } from 'react';
+
+function AppHeader() {
+ const [isOpen, setIsOpen] = useState(false);
+
+ const toggle = () => setIsOpen(!isOpen);
+ return (
+
+
+ reactstrap
+
+
+
+
+
+
+ );
+}
+
+export default AppHeader;
diff --git a/src/hoc/AppSidebar.js b/src/hoc/AppSidebar.js
new file mode 100644
index 0000000..9b09890
--- /dev/null
+++ b/src/hoc/AppSidebar.js
@@ -0,0 +1,23 @@
+// eslint-disable-next-line no-unused-vars
+import React, { Fragment } from 'react';
+// eslint-disable-next-line no-unused-vars
+import { Nav, NavItem, NavLink } from 'reactstrap';
+
+// eslint-disable-next-line no-unused-vars
+const AppSidebar = ({ navConfig, ...props }) => {
+ return (
+
+
+
+ );
+};
+
+export default AppSidebar;
diff --git a/src/index.html b/src/index.html
index 744d096..09cadee 100644
--- a/src/index.html
+++ b/src/index.html
@@ -7,6 +7,8 @@
+
+