diff --git a/index.js b/index.js
index 79cb4459e8817930a530df0c7b70056cb0915544..487e42da4b0356dd7cb4e7812d11de554da20f0e 100644
--- a/index.js
+++ b/index.js
@@ -1,7 +1,23 @@
 var express = require('express');
 var app = express();
 
-app.use(express.static('static'));
+
+app.set('view engine', 'ejs');
+
+
+
+app.use(express.static('public'));
+
+
+
+require('./routes/common')(app);
+require('./routes/bunker')(app);
+require('./routes/storage')(app);
+require('./routes/foods')(app);
+
+
+
+
 
 var server = app.listen(3000, function () {
     console.log("On: 3000");
diff --git a/middleware/bunker/deleteBunker.js b/middleware/bunker/deleteBunker.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/bunker/deleteBunker.js
+++ b/middleware/bunker/deleteBunker.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/bunker/getBunker.js b/middleware/bunker/getBunker.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/bunker/getBunker.js
+++ b/middleware/bunker/getBunker.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/bunker/getBunkerList.js b/middleware/bunker/getBunkerList.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/bunker/getBunkerList.js
+++ b/middleware/bunker/getBunkerList.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/bunker/saveBunker.js b/middleware/bunker/saveBunker.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/bunker/saveBunker.js
+++ b/middleware/bunker/saveBunker.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/common/auth.js b/middleware/common/auth.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/common/auth.js
+++ b/middleware/common/auth.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/common/handleWrongPass.js b/middleware/common/handleWrongPass.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/common/handleWrongPass.js
+++ b/middleware/common/handleWrongPass.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/common/inverseAuth.js b/middleware/common/inverseAuth.js
new file mode 100644
index 0000000000000000000000000000000000000000..54fb042ed994850c8d172c0af71d63391a4a5c6a
--- /dev/null
+++ b/middleware/common/inverseAuth.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/common/login.js b/middleware/common/login.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/common/login.js
+++ b/middleware/common/login.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/common/render.js b/middleware/common/render.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..24218aee2f5e7fd7c193a7fa0cf63bd881399a6e 100644
--- a/middleware/common/render.js
+++ b/middleware/common/render.js
@@ -0,0 +1,14 @@
+
+function static(){
+    return "static";
+}
+
+
+module.exports = function (objectrepository, viewName) {
+
+    return function (req, res) {
+      //res.end('Render: ' + viewName + static());
+      res.render(viewName, res.local);
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/food/deleteFood.js b/middleware/food/deleteFood.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/food/deleteFood.js
+++ b/middleware/food/deleteFood.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/food/getFood.js b/middleware/food/getFood.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/food/getFood.js
+++ b/middleware/food/getFood.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/food/getFoodList.js b/middleware/food/getFoodList.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/food/getFoodList.js
+++ b/middleware/food/getFoodList.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/food/saveFood.js b/middleware/food/saveFood.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/food/saveFood.js
+++ b/middleware/food/saveFood.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/storage/addStorageItem.js b/middleware/storage/addStorageItem.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/storage/addStorageItem.js
+++ b/middleware/storage/addStorageItem.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/middleware/storage/deleteStorageItem.js b/middleware/storage/deleteStorageItem.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54fb042ed994850c8d172c0af71d63391a4a5c6a 100644
--- a/middleware/storage/deleteStorageItem.js
+++ b/middleware/storage/deleteStorageItem.js
@@ -0,0 +1,7 @@
+module.exports = function (objectrepository) {
+
+    return function (req, res, next) {
+        next();
+    };
+  
+  };
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 89ca502b86b53820daf99fe9aa3429bcd2f0b72d..798ef1bc83cd7e3d4a6722415d51afc5a59a02e4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,6 +4,12 @@
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
+    "abbrev": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+      "dev": true
+    },
     "accepts": {
       "version": "1.3.7",
       "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
@@ -13,11 +19,57 @@
         "negotiator": "0.6.2"
       }
     },
+    "ansi-align": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
+      "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
+      "dev": true,
+      "requires": {
+        "string-width": "^2.0.0"
+      }
+    },
+    "ansi-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+      "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+      "dev": true
+    },
+    "ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "dev": true,
+      "requires": {
+        "color-convert": "^1.9.0"
+      }
+    },
+    "anymatch": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+      "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+      "dev": true,
+      "requires": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      }
+    },
     "array-flatten": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
       "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
     },
+    "balanced-match": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+      "dev": true
+    },
+    "binary-extensions": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
+      "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
+      "dev": true
+    },
     "body-parser": {
       "version": "1.19.0",
       "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
@@ -35,11 +87,131 @@
         "type-is": "~1.6.17"
       }
     },
+    "boxen": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
+      "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
+      "dev": true,
+      "requires": {
+        "ansi-align": "^2.0.0",
+        "camelcase": "^4.0.0",
+        "chalk": "^2.0.1",
+        "cli-boxes": "^1.0.0",
+        "string-width": "^2.0.0",
+        "term-size": "^1.2.0",
+        "widest-line": "^2.0.0"
+      }
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "dev": true,
+      "requires": {
+        "fill-range": "^7.0.1"
+      }
+    },
     "bytes": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
       "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
     },
+    "camelcase": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+      "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+      "dev": true
+    },
+    "capture-stack-trace": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
+      "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==",
+      "dev": true
+    },
+    "chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      }
+    },
+    "chokidar": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
+      "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
+      "dev": true,
+      "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.3.0"
+      }
+    },
+    "ci-info": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
+      "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
+      "dev": true
+    },
+    "cli-boxes": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
+      "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
+      "dev": true
+    },
+    "color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "dev": true,
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
+    "color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+      "dev": true
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+      "dev": true
+    },
+    "configstore": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
+      "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
+      "dev": true,
+      "requires": {
+        "dot-prop": "^4.1.0",
+        "graceful-fs": "^4.1.2",
+        "make-dir": "^1.0.0",
+        "unique-string": "^1.0.0",
+        "write-file-atomic": "^2.0.0",
+        "xdg-basedir": "^3.0.0"
+      }
+    },
     "content-disposition": {
       "version": "0.5.3",
       "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
@@ -63,6 +235,32 @@
       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
       "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
     },
