diff --git a/webapp/dist/build.js b/webapp/dist/build.js
index aa6d3e6483fa90259e82dc83d2a795f9e147b242..54a2f770f52d5acf699ceb1b9aa4cdd3781c96c1 100644
--- a/webapp/dist/build.js
+++ b/webapp/dist/build.js
@@ -1638,7 +1638,7 @@ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__,
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__App_vue__ = __webpack_require__(228);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_bootstrap_vue__ = __webpack_require__(246);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_bootstrap_dist_css_bootstrap_css__ = __webpack_require__(276);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_bootstrap_dist_css_bootstrap_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_bootstrap_dist_css_bootstrap_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_bootstrap_vue_dist_bootstrap_vue_css__ = __webpack_require__(278);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_bootstrap_vue_dist_bootstrap_vue_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_bootstrap_vue_dist_bootstrap_vue_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vue_code_highlight_themes_prism_css__ = __webpack_require__(280);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vue_code_highlight_themes_prism_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_vue_code_highlight_themes_prism_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_vue_code_highlight_themes_prism_coy_css__ = __webpack_require__(282);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_vue_code_highlight_themes_prism_coy_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_vue_code_highlight_themes_prism_coy_css__);\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_2_bootstrap_vue__[\"a\" /* default */]);\n\n\n\n\n// import 'vue-code-highlight/themes/duotone-sea.css'\n\n\n// import 'vue-code-highlight/themes/prism-dark.css'\n// import 'vue-code-highlight/themes/prism-funky.css'\n// import 'vue-code-highlight/themes/prism-okaidia.css'\n// import 'vue-code-highlight/themes/prism-solarizedlight.css'\n// import 'vue-code-highlight/themes/prism-tomorrow.css'\n// import 'vue-code-highlight/themes/prism-twilight.css'\n// import 'vue-code-highlight/themes/window.css'\n\nwindow.kwalitee_app = new __WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"]({\n  el: '#ocrd-kwalitee',\n  render: function render(h) {\n    return h(__WEBPACK_IMPORTED_MODULE_1__App_vue__[\"a\" /* default */]);\n  },\n  data: function data() {\n    return {\n      projects: [],\n      modalProjectIndex: 0,\n      modalProcessorIndex: 0,\n      modalProjectVisible: false,\n      modalProcessorVisible: false\n    };\n  },\n\n  methods: {\n    fetchprojectData: function fetchprojectData() {\n      var _this = this;\n\n      fetch('repos.json').then(function (resp) {\n        return resp.json();\n      }).then(function (projects) {\n        var _projects;\n\n        projects.map(function (project, idx) {\n          return project.idx = idx;\n        });\n        _this.projects.splice(0, _this.projects.length);\n        (_projects = _this.projects).push.apply(_projects, _toConsumableArray(projects));\n      });\n    },\n    showModal: function showModal(projectOrProcessor, idx) {\n      if (projectOrProcessor === 'processor') {\n        console.log(\"Not implemented\");\n        this.$bvModal.show('processor-modal');\n      } else {\n        this.modalProjectIndex = idx;\n        this.$bvModal.show('project-modal');\n      }\n    }\n  }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvbWFpbi5qcz8zNDc5Il0sIm5hbWVzIjpbIlZ1ZSIsInVzZSIsIkJvb3RzdHJhcFZ1ZSIsIndpbmRvdyIsImt3YWxpdGVlX2FwcCIsImVsIiwicmVuZGVyIiwiaCIsIkFwcCIsImRhdGEiLCJwcm9qZWN0cyIsIm1vZGFsUHJvamVjdEluZGV4IiwibW9kYWxQcm9jZXNzb3JJbmRleCIsIm1vZGFsUHJvamVjdFZpc2libGUiLCJtb2RhbFByb2Nlc3NvclZpc2libGUiLCJtZXRob2RzIiwiZmV0Y2hwcm9qZWN0RGF0YSIsImZldGNoIiwidGhlbiIsInJlc3AiLCJqc29uIiwibWFwIiwicHJvamVjdCIsImlkeCIsInNwbGljZSIsImxlbmd0aCIsInB1c2giLCJzaG93TW9kYWwiLCJwcm9qZWN0T3JQcm9jZXNzb3IiLCJjb25zb2xlIiwibG9nIiwiJGJ2TW9kYWwiLCJzaG93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBQSw0Q0FBR0EsQ0FBQ0MsR0FBSixDQUFRQyw4REFBUjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBQyxPQUFPQyxZQUFQLEdBQXNCLElBQUlKLDRDQUFKLENBQVE7QUFDNUJLLE1BQUksZ0JBRHdCO0FBRTVCQyxVQUFRO0FBQUEsV0FBS0MsRUFBRUMseURBQUYsQ0FBTDtBQUFBLEdBRm9CO0FBRzVCQyxNQUg0QixrQkFHckI7QUFDTCxXQUFPO0FBQ0xDLGdCQUFVLEVBREw7QUFFTEMseUJBQW1CLENBRmQ7QUFHTEMsMkJBQXFCLENBSGhCO0FBSUxDLDJCQUFxQixLQUpoQjtBQUtMQyw2QkFBdUI7QUFMbEIsS0FBUDtBQU9ELEdBWDJCOztBQVk1QkMsV0FBUztBQUNQQyxvQkFETyw4QkFDWTtBQUFBOztBQUNqQkMsWUFBTSxZQUFOLEVBQW9CQyxJQUFwQixDQUF5QjtBQUFBLGVBQVFDLEtBQUtDLElBQUwsRUFBUjtBQUFBLE9BQXpCLEVBQThDRixJQUE5QyxDQUFtRCxvQkFBWTtBQUFBOztBQUMzRFIsaUJBQVNXLEdBQVQsQ0FBYSxVQUFDQyxPQUFELEVBQVVDLEdBQVY7QUFBQSxpQkFBa0JELFFBQVFDLEdBQVIsR0FBY0EsR0FBaEM7QUFBQSxTQUFiO0FBQ0EsY0FBS2IsUUFBTCxDQUFjYyxNQUFkLENBQXFCLENBQXJCLEVBQXdCLE1BQUtkLFFBQUwsQ0FBY2UsTUFBdEM7QUFDQSwyQkFBS2YsUUFBTCxFQUFjZ0IsSUFBZCxxQ0FBc0JoQixRQUF0QjtBQUNELE9BSkg7QUFNRCxLQVJNO0FBU1BpQixhQVRPLHFCQVNHQyxrQkFUSCxFQVN1QkwsR0FUdkIsRUFTNEI7QUFDakMsVUFBSUssdUJBQXVCLFdBQTNCLEVBQXdDO0FBQ3RDQyxnQkFBUUMsR0FBUixDQUFZLGlCQUFaO0FBQ0EsYUFBS0MsUUFBTCxDQUFjQyxJQUFkLENBQW1CLGlCQUFuQjtBQUNELE9BSEQsTUFHTztBQUNMLGFBQUtyQixpQkFBTCxHQUF5QlksR0FBekI7QUFDQSxhQUFLUSxRQUFMLENBQWNDLElBQWQsQ0FBbUIsZUFBbkI7QUFDRDtBQUNGO0FBakJNO0FBWm1CLENBQVIsQ0FBdEIiLCJmaWxlIjoiMjI1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5pbXBvcnQgQXBwIGZyb20gJy4vQXBwLnZ1ZSdcbmltcG9ydCBCb290c3RyYXBWdWUgZnJvbSAnYm9vdHN0cmFwLXZ1ZSdcblZ1ZS51c2UoQm9vdHN0cmFwVnVlKVxuXG5pbXBvcnQgJ2Jvb3RzdHJhcC9kaXN0L2Nzcy9ib290c3RyYXAuY3NzJ1xuaW1wb3J0ICdib290c3RyYXAtdnVlL2Rpc3QvYm9vdHN0cmFwLXZ1ZS5jc3MnXG5cbi8vIGltcG9ydCAndnVlLWNvZGUtaGlnaGxpZ2h0L3RoZW1lcy9kdW90b25lLXNlYS5jc3MnXG5pbXBvcnQgJ3Z1ZS1jb2RlLWhpZ2hsaWdodC90aGVtZXMvcHJpc20uY3NzJ1xuaW1wb3J0ICd2dWUtY29kZS1oaWdobGlnaHQvdGhlbWVzL3ByaXNtLWNveS5jc3MnXG4vLyBpbXBvcnQgJ3Z1ZS1jb2RlLWhpZ2hsaWdodC90aGVtZXMvcHJpc20tZGFyay5jc3MnXG4vLyBpbXBvcnQgJ3Z1ZS1jb2RlLWhpZ2hsaWdodC90aGVtZXMvcHJpc20tZnVua3kuY3NzJ1xuLy8gaW1wb3J0ICd2dWUtY29kZS1oaWdobGlnaHQvdGhlbWVzL3ByaXNtLW9rYWlkaWEuY3NzJ1xuLy8gaW1wb3J0ICd2dWUtY29kZS1oaWdobGlnaHQvdGhlbWVzL3ByaXNtLXNvbGFyaXplZGxpZ2h0LmNzcydcbi8vIGltcG9ydCAndnVlLWNvZGUtaGlnaGxpZ2h0L3RoZW1lcy9wcmlzbS10b21vcnJvdy5jc3MnXG4vLyBpbXBvcnQgJ3Z1ZS1jb2RlLWhpZ2hsaWdodC90aGVtZXMvcHJpc20tdHdpbGlnaHQuY3NzJ1xuLy8gaW1wb3J0ICd2dWUtY29kZS1oaWdobGlnaHQvdGhlbWVzL3dpbmRvdy5jc3MnXG5cbndpbmRvdy5rd2FsaXRlZV9hcHAgPSBuZXcgVnVlKHtcbiAgZWw6ICcjb2NyZC1rd2FsaXRlZScsXG4gIHJlbmRlcjogaCA9PiBoKEFwcCksXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb2plY3RzOiBbXSxcbiAgICAgIG1vZGFsUHJvamVjdEluZGV4OiAwLFxuICAgICAgbW9kYWxQcm9jZXNzb3JJbmRleDogMCxcbiAgICAgIG1vZGFsUHJvamVjdFZpc2libGU6IGZhbHNlLFxuICAgICAgbW9kYWxQcm9jZXNzb3JWaXNpYmxlOiBmYWxzZSxcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBmZXRjaHByb2plY3REYXRhKCkge1xuICAgICAgZmV0Y2goJ3JlcG9zLmpzb24nKS50aGVuKHJlc3AgPT4gcmVzcC5qc29uKCkpLnRoZW4ocHJvamVjdHMgPT4ge1xuICAgICAgICAgIHByb2plY3RzLm1hcCgocHJvamVjdCwgaWR4KSA9PiBwcm9qZWN0LmlkeCA9IGlkeClcbiAgICAgICAgICB0aGlzLnByb2plY3RzLnNwbGljZSgwLCB0aGlzLnByb2plY3RzLmxlbmd0aClcbiAgICAgICAgICB0aGlzLnByb2plY3RzLnB1c2goLi4ucHJvamVjdHMpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9LFxuICAgIHNob3dNb2RhbChwcm9qZWN0T3JQcm9jZXNzb3IsIGlkeCkge1xuICAgICAgaWYgKHByb2plY3RPclByb2Nlc3NvciA9PT0gJ3Byb2Nlc3NvcicpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJOb3QgaW1wbGVtZW50ZWRcIilcbiAgICAgICAgdGhpcy4kYnZNb2RhbC5zaG93KCdwcm9jZXNzb3ItbW9kYWwnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tb2RhbFByb2plY3RJbmRleCA9IGlkeFxuICAgICAgICB0aGlzLiRidk1vZGFsLnNob3coJ3Byb2plY3QtbW9kYWwnKVxuICAgICAgfVxuICAgIH0sXG4gIH1cbn0pXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbWFpbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///225\n");
+eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__App_vue__ = __webpack_require__(228);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_bootstrap_vue__ = __webpack_require__(246);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_bootstrap_dist_css_bootstrap_css__ = __webpack_require__(276);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_bootstrap_dist_css_bootstrap_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_bootstrap_dist_css_bootstrap_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_bootstrap_vue_dist_bootstrap_vue_css__ = __webpack_require__(278);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_bootstrap_vue_dist_bootstrap_vue_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_bootstrap_vue_dist_bootstrap_vue_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vue_code_highlight_themes_prism_css__ = __webpack_require__(280);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vue_code_highlight_themes_prism_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_vue_code_highlight_themes_prism_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_vue_code_highlight_themes_prism_coy_css__ = __webpack_require__(282);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_vue_code_highlight_themes_prism_coy_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_vue_code_highlight_themes_prism_coy_css__);\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_2_bootstrap_vue__[\"a\" /* default */]);\n\n\n\n\n// import 'vue-code-highlight/themes/duotone-sea.css'\n\n\n// import 'vue-code-highlight/themes/prism-dark.css'\n// import 'vue-code-highlight/themes/prism-funky.css'\n// import 'vue-code-highlight/themes/prism-okaidia.css'\n// import 'vue-code-highlight/themes/prism-solarizedlight.css'\n// import 'vue-code-highlight/themes/prism-tomorrow.css'\n// import 'vue-code-highlight/themes/prism-twilight.css'\n// import 'vue-code-highlight/themes/window.css'\n\nwindow.kwalitee_app = new __WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"]({\n  el: '#ocrd-kwalitee',\n  render: function render(h) {\n    return h(__WEBPACK_IMPORTED_MODULE_1__App_vue__[\"a\" /* default */]);\n  },\n  data: function data() {\n    return {\n      projects: [],\n      modalProjectIndex: 0,\n      modalProcessorIndex: 0,\n      modalProjectVisible: false,\n      modalProcessorVisible: false\n    };\n  },\n\n  methods: {\n    fetchprojectData: function fetchprojectData() {\n      var _this = this;\n\n      fetch('/repos.json').then(function (resp) {\n        return resp.json();\n      }).then(function (projects) {\n        var _projects;\n\n        projects.map(function (project, idx) {\n          return project.idx = idx;\n        });\n        _this.projects.splice(0, _this.projects.length);\n        (_projects = _this.projects).push.apply(_projects, _toConsumableArray(projects));\n      });\n    },\n    showModal: function showModal(projectOrProcessor, idx) {\n      if (projectOrProcessor === 'processor') {\n        console.log(\"Not implemented\");\n        this.$bvModal.show('processor-modal');\n      } else {\n        this.modalProjectIndex = idx;\n        this.$bvModal.show('project-modal');\n      }\n    }\n  }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvbWFpbi5qcz8zNDc5Il0sIm5hbWVzIjpbIlZ1ZSIsInVzZSIsIkJvb3RzdHJhcFZ1ZSIsIndpbmRvdyIsImt3YWxpdGVlX2FwcCIsImVsIiwicmVuZGVyIiwiaCIsIkFwcCIsImRhdGEiLCJwcm9qZWN0cyIsIm1vZGFsUHJvamVjdEluZGV4IiwibW9kYWxQcm9jZXNzb3JJbmRleCIsIm1vZGFsUHJvamVjdFZpc2libGUiLCJtb2RhbFByb2Nlc3NvclZpc2libGUiLCJtZXRob2RzIiwiZmV0Y2hwcm9qZWN0RGF0YSIsImZldGNoIiwidGhlbiIsInJlc3AiLCJqc29uIiwibWFwIiwicHJvamVjdCIsImlkeCIsInNwbGljZSIsImxlbmd0aCIsInB1c2giLCJzaG93TW9kYWwiLCJwcm9qZWN0T3JQcm9jZXNzb3IiLCJjb25zb2xlIiwibG9nIiwiJGJ2TW9kYWwiLCJzaG93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBQSw0Q0FBR0EsQ0FBQ0MsR0FBSixDQUFRQyw4REFBUjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBQyxPQUFPQyxZQUFQLEdBQXNCLElBQUlKLDRDQUFKLENBQVE7QUFDNUJLLE1BQUksZ0JBRHdCO0FBRTVCQyxVQUFRO0FBQUEsV0FBS0MsRUFBRUMseURBQUYsQ0FBTDtBQUFBLEdBRm9CO0FBRzVCQyxNQUg0QixrQkFHckI7QUFDTCxXQUFPO0FBQ0xDLGdCQUFVLEVBREw7QUFFTEMseUJBQW1CLENBRmQ7QUFHTEMsMkJBQXFCLENBSGhCO0FBSUxDLDJCQUFxQixLQUpoQjtBQUtMQyw2QkFBdUI7QUFMbEIsS0FBUDtBQU9ELEdBWDJCOztBQVk1QkMsV0FBUztBQUNQQyxvQkFETyw4QkFDWTtBQUFBOztBQUNqQkMsWUFBTSxhQUFOLEVBQXFCQyxJQUFyQixDQUEwQjtBQUFBLGVBQVFDLEtBQUtDLElBQUwsRUFBUjtBQUFBLE9BQTFCLEVBQStDRixJQUEvQyxDQUFvRCxvQkFBWTtBQUFBOztBQUM1RFIsaUJBQVNXLEdBQVQsQ0FBYSxVQUFDQyxPQUFELEVBQVVDLEdBQVY7QUFBQSxpQkFBa0JELFFBQVFDLEdBQVIsR0FBY0EsR0FBaEM7QUFBQSxTQUFiO0FBQ0EsY0FBS2IsUUFBTCxDQUFjYyxNQUFkLENBQXFCLENBQXJCLEVBQXdCLE1BQUtkLFFBQUwsQ0FBY2UsTUFBdEM7QUFDQSwyQkFBS2YsUUFBTCxFQUFjZ0IsSUFBZCxxQ0FBc0JoQixRQUF0QjtBQUNELE9BSkg7QUFNRCxLQVJNO0FBU1BpQixhQVRPLHFCQVNHQyxrQkFUSCxFQVN1QkwsR0FUdkIsRUFTNEI7QUFDakMsVUFBSUssdUJBQXVCLFdBQTNCLEVBQXdDO0FBQ3RDQyxnQkFBUUMsR0FBUixDQUFZLGlCQUFaO0FBQ0EsYUFBS0MsUUFBTCxDQUFjQyxJQUFkLENBQW1CLGlCQUFuQjtBQUNELE9BSEQsTUFHTztBQUNMLGFBQUtyQixpQkFBTCxHQUF5QlksR0FBekI7QUFDQSxhQUFLUSxRQUFMLENBQWNDLElBQWQsQ0FBbUIsZUFBbkI7QUFDRDtBQUNGO0FBakJNO0FBWm1CLENBQVIsQ0FBdEIiLCJmaWxlIjoiMjI1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5pbXBvcnQgQXBwIGZyb20gJy4vQXBwLnZ1ZSdcbmltcG9ydCBCb290c3RyYXBWdWUgZnJvbSAnYm9vdHN0cmFwLXZ1ZSdcblZ1ZS51c2UoQm9vdHN0cmFwVnVlKVxuXG5pbXBvcnQgJ2Jvb3RzdHJhcC9kaXN0L2Nzcy9ib290c3RyYXAuY3NzJ1xuaW1wb3J0ICdib290c3RyYXAtdnVlL2Rpc3QvYm9vdHN0cmFwLXZ1ZS5jc3MnXG5cbi8vIGltcG9ydCAndnVlLWNvZGUtaGlnaGxpZ2h0L3RoZW1lcy9kdW90b25lLXNlYS5jc3MnXG5pbXBvcnQgJ3Z1ZS1jb2RlLWhpZ2hsaWdodC90aGVtZXMvcHJpc20uY3NzJ1xuaW1wb3J0ICd2dWUtY29kZS1oaWdobGlnaHQvdGhlbWVzL3ByaXNtLWNveS5jc3MnXG4vLyBpbXBvcnQgJ3Z1ZS1jb2RlLWhpZ2hsaWdodC90aGVtZXMvcHJpc20tZGFyay5jc3MnXG4vLyBpbXBvcnQgJ3Z1ZS1jb2RlLWhpZ2hsaWdodC90aGVtZXMvcHJpc20tZnVua3kuY3NzJ1xuLy8gaW1wb3J0ICd2dWUtY29kZS1oaWdobGlnaHQvdGhlbWVzL3ByaXNtLW9rYWlkaWEuY3NzJ1xuLy8gaW1wb3J0ICd2dWUtY29kZS1oaWdobGlnaHQvdGhlbWVzL3ByaXNtLXNvbGFyaXplZGxpZ2h0LmNzcydcbi8vIGltcG9ydCAndnVlLWNvZGUtaGlnaGxpZ2h0L3RoZW1lcy9wcmlzbS10b21vcnJvdy5jc3MnXG4vLyBpbXBvcnQgJ3Z1ZS1jb2RlLWhpZ2hsaWdodC90aGVtZXMvcHJpc20tdHdpbGlnaHQuY3NzJ1xuLy8gaW1wb3J0ICd2dWUtY29kZS1oaWdobGlnaHQvdGhlbWVzL3dpbmRvdy5jc3MnXG5cbndpbmRvdy5rd2FsaXRlZV9hcHAgPSBuZXcgVnVlKHtcbiAgZWw6ICcjb2NyZC1rd2FsaXRlZScsXG4gIHJlbmRlcjogaCA9PiBoKEFwcCksXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb2plY3RzOiBbXSxcbiAgICAgIG1vZGFsUHJvamVjdEluZGV4OiAwLFxuICAgICAgbW9kYWxQcm9jZXNzb3JJbmRleDogMCxcbiAgICAgIG1vZGFsUHJvamVjdFZpc2libGU6IGZhbHNlLFxuICAgICAgbW9kYWxQcm9jZXNzb3JWaXNpYmxlOiBmYWxzZSxcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBmZXRjaHByb2plY3REYXRhKCkge1xuICAgICAgZmV0Y2goJy9yZXBvcy5qc29uJykudGhlbihyZXNwID0+IHJlc3AuanNvbigpKS50aGVuKHByb2plY3RzID0+IHtcbiAgICAgICAgICBwcm9qZWN0cy5tYXAoKHByb2plY3QsIGlkeCkgPT4gcHJvamVjdC5pZHggPSBpZHgpXG4gICAgICAgICAgdGhpcy5wcm9qZWN0cy5zcGxpY2UoMCwgdGhpcy5wcm9qZWN0cy5sZW5ndGgpXG4gICAgICAgICAgdGhpcy5wcm9qZWN0cy5wdXNoKC4uLnByb2plY3RzKVxuICAgICAgICB9XG4gICAgICApXG4gICAgfSxcbiAgICBzaG93TW9kYWwocHJvamVjdE9yUHJvY2Vzc29yLCBpZHgpIHtcbiAgICAgIGlmIChwcm9qZWN0T3JQcm9jZXNzb3IgPT09ICdwcm9jZXNzb3InKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiTm90IGltcGxlbWVudGVkXCIpXG4gICAgICAgIHRoaXMuJGJ2TW9kYWwuc2hvdygncHJvY2Vzc29yLW1vZGFsJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubW9kYWxQcm9qZWN0SW5kZXggPSBpZHhcbiAgICAgICAgdGhpcy4kYnZNb2RhbC5zaG93KCdwcm9qZWN0LW1vZGFsJylcbiAgICAgIH1cbiAgICB9LFxuICB9XG59KVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL21haW4uanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///225\n");
 
 /***/ }),
 /* 226 */
diff --git a/webapp/src/main.js b/webapp/src/main.js
index 74cb402fed0ad6a607fd1f3a6b8a18a73a137e2c..0a2bd62c2a4d29acb7b483da4a59b095af7113ff 100644
--- a/webapp/src/main.js
+++ b/webapp/src/main.js
@@ -31,7 +31,7 @@ window.kwalitee_app = new Vue({
   },
   methods: {
     fetchprojectData() {
-      fetch('repos.json').then(resp => resp.json()).then(projects => {
+      fetch('/repos.json').then(resp => resp.json()).then(projects => {
           projects.map((project, idx) => project.idx = idx)
           this.projects.splice(0, this.projects.length)
           this.projects.push(...projects)