diff --git a/package-lock.json b/package-lock.json
index 9454140e8330bd5e3eb814e7ee9ab913540ab3fa..3bc5cd433457d4d50a93d633d3d0669c5be06605 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1298,11 +1298,6 @@
       "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
       "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw=="
     },
-    "@sindresorhus/is": {
-      "version": "0.14.0",
-      "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
-      "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
-    },
     "@svgr/babel-plugin-add-jsx-attribute": {
       "version": "4.2.0",
       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz",
@@ -1622,19 +1617,6 @@
         "hoist-non-react-statics": "^3.3.0"
       }
     },
-    "@szmarczak/http-timer": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
-      "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
-      "requires": {
-        "defer-to-connect": "^1.0.1"
-      }
-    },
-    "@types/node": {
-      "version": "14.14.6",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz",
-      "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw=="
-    },
     "@types/parse-json": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
@@ -1848,11 +1830,6 @@
       "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
       "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg=="
     },
-    "abbrev": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
-      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
-    },
     "accepts": {
       "version": "1.3.7",
       "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
@@ -1941,39 +1918,6 @@
       "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
       "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM="
     },
-    "ansi-align": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
-      "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
-      "requires": {
-        "string-width": "^3.0.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
-          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
-        },
-        "string-width": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
-          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
-          "requires": {
-            "emoji-regex": "^7.0.1",
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^5.1.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
-          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
-          "requires": {
-            "ansi-regex": "^4.1.0"
-          }
-        }
-      }
-    },
     "ansi-colors": {
       "version": "3.2.4",
       "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
@@ -2539,11 +2483,6 @@
       "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
       "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
     },
-    "autobind-decorator": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/autobind-decorator/-/autobind-decorator-2.4.0.tgz",
-      "integrity": "sha512-OGYhWUO72V6DafbF8PM8rm3EPbfuyMZcJhtm5/n26IDwO18pohE4eNazLoCGhPiXOCD0gEGmrbU3849QvM8bbw=="
-    },
     "autoprefixer": {
       "version": "9.8.0",
       "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.0.tgz",
@@ -3391,99 +3330,6 @@
       "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
       "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
     },
-    "boxen": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
-      "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
-      "requires": {
-        "ansi-align": "^3.0.0",
-        "camelcase": "^5.3.1",
-        "chalk": "^3.0.0",
-        "cli-boxes": "^2.2.0",
-        "string-width": "^4.1.0",
-        "term-size": "^2.1.0",
-        "type-fest": "^0.8.1",
-        "widest-line": "^3.1.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
-          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
-        },
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
-          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-        },
-        "emoji-regex": {
-          "version": "8.0.0",
-          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-          "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
-        },
-        "is-fullwidth-code-point": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
-        },
-        "string-width": {
-          "version": "4.2.0",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
-          "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
-          "requires": {
-            "emoji-regex": "^8.0.0",
-            "is-fullwidth-code-point": "^3.0.0",
-            "strip-ansi": "^6.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
-          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
-          "requires": {
-            "ansi-regex": "^5.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
     "brace-expansion": {
       "version": "1.1.11",
       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -4022,11 +3868,6 @@
         }
       }
     },
-    "cli-boxes": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
-      "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="
-    },
     "cli-cursor": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
@@ -4077,14 +3918,6 @@
         "shallow-clone": "^0.1.2"
       }
     },
-    "clone-response": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
-      "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
-      "requires": {
-        "mimic-response": "^1.0.0"
-      }
-    },
     "clsx": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
@@ -4279,45 +4112,6 @@
         }
       }
     },
-    "configstore": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
-      "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
-      "requires": {
-        "dot-prop": "^5.2.0",
-        "graceful-fs": "^4.1.2",
-        "make-dir": "^3.0.0",
-        "unique-string": "^2.0.0",
-        "write-file-atomic": "^3.0.0",
-        "xdg-basedir": "^4.0.0"
-      },
-      "dependencies": {
-        "make-dir": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
-          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
-          "requires": {
-            "semver": "^6.0.0"
-          }
-        },
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
-        },
-        "write-file-atomic": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
-          "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
-          "requires": {
-            "imurmurhash": "^0.1.4",
-            "is-typedarray": "^1.0.0",
-            "signal-exit": "^3.0.2",
-            "typedarray-to-buffer": "^3.1.5"
-          }
-        }
-      }
-    },
     "confusing-browser-globals": {
       "version": "1.0.9",
       "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz",
@@ -4515,11 +4309,6 @@
         "randomfill": "^1.0.3"
       }
     },
-    "crypto-random-string": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
-      "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
-    },
     "css-blank-pseudo": {
       "version": "0.1.4",
       "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz",
@@ -5073,14 +4862,6 @@
       "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
       "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
     },
-    "decompress-response": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
-      "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
-      "requires": {
-        "mimic-response": "^1.0.0"
-      }
-    },
     "deep-equal": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
@@ -5094,11 +4875,6 @@
         "regexp.prototype.flags": "^1.2.0"
       }
     },
-    "deep-extend": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
-      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
-    },
     "deep-is": {
       "version": "0.1.3",
       "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
@@ -5142,11 +4918,6 @@
         "strip-bom": "^2.0.0"
       }
     },
-    "defer-to-connect": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
-      "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
-    },
     "define-properties": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@@ -5481,11 +5252,6 @@
       "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
       "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E="
     },
-    "duplexer3": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
-      "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
-    },
     "duplexify": {
       "version": "3.7.1",
       "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
@@ -5706,11 +5472,6 @@
         "is-symbol": "^1.0.2"
       }
     },
-    "escape-goat": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
-      "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q=="
-    },
     "escape-html": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -7899,14 +7660,6 @@
       "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
       "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs="
     },
-    "global-dirs": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz",
-      "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==",
-      "requires": {
-        "ini": "^1.3.5"
-      }
-    },
     "global-modules": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
@@ -7963,24 +7716,6 @@
         }
       }
     },
-    "got": {
-      "version": "9.6.0",
-      "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
-      "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
-      "requires": {
-        "@sindresorhus/is": "^0.14.0",
-        "@szmarczak/http-timer": "^1.1.2",
-        "cacheable-request": "^6.0.0",
-        "decompress-response": "^3.3.0",
-        "duplexer3": "^0.1.4",
-        "get-stream": "^4.1.0",
-        "lowercase-keys": "^1.0.1",
-        "mimic-response": "^1.0.1",
-        "p-cancelable": "^1.0.0",
-        "to-readable-stream": "^1.0.0",
-        "url-parse-lax": "^3.0.0"
-      }
-    },
     "graceful-fs": {
       "version": "4.2.4",
       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
@@ -8132,11 +7867,6 @@
         }
       }
     },
-    "has-yarn": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
-      "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw=="
-    },
     "hash-base": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
@@ -8376,11 +8106,6 @@
         }
       }
     },
-    "http-cache-semantics": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
-      "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
-    },
     "http-deceiver": {
       "version": "1.2.7",
       "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
@@ -8761,11 +8486,6 @@
       "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
       "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
     },
-    "ignore-by-default": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
-      "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk="
-    },
     "image-to-base64": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz",
@@ -8811,11 +8531,6 @@
         }
       }
     },
-    "import-lazy": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
-      "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
-    },
     "import-local": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz",
@@ -9256,11 +8971,6 @@
       "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
       "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
     },
-    "is-yarn-global": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
-      "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
-    },
     "isarray": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -9906,22 +9616,6 @@
         "merge-stream": "^1.0.1"
       }
     },
-    "jodit": {
-      "version": "3.4.29",
-      "resolved": "https://registry.npmjs.org/jodit/-/jodit-3.4.29.tgz",
-      "integrity": "sha512-1rW4aBeG5hgdTjNxYOWN2hc51M5O4U3BNdwxaxwLR8pIlrjmeDVxZu2YZ6L4TI1MfFRCpczL0vPzj6hlTFyvng==",
-      "requires": {
-        "autobind-decorator": "^2.4.0"
-      }
-    },
-    "jodit-react": {
-      "version": "1.0.66",
-      "resolved": "https://registry.npmjs.org/jodit-react/-/jodit-react-1.0.66.tgz",
-      "integrity": "sha512-qGuQituwzJU9DP9bbo9ACYrRAKQPHbCfCw0xelEeLRkLX7Z2eJn+qs+BmmA+sq2BCzam1MPl853DuClkfIIedw==",
-      "requires": {
-        "jodit": "^3.4.29"
-      }
-    },
     "joi": {
       "version": "11.4.0",
       "resolved": "https://registry.npmjs.org/joi/-/joi-11.4.0.tgz",
@@ -10002,11 +9696,6 @@
       "resolved": "https://registry.npmjs.org/jsmin/-/jsmin-1.0.1.tgz",
       "integrity": "sha1-570NzWSWw79IYyNb9GGj2YqjuYw="
     },
-    "json-buffer": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
-      "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
-    },
     "json-parse-better-errors": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -10188,14 +9877,6 @@
       "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz",
       "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
     },
-    "keyv": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
-      "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
-      "requires": {
-        "json-buffer": "3.0.0"
-      }
-    },
     "killable": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
@@ -10231,14 +9912,6 @@
         "webpack-sources": "^1.1.0"
       }
     },
-    "latest-version": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
-      "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
-      "requires": {
-        "package-json": "^6.3.0"
-      }
-    },
     "lazy-cache": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
@@ -10475,11 +10148,6 @@
       "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
       "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw="
     },
-    "lowercase-keys": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
-      "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
-    },
     "lru-cache": {
       "version": "5.1.1",
       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -10757,11 +10425,6 @@
       "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
       "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
     },
-    "mimic-response": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
-      "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
-    },
     "mini-create-react-context": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz",
@@ -11073,152 +10736,6 @@
       "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz",
       "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg=="
     },
-    "nodemailer": {
-      "version": "6.4.14",
-      "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.14.tgz",
-      "integrity": "sha512-0AQHOOT+nRAOK6QnksNaK7+5vjviVvEBzmZytKU7XSA+Vze2NLykTx/05ti1uJgXFTWrMq08u3j3x4r4OE6PAA=="
-    },
-    "nodemon": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz",
-      "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==",
-      "requires": {
-        "chokidar": "^3.2.2",
-        "debug": "^3.2.6",
-        "ignore-by-default": "^1.0.1",
-        "minimatch": "^3.0.4",
-        "pstree.remy": "^1.1.7",
-        "semver": "^5.7.1",
-        "supports-color": "^5.5.0",
-        "touch": "^3.1.0",
-        "undefsafe": "^2.0.3",
-        "update-notifier": "^4.1.0"
-      },
-      "dependencies": {
-        "anymatch": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
-          "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
-          "requires": {
-            "normalize-path": "^3.0.0",
-            "picomatch": "^2.0.4"
-          }
-        },
-        "braces": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-          "requires": {
-            "fill-range": "^7.0.1"
-          }
-        },
-        "chokidar": {
-          "version": "3.4.3",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
-          "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
-          "requires": {
-            "anymatch": "~3.1.1",
-            "braces": "~3.0.2",
-            "fsevents": "~2.1.2",
-            "glob-parent": "~5.1.0",
-            "is-binary-path": "~2.1.0",
-            "is-glob": "~4.0.1",
-            "normalize-path": "~3.0.0",
-            "readdirp": "~3.5.0"
-          }
-        },
-        "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "fill-range": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-          "requires": {
-            "to-regex-range": "^5.0.1"
-          }
-        },
-        "fsevents": {
-          "version": "2.1.3",
-          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
-          "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
-          "optional": true
-        },
-        "glob-parent": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
-          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
-          "requires": {
-            "is-glob": "^4.0.1"
-          }
-        },
-        "is-binary-path": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
-          "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-          "requires": {
-            "binary-extensions": "^2.0.0"
-          }
-        },
-        "is-extglob": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-          "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
-        },
-        "is-glob": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
-          "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
-          "requires": {
-            "is-extglob": "^2.1.1"
-          }
-        },
-        "is-number": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
-        },
-        "ms": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-        },
-        "normalize-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
-          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
-        },
-        "readdirp": {
-          "version": "3.5.0",
-          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
-          "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
-          "requires": {
-            "picomatch": "^2.2.1"
-          }
-        },
-        "to-regex-range": {
-          "version": "5.0.1",
-          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
-          "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-          "requires": {
-            "is-number": "^7.0.0"
-          }
-        }
-      }
-    },
-    "nopt": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
-      "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
-      "requires": {
-        "abbrev": "1"
-      }
-    },
     "normalize-package-data": {
       "version": "2.5.0",
       "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@@ -11569,11 +11086,6 @@
       "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
       "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
     },
-    "p-cancelable": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
-      "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
-    },
     "p-defer": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
@@ -11615,24 +11127,6 @@
       "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
       "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
     },
-    "package-json": {
-      "version": "6.5.0",
-      "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
-      "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
-      "requires": {
-        "got": "^9.6.0",
-        "registry-auth-token": "^4.0.0",
-        "registry-url": "^5.0.0",
-        "semver": "^6.2.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
-        }
-      }
-    },
     "pako": {
       "version": "1.0.11",
       "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
@@ -11818,7 +11312,8 @@
     "picomatch": {
       "version": "2.2.2",
       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
-      "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
+      "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+      "optional": true
     },
     "pify": {
       "version": "2.3.0",
@@ -14251,11 +13746,6 @@
       "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
       "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
     },
-    "prepend-http": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
-      "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
-    },
     "preserve": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