+    "create-error-class": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
+      "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
+      "dev": true,
+      "requires": {
+        "capture-stack-trace": "^1.0.0"
+      }
+    },
+    "cross-spawn": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+      "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+      "dev": true,
+      "requires": {
+        "lru-cache": "^4.0.1",
+        "shebang-command": "^1.2.0",
+        "which": "^1.2.9"
+      }
+    },
+    "crypto-random-string": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+      "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
+      "dev": true
+    },
     "debug": {
       "version": "2.6.9",
       "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -71,6 +269,12 @@
         "ms": "2.0.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==",
+      "dev": true
+    },
     "depd": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -81,11 +285,31 @@
       "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
       "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
     },
+    "dot-prop": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+      "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+      "dev": true,
+      "requires": {
+        "is-obj": "^1.0.0"
+      }
+    },
+    "duplexer3": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+      "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+      "dev": true
+    },
     "ee-first": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
       "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
     },
+    "ejs": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.0.1.tgz",
+      "integrity": "sha512-cuIMtJwxvzumSAkqaaoGY/L6Fc/t6YvoP9/VIaK0V/CyqKLEQ8sqODmYfy/cjXEdZ9+OOL8TecbJu+1RsofGDw=="
+    },
     "encodeurl": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -96,11 +320,32 @@
       "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
       "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
     },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+      "dev": true
+    },
     "etag": {
       "version": "1.8.1",
       "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
       "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
     },
+    "execa": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+      "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+      "dev": true,
+      "requires": {
+        "cross-spawn": "^5.0.1",
+        "get-stream": "^3.0.0",
+        "is-stream": "^1.1.0",
+        "npm-run-path": "^2.0.0",
+        "p-finally": "^1.0.0",
+        "signal-exit": "^3.0.0",
+        "strip-eof": "^1.0.0"
+      }
+    },
     "express": {
       "version": "4.17.1",
       "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
@@ -138,6 +383,15 @@
         "vary": "~1.1.2"
       }
     },
+    "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==",
+      "dev": true,
+      "requires": {
+        "to-regex-range": "^5.0.1"
+      }
+    },
     "finalhandler": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
@@ -162,6 +416,68 @@
       "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
       "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
     },
+    "fsevents": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
+      "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+      "dev": true,
+      "optional": true
+    },
+    "get-stream": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+      "dev": 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==",
+      "dev": true,
+      "requires": {
+        "is-glob": "^4.0.1"
+      }
+    },
+    "global-dirs": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+      "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
+      "dev": true,
+      "requires": {
+        "ini": "^1.3.4"
+      }
+    },
+    "got": {
+      "version": "6.7.1",
+      "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
+      "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
+      "dev": true,
+      "requires": {
+        "create-error-class": "^3.0.0",
+        "duplexer3": "^0.1.4",
+        "get-stream": "^3.0.0",
+        "is-redirect": "^1.0.0",
+        "is-retry-allowed": "^1.0.0",
+        "is-stream": "^1.0.0",
+        "lowercase-keys": "^1.0.0",
+        "safe-buffer": "^5.0.1",
+        "timed-out": "^4.0.0",
+        "unzip-response": "^2.0.1",
+        "url-parse-lax": "^1.0.0"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+      "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+      "dev": true
+    },
+    "has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+      "dev": true
+    },
     "http-errors": {
       "version": "1.7.2",
       "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
@@ -182,16 +498,174 @@
         "safer-buffer": ">= 2.1.2 < 3"
       }
     },
+    "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=",
+      "dev": true
+    },
+    "import-lazy": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
+      "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
+      "dev": true
+    },
+    "imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+      "dev": true
+    },
     "inherits": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
       "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
     },
+    "ini": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+      "dev": true
+    },
     "ipaddr.js": {
       "version": "1.9.1",
       "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
       "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
     },
+    "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==",
+      "dev": true,
+      "requires": {
+        "binary-extensions": "^2.0.0"
+      }
+    },
+    "is-ci": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
+      "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
+      "dev": true,
+      "requires": {
+        "ci-info": "^1.5.0"
+      }
+    },
+    "is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+      "dev": true
+    },
+    "is-fullwidth-code-point": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+      "dev": true
+    },
+    "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==",
+      "dev": true,
+      "requires": {
+        "is-extglob": "^2.1.1"
+      }
+    },
+    "is-installed-globally": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
+      "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
+      "dev": true,
+      "requires": {
+        "global-dirs": "^0.1.0",
+        "is-path-inside": "^1.0.0"
+      }
+    },
+    "is-npm": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
+      "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
+      "dev": true
+    },
+    "is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "dev": true
+    },
+    "is-obj": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+      "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+      "dev": true
+    },
+    "is-path-inside": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+      "dev": true,
+      "requires": {
+        "path-is-inside": "^1.0.1"
+      }
+    },
+    "is-redirect": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+      "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
+      "dev": true
+    },
+    "is-retry-allowed": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+      "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
+      "dev": true
+    },
+    "is-stream": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+      "dev": true
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+      "dev": true
+    },
+    "latest-version": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
+      "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
+      "dev": true,
+      "requires": {
+        "package-json": "^4.0.0"
+      }
+    },
+    "lowercase-keys": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+      "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+      "dev": true
+    },
+    "lru-cache": {
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+      "dev": true,
+      "requires": {
+        "pseudomap": "^1.0.2",
+        "yallist": "^2.1.2"
+      }
+    },
+    "make-dir": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+      "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      }
+    },
     "media-typer": {
       "version": "0.3.0",
       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -225,6 +699,21 @@
         "mime-db": "1.43.0"
       }
     },
+    "minimatch": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "dev": true,
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimist": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+      "dev": true
+    },
     "ms": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -235,6 +724,65 @@
       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
       "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
     },
