diff --git a/.ebextensions/eb-redirect-https.config b/.ebextensions/eb-redirect-https.config
new file mode 100644
index 000000000..17aacb0da
--- /dev/null
+++ b/.ebextensions/eb-redirect-https.config
@@ -0,0 +1,53 @@
+####################################################################################################
+#### Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+####
+#### Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file
+#### except in compliance with the License. A copy of the License is located at
+####
+#### http://aws.amazon.com/apache2.0/
+####
+#### or in the "license" file accompanying this file. This file is distributed on an "AS IS"
+#### BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#### License for the specific language governing permissions and limitations under the License.
+####################################################################################################
+
+####################################################################################################
+#### This configuration file adds a listener to the Application Load Balancer for port 443, this new listener
+#### requires the ARN of a public website certificate create residing in the certificate manager service.
+#### The configuration file also modifies the default port 80 listener attached to an Application Load Balancer
+#### to automatically redirect incoming connections on HTTP to HTTPS.
+#### This will not work with an environment using the load balancer type Classic or Network.
+#### Do not use this configuration file if a listener has already been created for port 443 from the console.
+####################################################################################################
+
+Resources:
+ AWSEBV2LoadBalancerListener:
+ Type: 'AWS::ElasticLoadBalancingV2::Listener'
+ Properties:
+ DefaultActions:
+ - Type: redirect
+ RedirectConfig:
+ Protocol: HTTPS
+ Port: '443'
+ Host: '#{host}'
+ Path: '/#{path}'
+ Query: '#{query}'
+ StatusCode: HTTP_301
+ LoadBalancerArn:
+ Ref: AWSEBV2LoadBalancer
+ Port: 80
+ Protocol: HTTP
+ AWSEBV2LoadBalancerListenerHTTPS:
+ Type: 'AWS::ElasticLoadBalancingV2::Listener'
+ Properties:
+ Certificates:
+ - CertificateArn: arn:aws:acm:ca-central-1:714144183158:certificate/c6a0fcde-b959-4aee-afc6-934e27c4962b
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn:
+ Ref: AWSEBV2LoadBalancerTargetGroup
+ LoadBalancerArn:
+ Ref: AWSEBV2LoadBalancer
+ Port: 443
+ Protocol: HTTPS
+
\ No newline at end of file
diff --git a/admin/public/index.html b/admin/public/index.html
index 5ce0f5032..5b7dbccaf 100644
--- a/admin/public/index.html
+++ b/admin/public/index.html
@@ -2,7 +2,7 @@
-
+
+
+
+
+
+
+G
+
+
+
+src/App/App.container.jsx
+
+src/App/App.container.jsx
+
+
+
+src/App/App.jsx
+
+src/App/App.jsx
+
+
+
+src/App/App.container.jsx->src/App/App.jsx
+
+
+
+
+
+src/firebase/firebase.utils.js
+
+src/firebase/firebase.utils.js
+
+
+
+src/App/App.container.jsx->src/firebase/firebase.utils.js
+
+
+
+
+
+src/components/error-boundary/error-boundary.component.jsx
+
+src/components/error-boundary/error-boundary.component.jsx
+
+
+
+src/App/App.jsx->src/components/error-boundary/error-boundary.component.jsx
+
+
+
+
+
+src/pages/manage/manage.page.container.jsx
+
+src/pages/manage/manage.page.container.jsx
+
+
+
+src/App/App.jsx->src/pages/manage/manage.page.container.jsx
+
+
+
+
+
+src/redux/store.js
+
+src/redux/store.js
+
+
+
+src/firebase/firebase.utils.js->src/redux/store.js
+
+
+
+
+
+src/components/error-boundary/error-boundary.component.jsx->src/firebase/firebase.utils.js
+
+
+
+
+
+src/pages/manage/manage.page.component.jsx
+
+src/pages/manage/manage.page.component.jsx
+
+
+
+src/pages/manage/manage.page.container.jsx->src/pages/manage/manage.page.component.jsx
+
+
+
+
+
+src/components/bill-detail-edit/bill-detail-edit.container.jsx
+
+src/components/bill-detail-edit/bill-detail-edit.container.jsx
+
+
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.container.jsx
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.container.jsx
+
+
+
+src/components/bill-detail-edit/bill-detail-edit.container.jsx->src/components/jobs-documents-gallery/jobs-documents-gallery.container.jsx
+
+
+
+
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.component.jsx
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.component.jsx
+
+
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.container.jsx->src/components/jobs-documents-gallery/jobs-documents-gallery.component.jsx
+
+
+
+
+
+src/components/bill-enter-modal/bill-enter-modal.container.jsx
+
+src/components/bill-enter-modal/bill-enter-modal.container.jsx
+
+
+
+src/components/documents-upload/documents-upload.utility.js
+
+src/components/documents-upload/documents-upload.utility.js
+
+
+
+src/components/bill-enter-modal/bill-enter-modal.container.jsx->src/components/documents-upload/documents-upload.utility.js
+
+
+
+
+
+src/components/documents-upload/documents-upload.utility.js->src/App/App.container.jsx
+
+
+
+
+
+src/components/documents-upload/documents-upload.utility.js->src/firebase/firebase.utils.js
+
+
+
+
+
+src/components/email-overlay/email-overlay.container.jsx
+
+src/components/email-overlay/email-overlay.container.jsx
+
+
+
+src/components/email-overlay/email-overlay.container.jsx->src/firebase/firebase.utils.js
+
+
+
+
+
+src/utils/RenderTemplate.js
+
+src/utils/RenderTemplate.js
+
+
+
+src/components/email-overlay/email-overlay.container.jsx->src/utils/RenderTemplate.js
+
+
+
+
+
+src/utils/RenderTemplate.js->src/App/App.container.jsx
+
+
+
+
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.delete.component.jsx
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.delete.component.jsx
+
+
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.component.jsx->src/components/jobs-documents-gallery/jobs-documents-gallery.delete.component.jsx
+
+
+
+
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.delete.component.jsx->src/App/App.container.jsx
+
+
+
+
+
+src/components/jobs-documents-gallery/jobs-documents-gallery.delete.component.jsx->src/firebase/firebase.utils.js
+
+
+
+
+
+src/components/shop-template-add/shop-template-add.component.jsx
+
+src/components/shop-template-add/shop-template-add.component.jsx
+
+
+
+src/components/shop-template-add/shop-template-add.component.jsx->src/App/App.container.jsx
+
+
+
+
+
+src/components/shop-template-add/shop-template-add.component.jsx->src/firebase/firebase.utils.js
+
+
+
+
+
+src/components/shop-template-editor/shop-template-editor.component.jsx
+
+src/components/shop-template-editor/shop-template-editor.component.jsx
+
+
+
+src/components/shop-template-test-render/shop-template-test-render.component.jsx
+
+src/components/shop-template-test-render/shop-template-test-render.component.jsx
+
+
+
+src/components/shop-template-editor/shop-template-editor.component.jsx->src/components/shop-template-test-render/shop-template-test-render.component.jsx
+
+
+
+
+
+src/components/shop-template-test-render/shop-template-test-render.component.jsx->src/App/App.container.jsx
+
+
+
+
+
+src/components/shop-template-test-render/shop-template-test-render.component.jsx->src/utils/RenderTemplate.js
+
+
+
+
+
+src/components/shop-template-editor/shop-template-editor.container.jsx
+
+src/components/shop-template-editor/shop-template-editor.container.jsx
+
+
+
+src/components/shop-template-editor/shop-template-editor.container.jsx->src/components/shop-template-editor/shop-template-editor.component.jsx
+
+
+
+
+
+src/components/shop-templates-list/shop-templates-list.container.jsx
+
+src/components/shop-templates-list/shop-templates-list.container.jsx
+
+
+
+src/components/shop-templates-list/shop-templates-list.container.jsx->src/components/shop-template-add/shop-template-add.component.jsx
+
+
+
+
+
+src/redux/root.saga.js
+
+src/redux/root.saga.js
+
+
+
+src/redux/store.js->src/redux/root.saga.js
+
+
+
+
+
+src/pages/bills/bills.page.container.jsx
+
+src/pages/bills/bills.page.container.jsx
+
+
+
+src/pages/bills/bills.page.container.jsx->src/components/bill-detail-edit/bill-detail-edit.container.jsx
+
+
+
+
+
+src/pages/manage/manage.page.component.jsx->src/App/App.container.jsx
+
+
+
+
+
+src/pages/manage/manage.page.component.jsx->src/components/error-boundary/error-boundary.component.jsx
+
+
+
+
+
+src/pages/manage/manage.page.component.jsx->src/components/bill-enter-modal/bill-enter-modal.container.jsx
+
+
+
+
+
+src/pages/manage/manage.page.component.jsx->src/components/email-overlay/email-overlay.container.jsx
+
+
+
+
+
+src/pages/manage/manage.page.component.jsx->src/pages/bills/bills.page.container.jsx
+
+
+
+
+
+src/pages/shop-templates/shop-templates.container.js
+
+src/pages/shop-templates/shop-templates.container.js
+
+
+
+src/pages/manage/manage.page.component.jsx->src/pages/shop-templates/shop-templates.container.js
+
+
+
+
+
+src/pages/shop-templates/shop-templates.container.js->src/components/shop-template-editor/shop-template-editor.container.jsx
+
+
+
+
+
+src/pages/shop-templates/shop-templates.container.js->src/components/shop-templates-list/shop-templates-list.container.jsx
+
+
+
+
+
+src/redux/application/application.sagas.js
+
+src/redux/application/application.sagas.js
+
+
+
+src/redux/application/application.sagas.js->src/App/App.container.jsx
+
+
+
+
+
+src/redux/messaging/messaging.sagas.js
+
+src/redux/messaging/messaging.sagas.js
+
+
+
+src/redux/messaging/messaging.sagas.js->src/App/App.container.jsx
+
+
+
+
+
+src/redux/messaging/messaging.sagas.js->src/firebase/firebase.utils.js
+
+
+
+
+
+src/redux/root.saga.js->src/redux/application/application.sagas.js
+
+
+
+
+
+src/redux/root.saga.js->src/redux/messaging/messaging.sagas.js
+
+
+
+
+
+src/redux/tech/tech.sagas.js
+
+src/redux/tech/tech.sagas.js
+
+
+
+src/redux/root.saga.js->src/redux/tech/tech.sagas.js
+
+
+
+
+
+src/redux/user/user.sagas.js
+
+src/redux/user/user.sagas.js
+
+
+
+src/redux/root.saga.js->src/redux/user/user.sagas.js
+
+
+
+
+
+src/redux/tech/tech.sagas.js->src/firebase/firebase.utils.js
+
+
+
+
+
+src/redux/user/user.sagas.js->src/firebase/firebase.utils.js
+
+
+
+
+
diff --git a/client/package.json b/client/package.json
index 6abf01fcd..cbf7c1f5e 100644
--- a/client/package.json
+++ b/client/package.json
@@ -11,11 +11,7 @@
"@tinymce/tinymce-react": "^3.7.0",
"antd": "^4.6.6",
"apollo-boost": "^0.4.9",
- "apollo-link-context": "^1.0.20",
- "apollo-link-error": "^1.1.13",
"apollo-link-logger": "^2.0.0",
- "apollo-link-retry": "^2.2.16",
- "apollo-link-ws": "^1.0.20",
"axios": "^0.20.0",
"codemirror": "^5.58.1",
"codemirror-graphql": "^0.12.2",
@@ -45,7 +41,6 @@
"react-email-editor": "^1.1.1",
"react-ga": "^3.1.2",
"react-grid-gallery": "^0.5.5",
- "react-grid-layout": "^1.1.1",
"react-i18next": "^11.7.3",
"react-icons": "^3.11.0",
"react-moment": "^1.0.0",
@@ -70,7 +65,8 @@
"start": "react-scripts start",
"build": "REACT_APP_GIT_SHA=`git rev-parse --short HEAD` react-scripts build",
"test": "react-scripts test",
- "eject": "react-scripts eject"
+ "eject": "react-scripts eject",
+ "madge": "madge --image ./madge-graph.svg --extensions js,jsx,ts,tsx --circular ."
},
"eslintConfig": {
"extends": "react-app"
diff --git a/client/public/favicon.png b/client/public/favicon.png
new file mode 100644
index 000000000..d14882bea
Binary files /dev/null and b/client/public/favicon.png differ
diff --git a/client/public/index.html b/client/public/index.html
index 8b3eb7a0d..f92ac3b35 100644
--- a/client/public/index.html
+++ b/client/public/index.html
@@ -2,7 +2,7 @@
-
+
-
+