@@ -14382,11 +13872,6 @@
       "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
       "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
     },
-    "pstree.remy": {
-      "version": "1.1.8",
-      "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
-      "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
-    },
     "public-encrypt": {
       "version": "4.0.3",
       "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
@@ -14442,14 +13927,6 @@
       "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
       "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
     },
-    "pupa": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
-      "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
-      "requires": {
-        "escape-goat": "^2.0.0"
-      }
-    },
     "q": {
       "version": "1.5.1",
       "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
@@ -14545,17 +14022,6 @@
         }
       }
     },
-    "rc": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
-      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
-      "requires": {
-        "deep-extend": "^0.6.0",
-        "ini": "~1.3.0",
-        "minimist": "^1.2.0",
-        "strip-json-comments": "~2.0.1"
-      }
-    },
     "react": {
       "version": "16.14.0",
       "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
@@ -15590,22 +15056,6 @@
         "unicode-match-property-value-ecmascript": "^1.2.0"
       }
     },
-    "registry-auth-token": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz",
-      "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==",
-      "requires": {
-        "rc": "^1.2.8"
-      }
-    },
-    "registry-url": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
-      "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
-      "requires": {
-        "rc": "^1.2.8"
-      }
-    },
     "regjsgen": {
       "version": "0.5.2",
       "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
@@ -15791,14 +15241,6 @@
       "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
       "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
     },
-    "responselike": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
-      "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
-      "requires": {
-        "lowercase-keys": "^1.0.0"
-      }
-    },
     "restore-cursor": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
@@ -16263,21 +15705,6 @@
       "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
       "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
     },
-    "semver-diff": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
-      "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
-      "requires": {
-        "semver": "^6.3.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
-        }
-      }
-    },
     "send": {
       "version": "0.17.1",
       "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
@@ -17403,11 +16830,6 @@
       "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
       "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="
     },
-    "term-size": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
-      "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
-    },
     "terser": {
       "version": "3.17.0",
       "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
@@ -17645,11 +17067,6 @@
         "kind-of": "^3.0.2"
       }
     },
-    "to-readable-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
-      "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
-    },
     "to-regex": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
@@ -17693,14 +17110,6 @@
         "hoek": "4.x.x"
       }
     },
-    "touch": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
-      "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
-      "requires": {
-        "nopt": "~1.0.10"
-      }
-    },
     "tough-cookie": {
       "version": "2.5.0",
       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
@@ -17769,11 +17178,6 @@
         "prelude-ls": "~1.1.2"
       }
     },
-    "type-fest": {
-      "version": "0.8.1",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
-      "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
-    },
     "type-is": {
       "version": "1.6.18",
       "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -17788,14 +17192,6 @@
       "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
       "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
     },
-    "typedarray-to-buffer": {
-      "version": "3.1.5",
-      "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
-      "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
-      "requires": {
-        "is-typedarray": "^1.0.0"
-      }
-    },
     "typescript": {
       "version": "3.9.7",
       "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz",
@@ -17806,24 +17202,6 @@
       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.5.tgz",
       "integrity": "sha1-S1v/+Rhu/7qoiOTJ6UvZ/EyUkp0="
     },
-    "undefsafe": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
-      "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
-      "requires": {
-        "debug": "^2.2.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "requires": {
-            "ms": "2.0.0"
-          }
-        }
-      }
-    },
     "unicode-canonical-property-names-ecmascript": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
@@ -17950,84 +17328,6 @@
       "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
       "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
     },
-    "update-notifier": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
-      "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
-      "requires": {
-        "boxen": "^4.2.0",
-        "chalk": "^3.0.0",
-        "configstore": "^5.0.1",
-        "has-yarn": "^2.1.0",
-        "import-lazy": "^2.1.0",
-        "is-ci": "^2.0.0",
-        "is-installed-globally": "^0.3.1",
-        "is-npm": "^4.0.0",
-        "is-yarn-global": "^0.3.0",
-        "latest-version": "^5.0.0",
-        "pupa": "^2.0.1",
-        "semver-diff": "^3.1.1",
-        "xdg-basedir": "^4.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
-          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "ci-info": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
-          "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
-        },
-        "is-ci": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
-          "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
-          "requires": {
-            "ci-info": "^2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
     "upper-case": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
@@ -18081,14 +17381,6 @@
         "requires-port": "^1.0.0"
       }
     },
-    "url-parse-lax": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
-      "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
-      "requires": {
-        "prepend-http": "^2.0.0"
-      }
-    },
     "use": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
@@ -18905,49 +18197,6 @@
       "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
       "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
     },
-    "widest-line": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
-      "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
-      "requires": {
-        "string-width": "^4.0.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
-          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
-        },
-        "emoji-regex": {
-          "version": "8.0.0",
-          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-          "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
-        },
-        "is-fullwidth-code-point": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
-        },
-        "string-width": {
-          "version": "4.2.0",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
-          "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
-          "requires": {
-            "emoji-regex": "^8.0.0",
-            "is-fullwidth-code-point": "^3.0.0",
-            "strip-ansi": "^6.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
-          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
-          "requires": {
-            "ansi-regex": "^5.0.0"
-          }
-        }
-      }
-    },
     "winston": {
       "version": "3.2.1",
       "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz",
@@ -19237,11 +18486,6 @@
         "async-limiter": "~1.0.0"
       }
     },
-    "xdg-basedir": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
-      "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
-    },
     "xml-name-validator": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
diff --git a/src/Admin/Components/Components/DataCards/ActivityCard.js b/src/Admin/Components/Components/DataCards/ActivityCard.js
index 7b5eba7d6284b5d407c068fcead648600d7caf46..b3661ed8ae8caa6b02131fb36749a3171d218b0a 100644
--- a/src/Admin/Components/Components/DataCards/ActivityCard.js
+++ b/src/Admin/Components/Components/DataCards/ActivityCard.js
@@ -30,11 +30,11 @@ import Grid from "@material-ui/core/Grid";
 //imports from local files
 import { GetAData } from "../../../Filters";
 import { GetSpecificData } from '../../../Services';