+    "nodemon": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.2.tgz",
+      "integrity": "sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw==",
+      "dev": true,
+      "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.2",
+        "update-notifier": "^2.5.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        }
+      }
+    },
+    "nopt": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+      "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+      "dev": true,
+      "requires": {
+        "abbrev": "1"
+      }
+    },
+    "normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+      "dev": true
+    },
+    "npm-run-path": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+      "dev": true,
+      "requires": {
+        "path-key": "^2.0.0"
+      }
+    },
     "on-finished": {
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -243,16 +791,64 @@
         "ee-first": "1.1.1"
       }
     },
+    "p-finally": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+      "dev": true
+    },
+    "package-json": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
+      "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
+      "dev": true,
+      "requires": {
+        "got": "^6.7.1",
+        "registry-auth-token": "^3.0.1",
+        "registry-url": "^3.0.3",
+        "semver": "^5.1.0"
+      }
+    },
     "parseurl": {
       "version": "1.3.3",
       "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
       "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
     },
+    "path-is-inside": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+      "dev": true
+    },
+    "path-key": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+      "dev": true
+    },
     "path-to-regexp": {
       "version": "0.1.7",
       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
       "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
     },
+    "picomatch": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+      "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+      "dev": true
+    },
+    "pify": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+      "dev": true
+    },
+    "prepend-http": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+      "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+      "dev": true
+    },
     "proxy-addr": {
       "version": "2.0.6",
       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
@@ -262,6 +858,18 @@
         "ipaddr.js": "1.9.1"
       }
     },
+    "pseudomap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+      "dev": true
+    },
+    "pstree.remy": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz",
+      "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==",
+      "dev": true
+    },
     "qs": {
       "version": "6.7.0",
       "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
@@ -283,6 +891,46 @@
         "unpipe": "1.0.0"
       }
     },
+    "rc": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+      "dev": true,
+      "requires": {
+        "deep-extend": "^0.6.0",
+        "ini": "~1.3.0",
+        "minimist": "^1.2.0",
+        "strip-json-comments": "~2.0.1"
+      }
+    },
+    "readdirp": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
+      "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
+      "dev": true,
+      "requires": {
+        "picomatch": "^2.0.7"
+      }
+    },
+    "registry-auth-token": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
+      "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
+      "dev": true,
+      "requires": {
+        "rc": "^1.1.6",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "registry-url": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+      "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
+      "dev": true,
+      "requires": {
+        "rc": "^1.0.1"
+      }
+    },
     "safe-buffer": {
       "version": "5.1.2",
       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -293,6 +941,21 @@
       "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
       "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
     },
+    "semver": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "dev": true
+    },
+    "semver-diff": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
+      "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
+      "dev": true,
+      "requires": {
+        "semver": "^5.0.3"
+      }
+    },
     "send": {
       "version": "0.17.1",
       "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
@@ -336,16 +999,110 @@
       "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
       "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
     },
+    "shebang-command": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "dev": true,
+      "requires": {
+        "shebang-regex": "^1.0.0"
+      }
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+      "dev": true
+    },
+    "signal-exit": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+      "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+      "dev": true
+    },
     "statuses": {
       "version": "1.5.0",
       "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
       "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
     },
+    "string-width": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+      "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+      "dev": true,
+      "requires": {
+        "is-fullwidth-code-point": "^2.0.0",
+        "strip-ansi": "^4.0.0"
+      }
+    },
+    "strip-ansi": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+      "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^3.0.0"
+      }
+    },
+    "strip-eof": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+      "dev": true
+    },
+    "strip-json-comments": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+      "dev": true
+    },
+    "supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "dev": true,
+      "requires": {
+        "has-flag": "^3.0.0"
+      }
+    },
+    "term-size": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
+      "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
+      "dev": true,
+      "requires": {
+        "execa": "^0.7.0"
+      }
+    },
+    "timed-out": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+      "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+      "dev": true
+    },
+    "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==",
+      "dev": true,
+      "requires": {
+        "is-number": "^7.0.0"
+      }
+    },
     "toidentifier": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
       "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
     },
+    "touch": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+      "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+      "dev": true,
+      "requires": {
+        "nopt": "~1.0.10"
+      }
+    },
     "type-is": {
       "version": "1.6.18",
       "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -355,11 +1112,62 @@
         "mime-types": "~2.1.24"
       }
     },
+    "undefsafe": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
+      "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
+      "dev": true,
+      "requires": {
+        "debug": "^2.2.0"
+      }
+    },
+    "unique-string": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+      "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
+      "dev": true,
+      "requires": {
+        "crypto-random-string": "^1.0.0"
+      }
+    },
     "unpipe": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
       "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
     },
+    "unzip-response": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
+      "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
+      "dev": true
+    },
+    "update-notifier": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
+      "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
+      "dev": true,
+      "requires": {
+        "boxen": "^1.2.1",
+        "chalk": "^2.0.1",
+        "configstore": "^3.0.0",
+        "import-lazy": "^2.1.0",
+        "is-ci": "^1.0.10",
+        "is-installed-globally": "^0.1.0",
+        "is-npm": "^1.0.0",
+        "latest-version": "^3.0.0",
+        "semver-diff": "^2.0.0",
+        "xdg-basedir": "^3.0.0"
+      }
+    },
+    "url-parse-lax": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+      "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+      "dev": true,
+      "requires": {
+        "prepend-http": "^1.0.1"
+      }
+    },
     "utils-merge": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
@@ -369,6 +1177,47 @@
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
       "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+    },
+    "which": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "dev": true,
+      "requires": {
+        "isexe": "^2.0.0"
+      }
+    },
+    "widest-line": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
+      "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
+      "dev": true,
+      "requires": {
+        "string-width": "^2.1.1"
+      }
+    },
+    "write-file-atomic": {
+      "version": "2.4.3",
+      "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+      "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.11",
+        "imurmurhash": "^0.1.4",
+        "signal-exit": "^3.0.2"
+      }
+    },
+    "xdg-basedir": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+      "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
+      "dev": true
+    },
+    "yallist": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+      "dev": true
     }
   }
 }
diff --git a/package.json b/package.json
index 529bd5ba938df1a9d0ba6051820029745b286be0..40629dcd6740f5f8bee731397aad7763ccb79851 100644
--- a/package.json
+++ b/package.json
@@ -4,11 +4,16 @@
   "description": "VITMAV42 homework",
   "main": "index.js",
   "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
+    "test": "echo \"Error: no test specified\" && exit 1",
+    "nodemon": "nodemon server.js"
   },
   "author": "EQN34F",
   "license": "ISC",
   "dependencies": {
+    "ejs": "^3.0.1",
     "express": "^4.17.1"
+  },
+  "devDependencies": {
+    "nodemon": "^2.0.2"
   }
 }
diff --git a/routes/bunker.js b/routes/bunker.js
new file mode 100644
index 0000000000000000000000000000000000000000..89572c7f2bd902131e8f365672ca0078f44a5455
--- /dev/null
+++ b/routes/bunker.js
@@ -0,0 +1,55 @@
+
+var authMW = require('../middleware/common/auth');
+var renderMW = require('../middleware/common/render');
+
+var getBunkerListMW = require('../middleware/bunker/getBunkerList');
+var saveBunkerMW = require('../middleware/bunker/saveBunker')
+var getBunkerMW = require('../middleware/bunker/getBunker');
+var deleteBunkerMW = require('..//middleware/bunker/deleteBunker');
+
+
+module.exports = function (app) {
+    var objectRepository = {
+      
+    };
+  
+
+    app.get('/bunkers',
+        authMW(objectRepository),
+        getBunkerListMW(objectRepository),
+        renderMW(objectRepository,'bunkers')
+    );
+
+    app.use('/bunkers/new',
+        authMW(objectRepository),
+        saveBunkerMW(objectRepository),
+        renderMW(objectRepository,'bunkereditcreate')
+    );
+
+    app.use('/bunkers/edit/:bunkerid',
+        authMW(objectRepository),
+        getBunkerMW(objectRepository),
+        saveBunkerMW(objectRepository),
+        renderMW(objectRepository,'bunkereditcreate')
+    );
+
+    app.get('/bunkers/del/:bunkerid',
+        authMW(objectRepository),
+        getBunkerMW(objectRepository),
+        deleteBunkerMW(objectRepository),
+        function(req,res,next){
+            return res.redirect('/bunkers');
+        }
+    );
+
+    app.get('/bunkers/info/:bunkerid',
+        authMW(objectRepository),
+        getBunkerMW(objectRepository),
+        renderMW(objectRepository,'bunkerinfo')
+    );
+
+
+   
+  };
+
+
diff --git a/routes/common.js b/routes/common.js
new file mode 100644
index 0000000000000000000000000000000000000000..c70380e5c37e7670b88c8aae5e18275ceeeb1db1
--- /dev/null
+++ b/routes/common.js
@@ -0,0 +1,29 @@
+
+
+var renderMW = require('../middleware/common/render');
+var handleWrongPassMW = require('../middleware/common/handleWrongPass');
+var loginMW = require('../middleware/common/login');
+var inversAuthMW = require('../middleware/common/inverseAuth');
+
+module.exports = function (app) {
+    var objectRepository = {
+      
+    };
+  
+
+    app.get('/',
+        inversAuthMW(objectRepository),
+        handleWrongPassMW(objectRepository),
+        renderMW(objectRepository,'index')
+    );
+
+    app.post('/login',
+        loginMW(objectRepository),
+        function(req,res,next){
+            return res.redirect('/bunkers');
+        }
+    )
+   
+  };
+
+
diff --git a/routes/foods.js b/routes/foods.js
new file mode 100644
index 0000000000000000000000000000000000000000..9d2098d57501f196b7e91dfdcf27896d29443d74
--- /dev/null
+++ b/routes/foods.js
@@ -0,0 +1,48 @@
+
+var authMW = require('../middleware/common/auth');
+var renderMW = require('../middleware/common/render');
+
+
+var getFoodListMW = require('../middleware/food/getFoodList');
+var saveFoodMW = require('../middleware/food/saveFood');
+var getFoodMW = require('../middleware/food/getFood');
+var deleteFoodMW = require('../middleware/food/deleteFood');
+
+module.exports = function (app) {
+    var objectRepository = {
+      
+    };
+  
+
+    app.get('/foods',
+        authMW(objectRepository),
+        getFoodListMW(objectRepository),
+        renderMW(objectRepository,'foodtable')
+    );
+   
+    app.use('/foods/new',
+        authMW(objectRepository),
+        saveFoodMW(objectRepository),
+        renderMW(objectRepository,'foodeditcreate')
+    );
+
+    app.use('/foods/edit/:foodid',
+        authMW(objectRepository),
+        getFoodMW(objectRepository),
+        saveFoodMW(objectRepository),
+        renderMW(objectRepository,'foodeditcreate')
+    );
+
+    app.use('/foods/del/:foodid',
+        authMW(objectRepository),
+        getFoodMW(objectRepository),
+        deleteFoodMW(objectRepository),
+        function (req,res,next){
+            return res.redirect('/foods');
+        }
+    );
+   
+  };
+
+
+  
diff --git a/routes/storage.js b/routes/storage.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7c1370086c5a59b04ec9a20eef5a9281d515446
--- /dev/null
+++ b/routes/storage.js
@@ -0,0 +1,34 @@
+var renderMW = require('../middleware/common/render');
+var authMW = require('../middleware/common/auth');
+
+var getBunkerMW = require('../middleware/bunker/getBunker');
+
+var getFoodListMW = require('../middleware/food/getFoodList');
+
+var addStorageItemMW = require('../middleware/storage/addStorageItem');
+var deletStorageItemMW = require('../middleware/storage/deleteStorageItem');
+
+
+module.exports = function (app) {
+    var objectRepository = {
+
+    };
+
+    app.use('/bunkers/storage/add/:bunkerid',
+        authMW(objectRepository),
+        getBunkerMW(objectRepository),
+        getFoodListMW(objectRepository),
+        addStorageItemMW(objectRepository),
+        renderMW(objectRepository, 'storageadd')
+    );
+
+    app.get('/bunkers/storage/del/:bunkerid/:itemid',
+        authMW(objectRepository),
+        getBunkerMW(objectRepository),
+        deletStorageItemMW(objectRepository),
+        function (req, res, next) {
+            return res.redirect('/bunkers/info/' + req.param('bunkerid'));
+        }
+    );
+
+};
\ No newline at end of file
diff --git a/static/bunkereditcreate.html b/static/bunkereditcreate.html
deleted file mode 100644
index deae3bf7f7e3b423d7de32dde1807184d05e00c7..0000000000000000000000000000000000000000
--- a/static/bunkereditcreate.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
-    <title>Bunkerek</title>
-</head>
-<body>
-<!-- Navbar -->
-<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
-    <a class="navbar-brand" href="/">BunkerMGR</a>
-    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
-        <span class="navbar-toggler-icon"></span>
-    </button>
-
-    <div class="collapse navbar-collapse" id="navbarSupportedContent">
-        <ul class="navbar-nav mr-auto">
-            <li class="nav-item">
-                <a class="nav-link" href="/bunkers.html">Bunkerek</a>
-            </li>
-            <li class="nav-item">
-                <a class="nav-link" href="/foodtable.html">Élelmiszerek</a>
-            </li>
-        </ul>
-    </div>
-</nav>
-
-<!-- Content -->
-<div class="container">
-    <div class="row">
-        <div class="col-12">
-            <h2>Bunker létrehozása / szerkeztése</h2>
-            <form>
-                <div class="form-group">
-                    <label for="Name">Bunker név</label>
-                    <input type="text" class="form-control" id="Name">
-                </div>
-                <div class="form-group">
-                    <label for="Adress">Cím</label>
-                    <input type="text" class="form-control" id="Adress">
-                </div>
-                <div class="form-group">
-                    <label for="Size">Férőhely</label>
-                    <input type="number" class="form-control" id="Size">
-                </div>
-                <a href="/bunkers.html" type="submit" class="btn btn-primary">Mentés</a>
-                <a href="/bunkers.html" type="submit" class="btn btn-secondary">Mégsem</a>
-            </form>
-        </div>
-    </div>
-</div>
-
-
-
-
-
-<!-- Bootstrap scripts -->
-<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
-<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
-<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/static/bunkers.html b/static/bunkers.html
deleted file mode 100644
index 74f2feaf44dbf12dd8aca446bc78541f9dcf9945..0000000000000000000000000000000000000000
--- a/static/bunkers.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
-    <title>Bunkerek</title>
-</head>
-<body>
-<!-- Navbar -->
-<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
-    <a class="navbar-brand" href="/">BunkerMGR</a>
-    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
-        <span class="navbar-toggler-icon"></span>
-    </button>
-
-    <div class="collapse navbar-collapse" id="navbarSupportedContent">
-        <ul class="navbar-nav mr-auto">
-            <li class="nav-item active">
-                <a class="nav-link" href="/bunkers.html">Bunkerek</a>
-            </li>
-            <li class="nav-item">
-                <a class="nav-link" href="/foodtable.html">Élelmiszerek</a>
-            </li>
-        </ul>
-    </div>
-</nav>
-
-<!-- Content -->
-<div class="container">
-    <div class="row">
-        <div class="col-12">
-            <h2>Bunkerek</h2>
-            <table class="table table-striped">
-                <thead class="thead-dark">
-                <tr>
-                    <th scope="col">Név</th>
-                    <th scope="col">Készlet</th>
-                    <th scope="col">Figyelmeztetés</th>
-                    <th scope="col">Műveletek</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr>
-                    <td>Bunker0</td>
-                    <td>365 nap</td>
-                    <td>-</td>
-                    <td>
-                        <a href="/bunkerinfo.html" type="button" class="btn btn-secondary btn-sm"><i class="fas fa-info-circle"></i></a>
-                        <a href="/bunkereditcreate.html" type="button" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i></a>
-                        <a href="#" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
-                    </td>
-                </tr>
-                <tr>
-                    <td>Bunker1</td>
-                    <td>256 nap</td>
-                    <td class="text-warning">Fél éven belűl romlandó étel <i class="fas fa-exclamation-triangle"></i></td>
-                    <td>
-                        <a href="/bunkerinfo.html" type="button" class="btn btn-secondary btn-sm"><i class="fas fa-info-circle"></i></a>
-                        <a href="/bunkereditcreate.html" type="button" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i></a>
-                        <a href="#" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
-            <a href="bunkereditcreate.html" type="button" class="btn btn-primary btn-lg btn-block">Új bunker</a>
-        </div>
-    </div>
-</div>
-
-
-
-
-
-<!-- Bootstrap scripts -->
-<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
-<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
-<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/static/foodeditcreate.html b/static/foodeditcreate.html
deleted file mode 100644
index 256d1dd23367fa87820aa5f4fe2d003e853c10b9..0000000000000000000000000000000000000000
--- a/static/foodeditcreate.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
-    <title>Ételek</title>
-</head>
-<body>
-<!-- Navbar -->
-<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
-    <a class="navbar-brand" href="/">BunkerMGR</a>
-    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
-        <span class="navbar-toggler-icon"></span>
-    </button>
-
-    <div class="collapse navbar-collapse" id="navbarSupportedContent">
-        <ul class="navbar-nav mr-auto">
-            <li class="nav-item">
-                <a class="nav-link" href="/bunkers.html">Bunkerek</a>
-            </li>
-            <li class="nav-item">
-                <a class="nav-link" href="/foodtable.html">Élelmiszerek</a>
-            </li>
-        </ul>
-    </div>
-</nav>
-
-<!-- Content -->
-<div class="container">
-    <div class="row">
-        <div class="col-12">
-            <h2>Étel létrehozása / szerkeztése</h2>
-            <form>
-                <div class="form-group">
-                    <label for="Name">Név</label>
-                    <input type="text" class="form-control" id="Name">
-                </div>
-                <div class="form-group">
-                    <label for="Nutrition">Tápérték (Kcal-ban)</label>
-                    <input type="number" class="form-control" id="Nutrition">
-                </div>
-                <div class="form-group">
-                    <label for="Longevity">Tartósság (napokban)</label>
-                    <input type="number" class="form-control" id="Longevity">
-                </div>
-                <a href="/foodtable.html" type="submit" class="btn btn-primary">Mentés</a>
-                <a href="/foodtable.html" type="submit" class="btn btn-secondary">Mégsem</a>
-            </form>
-        </div>
-    </div>
-</div>
-
-
-
-
-
-<!-- Bootstrap scripts -->
-<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
-<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
-<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/static/foodtable.html b/static/foodtable.html
deleted file mode 100644
index f66fa039c41395722389e6bc4046c86d2a22e15e..0000000000000000000000000000000000000000
--- a/static/foodtable.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
-    <title>Ételek</title>
-</head>
-<body>
-<!-- Navbar -->
-<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
-    <a class="navbar-brand" href="/">BunkerMGR</a>
-    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
-        <span class="navbar-toggler-icon"></span>
-    </button>
-
-    <div class="collapse navbar-collapse" id="navbarSupportedContent">
-        <ul class="navbar-nav mr-auto">
-            <li class="nav-item">
-                <a class="nav-link" href="/bunkers.html">Bunkerek</a>
-            </li>
-            <li class="nav-item  active" >
-                <a class="nav-link" href="/foodtable.html">Élelmiszerek</a>
-            </li>
-        </ul>
-    </div>
-</nav>
-
-<!-- Content -->
-<div class="container">
-    <div class="row">
-        <div class="col-12">
-            <h2>Élelmiszerek</h2>
-            <table class="table table-striped">
-                <thead class="thead-dark">
-                <tr>
-                    <th scope="col">Név</th>
-                    <th scope="col">Tápérték</th>
-                    <th scope="col">Tartósság</th>
-                    <th scope="col">Műveletek</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr>
-                    <td>Szárított marha</td>
-                    <td>250 Kcal</td>
-                    <td>200 nap</td>
-                    <td>
-                        <a href="/foodeditcreate.html" type="button" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i></a>
-                        <a href="#" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
-                    </td>
-                </tr>
-                <tr>
-                    <td>Konzerv bab</td>
-                    <td>500 Kcal</td>
-                    <td>720 nap</td>
-                    <td>
-                        <a href="/foodeditcreate.html" type="button" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i></a>
-                        <a href="#" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
-            <a href="foodeditcreate.html" type="button" class="btn btn-primary btn-lg btn-block">Új étel</a>
-        </div>
-    </div>
-</div>
-
-
-
-
-
-<!-- Bootstrap scripts -->
-<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
-<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
-<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/static/index.html b/static/index.html
deleted file mode 100644
index 108be7d38c1eb5a4a49f1b3962b0cf2a6ca6d826..0000000000000000000000000000000000000000
--- a/static/index.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
-    <title>Login</title>
-</head>
-<body>
-<!-- Content -->
-<div class="container">
-    <div class="row">
-        <div class="col-12">
-            <h2>Login</h2>
-            <form>
-                <div class="form-group">
-                    <label for="Username">Felhasználónév</label>
-                    <input type="text" class="form-control" id="Username">
-                </div>
-                <div class="form-group">
-                    <label for="Password">Jelszó</label>
-                    <input type="password" class="form-control" id="Password">
-                </div>
-                <a href="/bunkers.html" type="submit" class="btn btn-primary">Bejelentkezés</a>
-            </form>
-        </div>
-    </div>
-</div>
-
-
-
-
-
-<!-- Bootstrap scripts -->
-<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
-<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
-<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/views/bunkereditcreate.ejs b/views/bunkereditcreate.ejs
new file mode 100644
index 0000000000000000000000000000000000000000..39254a71a5f5c91db3a21ce210e918c6757de5f1
--- /dev/null
+++ b/views/bunkereditcreate.ejs
@@ -0,0 +1,51 @@
+<%- include('header') %>
+
+<!-- Navbar -->
+<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
+    <a class="navbar-brand" href="/">BunkerMGR</a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+        <span class="navbar-toggler-icon"></span>
+    </button>
+
+    <div class="collapse navbar-collapse" id="navbarSupportedContent">
+        <ul class="navbar-nav mr-auto">
+            <li class="nav-item">
+                <a class="nav-link" href="/bunkers">Bunkerek</a>
+            </li>
+            <li class="nav-item">
+                <a class="nav-link" href="/foods">Élelmiszerek</a>
+            </li>
+        </ul>
+    </div>
+</nav>
+
+<!-- Content -->
+<div class="container">
+    <div class="row">
+        <div class="col-12">
+            <h2>Bunker létrehozása / szerkeztése</h2>
+            <form>
+                <div class="form-group">
+                    <label for="Name">Bunker név</label>
+                    <input type="text" class="form-control" id="Name">
+                </div>
+                <div class="form-group">
+                    <label for="Adress">Cím</label>
+                    <input type="text" class="form-control" id="Adress">
+                </div>
+                <div class="form-group">
+                    <label for="Size">Férőhely</label>
+                    <input type="number" class="form-control" id="Size">
+                </div>
+                <a href="/bunkers" type="submit" class="btn btn-primary">Mentés</a>
+                <a href="/bunkers" type="submit" class="btn btn-secondary">Mégsem</a>
+            </form>
+        </div>
+    </div>
+</div>
+
+
+
+
+
+<%- include('footer') %>
\ No newline at end of file
diff --git a/static/bunkerinfo.html b/views/bunkerinfo.ejs
similarity index 55%
rename from static/bunkerinfo.html
rename to views/bunkerinfo.ejs
index dd98a5a6a74d03b7bf5c1ea5db8d505b1f2370f5..6a04809810de8441f2c4b9c669338a27598284b0 100644
--- a/static/bunkerinfo.html
+++ b/views/bunkerinfo.ejs
@@ -1,13 +1,5 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
-    <title>Bunkerinfo</title>
-</head>
-<body>
+<%- include('header') %>
+
 <!-- Navbar -->
 <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
     <a class="navbar-brand" href="/">BunkerMGR</a>