+import { getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig';
 import { Link } from 'react-router-dom'
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 
 const ActivityCard = ({ match }) => {
-    console.log(match);
     const classes = useStyles();
 
     const [error, setError] = useState(null); //Necessary to consult the API, catch errors
@@ -47,35 +47,26 @@ const ActivityCard = ({ match }) => {
             .format("LLL")
             .toString();
     };
-    
-     //getting data from server
-     useEffect(() => {
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-        };
 
-        GetSpecificData(GetAData("activities", match.params.id), headers).then(
-            (res) => {
-                if (res.state) {
-                    setItem(res.data);
-                    setIsLoaded(true);
-                    setError(false);
-                } else {
-                    setIsLoaded(true);
-                    setError(true);
-                }
+    //getting data from server
+    useEffect(() => {
+        getRequest(GetAData("activities", match.params.id),
+            (data, header) => {
+                setItem(data);
+                setIsLoaded(true);
+                setError(false);
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(true);
             }
-        );
+        )
     }, []);
 
     if (error) {
         return <div>Houve um erro</div>;
     } else if (!isLoaded) {
-        return <LoadingSpinner text="Carregando..."/>
+        return <LoadingSpinner text="Carregando..." />
     } else {
         console.log(item)
         const DATA = [
@@ -107,7 +98,7 @@ const ActivityCard = ({ match }) => {
                 subTitle: "Recipient type",
                 prop: item["recipient_type"],
             },
-            
+
         ];
 
         return (
@@ -124,7 +115,7 @@ const ActivityCard = ({ match }) => {
                                 color="primary"
                                 aria-label="outlined primary button group"
                             >
-                                <Link style={{textDecoration: 'none'}} to={`/admin/activities`}>
+                                <Link style={{ textDecoration: 'none' }} to={`/admin/activities`}>
                                     <Button
                                         startIcon={<ListRoundedIcon />}
                                         color="primary"
diff --git a/src/Admin/Components/Components/DataCards/CollectionCard.js b/src/Admin/Components/Components/DataCards/CollectionCard.js
index 2657bc5c95c7aa40c2d64c200195f14fd8875401..54e3d3cbf0fa488200bffcc8a64ca25e5d587702 100644
--- a/src/Admin/Components/Components/DataCards/CollectionCard.js
+++ b/src/Admin/Components/Components/DataCards/CollectionCard.js
@@ -34,6 +34,7 @@ import { GetAData } from "../../../Filters";
 import { GetSpecificData } from '../../../Services';
 import { Link } from 'react-router-dom'
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
+import { getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig';
 
 const CollectionCard = ({ match }) => {
     console.log(match);
@@ -51,32 +52,24 @@ const CollectionCard = ({ match }) => {
     };
 
     useEffect(() => {
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-        };
-
-        GetSpecificData(GetAData("collections", match.params.id), headers).then(
-            (res) => {
-                if (res.state) {
-                    setItem(res.data);
-                    setIsLoaded(true);
-                    setError(false);
-                } else {
-                    setIsLoaded(true);
-                    setError(true);
-                }
+        getRequest(
+            GetAData("collections", match.params.id),
+            (data, header) => {
+                setItem(data);
+                setIsLoaded(true);
+                setError(false);
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(true);
             }
-        );
+        )
     }, []);
 
     if (error) {
         return <div>Houve um erro</div>;
     } else if (!isLoaded) {
-        return <LoadingSpinner text="Carregando..."/>
+        return <LoadingSpinner text="Carregando..." />
     } else {
         const DATA = [
             {
diff --git a/src/Admin/Components/Components/DataCards/CommunityQuestionCard.js b/src/Admin/Components/Components/DataCards/CommunityQuestionCard.js
index 4e7bafaf512da4e52990d85b2675f26a0029b8c2..83d7e6d9142969eee4addddbca84bae8da0c1867 100644
--- a/src/Admin/Components/Components/DataCards/CommunityQuestionCard.js
+++ b/src/Admin/Components/Components/DataCards/CommunityQuestionCard.js
@@ -35,6 +35,7 @@ import { Store } from '../../../../Store';
 import { Link } from 'react-router-dom'
 import { GetSpecificData } from "../../../Services";
 import Unauthorized from "../Unauthorized";
+import { getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 
 const CommunityQuestions = ({ match }) => {
@@ -53,49 +54,41 @@ const CommunityQuestions = ({ match }) => {
     };
 
     const CheckUserPermission = () => {
-        let canUserEdit = false; 
+        let canUserEdit = false;
 
         if (state.userIsLoggedIn) {
             const roles = [...state.currentUser.roles];
             for (let i = 0; i < roles.length; i++)
                 if (roles[i].name === 'admin' || roles[i].name === 'editor')
-                    canUserEdit = true; 
+                    canUserEdit = true;
         }
         else {
             canUserEdit = false;
-        } 
+        }
 
-        return canUserEdit; 
+        return canUserEdit;
     }
 
     useEffect(() => {
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-        };
-
-        GetSpecificData(GetAData("contacts", match.params.id), headers).then(
-            (res) => {
-                if (res.state) {
-                    setItem(res.data);
-                    setIsLoaded(true);
-                    setError(false);
-                } else {
-                    setIsLoaded(true);
-                    setError(true);
-                }
+        getRequest(
+            GetAData("contacts", match.params.id),
+            (data, header) => {
+                setItem(data);
+                setIsLoaded(true);
+                setError(false);
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(true);
             }
-        );
+        )
     }, []);
 
     if (error) {
         return <div>Houve um erro</div>;
     } else if (!isLoaded) {
-        return <LoadingSpinner text="Carregando..."/>
-    } else if(CheckUserPermission()){
+        return <LoadingSpinner text="Carregando..." />
+    } else if (CheckUserPermission()) {
         const DATA = [
             {
                 subTitle: "ID",
@@ -107,9 +100,9 @@ const CommunityQuestions = ({ match }) => {
             },
             {
                 subTitle: "Email",
-                prop: 
+                prop:
                     item.email ?
-                        <Link to={`/admin/sendEmail/${item.email}`} style={{textDecoration : 'none'}}>
+                        <Link to={`/admin/sendEmail/${item.email}`} style={{ textDecoration: 'none' }}>
                             <Button
                                 variant='text'
                                 color='primary'
@@ -143,7 +136,7 @@ const CommunityQuestions = ({ match }) => {
                                 color="primary"
                                 aria-label="outlined primary button group"
                             >
-                                <Link style={{textDecoration: 'none'}} to={`/admin/CommunityQuestions`}>
+                                <Link style={{ textDecoration: 'none' }} to={`/admin/CommunityQuestions`}>
                                     <Button
                                         startIcon={<ListRoundedIcon />}
                                         color="primary"
@@ -168,7 +161,7 @@ const CommunityQuestions = ({ match }) => {
                 </CardContent>
             </Card>
         );
-    } else return <Unauthorized/>
+    } else return <Unauthorized />
 };
 
 export default CommunityQuestions;
diff --git a/src/Admin/Components/Components/DataCards/InstitutionsCard.js b/src/Admin/Components/Components/DataCards/InstitutionsCard.js
index a918cb9d8e4f4d3b139201c433c525256b10a3d1..58eb2da9bf116188f38eb3581af11b2bf9d21d51 100644
--- a/src/Admin/Components/Components/DataCards/InstitutionsCard.js
+++ b/src/Admin/Components/Components/DataCards/InstitutionsCard.js
@@ -31,6 +31,7 @@ import Grid from '@material-ui/core/Grid';
 import EditRoundedIcon from "@material-ui/icons/EditRounded";
 //imports from local files
 import { GetAData } from "../../../Filters";
+import { getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import { Store } from '../../../../Store';
 import { Link } from 'react-router-dom';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
@@ -54,24 +55,23 @@ const InstitutionCard = ({ match }) => {
     };
 
     useEffect(() => {
-        fetch(GetAData('institutions', match.params.id))
-            .then((res) => res.json())
-            .then(
-                (result) => {
-                    setIsLoaded(true);
-                    setItem(result);
-                },
-                (error) => {
-                    setIsLoaded(true);
-                    setError(error);
-                }
-            );
+        getRequest(
+            GetAData('institutions', match.params.id),
+            (data, header) => {
+                setIsLoaded(true);
+                setItem(data);
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(error);
+            }
+        )
     }, []);
 
     if (error) {
         return <div>Houve um erro</div>;
     } else if (!isLoaded) {
-        return <LoadingSpinner text="Carregando..."/>
+        return <LoadingSpinner text="Carregando..." />
     } else {
         const DATA = [
             {
@@ -122,7 +122,7 @@ const InstitutionCard = ({ match }) => {
                                 color="primary"
                                 aria-label="outlined primary button group"
                             >
-                                <Link style={{textDecoration: 'none'}} to={`/admin/intitutions`}>
+                                <Link style={{ textDecoration: 'none' }} to={`/admin/intitutions`}>
                                     <Button
                                         startIcon={<ListRoundedIcon />}
                                         color="primary"
@@ -132,9 +132,9 @@ const InstitutionCard = ({ match }) => {
                                     </Button>
                                 </Link>
 
-                                <Link style={{textDecoration: 'none'}} to={`/admin/institutionEdit/${item.id}`}>
+                                <Link style={{ textDecoration: 'none' }} to={`/admin/institutionEdit/${item.id}`}>
                                     <Button
-                                        startIcon={<EditRoundedIcon/>}
+                                        startIcon={<EditRoundedIcon />}
                                         color="primary"
                                         variant="outlined"
                                     >
diff --git a/src/Admin/Components/Components/DataCards/NoteVarCard.js b/src/Admin/Components/Components/DataCards/NoteVarCard.js
index 546a270d4d9fb9de3f85706510590675f1445785..7afaac4aa867072eddb49a8e766fde158dc2d1a4 100644
--- a/src/Admin/Components/Components/DataCards/NoteVarCard.js
+++ b/src/Admin/Components/Components/DataCards/NoteVarCard.js
@@ -31,6 +31,7 @@ import { useStyles } from "../../Styles/DataCard";
 import EditRoundedIcon from "@material-ui/icons/EditRounded";
 //imports from local files
 import { GetAData } from "../../../Filters";
+import { getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import { Link } from 'react-router-dom';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 
@@ -51,18 +52,17 @@ const NoteCard = ({ match }) => {
 
 
     useEffect(() => {
-        fetch(GetAData('scores', match.params.id))
-            .then((res) => res.json())
-            .then(
-                (result) => {
-                    setIsLoaded(true);
-                    setItem(result);
-                },
-                (error) => {
-                    setIsLoaded(true);
-                    setError(error);
-                }
-            );
+        getRequest(
+            GetAData('scores', match.params.id),
+            (data, header) => {
+                setIsLoaded(true);
+                setItem(data);
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(true);
+            }
+        )
     }, []);
 
     if (error) {
diff --git a/src/Admin/Components/Components/DataCards/RatingCard.js b/src/Admin/Components/Components/DataCards/RatingCard.js
index b610182b04a5f9ad8724587cd886f484f27aed53..ee1f89645bee26cb2852cba9b413be365940eaf0 100644
--- a/src/Admin/Components/Components/DataCards/RatingCard.js
+++ b/src/Admin/Components/Components/DataCards/RatingCard.js
@@ -31,11 +31,11 @@ import { useStyles } from "../../Styles/DataCard";
 import EditRoundedIcon from "@material-ui/icons/EditRounded";
 //imports from local files
 import { GetAData } from "../../../Filters";
+import { getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import { Link } from 'react-router-dom';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';;
 
 const RatingCard = ({ match }) => {
-    console.log(match);
     const classes = useStyles();
 
     const [error, setError] = useState(null); //Necessary to consult the API, catch errors
@@ -50,24 +50,23 @@ const RatingCard = ({ match }) => {
     };
 
     useEffect(() => {
-        fetch(GetAData('ratings', match.params.id))
-            .then((res) => res.json())
-            .then(
-                (result) => {
-                    setIsLoaded(true);
-                    setItem(result);
-                },
-                (error) => {
-                    setIsLoaded(true);
-                    setError(error);
-                }
-            );
+        getRequest(
+            GetAData('ratings', match.params.id),
+            (data, header) => {
+                setIsLoaded(true);
+                setItem(data);
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(true);
+            }
+        )
     }, []);
 
     if (error) {
         return <div>Houve um erro</div>;
     } else if (!isLoaded) {
-        return <LoadingSpinner text="Carregando..."/>
+        return <LoadingSpinner text="Carregando..." />
     } else {
         const DATA = [
             {
@@ -101,12 +100,12 @@ const RatingCard = ({ match }) => {
                                 {item.name}
                             </Typography>
                         </Grid>
-                        <Grid item> 
+                        <Grid item>
                             <ButtonGroup
                                 color="primary"
                                 aria-label="outlined primary button group"
                             >
-                                <Link style={{textDecoration: 'none'}} to={`/admin/Ratings`}>
+                                <Link style={{ textDecoration: 'none' }} to={`/admin/Ratings`}>
                                     <Button
                                         startIcon={<ListRoundedIcon />}
                                         color="primary"
@@ -116,9 +115,9 @@ const RatingCard = ({ match }) => {
                                     </Button>
                                 </Link>
 
-                                <Link style={{textDecoration: 'none'}} to={`/admin/EditRating/${item.id}`}>
+                                <Link style={{ textDecoration: 'none' }} to={`/admin/EditRating/${item.id}`}>
                                     <Button
-                                        startIcon={<EditRoundedIcon/>}
+                                        startIcon={<EditRoundedIcon />}
                                         color="primary"
                                         variant="outlined"
                                     >
diff --git a/src/Admin/Components/Components/Inputs/CreateInstitution.js b/src/Admin/Components/Components/Inputs/CreateInstitution.js
index 20ad3c141fc670d50c268f390bcc0f13e5f9170e..1e01b54e3cb4aecff5f7847adde010855e018fb5 100644
--- a/src/Admin/Components/Components/Inputs/CreateInstitution.js
+++ b/src/Admin/Components/Components/Inputs/CreateInstitution.js
@@ -29,11 +29,12 @@ import ListRoundedIcon from '@material-ui/icons/ListRounded';
 import { apiUrl } from '../../../../env';
 import SnackBar from '../../../../Components/SnackbarComponent';
 import { Store } from '../../../../Store';
+import { postRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import Unauthorized from '../Unauthorized';
 //imports services 
 import { Create } from '../../../Services';
 //router
-import {Link} from 'react-router-dom';
+import { Link } from 'react-router-dom';
 
 const CreateInstitution = (props) => {
     const { state, dispatch } = useContext(Store);
@@ -109,19 +110,19 @@ const CreateInstitution = (props) => {
     }
 
     const CheckUserPermission = () => {
-        let canUserEdit = false; 
+        let canUserEdit = false;
 
         if (state.userIsLoggedIn) {
             const roles = [...state.currentUser.roles];
             for (let i = 0; i < roles.length; i++)
                 if (roles[i].name === 'admin' || roles[i].name === 'editor')
-                    canUserEdit = true; 
+                    canUserEdit = true;
         }
         else {
             canUserEdit = false;
-        } 
+        }
 
-        return canUserEdit; 
+        return canUserEdit;
     }
 
 
@@ -129,7 +130,7 @@ const CreateInstitution = (props) => {
     async function onSubmit() {
         setIsLoading(true)
         if (!isEmpty(name) && !isEmpty(country)) {
-            const api = apiUrl + '/institutions'
+            const api = '/institutions'
             const body = {
                 "institution": {
                     'name': name,
@@ -139,14 +140,18 @@ const CreateInstitution = (props) => {
                     'country': country,
                 }
             }
-            Create(api, body).then(res => {
-                if (res) {
+            postRequest(
+                api,
+                body,
+                (data) => {
                     HandleSnack('A instituição foi criada com sucesso', true, 'success', '#228B22')
-                } else {
+                    setIsLoading(false)
+                },
+                (error) => {
                     HandleSnack('Ocorreu algum erro', true, 'warning', '#FA8072')
+                    setIsLoading(false)
                 }
-                setIsLoading(false)
-            })
+            )
         } else {
             HandleSnack('Você precisa preencher algumas informações obrigatórias', true, 'warning', '#FFC125')
             if (isEmpty(name)) {
@@ -206,7 +211,7 @@ const CreateInstitution = (props) => {
         }
     ]
 
-    if(CheckUserPermission()){
+    if (CheckUserPermission()) {
         return (
             <Card>
                 <SnackBar
@@ -229,7 +234,7 @@ const CreateInstitution = (props) => {
                             </Typography>
                         </Grid>
                         <Grid item>
-                            <Link style={{textDecoration: 'none'}} to={'/admin/intitutions'}>
+                            <Link style={{ textDecoration: 'none' }} to={'/admin/intitutions'}>
                                 <Button
                                     onClick={props.BackToList}
                                     startIcon={<ListRoundedIcon />}
@@ -241,9 +246,9 @@ const CreateInstitution = (props) => {
                             </Link>
                         </Grid>
                     </Grid>
-    
+
                     <div style={{ height: '1em' }}></div>
-    
+
                     <form style={{ display: 'flex', flexDirection: 'column' }}>
                         {fields.map((field, index) => (
                             <TextField
@@ -278,7 +283,7 @@ const CreateInstitution = (props) => {
                 </CardAction>
             </Card>
         );
-    } else return <Unauthorized/>
+    } else return <Unauthorized />
 }
 
 export default CreateInstitution;
\ No newline at end of file
diff --git a/src/Admin/Components/Components/Inputs/CreateLanguage.js b/src/Admin/Components/Components/Inputs/CreateLanguage.js
index 8b72fffd47555868109fac25cc852b83576f183c..9ccbf4cdd4959656547c76f4ad53c34bbd4d1729 100644
--- a/src/Admin/Components/Components/Inputs/CreateLanguage.js
+++ b/src/Admin/Components/Components/Inputs/CreateLanguage.js
@@ -26,9 +26,9 @@ import CircularProgress from '@material-ui/core/CircularProgress';
 import AddRoundedIcon from '@material-ui/icons/AddRounded';
 import ListRoundedIcon from '@material-ui/icons/ListRounded';
 //imports local files
-import { apiUrl } from '../../../../env';
 import SnackBar from '../../../../Components/SnackbarComponent';
 import { Store } from '../../../../Store';
+import { postRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 //imports services 
 import { Create } from '../../../Services';
 //router
@@ -118,21 +118,25 @@ const CreateLanguage = (props) => {
     async function onSubmit() {
         setIsLoading(true)
         if (!isEmpty(name) && !isEmpty(code)) {
-            const api = apiUrl + '/languages'
+            const api = '/languages'
             const body = {
                 "language": {
                     'name': name,
                     'code': code,
                 }
             }
-            Create(api, body).then(res => {
-                if (res) {
+            postRequest(
+                api,
+                body,
+                (data) => {
                     HandleSnack('A linguagem foi criada com sucesso', true, 'success', '#228B22')
-                } else {
+                    setIsLoading(false)
+                },
+                (error) => {
                     HandleSnack('Ocorreu algum erro', true, 'warning', '#FA8072')
+                    setIsLoading(false)
                 }
-                setIsLoading(false)
-            })
+            )
         } else {
             HandleSnack('Você precisa preencher algumas informações obrigatórias', true, 'warning', '#FFC125')
             if (isEmpty(name)) {
@@ -243,7 +247,7 @@ const CreateLanguage = (props) => {
                 </CardAction>
             </Card>
         )
-    } else return <Unauthorized/>
+    } else return <Unauthorized />
 }
 
 export default CreateLanguage;
\ No newline at end of file
diff --git a/src/Admin/Components/Components/Inputs/CreateRating.js b/src/Admin/Components/Components/Inputs/CreateRating.js
index 290bea818d6309c2b887dfab06fbfd3bf71ad006..857f32ec7dee3c80b0f57e93494e99dc8ed3f55c 100644
--- a/src/Admin/Components/Components/Inputs/CreateRating.js
+++ b/src/Admin/Components/Components/Inputs/CreateRating.js
@@ -30,7 +30,7 @@ import { apiUrl } from '../../../../env';
 import { Store } from '../../../../Store';
 import SnackBar from '../../../../Components/SnackbarComponent';
 //imports services 
-import { Create } from '../../../Services';
+import { postRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 //router
 import {Link} from 'react-router-dom';
 import Unauthorized from '../Unauthorized';
@@ -117,21 +117,25 @@ const CreateRating = (props) => {
     async function onSubmit() {
         setIsLoading(true)
         if (!isEmpty(name) && !isEmpty(description)) {
-            const api = apiUrl + '/ratings'
+            const api = '/ratings'
             const body = {
                 "rating": {
                     'name': name,
                     'description': description,
                 }
             }
-            Create(api, body).then(res => {
-                if (res) {
+            postRequest(
+                api,
+                body,
+                (data) => {
                     HandleSnack('O rating foi criada com sucesso', true, 'success', '#228B22')
-                } else {
+                    setIsLoading(false)
+                },
+                (error) => {
                     HandleSnack('Ocorreu algum erro', true, 'warning', '#FA8072')
+                    setIsLoading(false)
                 }
-                setIsLoading(false)
-            })
+            )
         } else {
             HandleSnack('Você precisa preencher algumas informações obrigatórias', true, 'warning', '#FFC125')
             if (isEmpty(name)) {
diff --git a/src/Admin/Components/Components/Inputs/EditCollection.js b/src/Admin/Components/Components/Inputs/EditCollection.js
index 6065d23ef6aef739a30968456514ee911ca54644..ca2e54b2155571e2ea4c2d109f79c8c3725ac1b0 100644
--- a/src/Admin/Components/Components/Inputs/EditCollection.js
+++ b/src/Admin/Components/Components/Inputs/EditCollection.js
@@ -29,15 +29,15 @@ import MenuItem from "@material-ui/core/MenuItem";
 //imports local files
 import SnackBar from '../../../../Components/SnackbarComponent';
 import Unauthorized from '../Unauthorized';
+import { getRequest, postRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import { Store } from '../../../../Store';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 //imports services 
-import { Edit, GetSpecificData } from '../../../Services';
 import { EditFilter, GetAData } from '../../../Filters';
 //routers
 import { Link } from 'react-router-dom';
 //joadit 
-import JoditEditor from 'jodit-react';
+// import JoditEditor from 'jodit-react';
 
 const EditCollection = ({ match }) => {
     const { state, dispatch } = useContext(Store);
@@ -158,40 +158,44 @@ const EditCollection = ({ match }) => {
     }
 
     const CheckUserPermission = () => {
-        let canUserEdit = false; 
+        let canUserEdit = false;
 
         if (state.userIsLoggedIn) {
             const roles = [...state.currentUser.roles];
             for (let i = 0; i < roles.length; i++)
                 if (roles[i].name === 'admin' || roles[i].name === 'editor')
-                    canUserEdit = true; 
+                    canUserEdit = true;
         }
         else {
             canUserEdit = false;
-        } 
+        }
 
-        return canUserEdit; 
+        return canUserEdit;
     }
 
     const onSubmit = async () => {
         setIsLoading(true)
         if (!isEmpty(name) && !isEmpty(privacy)) {
             const api = EditFilter('collections', id)
-            const body = {
-                "collection": {
-                    'name': name,
-                    'privacy': privacy,
-                    'description': description
+            let body = {
+                collection: {
+                    name: name,
+                    privacy: privacy,
+                    description : description ? description : ""
                 }
             }
-            Edit(api, body).then(res => {
-                if (res) {
+            postRequest(
+                api,
+                body,
+                (data) => {
                     HandleSnack('A Coleção foi alterada com sucesso', true, 'success', '#228B22')
-                } else {
+                    setIsLoading(false)
+                },
+                (error) => {
                     HandleSnack('Ocorreu algum erro', true, 'warning', '#FA8072')
+                    setIsLoading(false)
                 }
-                setIsLoading(false)
-            })
+            )
         }
         else {
             HandleSnack('Você precisa preencher algumas informações obrigatórias', true, 'warning', '#FFC125')
@@ -212,35 +216,27 @@ const EditCollection = ({ match }) => {
     }
 
     useEffect(() => {
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-        };
-
-        GetSpecificData(GetAData("collections", match.params.id), headers).then(
-            (res) => {
-                if (res.state) {
-                    setIsLoaded(true);
-                    setError(false);
-                    setName(res.data.name)
-                    setPrivacy(res.data.privacy)
-                    setDescription(res.data.description)
-                } else {
-                    setIsLoaded(true);
-                    setError(true);
-                }
+        getRequest(
+            GetAData("collections", match.params.id),
+            (data, header) => {
+                setIsLoaded(true);
+                setError(false);
+                setName(data.name)
+                setPrivacy(data.privacy)
+                setDescription(data.description)
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(true);
             }
-        );
+        )
     }, []);
 
     if (error) {
         return <div> Houve um erro... </div>
     } else if (!isLoaded) {
-        return <LoadingSpinner text="Carregando..."/>
-    } else if(CheckUserPermission()){
+        return <LoadingSpinner text="Carregando..." />
+    } else if (CheckUserPermission()) {
         return (
             <Card>
                 <SnackBar
@@ -285,7 +281,7 @@ const EditCollection = ({ match }) => {
                                 disabled={field.default}
                                 error={field.error}
                                 helperText={field.error ? field.errorMessage : ''}
-                                style={{marginBottom : '1em'}}
+                                style={{ marginBottom: '1em' }}
                                 label={field.label}
                                 value={field.value}
                                 onChange={field.onChange}
@@ -306,7 +302,7 @@ const EditCollection = ({ match }) => {
                                 <MenuItem
                                     key={option.value}
                                     value={option.value}
-                                    style={option.value === privacy ? {color : 'blue'} : {color : 'black'}}
+                                    style={option.value === privacy ? { color: 'blue' } : { color: 'black' }}
                                 >
                                     {
                                         option.value
@@ -314,17 +310,17 @@ const EditCollection = ({ match }) => {
                                 </MenuItem>
                             ))}
                         </TextField>
-                        <JoditEditor
+                        {/* <JoditEditor
                             ref={editor}
                             value={description}
                             config={config}
                             tabIndex={1} // tabIndex of textarea
                             onBlur={(newContent) => setDescription(newContent.target.innerHTML)} // preferred to use only this option to update the content for performance reasons
                             onChange={(newContent) => { }}
-                        />
+                        /> */}
                     </form>
                 </CardContent>
-                
+
                 <CardAction>
                     <Button
                         onClick={() => {
@@ -342,7 +338,7 @@ const EditCollection = ({ match }) => {
                 </CardAction>
             </Card>
         )
-    } else return <Unauthorized/>
+    } else return <Unauthorized />
 }
 
 export default EditCollection;
\ No newline at end of file
diff --git a/src/Admin/Components/Components/Inputs/EditEducationalObect.js b/src/Admin/Components/Components/Inputs/EditEducationalObect.js
index 0ebb0b71b1926b27907fdc7635b059560b102623..28d3ae4fd0a96f0814383de86c2932a0eaac05e1 100644
--- a/src/Admin/Components/Components/Inputs/EditEducationalObect.js
+++ b/src/Admin/Components/Components/Inputs/EditEducationalObect.js
@@ -47,7 +47,7 @@ import { EditFilter, GetAData, Url } from "../../../Filters";
 //routers
 import { Link } from "react-router-dom";
 //jodit
-import JoditEditor from "jodit-react";
+// import JoditEditor from "jodit-react";
 
 let currLanPage = 0;
 let currLanFilter = "";
@@ -686,7 +686,7 @@ const EditEducationalObject = ({ match }) => {
                         </TabPanel>
 
                         <TabPanel value={value} index={1} dir={theme.direction}>
-                            <JoditEditor
+                            {/* <JoditEditor
                                 ref={editor}
                                 value={description}
                                 config={JODIT_CONFIG}
@@ -695,7 +695,7 @@ const EditEducationalObject = ({ match }) => {
                                     setDescription(newContent.target.innerHTML)
                                 } // preferred to use only this option to update the content for performance reasons
                                 onChange={(newContent) => { }}
-                            />
+                            /> */}
                         </TabPanel>
 
                         <TabPanel value={value} index={2} dir={theme.direction}>
diff --git a/src/Admin/Components/Components/Inputs/EditLanguage.js b/src/Admin/Components/Components/Inputs/EditLanguage.js
index f3e778b2f0f69278ece1a505c217d1114dfad33b..5162858f0fa07ca95328f77306bd87af4e1d38d8 100644
--- a/src/Admin/Components/Components/Inputs/EditLanguage.js
+++ b/src/Admin/Components/Components/Inputs/EditLanguage.js
@@ -30,10 +30,10 @@ import SnackBar from '../../../../Components/SnackbarComponent';
 import { Store } from '../../../../Store';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 //imports services 
-import { Edit } from '../../../Services';
+import { getRequest, putRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import { EditFilter, GetAData } from '../../../Filters';
 //routers
-import {Link} from 'react-router-dom';
+import { Link } from 'react-router-dom';
 import Unauthorized from '../Unauthorized';
 
 const EditLanguage = ({ match }) => {
@@ -155,14 +155,18 @@ const EditLanguage = ({ match }) => {
                     'code': code,
                 }
             }
-            Edit(api, body).then(res => {
-                if (res) {
+            putRequest(
+                api,
+                body,
+                (data) => {
                     HandleSnack('A linguagem foi alterada com sucesso', true, 'success', '#228B22')
-                } else {
+                    setIsLoading(false)
+                },
+                (error) => {
                     HandleSnack('Ocorreu algum erro', true, 'warning', '#FA8072')
+                    setIsLoading(false)
                 }
-                setIsLoading(false)
-            })
+            )
         }
         else {
             HandleSnack('Você precisa preencher algumas informações obrigatórias', true, 'warning', '#FFC125')
@@ -183,26 +187,25 @@ const EditLanguage = ({ match }) => {
     }
 
     useEffect(() => {
-        fetch(GetAData("languages", match.params.id))
-            .then((res) => res.json())
-            .then(
-                (result) => {
-                    setIsLoaded(true);
-                    setName(result.name)
-                    setCode(result.code)
-                },
-                (error) => {
-                    setIsLoaded(true);
-                    setError(error);
-                }
-            );
+        getRequest(
+            GetAData("languages", match.params.id),
+            (data, header) => {
+                setIsLoaded(true);
+                setName(data.name)
+                setCode(data.code)
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(error);
+            }
+        )
     }, []);
 
     if (error) {
         return <div> Houve um erro... </div>
     } else if (!isLoaded) {
-        return <LoadingSpinner text="Carregando..."/>
-    } else if(CheckUserPermission()){
+        return <LoadingSpinner text="Carregando..." />
+    } else if (CheckUserPermission()) {
         return (
             <Card>
                 <SnackBar
@@ -222,7 +225,7 @@ const EditLanguage = ({ match }) => {
                         <Typography variant='h4'>
                             {name}
                         </Typography>
-                        <Link style={{textDecoration: 'none'}} to={'/admin/languages'}>
+                        <Link style={{ textDecoration: 'none' }} to={'/admin/languages'}>
                             <Button
                                 startIcon={<ListRoundedIcon />}
                                 variant='outlined'
@@ -270,7 +273,7 @@ const EditLanguage = ({ match }) => {
                 </CardAction>
             </Card>
         )
-    } else return <Unauthorized/>
+    } else return <Unauthorized />
 }
 
 export default EditLanguage;
\ No newline at end of file
diff --git a/src/Admin/Components/Components/Inputs/EditRating.js b/src/Admin/Components/Components/Inputs/EditRating.js
index 066ecaf6ada10c3d0e6a1626276499ede69d4a3a..de22687e4c466ca2708019c991f39eb09ef08bfa 100644
--- a/src/Admin/Components/Components/Inputs/EditRating.js
+++ b/src/Admin/Components/Components/Inputs/EditRating.js
@@ -31,6 +31,7 @@ import { Store } from '../../../../Store';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 //imports services 
 import { Edit } from '../../../Services';
+import { getRequest, putRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import { EditFilter, GetAData } from '../../../Filters';
 //routers
 import {Link} from 'react-router-dom';
@@ -157,14 +158,18 @@ const EditRating = ({ match }) => {
                     'description': description,
                 }
             }
-            Edit(api, body).then(res => {
-                if (res) {
+            putRequest(
+                api,
+                body,
+                (data, header) => {
                     HandleSnack('O rating foi alterada com sucesso', true, 'success', '#228B22')
-                } else {
+                    setIsLoading(false)
+                },
+                (error) => {
                     HandleSnack('Ocorreu algum erro', true, 'warning', '#FA8072')
+                    setIsLoading(false)
                 }
-                setIsLoading(false)
-            })
+            )
         }
         else {
             HandleSnack('Você precisa preencher algumas informações obrigatórias', true, 'warning', '#FFC125')
@@ -185,19 +190,18 @@ const EditRating = ({ match }) => {
     }
 
     useEffect(() => {
-        fetch(GetAData("ratings", match.params.id))
-            .then((res) => res.json())
-            .then(
-                (result) => {
-                    setIsLoaded(true);
-                    setName(result.name)
-                    setDescription(result.description)
-                },
-                (error) => {
-                    setIsLoaded(true);
-                    setError(error);
-                }
-            );
+        getRequest(
+            GetAData("ratings", match.params.id),
+            (data, header) => {
+                setIsLoaded(true);
+                setName(data.name)
+                setDescription(data.description)
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(true);
+            }
+        )
     }, []);
 
     if (error) {
diff --git a/src/Admin/Components/Components/Inputs/EmailInputs.js b/src/Admin/Components/Components/Inputs/EmailInputs.js
index 8faecf8d668d735b06ca2d1e1e58319b9a661704..f31057436c3304b7564f7d6b11dc8994d89d8bc0 100644
--- a/src/Admin/Components/Components/Inputs/EmailInputs.js
+++ b/src/Admin/Components/Components/Inputs/EmailInputs.js
@@ -34,7 +34,7 @@ import SnackBar from "../../../../Components/SnackbarComponent";
 import { SendEmail } from "../../../Services";
 import { apiUrl } from "../../../../env";
 //Jodit
-import JoditEditor from "jodit-react";
+// import JoditEditor from "jodit-react";
 
 let sendToAll = false;
 let rolesArr = [];
@@ -487,14 +487,14 @@ const EmailInputs = (props) => {
             <div style={{ height: "1em" }} />
 
             <div style={{ flex: 1 }}>
-                <JoditEditor
+                {/* <JoditEditor
                     ref={editor}
                     value={message}
                     config={config}
                     tabIndex={1} // tabIndex of textarea
                     onBlur={(newContent) => setMessage(newContent.target.innerHTML)} // preferred to use only this option to update the content for performance reasons
                     onChange={(newContent) => { }}
-                />
+                /> */}
             </div>
 
             <div style={{fontSize : 14}}>
diff --git a/src/Admin/Components/Components/Inputs/IntitutionsInputs.js b/src/Admin/Components/Components/Inputs/IntitutionsInputs.js
index 11c2194e711f36d29d8516fccc8a7bfc9b5afb36..0c3c96187ffe50cef36401938e8d403627d8a18f 100644
--- a/src/Admin/Components/Components/Inputs/IntitutionsInputs.js
+++ b/src/Admin/Components/Components/Inputs/IntitutionsInputs.js
@@ -33,10 +33,10 @@ import { Store } from '../../../../Store';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 //imports services 
 import { Edit } from '../../../Services';
+import { putRequest, getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import { EditFilter, GetAData } from '../../../Filters';
 //Routers
 import { Link } from 'react-router-dom';
-import { stat } from 'fs';
 
 let id;
 
@@ -103,7 +103,7 @@ const EditInstitution = ({ match }) => {
 
     // verify if the given text is empty
     const isEmpty = (text) => {
-        return text.length === 0 ? true : false;
+        return text ? false : true;
     }
 
     // Handle snack infos
@@ -117,19 +117,19 @@ const EditInstitution = ({ match }) => {
     }
 
     const CheckUserPermission = () => {
-        let canUserEdit = false; 
+        let canUserEdit = false;
 
         if (state.userIsLoggedIn) {
             const roles = [...state.currentUser.roles];
             for (let i = 0; i < roles.length; i++)
                 if (roles[i].name === 'admin' || roles[i].name === 'editor')
-                    canUserEdit = true; 
+                    canUserEdit = true;
         }
         else {
             canUserEdit = false;
-        } 
+        }
 
-        return canUserEdit; 
+        return canUserEdit;
     }
 
     //Handle submit 
@@ -146,16 +146,18 @@ const EditInstitution = ({ match }) => {
                     'country': country,
                 }
             }
-            console.log(api)
-            Edit(api, body).then(res => {
-                if (res) {
+            putRequest(
+                api,
+                body,
+                (data) => {
                     HandleSnack('A instituição foi alterada com sucesso', true, 'success', '#228B22')
-                } else {
+                    setIsLoading(false)
+                },
+                (error) => {
                     HandleSnack('Ocorreu algum erro', true, 'warning', '#FA8072')
+                    setIsLoading(false)
                 }
-                setIsLoading(false)
-            })
-
+            )
         } else {
             HandleSnack('Você precisa preencher algumas informações obrigatórias', true, 'warning', '#FFC125')
             if (isEmpty(name)) {
@@ -215,29 +217,28 @@ const EditInstitution = ({ match }) => {
     ]
 
     useEffect(() => {
-        fetch(GetAData("institutions", match.params.id))
-            .then((res) => res.json())
-            .then(
-                (result) => {
-                    setIsLoaded(true);
-                    setName(result.name)
-                    setDescription(result.description)
-                    setAdress(result.adress)
-                    setCity(result.city)
-                    setCountry(result.country)
-                    id = result.id
-                },
-                (error) => {
-                    setIsLoaded(true);
-                    setError(error);
-                }
-            );
+        getRequest(
+            GetAData("institutions", match.params.id),
+            (data, header) => {
+                setIsLoaded(true);
+                setName(data.name)
+                setDescription(data.description)
+                setAdress(data.adress)
+                setCity(data.city)
+                setCountry(data.country)
+                id = data.id
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(error);
+            }
+        )
     }, []);
 
     if (error) {
         return <div> Erro... </div>
     } else if (!isLoaded) {
-        return <LoadingSpinner text="Carregando..."/>
+        return <LoadingSpinner text="Carregando..." />
     } else if (CheckUserPermission()) {
         return (
             <Card>
diff --git a/src/Admin/Components/Components/Inputs/NoteVarInputs.js b/src/Admin/Components/Components/Inputs/NoteVarInputs.js
index 3692e546a9c3192d11fd2b59057f327506a91ee1..f3c3c10dea51f9d694993634157ab6bc8841e795 100644
--- a/src/Admin/Components/Components/Inputs/NoteVarInputs.js
+++ b/src/Admin/Components/Components/Inputs/NoteVarInputs.js
@@ -31,7 +31,7 @@ import SnackBar from '../../../../Components/SnackbarComponent';
 import { Store } from '../../../../Store';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 //imports services 
-import { Edit } from '../../../Services';
+import { getRequest, putRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import { EditFilter, GetAData } from '../../../Filters';
 //Routers
 import { Link } from 'react-router-dom';
@@ -164,14 +164,18 @@ const NoteVarInputs = ({ match }) => {
                     'weight': weight
                 }
             }
-            Edit(api, body).then(res => {
-                if (res) {
+            putRequest(
+                api,
+                body,
+                (data) => {
                     HandleSnack('A variável de nota foi alterada com sucesso', true, 'success', '#228B22')
-                } else {
+                    setIsLoading(false)
+                },
+                (error) => {
                     HandleSnack('Ocorreu algum erro', true, 'warning', '#FA8072')
+                    setIsLoading(false)
                 }
-                setIsLoading(false)
-            })
+            )
         }
         else {
             HandleSnack('Você precisa preencher algumas informações obrigatórias', true, 'warning', '#FFC125')
@@ -215,20 +219,19 @@ const NoteVarInputs = ({ match }) => {
 
 
     useEffect(() => {
-        fetch(GetAData("scores", match.params.id))
-            .then((res) => res.json())
-            .then(
-                (result) => {
-                    setIsLoaded(true);
-                    setName(result.name)
-                    setCode(result.code)
-                    setWeight(result.weight)
-                },
-                (error) => {
-                    setIsLoaded(true);
-                    setError(error);
-                }
-            );
+        getRequest(
+            GetAData("scores", match.params.id),
+            (data, header) => {
+                setIsLoaded(true);
+                setName(data.name)
+                setCode(data.code)
+                setWeight(data.weight)
+            },
+            (error) => {
+                setIsLoaded(true);
+                setError(true);
+            }
+        )
     }, []);
 
     if (error) {
diff --git a/src/Admin/Filters.js b/src/Admin/Filters.js
index f519d245fbe74d09c1a2ba3e928c9d507763bea8..72adb6b8657426596f5fdbb781871b6db92a82cd 100644
--- a/src/Admin/Filters.js
+++ b/src/Admin/Filters.js
@@ -19,38 +19,38 @@ along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>
 import { apiUrl } from '../env';
 
 export function Url(type, filter, page , sort) {
-    const api = `${apiUrl}/${type}?filter={${filter}}&page=${page}&range=[0,9]&results_per_page=10&sort=["id","${sort}"]`
+    const api = `/${type}?filter={${filter}}&page=${page}&range=[0,9]&results_per_page=10&sort=["id","${sort}"]`
     return (api)
 } 
 
 export function GetOneOfAllUrl(type , filter){
-    const api = `${apiUrl}/${type}?filter={${filter}}`
+    const api = `/${type}?filter={${filter}}`
     return (api)
 }
 
 export function MethodsToComplain(type , id, meth){
-    const api = `${apiUrl}/${type}/${id}/${meth}`;
+    const api = `/${type}/${id}/${meth}`;
     return (api)
 }
 
 export function GetAll(type){
-    const api = `${apiUrl}/${type}`
+    const api = `/${type}`
     return (api)
 }
 
 
 export function GetAData(type , id){
-    const api = `${apiUrl}/${type}/${id}`
+    const api = `/${type}/${id}`
     return (api)
 }
 
 
 export function EditFilter(type , id){
-    const api = `${apiUrl}/${type}/${id}` 
+    const api = `/${type}/${id}` 
     return (api)
 } 
 
 export function DeleteFilter(type , id){
-    const api = `${apiUrl}/${type}/${id}` 
+    const api = `/${type}/${id}` 
     return (api)
 }
\ No newline at end of file
diff --git a/src/Admin/Pages/Pages/SubPages/Activity.js b/src/Admin/Pages/Pages/SubPages/Activity.js
index 9f5b6581a36ac42d0a2ed6f4a2b6f917f888b8b1..d049d228e873b1741e7a8d5a037b34ba7ced4774 100644
--- a/src/Admin/Pages/Pages/SubPages/Activity.js
+++ b/src/Admin/Pages/Pages/SubPages/Activity.js
@@ -22,7 +22,7 @@ import moment from 'moment';
 import TableData from "../../../Components/Components/Table";
 import SnackBar from "../../../../Components/SnackbarComponent";
 import { Url } from "../../../Filters";
-import { GetFullList } from "../../../Services";
+import { getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 //imports from material ui
 import { withStyles } from "@material-ui/core/styles";
@@ -74,6 +74,7 @@ const Activity = () => {
     const [error, setError] = useState(null); //Necessary to consult the API, catch errors
     const [isLoaded, setIsLoaded] = useState(false); //Necessary to consult the API, wait until complete
     const [items, setItems] = useState([]); //Necessary to consult the API, data
+    const [totalResults, setTotalResults] = useState(0);
 
     const [isLoadingMoreItems, setIsLoadingMoreItems] = useState(false); //controlls the state of loadind more data
     const [isUpdating, setIsUpdating] = useState(false); //controlls the state of updating data
@@ -113,18 +114,9 @@ const Activity = () => {
     //handle load more items
     const LoadMoreItens = async (api) => {
         setIsLoadingMoreItems(true);
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-            'If-None-Match': null
-        };
-
-        GetFullList(api, headers).then((res) => {
-            if (res.state) {
-                const arrData = [...res.data];
+        getRequest(api,
+            (data, header) => {
+                const arrData = [...data];
                 if (arrData.length === 0) {
                     HandleSnack(
                         "Não há mais dados para serem carregados",
@@ -138,71 +130,55 @@ const Activity = () => {
                     const arrResult = arrItems.concat(arrData);
                     setItems(arrResult.concat(ADD_ONE_LENGHT));
                 }
-            } else {
+                setIsLoadingMoreItems(false);
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsLoadingMoreItems(false);
             }
-            setIsLoadingMoreItems(false);
-        });
+        )
     };
 
     // handle update list data
     const UpdateHandler = async (api) => {
         setIsUpdating(true);
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-            'If-None-Match': null
-        };
-
-        GetFullList(api, headers).then((res) => {
-            console.log(res);
-            if (res.state) {
+        getRequest(api,
+            (data, header) => {
                 HandleSnack(
                     "A lista de dados foi atualizada",
                     true,
                     "success",
                     "#228B22"
                 );
-                const arrData = [...res.data];
-                setItems(arrData.concat(ADD_ONE_LENGHT));
-            } else {
+                const arrData = [...data];
+                setItems(arrData.concat(ADD_ONE_LENGHT))
+                setIsUpdating(false);
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsUpdating(false);
             }
-            setIsUpdating(false);
-        });
+        )
     };
 
     const handleChange = (e) => {
+        setIsLoaded(false)
         const value = e.target.value;
-        console.log(value);
         currPage = 0;
         setOption(value);
 
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-        };
-
-        GetFullList(
-            Url("activities", `"privacy" : "${value}"`, `${currPage}`, "DESC"),
-            headers
-        ).then((res) => {
-            if (res.state) {
-                const arrData = [...res.data];
+        getRequest(Url("activities", `"privacy" : "${value}"`, `${currPage}`, "DESC"),
+            (data, header) => {
+                const arrData = [...data];
                 setItems(arrData.concat(ADD_ONE_LENGHT));
                 HandleSnack("Filtro aplicado com sucesso", true, "success", "#228B22");
                 setIsLoaded(true);
-            } else {
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
                 setIsLoaded(true);
             }
-        });
+        )
     };
 
     const DisplayDate = (date) => {
@@ -214,20 +190,23 @@ const Activity = () => {
 
     //getting data from server
     useEffect(() => {
-        GetFullList(Url("activities", "", `${currPage}`, "DESC")).then(
-            (res) => {
-                if (res.state) {
-                    const arrData = [...res.data];
-                    setItems(arrData.concat(ADD_ONE_LENGHT));
-                    setIsLoaded(true);
-                    setError(false);
-                } else {
-                    HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
-                    setIsLoaded(true);
-                    setError(true);
+        getRequest(
+            Url("activities", "", `${currPage}`, "DESC"),
+            (data, header) => {
+                if (header.has('X-Total-Count')) {
+                    setTotalResults(header.get('X-Total-Count'));
                 }
+                const arrData = [...data];
+                setItems(arrData.concat(ADD_ONE_LENGHT));
+                setIsLoaded(true);
+                setError(false);
+            },
+            (error) => {
+                HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsLoaded(true);
+                setError(true);
             }
-        );
+        )
     }, []);
 
     if (error) {
diff --git a/src/Admin/Pages/Pages/SubPages/Collections.js b/src/Admin/Pages/Pages/SubPages/Collections.js
index a55b4d491f5c6192e34ebe6c178fd3fc5be0a2d8..4288091f31cc4b6e7d830db1493e08e02bf90b6f 100644
--- a/src/Admin/Pages/Pages/SubPages/Collections.js
+++ b/src/Admin/Pages/Pages/SubPages/Collections.js
@@ -21,7 +21,7 @@ import moment from 'moment';
 //imports from local files
 import TableData from "../../../Components/Components/Table";
 import SnackBar from "../../../../Components/SnackbarComponent";
-import { Url, EditFilter } from "../../../Filters";
+import { Url, EditFilter, DeleteFilter } from "../../../Filters";
 import { GetFullList, Delete } from "../../../Services";
 import AlertDialog from "../../../Components/Components/AlertDialog";
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
@@ -40,6 +40,7 @@ import UpdateRoundedIcon from "@material-ui/icons/UpdateRounded";
 import FilterListRoundedIcon from "@material-ui/icons/FilterListRounded";
 import VisibilityIcon from "@material-ui/icons/Visibility";
 import DeleteIcon from "@material-ui/icons/Delete";
+import { deleteRequest, getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig';
 //routers
 import { Link } from 'react-router-dom';
 
@@ -123,18 +124,9 @@ const Collections = () => {
     //handle load more items
     const LoadMoreItens = async (api) => {
         setIsLoadingMoreItems(true);
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-            'If-None-Match': null
-        };
-
-        GetFullList(api, headers).then((res) => {
-            if (res.state) {
-                const arrData = [...res.data];
+        getRequest(api,
+            (data, header) => {
+                const arrData = [...data];
                 if (arrData.length === 0) {
                     HandleSnack(
                         "Não há mais dados para serem carregados",
@@ -148,11 +140,13 @@ const Collections = () => {
                     const arrResult = arrItems.concat(arrData);
                     setItems(arrResult.concat(ADD_ONE_LENGHT));
                 }
-            } else {
+                setIsLoadingMoreItems(false);
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsLoadingMoreItems(false);
             }
-            setIsLoadingMoreItems(false);
-        });
+        )
     };
 
     //Defines which row must show the circular progress
@@ -163,52 +157,46 @@ const Collections = () => {
     // handle update list data
     const UpdateHandler = async (api) => {
         setIsUpdating(true);
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-            'If-None-Match': null
-        };
-
-        GetFullList(api, headers).then((res) => {
-            console.log(res);
-            if (res.state) {
+        getRequest(api,
+            (data, header) => {
                 HandleSnack(
                     "A lista de dados foi atualizada",
                     true,
                     "success",
                     "#228B22"
                 );
-                const arrData = [...res.data];
+                const arrData = [...data];
                 setItems(arrData.concat(ADD_ONE_LENGHT));
-            } else {
+                setIsUpdating(false);
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsUpdating(false);
             }
-            setIsUpdating(false);
-        });
+        )
     };
 
     //Called when user want to delete one institution
     async function DeleteHandler() {
         const id = deleteItem.id;
         HandleStateAlertDialog(null);
-        Delete(EditFilter("collections", id)).then((res) => {
-            if (res) {
+        deleteRequest(DeleteFilter("collections", id),
+            (data) => {
                 HandleSnack(
-                    "A instituição foi deletada com sucesso",
+                    "A Coleção foi deletada com sucesso",
                     true,
                     "success",
                     "#228B22"
                 );
                 currPage = 0;
+                HandleStateCircularProgress(null);
                 UpdateHandler(Url("collections", "", `${currPage}`, "DESC"));
-            } else {
+            },
+            (error) => {
                 HandleSnack("Ocorreu algum erro", true, "warning", "#FA8072");
+                HandleStateCircularProgress(null);
             }
-            HandleStateCircularProgress(null);
-        });
+        )
     }
 
     //Controlls the state of the Alert Dialog
@@ -224,57 +212,37 @@ const Collections = () => {
         const value = e.target.value;
         console.log(value);
         currPage = 0;
+        setIsLoaded(false)
         setOption(value);
-
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-        };
-
-        GetFullList(
-            Url("collections", `"privacy" : "${value}"`, `${currPage}`, "DESC"),
-            headers
-        ).then((res) => {
-            if (res.state) {
-                const arrData = [...res.data];
+        getRequest(Url("collections", `"privacy" : "${value}"`, `${currPage}`, "DESC"),
+            (data, header) => {
+                const arrData = [...data];
                 setItems(arrData.concat(ADD_ONE_LENGHT));
                 HandleSnack("Filtro aplicado com sucesso", true, "success", "#228B22");
                 setIsLoaded(true);
-            } else {
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
                 setIsLoaded(true);
             }
-        });
+        )
     };
 
     //Handle the search filter
     const HandleSearch = (event) => {
         setSearch(event.target.value)
-
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-        };
-
-        GetFullList(
+        getRequest(
             Url("collections", `"name" : "${search}"`, `${currPage}`, "DESC"),
-            headers
-        ).then((res) => {
-            if (res.state) {
-                const arrData = [...res.data];
+            (data, header) => {
+                const arrData = [...data];
                 setItems(arrData.concat(ADD_ONE_LENGHT));
                 setIsLoaded(true);
-            } else {
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
                 setIsLoaded(true);
             }
-        });
+        )
     }
 
     const DisplayDate = (date) => {
@@ -286,20 +254,20 @@ const Collections = () => {
 
     //getting data from server
     useEffect(() => {
-        GetFullList(Url("collections", "", `${currPage}`, "DESC")).then(
-            (res) => {
-                if (res.state) {
-                    const arrData = [...res.data];
-                    setItems(arrData.concat(ADD_ONE_LENGHT));
-                    setIsLoaded(true);
-                    setError(false);
-                } else {
-                    HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
-                    setIsLoaded(false);
-                    setError(true);
-                }
+        getRequest(
+            Url("collections", "", `${currPage}`, "DESC"),
+            (data, header) => {
+                const arrData = [...data];
+                setItems(arrData.concat(ADD_ONE_LENGHT));
+                setIsLoaded(true);
+                setError(false);
+            },
+            (error) => {
+                HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsLoaded(false);
+                setError(true);
             }
-        );
+        )
     }, []);
 
     if (error) {
diff --git a/src/Admin/Pages/Pages/SubPages/CommunityQuestions.js b/src/Admin/Pages/Pages/SubPages/CommunityQuestions.js
index a0d161cf600e95a9c138fa131aa3acdd5e41dc74..3b5731d8c896537e458259c58e1c6311f4046dc2 100644
--- a/src/Admin/Pages/Pages/SubPages/CommunityQuestions.js
+++ b/src/Admin/Pages/Pages/SubPages/CommunityQuestions.js
@@ -23,9 +23,9 @@ import TableData from "../../../Components/Components/Table";
 import SnackBar from "../../../../Components/SnackbarComponent";
 import Unauthorized from '../../../Components/Components/Unauthorized';
 import { Url } from "../../../Filters";
-import { GetFullList } from "../../../Services";
 import { Store } from '../../../../Store';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
+import { getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig';
 //imports from material ui
 import { withStyles } from "@material-ui/core/styles";
 import TableBody from "@material-ui/core/TableBody";
@@ -105,70 +105,46 @@ const CommunityQuestion = () => {
     //handle with the message filter
     const MessageFilterHandler = async (e) => {
         setMessage(e.target.value)
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-            'If-None-Match': null
-        };
-
-        GetFullList(Url("contacts", `"message" : "${message}"`, currPage, 'DESC'), headers).then((res) => {
-            console.log(res);
-            if (res.state) {
-                const arrData = [...res.data];
+        getRequest(
+            Url("contacts", `"message" : "${message}"`, currPage, 'DESC'),
+            (data, header) => {
+                const arrData = [...data];
                 setItems(arrData.concat(ADD_ONE_LENGHT));
-            } else {
+            },
+            (error) => {
                 HandleSnack("Não achamos nada na nossa base de dados!", true, "warning", "#FA8072");
             }
-        });
+        )
     }
 
     //handle with the email filter
     const EmailFilterHandler = (e) => {
         setEmail(e.target.value)
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-            'If-None-Match': null
-        };
-
-        GetFullList(Url("contacts", `"email" : "${email}"`, currPage, 'DESC'), headers).then((res) => {
-            console.log(res);
-            if (res.state) {
-                const arrData = [...res.data];
+        getRequest(
+            Url("contacts", `"email" : "${email}"`, currPage, 'DESC'),
+            (data, header) => {
+                const arrData = [...data];
                 setItems(arrData.concat(ADD_ONE_LENGHT));
-            } else {
+            },
+            (error) => {
                 HandleSnack("Não achamos nada na nossa base de dados!", true, "warning", "#FA8072");
             }
-        });
+        )
     }
 
     //handle with the name filter
     const NameFilterHandler = (e) => {
         setName(e.target.value)
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-            'If-None-Match': null
-        };
-
-        GetFullList(Url("contacts", `"name" : "${name}"`, currPage, 'DESC'), headers).then((res) => {
-            console.log(res);
-            if (res.state) {
-                const arrData = [...res.data];
+        getRequest(
+            Url("contacts", `"name" : "${name}"`, currPage, 'DESC'),
+            (data, header) => {
+                const arrData = [...data];
                 setItems(arrData.concat(ADD_ONE_LENGHT));
-            } else {
+            },
+            (error) => {
                 HandleSnack("Não achamos nada na nossa base de dados!", true, "warning", "#FA8072");
             }
-        });
+        )
     }
 
     //handle snack info
@@ -194,19 +170,11 @@ const CommunityQuestion = () => {
 
     //handle load more items
     const LoadMoreItens = async (api) => {
-        setIsLoadingMoreItems(true);
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-            'If-None-Match': null
-        };
-
-        GetFullList(api, headers).then((res) => {
-            if (res.state) {
-                const arrData = [...res.data];
+        setIsLoadingMoreItems(true)
+        getRequest(
+            api,
+            (data, header) => {
+                const arrData = [...data];
                 if (arrData.length === 0) {
                     HandleSnack(
                         "Não há mais dados para serem carregados",
@@ -220,41 +188,36 @@ const CommunityQuestion = () => {
                     const arrResult = arrItems.concat(arrData);
                     setItems(arrResult.concat(ADD_ONE_LENGHT));
                 }
-            } else {
+                setIsLoadingMoreItems(false);
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsLoadingMoreItems(false);
             }
-            setIsLoadingMoreItems(false);
-        });
+        )
     };
 
     // handle update list data
     const UpdateHandler = async (api) => {
         setIsUpdating(true);
-        const headers = {
-            Accept: "application/json",
-            "Content-Type": "application/json; charset=utf-8",
-            "access-token": sessionStorage.getItem("@portalmec/accessToken"),
-            client: sessionStorage.getItem("@portalmec/clientToken"),
-            uid: sessionStorage.getItem("@portalmec/uid"),
-            'If-None-Match': null
-        };
-
-        GetFullList(api, headers).then((res) => {
-            console.log(res);
-            if (res.state) {
+        getRequest(
+            api,
+            (data, header) => {
                 HandleSnack(
                     "A lista de dados foi atualizada",
                     true,
                     "success",
                     "#228B22"
                 );
-                const arrData = [...res.data];
+                const arrData = [...data];
                 setItems(arrData.concat(ADD_ONE_LENGHT));
-            } else {
+                setIsUpdating(false);
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsUpdating(false);
             }
-            setIsUpdating(false);
-        });
+        )
     };
 
     const DisplayDate = (date) => {
@@ -282,20 +245,20 @@ const CommunityQuestion = () => {
 
     //getting data from server
     useEffect(() => {
-        GetFullList(Url("contacts", "", `${currPage}`, "DESC")).then(
-            (res) => {
-                if (res.state) {
-                    const arrData = [...res.data];
-                    setItems(arrData.concat(ADD_ONE_LENGHT));
-                    setIsLoaded(true);
-                    setError(false);
-                } else {
-                    HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
-                    setIsLoaded(true);
-                    setError(true);
-                }
+        getRequest(
+            Url("contacts", "", `${currPage}`, "DESC"),
+            (data, header) => {
+                const arrData = [...data];
+                setItems(arrData.concat(ADD_ONE_LENGHT));
+                setIsLoaded(true);
+                setError(false);
+            },
+            (error) => {
+                HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsLoaded(true);
+                setError(true);
             }
-        );
+        )
     }, []);
 
     if (error) {
@@ -548,7 +511,7 @@ const CommunityQuestion = () => {
                                                 </Link> : null
                                         }
                                     </StyledTableCell>
-                                    <StyledTableCell align="right">
+                                    <StyledTableCell align="right"> 
                                         {row.message}
                                     </StyledTableCell>
                                     <StyledTableCell align="right">
diff --git a/src/Admin/Pages/Pages/SubPages/EducationalObjects.js b/src/Admin/Pages/Pages/SubPages/EducationalObjects.js
index 67eeecd2dde969b5b7928e9e10cc3c9582b7fdd5..2b7f577bce019ec629dc208fe762100446833fbb 100644
--- a/src/Admin/Pages/Pages/SubPages/EducationalObjects.js
+++ b/src/Admin/Pages/Pages/SubPages/EducationalObjects.js
@@ -43,9 +43,9 @@ import { Typography, CircularProgress } from "@material-ui/core";
 import Popover from "@material-ui/core/Popover";
 import TextField from "@material-ui/core/TextField";
 // services
-import { Delete, GetFullList } from "../../../Services";
+import { getRequest, putRequest, deleteRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 //Filters
-import { Url, EditFilter } from "../../../Filters";
+import { Url, EditFilter, DeleteFilter } from "../../../Filters";
 //router 
 import { Link } from 'react-router-dom';
 
@@ -179,41 +179,46 @@ const EducationalObjects = () => {
 
     //Filters the search
     const Filter = (api) => {
-        GetFullList(api).then((res) => {
-            if (res.state) {
-                const arrData = [...res.data];
+        getRequest(
+            api,
+            (data, header) => {
+                const arrData = [...data];
                 setItems(arrData.concat(addOndeLenght));
-            } else {
+            },
+            (error) => {
                 setError(true);
             }
-        });
+        )
     };
 
     //This function updates List every time the content of the api changes
     const UpdtateListData = (api) => {
-        GetFullList(api).then((res) => {
-            const arrData = [...res.data];
-            if (res.state) {
-                setItems(arrData.concat(addOndeLenght));
+        getRequest(
+            api,
+            (data, header) => {
+                setItems([...data.concat(addOndeLenght)]);
                 HandleSnack(
                     "A lista de dados foi atualizada",
                     true,
                     "success",
                     "#228B22"
                 );
-            } else {
+                setIsUpdating(false);
+            },
+            (error) => {
                 HandleSnack("Ocorreu algum erro", true, "warning", "#FA8072");
+                setIsUpdating(false);
             }
-            setIsUpdating(false);
-        });
+        )
     };
 
     //Called when user want to delete one institution
     async function DeleteHandler() {
         const id = deleteItem.id;
         HandleStateAlertDialog(null);
-        Delete(EditFilter("institutions", id)).then((res) => {
-            if (res) {
+        deleteRequest(
+            DeleteFilter("institutions", id),
+            (data) => {
                 HandleSnack(
                     "A instituição foi deletada com sucesso",
                     true,
@@ -222,19 +227,21 @@ const EducationalObjects = () => {
                 );
                 currPage = 0;
                 UpdtateListData(Url("institutions", "", `${currPage}`, "DESC"));
-            } else {
+                HandleStateCircularProgress(null);
+            },
+            (error) => {
                 HandleSnack("Ocorreu algum erro", true, "warning", "#FA8072");
+                HandleStateCircularProgress(null);
             }
-            HandleStateCircularProgress(null);
-        });
+        )
     }
 
     const LoadMoreItens = async (api) => {
         setIsLoadingMoreItems(true);
-        GetFullList(api).then((res) => {
-            if (res.state) {
-                const arrData = [...res.data];
-                console.log(arrData);
+        getRequest(
+            api,
+            (data, header) => {
+                const arrData = [...data];
                 if (arrData.length === 0) {
                     HandleSnack(
                         "Não há mais dados para serem carregados",
@@ -248,11 +255,13 @@ const EducationalObjects = () => {
                     const arrResult = arrItems.concat(arrData);
                     setItems(arrResult.concat(addOndeLenght));
                 }
-            } else {
+                setIsLoadingMoreItems(false);
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsLoadingMoreItems(false);
             }
-            setIsLoadingMoreItems(false);
-        });
+        )
     };
 
     const DisplayDate = (date) => {
@@ -263,26 +272,24 @@ const EducationalObjects = () => {
     };
 
     useEffect(() => {
-        GetFullList(Url("learning_objects", "", `${currPage}`, "DESC"))
-        .then(
-            (result) => {
-                if(result.state){
-                    setIsLoaded(true);
-                    setItems(result.data.concat(addOndeLenght));
-                } else{
-                    setError(true);
-                }
-                
+        getRequest(
+            Url("learning_objects", "", `${currPage}`, "DESC"),
+            (data, header) => {
+                setIsLoaded(true);
+                setItems(data.concat(addOndeLenght));
             },
-        );
-            
+            (error) => {
+                setError(true);
+
+            }
+        )
     }, []);
 
     if (error) {
         return <div>Error: {error.message}</div>;
     }
     if (!isLoaded) {
-        return <LoadingSpinner text="Carregando..."/>
+        return <LoadingSpinner text="Carregando..." />
     } else {
         //Words that defines that column
         const topTable = [
@@ -476,10 +483,10 @@ const EducationalObjects = () => {
                                             }
                                             onClick={() => {
                                                 currPage++
-                                                if(showAuthorField) LoadMoreItens(Url("learning_objects", `"author" : "${author}"`, currPage, "DESC"))
-                                                else if(showDescriptionField) LoadMoreItens(Url("learning_objects", `"description" : "${description}"`, currPage, "DESC"))
-                                                else if(showStandadSearch) LoadMoreItens(Url("learning_objects", `"name" : "${search}"`, currPage, "DESC"))
-                                                else LoadMoreItens(Url('learning_objects', '', `${currPage}`, 'DESC'))  
+                                                if (showAuthorField) LoadMoreItens(Url("learning_objects", `"author" : "${author}"`, currPage, "DESC"))
+                                                else if (showDescriptionField) LoadMoreItens(Url("learning_objects", `"description" : "${description}"`, currPage, "DESC"))
+                                                else if (showStandadSearch) LoadMoreItens(Url("learning_objects", `"name" : "${search}"`, currPage, "DESC"))
+                                                else LoadMoreItens(Url('learning_objects', '', `${currPage}`, 'DESC'))
                                             }}
                                         >
                                             {isLoadingMoreItems ? (
diff --git a/src/Admin/Pages/Pages/SubPages/Institutions.js b/src/Admin/Pages/Pages/SubPages/Institutions.js
index 8f73792d6cc5dbe283a2fdf4bace69e4c2e97c44..516c9e62353348d28ebb2f55f5508adc8b584f1e 100644
--- a/src/Admin/Pages/Pages/SubPages/Institutions.js
+++ b/src/Admin/Pages/Pages/SubPages/Institutions.js
@@ -42,9 +42,9 @@ import { Typography, CircularProgress } from "@material-ui/core";
 import Popover from "@material-ui/core/Popover";
 import TextField from "@material-ui/core/TextField";
 // services
-import { Delete, GetFullList } from "../../../Services";
+import { getRequest, deleteRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 //Filters
-import { Url, GetOneOfAllUrl, EditFilter } from "../../../Filters";
+import { Url, GetOneOfAllUrl, EditFilter, DeleteFilter } from "../../../Filters";
 //router 
 import { Link } from 'react-router-dom';
 
@@ -211,22 +211,25 @@ const Institutions = () => {
 
     //Filters the search
     const Filter = (api) => {
-        GetFullList(api).then((res) => {
-            const arrData = [...res.data];
-            if (res.state) {
+        getRequest(
+            api,
+            (data, header) => {
+                const arrData = [...data];
                 transformListToAsc = false
                 setItems(arrData.concat(addOndeLenght));
-            } else {
+            },
+            (error) => {
                 setError(true);
             }
-        });
+        )
     };
 
     //This function updates List every time the content of the api changes
     const UpdtateListData = (api) => {
-        GetFullList(api).then((res) => {
-            const arrData = [...res.data];
-            if (res.state) {
+        getRequest(
+            api,
+            (data, header) => {
+                const arrData = [...data];
                 setItems(arrData.concat(addOndeLenght));
                 HandleSnack(
                     "A lista de dados foi atualizada",
@@ -234,19 +237,22 @@ const Institutions = () => {
                     "success",
                     "#228B22"
                 );
-            } else {
+                setIsUpdating(false);
+            },
+            (error) => {
                 HandleSnack("Ocorreu algum erro", true, "warning", "#FA8072");
+                setIsUpdating(false);
             }
-            setIsUpdating(false);
-        });
+        )
     };
 
     //Called when user want to delete one institution
     async function DeleteHandler() {
         const id = deleteItem.id;
         HandleStateAlertDialog(null);
-        Delete(EditFilter("institutions", id)).then((res) => {
-            if (res) {
+        deleteRequest(
+            DeleteFilter("institutions", id),
+            (data) => {
                 HandleSnack(
                     "A instituição foi deletada com sucesso",
                     true,
@@ -256,18 +262,21 @@ const Institutions = () => {
                 currPage = 0;
                 transformListToAsc = false
                 UpdtateListData(Url("institutions", "", `${currPage}`, "DESC"));
-            } else {
+                HandleStateCircularProgress(null);
+            },
+            (error) => {
                 HandleSnack("Ocorreu algum erro", true, "warning", "#FA8072");
+                HandleStateCircularProgress(null);
             }
-            HandleStateCircularProgress(null);
-        });
+        )
     }
 
     const LoadMoreItens = async (api) => {
         setIsLoadingMoreItems(true);
-        GetFullList(api).then((res) => {
-            if (res.state) {
-                const arrData = [...res.data];
+        getRequest(
+            api,
+            (data, header) => {
+                const arrData = [...data];
                 console.log(arrData);
                 if (arrData.length === 0) {
                     HandleSnack(
@@ -282,48 +291,54 @@ const Institutions = () => {
                     const arrResult = arrItems.concat(arrData);
                     setItems(arrResult.concat(addOndeLenght));
                 }
-            } else {
+                setIsLoadingMoreItems(false);
+            },
+            (error) => {
                 HandleSnack("Erro ao carregar os dados", true, "warning", "#FA8072");
+                setIsLoadingMoreItems(false);
             }
-            setIsLoadingMoreItems(false);
-        });
+        )
     };
 
     const InvertList = async () => {
         transformListToAsc = !transformListToAsc
         currPage = 0
         if (transformListToAsc) {
-            GetFullList(Url('institutions', '', `${currPage}`, 'ASC')).then(res => {
-                if (res.state) {
-                    const arrData = [...res.data]
+            getRequest(
+                Url('institutions', '', `${currPage}`, 'ASC'),
+                (data, header) => {
+                    const arrData = [...data]
                     setItems(arrData.concat(addOndeLenght))
-                } else {
+                },
+                (error) => {
                     HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
                 }
-            })
+            )
         } else {
-            GetFullList(Url('institutions', '', `${currPage}`, 'DESC')).then(res => {
-                if (res.state) {
-                    const arrData = [...res.data]
+            getRequest(
+                Url('institutions', '', `${currPage}`, 'DESC'),
+                (data, header) => {
+                    const arrData = [...data]
                     setItems(arrData.concat(addOndeLenght))
-                } else {
+                },
+                (error) => {
                     HandleSnack('institutions ao carregar os dados', true, 'warning', '#FA8072')
                 }
-            })
+            )
         }
     }
 
     useEffect(() => {
-        GetFullList(Url("institutions", "", `${currPage}`, "DESC"))
-            .then(
-                (result) => {
-                    if (result.state) {
-                        setIsLoaded(true);
-                        setItems(result.data.concat(addOndeLenght));
-                    } else setError(true);
-                },
-            );
-
+        getRequest(
+            Url("institutions", "", `${currPage}`, "DESC"),
+            (data, header) => {
+                setIsLoaded(true);
+                setItems(data.concat(addOndeLenght));
+            },
+            (error) => { 
+                setError(true);
+            }
+        )
     }, []);
 
     if (error) {
diff --git a/src/Admin/Pages/Pages/SubPages/Languages.js b/src/Admin/Pages/Pages/SubPages/Languages.js
index 2d0dd3910aa24a1751a0c98269c257ffeb9a9608..b333e39d2e41a403742afefb1303962a6948af33 100644
--- a/src/Admin/Pages/Pages/SubPages/Languages.js
+++ b/src/Admin/Pages/Pages/SubPages/Languages.js
@@ -22,9 +22,9 @@ import TableData from '../../../Components/Components/Table';
 import SnackBar from '../../../../Components/SnackbarComponent';
 import AlertDialog from "../../../Components/Components/AlertDialog";
 import { Url } from '../../../Filters';
-import { GetFullList, Delete } from '../../../Services';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 import { DeleteFilter } from '../../../Filters';
+import { getRequest, deleteRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 //imports from material ui 
 import { withStyles } from '@material-ui/core/styles';
 import TableBody from '@material-ui/core/TableBody';
@@ -96,9 +96,10 @@ const Languages = () => {
     //handle load more items
     const LoadMoreItens = async (api) => {
         setIsLoadingMoreItems(true)
-        GetFullList(api).then(res => {
-            if (res.state) {
-                const arrData = [...res.data]
+        getRequest(
+            api,
+            (data, header) => {
+                const arrData = [...data]
                 if (arrData.length === 0) {
                     HandleSnack('Não há mais dados para serem carregados', true, 'warning', '#FFC125')
                 } else {
@@ -107,35 +108,40 @@ const Languages = () => {
                     const arrResult = arrItems.concat(arrData)
                     setItems(arrResult.concat(ADD_ONE_LENGHT))
                 }
-
-            } else {
+                setIsLoadingMoreItems(false)
+            },
+            (error) => {
                 HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
+                setIsLoadingMoreItems(false)
             }
-            setIsLoadingMoreItems(false)
-        })
+        )
     }
 
     // handle update list data
     const UpdateHandler = async (api) => {
         setIsUpdating(true)
-        GetFullList(api).then(res => {
-            if (res.state) {
+        getRequest(
+            api,
+            (data, header) => {
                 HandleSnack('A lista de dados foi atualizada', true, 'success', '#228B22')
-                const arrData = [...res.data]
+                const arrData = [...data]
                 setItems(arrData.concat(ADD_ONE_LENGHT))
-            } else {
+                setIsUpdating(false)
+            },
+            (error) => {
                 HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
+                setIsUpdating(false)
             }
-            setIsUpdating(false)
-        })
+        )
     }
 
     //handle Delete
     async function DeleteHandler() {
         const id = deleteItem.id;
         HandleStateAlertDialog(null);
-        Delete(DeleteFilter("languages", id)).then((res) => {
-            if (res) {
+        deleteRequest(
+            DeleteFilter("languages", id),
+            (data) => {
                 HandleSnack(
                     "A língua foi deletada com sucesso",
                     true,
@@ -145,11 +151,13 @@ const Languages = () => {
                 currPage = 0;
                 transformListToAsc = false
                 UpdateHandler(Url("languages", "", `${currPage}`, "DESC"));
-            } else {
+                HandleStateCircularProgress(null);
+            },
+            (error) => {
                 HandleSnack("Ocorreu algum erro", true, "warning", "#FA8072");
+                HandleStateCircularProgress(null);
             }
-            HandleStateCircularProgress(null);
-        });
+        )
     }
 
     const HandleStateCircularProgress = (i) => {
@@ -166,39 +174,42 @@ const Languages = () => {
         transformListToAsc = !transformListToAsc
         currPage = 0
         if (transformListToAsc) {
-            GetFullList(Url('languages', '', `${currPage}`, 'ASC')).then(res => {
-                if (res.state) {
-                    const arrData = [...res.data]
+            getRequest(
+                Url('languages', '', `${currPage}`, 'ASC'),
+                (data, header) => {
+                    const arrData = [...data]
                     setItems(arrData.concat(ADD_ONE_LENGHT))
-                } else {
+                },
+                (error) => {
                     HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
                 }
-            })
+            )
         } else {
-            GetFullList(Url('languages', '', `${currPage}`, 'DESC')).then(res => {
-                if (res.state) {
-                    const arrData = [...res.data]
+            getRequest(
+                Url('languages', '', `${currPage}`, 'DESC'),
+                (data, header) => {
+                    const arrData = [...data]
                     setItems(arrData.concat(ADD_ONE_LENGHT))
-                } else {
+                },
+                (error) => {
                     HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
                 }
-            })
+            )
         }
     }
 
     //getting data from server
     useEffect(() => {
-        GetFullList(Url('languages', '', `${currPage}`, 'DESC'))
-            .then(
-                (result) => {
-                    if (result.state) {
-                        setIsLoaded(true);
-                        setItems(result.data.concat(ADD_ONE_LENGHT));
-                    } else {
-                        setError(true);
-                    }
-                },
-            )
+        getRequest(
+            Url('languages', '', `${currPage}`, 'DESC'),
+            (data, header) => {
+                setIsLoaded(true);
+                setItems(data.concat(ADD_ONE_LENGHT));
+            },
+            (error) => {
+                setError(true);
+            }
+        )
     }, []);
 
 
diff --git a/src/Admin/Pages/Pages/SubPages/NoteVariables.js b/src/Admin/Pages/Pages/SubPages/NoteVariables.js
index 3d242bb22794370daa2d86b81a56dd1d88c27627..0958d95d52711562fd280e5ed661f22e9dafa1cf 100644
--- a/src/Admin/Pages/Pages/SubPages/NoteVariables.js
+++ b/src/Admin/Pages/Pages/SubPages/NoteVariables.js
@@ -36,8 +36,8 @@ import TableData from '../../../Components/Components/Table';
 import SnackBar from '../../../../Components/SnackbarComponent';
 import LoadingSpinner from '../../../../Components/LoadingSpinner';
 //Services
+import { getRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 import { Url } from '../../../Filters';
-import { GetFullList } from '../../../Services';
 //routers
 import { Link } from 'react-router-dom';
 
@@ -89,9 +89,10 @@ const NoteVariables = () => {
 
     const LoadMoreItens = async (api) => {
         setIsLoadingMoreItems(true)
-        GetFullList(api).then(res => {
-            if (res.state) {
-                const arrData = [...res.data]
+        getRequest(
+            api,
+            (data, header) => {
+                const arrData = [...data]
                 if (arrData.length === 0) {
                     HandleSnack('Não há mais dados para serem carregados', true, 'warning', '#FFC125')
                 } else {
@@ -100,63 +101,71 @@ const NoteVariables = () => {
                     const arrResult = arrItems.concat(arrData)
                     setItems(arrResult.concat(AddOneLenght))
                 }
-
-            } else {
+                setIsLoadingMoreItems(false)
+            },
+            (error) => {
                 HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
+                setIsLoadingMoreItems(false)
             }
-            setIsLoadingMoreItems(false)
-        })
+        )
     }
 
     const InvertList = async () => {
         transformListToAsc = !transformListToAsc
         currPage = 0
         if (transformListToAsc) {
-            GetFullList(Url('scores', '', `${currPage}`, 'ASC')).then(res => {
-                if (res.state) {
-                    const arrData = [...res.data]
+            getRequest(
+                Url('scores', '', `${currPage}`, 'ASC'),
+                (data, header) => {
+                    const arrData = [...data]
                     setItems(arrData.concat(AddOneLenght))
-                } else {
+                },
+                (error) => {
                     HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
                 }
-            })
+            )
         } else {
-            GetFullList(Url('scores', '', `${currPage}`, 'DESC')).then(res => {
-                if (res.state) {
-                    const arrData = [...res.data]
+            getRequest(
+                Url('scores', '', `${currPage}`, 'DESC'),
+                (data, header) => {
+                    const arrData = [...data]
                     setItems(arrData.concat(AddOneLenght))
-                } else {
+                },
+                (error) => {
                     HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
                 }
-            })
+            )
         }
     }
 
     const UpdateHandler = async (api) => {
         setIsUpdating(true)
-        GetFullList(api).then(res => {
-            if (res.state) {
+        getRequest(
+            api,
+            (data, header) => {
                 HandleSnack('A lista de dados foi atualizada', true, 'success', '#228B22')
-                const arrData = [...res.data]
+                const arrData = [...data]
                 setItems(arrData.concat(AddOneLenght))
-            } else {
+                setIsUpdating(false)
+            },
+            (error) => {
                 HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
+                setIsUpdating(false)
             }
-            setIsUpdating(false)
-        })
+        )
     }
 
     useEffect(() => {
-        GetFullList(Url('scores', '', '0', 'DESC'))
-            .then(
-                (result) => {
-                    if (result.state) {
-                        setIsLoaded(true);
-                        setItems(result.data.concat(AddOneLenght));
-                    } else setError(true);
-
-                },
-            )
+        getRequest(
+            Url('scores', '', '0', 'DESC'),
+            (data, header) => {
+                setIsLoaded(true);
+                setItems(data.concat(AddOneLenght));
+            },
+            (error) => {
+                setError(true);
+            }
+        )
     }, []);
 
 
diff --git a/src/Admin/Pages/Pages/SubPages/Rating.js b/src/Admin/Pages/Pages/SubPages/Rating.js
index e102e928040d14510b81a978fcaf79359e49e0cc..921d85256be499effffc1755c7877ee1abb5cfca 100644
--- a/src/Admin/Pages/Pages/SubPages/Rating.js
+++ b/src/Admin/Pages/Pages/SubPages/Rating.js
@@ -38,8 +38,8 @@ import LoadingSpinner from '../../../../Components/LoadingSpinner';
 //Services
 import AlertDialog from "../../../Components/Components/AlertDialog";
 import { Url } from '../../../Filters';
-import { GetFullList, Delete } from '../../../Services';
 import { DeleteFilter } from '../../../Filters';
+import { getRequest, deleteRequest } from '../../../../Components/HelperFunctions/getAxiosConfig'
 //routers
 import { Link } from 'react-router-dom';
 
@@ -95,9 +95,10 @@ const Ratings = () => {
 
     const LoadMoreItens = async (api) => {
         setIsLoadingMoreItems(true)
-        GetFullList(api).then(res => {
-            if (res.state) {
-                const arrData = [...res.data]
+        getRequest(
+            api,
+            (data, header) => {
+                const arrData = [...data]
                 if (arrData.length === 0) {
                     HandleSnack('Não há mais dados para serem carregados', true, 'warning', '#FFC125')
                 } else {
@@ -106,58 +107,67 @@ const Ratings = () => {
                     const arrResult = arrItems.concat(arrData)
                     setItems(arrResult.concat(AddOneLenght))
                 }
-
-            } else {
+                setIsLoadingMoreItems(false)
+            },
+            (error) => {
                 HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
+                setIsLoadingMoreItems(false)
             }
-            setIsLoadingMoreItems(false)
-        })
+        )
     }
 
     const InvertList = async () => {
         transformListToAsc = !transformListToAsc
         currPage = 0
         if (transformListToAsc) {
-            GetFullList(Url('ratings', '', `${currPage}`, 'ASC')).then(res => {
-                if (res.state) {
-                    const arrData = [...res.data]
+            getRequest(
+                Url('ratings', '', `${currPage}`, 'ASC'),
+                (data, header) => {
+                    const arrData = [...data]
                     setItems(arrData.concat(AddOneLenght))
-                } else {
+                },
+                (error) => {
                     HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
                 }
-            })
+            )
         } else {
-            GetFullList(Url('ratings', '', `${currPage}`, 'DESC')).then(res => {
-                if (res.state) {
-                    const arrData = [...res.data]
+            getRequest(
+                Url('ratings', '', `${currPage}`, 'DESC'),
+                (data, header) => {
+                    const arrData = [...data]
                     setItems(arrData.concat(AddOneLenght))
-                } else {
+                },
+                (error) => {
                     HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
                 }
-            })
+            )
         }
     }
 
     const UpdateHandler = async (api) => {
         setIsUpdating(true)
-        GetFullList(api).then(res => {
-            if (res.state) {
+        getRequest(
+            api,
+            (data, header) => {
                 HandleSnack('A lista de dados foi atualizada', true, 'success', '#228B22')
-                const arrData = [...res.data]
+                const arrData = [...data]
                 setItems(arrData.concat(AddOneLenght))
-            } else {
+                setIsUpdating(false)
+            },
+            (error) => {
                 HandleSnack('Erro ao carregar os dados', true, 'warning', '#FA8072')
+                setIsUpdating(false)
             }
-            setIsUpdating(false)
-        })
+        )
     }
 
     //handle Delete
     async function DeleteHandler() {
         const id = deleteItem.id;
         HandleStateAlertDialog(null);
-        Delete(DeleteFilter("ratings", id)).then((res) => {
-            if (res) {
+        deleteRequest(
+            DeleteFilter("ratings", id),
+            (data) => {
                 HandleSnack(
                     "O rating foi deletada com sucesso",
                     true,
@@ -167,11 +177,13 @@ const Ratings = () => {
                 currPage = 0;
                 transformListToAsc = false
                 UpdateHandler(Url("ratings", "", `${currPage}`, "DESC"));
-            } else {
+                HandleStateCircularProgress(null);
+            },
+            (error) => {
                 HandleSnack("Ocorreu algum erro", true, "warning", "#FA8072");
+                HandleStateCircularProgress(null);
             }
-            HandleStateCircularProgress(null);
-        });
+        )
     }
 
     const HandleStateCircularProgress = (i) => {
@@ -186,15 +198,16 @@ const Ratings = () => {
 
 
     useEffect(() => {
-        GetFullList(Url('ratings', '', currPage, 'DESC'))
-            .then(
-                (result) => {
-                    if (result.state) {
-                        setIsLoaded(true);
-                        setItems(result.data.concat(AddOneLenght));
-                    } else setError(true)
-                },
-            )
+        getRequest(
+            Url('ratings', '', currPage, 'DESC'),
+            (data, header) => {
+                setIsLoaded(true);
+                setItems(data.concat(AddOneLenght));
+            },
+            (error) => {
+                setError(true)
+            }
+        )
     }, []);
 
 
diff --git a/src/App.js b/src/App.js
index 0f4b3a9c863f9c4c522c8fc8fa47cc3ed08174f5..5a391948be50ebbe522eec1efa91c2fb9b4d64d3 100644
--- a/src/App.js
+++ b/src/App.js
@@ -94,6 +94,7 @@ export default function App(){
       <link href="https://fonts.googleapis.com/css?family=Kalam|Pompiere|Roboto&display=swap" rel="stylesheet"/>
       <Switch>
         <Route path="/" exact={true} component={Home}/>
+        <Route path="/admin" component={Admin}/>
         <Route path="/busca" component={Search} />
         <Route path="/perfil" component={UserPage} />
         <Route path="/editarperfil" component={EditProfilePage} />
@@ -134,5 +135,3 @@ export default function App(){
   )
 }
 
-
-export default App;
\ No newline at end of file