@@ -18,10 +10,10 @@
     <div class="collapse navbar-collapse" id="navbarSupportedContent">
         <ul class="navbar-nav mr-auto">
             <li class="nav-item">
-                <a class="nav-link" href="/bunkers.html">Bunkerek</a>
+                <a class="nav-link" href="/bunkers">Bunkerek</a>
             </li>
             <li class="nav-item">
-                <a class="nav-link" href="/foodtable.html">Élelmiszerek</a>
+                <a class="nav-link" href="/foods">Élelmiszerek</a>
             </li>
         </ul>
     </div>
@@ -58,7 +50,7 @@
                     <td>100 adag</td>
                     <td class="text-danger">2017.03.11</td>
                     <td>
-                        <a href="#" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
+                        <a href="/bunkers/storage/del/bunkerid/itemid" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
                     </td>
                 </tr>
                 <tr>
@@ -66,12 +58,12 @@
                     <td>250 adag</td>
                     <td class="text-success">2020.03.02</td>
                     <td>
-                        <a href="#" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
+                        <a href="/bunkers/storage/del/bunkerid/itemid" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
                     </td>
                 </tr>
                 </tbody>
             </table>
-            <a href="storageadd.html" type="button" class="btn btn-primary btn-lg btn-block">Raktárelem hozzáadása</a>
+            <a href="/bunkers/storage/add/bunkerid/" type="button" class="btn btn-primary btn-lg btn-block">Raktárelem hozzáadása</a>
         </div>
     </div>
 </div>
@@ -80,9 +72,4 @@
 
 
 
-<!-- Bootstrap scripts -->
-<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
-<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
-<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
-</body>
-</html>
\ No newline at end of file
+<%- include('footer') %>
\ No newline at end of file
diff --git a/views/bunkers.ejs b/views/bunkers.ejs
new file mode 100644
index 0000000000000000000000000000000000000000..2befbe369ec03f3524437f4a88fae5a0b23e18f4
--- /dev/null
+++ b/views/bunkers.ejs
@@ -0,0 +1,69 @@
+<%- include('header') %>
+
+<!-- Navbar -->
+<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
+    <a class="navbar-brand" href="/">BunkerMGR</a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+        <span class="navbar-toggler-icon"></span>
+    </button>
+
+    <div class="collapse navbar-collapse" id="navbarSupportedContent">
+        <ul class="navbar-nav mr-auto">
+            <li class="nav-item active">
+                <a class="nav-link" href="/bunkers">Bunkerek</a>
+            </li>
+            <li class="nav-item">
+                <a class="nav-link" href="/foods">Élelmiszerek</a>
+            </li>
+        </ul>
+    </div>
+</nav>
+
+<!-- Content -->
+<div class="container">
+    <div class="row">
+        <div class="col-12">
+            <h2>Bunkerek</h2>
+            <table class="table table-striped">
+                <thead class="thead-dark">
+                <tr>
+                    <th scope="col">Név</th>
+                    <th scope="col">Készlet</th>
+                    <th scope="col">Figyelmeztetés</th>
+                    <th scope="col">Műveletek</th>
+                </tr>
+                </thead>
+                <tbody>
+                <tr>
+                    <td>Bunker0</td>
+                    <td>365 nap</td>
+                    <td>-</td>
+                    <td>
+                        <a href="/bunkers/info/bunkerid" type="button" class="btn btn-secondary btn-sm"><i class="fas fa-info-circle"></i></a>
+                        <a href="/bunkers/edit/bunkerid" type="button" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i></a>
+                        <a href="/bunkers/del/bunkerid" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
+                    </td>
+                </tr>
+                <tr>
+                    <td>Bunker1</td>
+                    <td>256 nap</td>
+                    <td class="text-warning">Fél éven belűl romlandó étel <i class="fas fa-exclamation-triangle"></i></td>
+                    <td>
+                        <a href="/bunkers/info/bunkerid" type="button" class="btn btn-secondary btn-sm"><i class="fas fa-info-circle"></i></a>
+                        <a href="/bunkers/edit/bunkerid" type="button" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i></a>
+                        <a href="/bunkers/del/bunkerid" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
+                    </td>
+                </tr>
+                </tbody>
+            </table>
+            <a href="/bunkers/new" type="button" class="btn btn-primary btn-lg btn-block">Új bunker</a>
+        </div>
+    </div>
+</div>
+
+
+
+
+
+
+<%- include('footer') %>
\ No newline at end of file
diff --git a/views/foodeditcreate.ejs b/views/foodeditcreate.ejs
new file mode 100644
index 0000000000000000000000000000000000000000..fb51817e0f4260a467259a8af47396dee4da093d
--- /dev/null
+++ b/views/foodeditcreate.ejs
@@ -0,0 +1,49 @@
+<%- include('header') %>
+
+<!-- Navbar -->
+<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
+    <a class="navbar-brand" href="/">BunkerMGR</a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+        <span class="navbar-toggler-icon"></span>
+    </button>
+
+    <div class="collapse navbar-collapse" id="navbarSupportedContent">
+        <ul class="navbar-nav mr-auto">
+            <li class="nav-item">
+                <a class="nav-link" href="/bunkers">Bunkerek</a>
+            </li>
+            <li class="nav-item">
+                <a class="nav-link" href="/foods">Élelmiszerek</a>
+            </li>
+        </ul>
+    </div>
+</nav>
+
+<!-- Content -->
+<div class="container">
+    <div class="row">
+        <div class="col-12">
+            <h2>Étel létrehozása / szerkeztése</h2>
+            <form>
+                <div class="form-group">
+                    <label for="Name">Név</label>
+                    <input type="text" class="form-control" id="Name">
+                </div>
+                <div class="form-group">
+                    <label for="Nutrition">Tápérték (Kcal-ban)</label>
+                    <input type="number" class="form-control" id="Nutrition">
+                </div>
+                <div class="form-group">
+                    <label for="Longevity">Tartósság (napokban)</label>
+                    <input type="number" class="form-control" id="Longevity">
+                </div>
+                <a href="/foods" type="submit" class="btn btn-primary">Mentés</a>
+                <a href="/foods" type="submit" class="btn btn-secondary">Mégsem</a>
+            </form>
+        </div>
+    </div>
+</div>
+
+
+
+<%- include('footer') %>
\ No newline at end of file
diff --git a/views/foodtable.ejs b/views/foodtable.ejs
new file mode 100644
index 0000000000000000000000000000000000000000..d6dc13d28357aa9cb96c9ed88a3ad8c6abbf5ad0
--- /dev/null
+++ b/views/foodtable.ejs
@@ -0,0 +1,64 @@
+<%- include('header') %>
+
+<!-- Navbar -->
+<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
+    <a class="navbar-brand" href="/">BunkerMGR</a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+        <span class="navbar-toggler-icon"></span>
+    </button>
+
+    <div class="collapse navbar-collapse" id="navbarSupportedContent">
+        <ul class="navbar-nav mr-auto">
+            <li class="nav-item">
+                <a class="nav-link" href="/bunkers">Bunkerek</a>
+            </li>
+            <li class="nav-item  active" >
+                <a class="nav-link" href="/foods">Élelmiszerek</a>
+            </li>
+        </ul>
+    </div>
+</nav>
+
+<!-- Content -->
+<div class="container">
+    <div class="row">
+        <div class="col-12">
+            <h2>Élelmiszerek</h2>
+            <table class="table table-striped">
+                <thead class="thead-dark">
+                <tr>
+                    <th scope="col">Név</th>
+                    <th scope="col">Tápérték</th>
+                    <th scope="col">Tartósság</th>
+                    <th scope="col">Műveletek</th>
+                </tr>
+                </thead>
+                <tbody>
+                <tr>
+                    <td>Szárított marha</td>
+                    <td>250 Kcal</td>
+                    <td>200 nap</td>
+                    <td>
+                        <a href="/foods/edit/foodid" type="button" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i></a>
+                        <a href="/foods/del/foodid" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
+                    </td>
+                </tr>
+                <tr>
+                    <td>Konzerv bab</td>
+                    <td>500 Kcal</td>
+                    <td>720 nap</td>
+                    <td>
+                        <a href="/foods/edit/foodid" type="button" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i></a>
+                        <a href="/foods/del/foodid" type="button" class="btn btn-danger btn-sm"><i class="fas fa-trash"></i></a>
+                    </td>
+                </tr>
+                </tbody>
+            </table>
+            <a href="/foods/new" type="button" class="btn btn-primary btn-lg btn-block">Új étel</a>
+        </div>
+    </div>
+</div>
+
+
+
+<%- include('footer') %>
\ No newline at end of file
diff --git a/views/footer.ejs b/views/footer.ejs
new file mode 100644
index 0000000000000000000000000000000000000000..66a34f713875773b5db8989b407444e489ee7d0a
--- /dev/null
+++ b/views/footer.ejs
@@ -0,0 +1,8 @@
+
+
+<!-- Bootstrap scripts -->
+<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
+<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
+<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/views/header.ejs b/views/header.ejs
new file mode 100644
index 0000000000000000000000000000000000000000..ed9a769159448591d88e46625189c14539fa5bbf
--- /dev/null
+++ b/views/header.ejs
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
+    <title>BunkerMGR</title>
+</head>
+<body>
\ No newline at end of file
diff --git a/views/index.ejs b/views/index.ejs
new file mode 100644
index 0000000000000000000000000000000000000000..1089d1495740daffb9faae38ce1f8c97383763b3
--- /dev/null
+++ b/views/index.ejs
@@ -0,0 +1,24 @@
+<%- include('header') %>
+
+<!-- Content -->
+<div class="container">
+    <div class="row">
+        <div class="col-12">
+            <h2>Login</h2>
+            <form method="POST"  action="/login">
+                <div class="form-group">
+                    <label for="Username">Felhasználónév</label>
+                    <input type="text" class="form-control" id="Username">
+                </div>
+                <div class="form-group">
+                    <label for="Password">Jelszó</label>
+                    <input type="password" class="form-control" id="Password">
+                </div>
+                <input type="submit" class="btn btn-primary" value="Login"/>
+            </form>
+        </div>
+    </div>
+</div>
+
+
+<%- include('footer') %>
\ No newline at end of file
diff --git a/static/storageadd.html b/views/storageadd.ejs
similarity index 50%
rename from static/storageadd.html
rename to views/storageadd.ejs
index 686c3190e2e2879a41dbb2778c787047f7b695c3..ffcbfa183216258a54b57405fdb2aa006fabe586 100644
--- a/static/storageadd.html
+++ b/views/storageadd.ejs
@@ -1,13 +1,5 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
-    <title>Raktár</title>
-</head>
-<body>
+<%- include('header') %>
+
 <!-- Navbar -->
 <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
     <a class="navbar-brand" href="/">BunkerMGR</a>
@@ -18,10 +10,10 @@
     <div class="collapse navbar-collapse" id="navbarSupportedContent">
         <ul class="navbar-nav mr-auto">
             <li class="nav-item">
-                <a class="nav-link" href="/bunkers.html">Bunkerek</a>
+                <a class="nav-link" href="/bunkers">Bunkerek</a>
             </li>
             <li class="nav-item">
-                <a class="nav-link" href="/foodtable.html">Élelmiszerek</a>
+                <a class="nav-link" href="/foods">Élelmiszerek</a>
             </li>
         </ul>
     </div>
@@ -48,8 +40,8 @@
                     <label for="Count">Darabszám</label>
                     <input type="number" class="form-control" id="Count">
                 </div>
-                <a href="/bunkerinfo.html" type="submit" class="btn btn-primary">Mentés</a>
-                <a href="/bunkerinfo.html" type="submit" class="btn btn-secondary">Mégsem</a>
+                <a href="/bunkers/info/bunkerid" type="submit" class="btn btn-primary">Mentés</a>
+                <a href="/bunkers/info/bunkerid" type="submit" class="btn btn-secondary">Mégsem</a>
             </form>
         </div>
     </div>
@@ -58,10 +50,4 @@
 
 
 
-
-<!-- Bootstrap scripts -->
-<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
-<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
-<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
-</body>
-</html>
\ No newline at end of file
+<%- include('footer') %>
\ No newline at end of file