From 89d76ffca397351c14b8791e79f681f5a20a4d87 Mon Sep 17 00:00:00 2001 From: florianspengler Date: Sun, 13 Oct 2024 18:14:49 +0200 Subject: [PATCH 01/37] new folder structure --- package-lock.json | 898 ++++++++++++++++++ package.json | 20 + public/check-status.html | 12 + scripts/modules/db-connect.js | 15 + scripts/routes/other/getstatus.js | 8 + scripts/script-main.js | 0 server.js | 31 + sql_scripts/createDB.sql | 26 - sql_scripts/rollbackDB.sql | 17 - .../database_calls/getDatabaseTable.php | 38 - .../example/database_calls/startAjax.js | 17 - src/frontend/example/01_counter/app.js | 29 - src/frontend/example/01_counter/index.html | 27 - src/frontend/example/01_counter/styles.css | 207 ---- src/frontend/example/05_sidebar/app.js | 16 - src/frontend/example/05_sidebar/index.html | 69 -- src/frontend/example/05_sidebar/logo.svg | 17 - src/frontend/example/05_sidebar/styles.css | 289 ------ .../example/grid_layout/grid_layout.css | 37 - src/frontend/example/grid_layout/index.html | 18 - src/frontend/example/toggle_dark_light/app.js | 4 - .../example/toggle_dark_light/index.html | 17 - .../example/toggle_dark_light/styles.css | 11 - static/styles-main.css | 26 + 24 files changed, 1010 insertions(+), 839 deletions(-) create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/check-status.html create mode 100644 scripts/modules/db-connect.js create mode 100644 scripts/routes/other/getstatus.js create mode 100644 scripts/script-main.js create mode 100644 server.js delete mode 100644 sql_scripts/createDB.sql delete mode 100644 sql_scripts/rollbackDB.sql delete mode 100644 src/backend/example/database_calls/getDatabaseTable.php delete mode 100644 src/backend/example/database_calls/startAjax.js delete mode 100644 src/frontend/example/01_counter/app.js delete mode 100644 src/frontend/example/01_counter/index.html delete mode 100644 src/frontend/example/01_counter/styles.css delete mode 100644 src/frontend/example/05_sidebar/app.js delete mode 100644 src/frontend/example/05_sidebar/index.html delete mode 100644 src/frontend/example/05_sidebar/logo.svg delete mode 100644 src/frontend/example/05_sidebar/styles.css delete mode 100644 src/frontend/example/grid_layout/grid_layout.css delete mode 100644 src/frontend/example/grid_layout/index.html delete mode 100644 src/frontend/example/toggle_dark_light/app.js delete mode 100644 src/frontend/example/toggle_dark_light/index.html delete mode 100644 src/frontend/example/toggle_dark_light/styles.css create mode 100644 static/styles-main.css diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..6a8b103 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,898 @@ +{ + "name": "sniper", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sniper", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "dotenv": "^16.4.5", + "express": "^4.21.1", + "express-session": "^1.18.1", + "mysql": "^2.18.1", + "path": "^0.12.7" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "engines": { + "node": "*" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.10", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-session": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.1.tgz", + "integrity": "sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.7", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express-session/node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==" + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/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==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..27b6f65 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "sniper", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "Webshop Autohändler", + "dependencies": { + "dotenv": "^16.4.5", + "express": "^4.21.1", + "express-session": "^1.18.1", + "mysql": "^2.18.1", + "path": "^0.12.7" + } +} diff --git a/public/check-status.html b/public/check-status.html new file mode 100644 index 0000000..bf71fb7 --- /dev/null +++ b/public/check-status.html @@ -0,0 +1,12 @@ + + + + + + Document + + + +

Hello there...

+ + \ No newline at end of file diff --git a/scripts/modules/db-connect.js b/scripts/modules/db-connect.js new file mode 100644 index 0000000..e860644 --- /dev/null +++ b/scripts/modules/db-connect.js @@ -0,0 +1,15 @@ +const mysql = require('mysql2'); +require('dotenv').config(); + +const connection = mysql.createConnection({ + host : process.env.DB_HOST, + user : process.env.DB_USER, + password : process.env.DB_PASSWORD, + database : process.env.DB_DATABASE +}); + +connection.connect(function(err) { + if (err) throw err; +}); + +module.exports = connection; \ No newline at end of file diff --git a/scripts/routes/other/getstatus.js b/scripts/routes/other/getstatus.js new file mode 100644 index 0000000..7570b8c --- /dev/null +++ b/scripts/routes/other/getstatus.js @@ -0,0 +1,8 @@ +const path = require('path'); +const router = require('express').Router(); + +router.get('/status', (req, res) => { + res.sendFile(path.join(__dirname, '../../../public/check-status.html')); +}); + +module.exports = router; \ No newline at end of file diff --git a/scripts/script-main.js b/scripts/script-main.js new file mode 100644 index 0000000..e69de29 diff --git a/server.js b/server.js new file mode 100644 index 0000000..b744806 --- /dev/null +++ b/server.js @@ -0,0 +1,31 @@ +const express = require('express'); +const session = require('express-session'); +const router = require('express').Router(); +const path = require('path'); + +require('dotenv').config(); + +const app = express(); + +app.use(session({ + secret: 'secret', + resave: true, + saveUninitialized: true +})); + +app.use(express.json()); +app.use(express.urlencoded({ extended: true })); +app.use(express.static(path.join(__dirname, 'static'))); +app.use(express.static(path.join(__dirname, '/scripts'))); +app.use(express.static(path.join(__dirname, '/scripts/modules'))); + +const get_status = require('./scripts/routes/other/getstatus.js'); + +app.use(get_status); + +app.listen(process.env.APP_PORT, () => { + console.log("\x1b[32m"); + console.log(`Server is running on http://localhost:${process.env.APP_PORT}`); + console.log("\x1b[0m"); + console.log('Access it now...'); +}); \ No newline at end of file diff --git a/sql_scripts/createDB.sql b/sql_scripts/createDB.sql deleted file mode 100644 index c5b57e8..0000000 --- a/sql_scripts/createDB.sql +++ /dev/null @@ -1,26 +0,0 @@ -CREATE - DATABASE autohaendler; -\c -autohaendler - -CREATE TYPE color; -CREATE TYPE make; -CREATE TYPE model; -CREATE TYPE engine; -CREATE TYPE price; -CREATE TYPE doors; - -CREATE - EXTENSION IF NOT EXISTS "uuid-ossp"; - -CREATE TABLE autohaendler_stock -( - color TEXT NOT NULL, - make TEXT NOT NULL, - model TEXT NOT NULL, - engine TEXT NOT NULL, - price TEXT NOT NULL, - doors TEXT NOT NULL, -); - -INSERT INTO autohaendler_stock (color, make, model, engine, price, doors); diff --git a/sql_scripts/rollbackDB.sql b/sql_scripts/rollbackDB.sql deleted file mode 100644 index 07aa47c..0000000 --- a/sql_scripts/rollbackDB.sql +++ /dev/null @@ -1,17 +0,0 @@ -\c -autohaendler - -DROP TABLE autohaendler; - -DROP TYPE IF EXISTS color; -DROP TYPE IF EXISTS make; -DROP TYPE IF EXISTS model; -DROP TYPE IF EXISTS engine; -DROP TYPE IF EXISTS price; -DROP TYPE IF EXISTS doors; - -\c -postgres - -DROP -DATABASE autohaendler; diff --git a/src/backend/example/database_calls/getDatabaseTable.php b/src/backend/example/database_calls/getDatabaseTable.php deleted file mode 100644 index e8323de..0000000 --- a/src/backend/example/database_calls/getDatabaseTable.php +++ /dev/null @@ -1,38 +0,0 @@ -set_charset("utf8mb4"); -// close connection on error -if ($conn->connect_error) { - die("Connection failed: " . $conn->connect_error); -} - -// prepare SQL statement and execute on database -$sql = "SELECT * FROM table"; -// get data from database -$result = $conn->query($sql); -$conn->close(); - -// check if result is empty & has more than "0" rows -if (!empty($result) && (int)$result->num_rows > 0) { - while ($row = $result->fetch_assoc()) { - $sqlArray[] = $row; - } - echo json_encode($sqlArray); -} else { - echo "0 results"; -} -exit(); diff --git a/src/backend/example/database_calls/startAjax.js b/src/backend/example/database_calls/startAjax.js deleted file mode 100644 index 6d68ea2..0000000 --- a/src/backend/example/database_calls/startAjax.js +++ /dev/null @@ -1,17 +0,0 @@ -$(document).ready(function () { - - // ajax function to call PHP script on webserver - $.ajax({ - type: "POST", // use what "type" is necessary, POST is most common - url: "getDatabaseTable.php", // path to .php file that will be executed - dataType: "json", // return type of the PHP script - success: function (data) { - console.log("successfully called PHP file!") - console.log(data) - // implement logic to write json into HTML here - }, - error: function () { - console.log("failed to call PHP file!") - } - }); -}) \ No newline at end of file diff --git a/src/frontend/example/01_counter/app.js b/src/frontend/example/01_counter/app.js deleted file mode 100644 index 44f3afb..0000000 --- a/src/frontend/example/01_counter/app.js +++ /dev/null @@ -1,29 +0,0 @@ -// set initial count -let count = 0; - -// select value and buttons -const value = document.querySelector("#value"); -const buttons = document.querySelectorAll(".btn"); - -buttons.forEach(function (btn) { - btn.addEventListener("click", function (e) { - const styles = e.currentTarget.classList; - if (styles.contains("decrease")) { - count--; - } else if (styles.contains("increase")) { - count++; - } else if (styles.contains("reset")) { - count = 0; - } - if (count > 0) { - value.style.color = "green"; - } - if (count < 0) { - value.style.color = "red"; - } - if (count === 0) { - value.style.color = "#222" - } - value.textContent = count; - }) -}); diff --git a/src/frontend/example/01_counter/index.html b/src/frontend/example/01_counter/index.html deleted file mode 100644 index b1e6e92..0000000 --- a/src/frontend/example/01_counter/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Counter - - - - - -
-

- counter -

- 0 -
- - - -
-
- - - - \ No newline at end of file diff --git a/src/frontend/example/01_counter/styles.css b/src/frontend/example/01_counter/styles.css deleted file mode 100644 index cf1668c..0000000 --- a/src/frontend/example/01_counter/styles.css +++ /dev/null @@ -1,207 +0,0 @@ -/* -=============== -Fonts -=============== -*/ -@import url("https://fonts.googleapis.com/css?family=Open+Sans|Roboto:400,700&display=swap"); - -/* -=============== -Variables -=============== -*/ - -:root { - /* dark shades of primary color*/ - --clr-primary-1: hsl(205, 86%, 17%); - --clr-primary-2: hsl(205, 77%, 27%); - --clr-primary-3: hsl(205, 72%, 37%); - --clr-primary-4: hsl(205, 63%, 48%); - /* primary/main color */ - --clr-primary-5: hsl(205, 78%, 60%); - /* lighter shades of primary color */ - --clr-primary-6: hsl(205, 89%, 70%); - --clr-primary-7: hsl(205, 90%, 76%); - --clr-primary-8: hsl(205, 86%, 81%); - --clr-primary-9: hsl(205, 90%, 88%); - --clr-primary-10: hsl(205, 100%, 96%); - /* darkest grey - used for headings */ - --clr-grey-1: hsl(209, 61%, 16%); - --clr-grey-2: hsl(211, 39%, 23%); - --clr-grey-3: hsl(209, 34%, 30%); - --clr-grey-4: hsl(209, 28%, 39%); - /* grey used for paragraphs */ - --clr-grey-5: hsl(210, 22%, 49%); - --clr-grey-6: hsl(209, 23%, 60%); - --clr-grey-7: hsl(211, 27%, 70%); - --clr-grey-8: hsl(210, 31%, 80%); - --clr-grey-9: hsl(212, 33%, 89%); - --clr-grey-10: hsl(210, 36%, 96%); - --clr-white: #fff; - --clr-red-dark: hsl(360, 67%, 44%); - --clr-red-light: hsl(360, 71%, 66%); - --clr-green-dark: hsl(125, 67%, 44%); - --clr-green-light: hsl(125, 71%, 66%); - --clr-black: #222; - --ff-primary: "Roboto", sans-serif; - --ff-secondary: "Open Sans", sans-serif; - --transition: all 0.3s linear; - --spacing: 0.1rem; - --radius: 0.25rem; - --light-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); - --dark-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); - --max-width: 1170px; - --fixed-width: 620px; -} - -/* -=============== -Global Styles -=============== -*/ - -*, -::after, -::before { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: var(--ff-secondary); - background: var(--clr-grey-10); - color: var(--clr-grey-1); - line-height: 1.5; - font-size: 0.875rem; -} - -ul { - list-style-type: none; -} - -a { - text-decoration: none; -} - -h1, -h2, -h3, -h4 { - letter-spacing: var(--spacing); - text-transform: capitalize; - line-height: 1.25; - margin-bottom: 0.75rem; - font-family: var(--ff-primary); -} - -h1 { - font-size: 3rem; -} - -h2 { - font-size: 2rem; -} - -h3 { - font-size: 1.25rem; -} - -h4 { - font-size: 0.875rem; -} - -p { - margin-bottom: 1.25rem; - color: var(--clr-grey-5); -} - -@media screen and (min-width: 800px) { - h1 { - font-size: 4rem; - } - - h2 { - font-size: 2.5rem; - } - - h3 { - font-size: 1.75rem; - } - - h4 { - font-size: 1rem; - } - - body { - font-size: 1rem; - } - - h1, - h2, - h3, - h4 { - line-height: 1; - } -} - -/* global classes */ - -/* section */ -.section { - padding: 5rem 0; -} - -.section-center { - width: 90vw; - margin: 0 auto; - max-width: 1170px; -} - -@media screen and (min-width: 992px) { - .section-center { - width: 95vw; - } -} - -main { - min-height: 100vh; - display: grid; - place-items: center; -} - -/* -=============== -Counter -=============== -*/ - -.container { - text-align: center; -} - -#value { - font-size: 6rem; - font-weight: bold; -} - -.btn { - text-transform: uppercase; - background: transparent; - color: var(--clr-black); - padding: 0.375rem 0.75rem; - letter-spacing: var(--spacing); - display: inline-block; - transition: var(--transition); - font-size: 0.875rem; - border: 2px solid var(--clr-black); - cursor: pointer; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); - border-radius: var(--radius); - margin: 0.5rem; -} - -.btn:hover { - color: var(--clr-white); - background: var(--clr-black); -} \ No newline at end of file diff --git a/src/frontend/example/05_sidebar/app.js b/src/frontend/example/05_sidebar/app.js deleted file mode 100644 index 0bf53f3..0000000 --- a/src/frontend/example/05_sidebar/app.js +++ /dev/null @@ -1,16 +0,0 @@ -const toggleBtn = document.querySelector(".sidebar-toggle"); -const closeBtn = document.querySelector(".close-btn"); -const sidebar = document.querySelector(".sidebar"); - -toggleBtn.addEventListener("click", function () { - // if (sidebar.classList.contains("show-sidebar")) { - // sidebar.classList.remove("show-sidebar"); - // } else { - // sidebar.classList.add("show-sidebar"); - // } - sidebar.classList.toggle("show-sidebar"); -}); - -closeBtn.addEventListener("click", function () { - sidebar.classList.remove("show-sidebar"); -}); diff --git a/src/frontend/example/05_sidebar/index.html b/src/frontend/example/05_sidebar/index.html deleted file mode 100644 index f4fb120..0000000 --- a/src/frontend/example/05_sidebar/index.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - Sidebar - - - - - - - - - - \ No newline at end of file diff --git a/src/frontend/example/05_sidebar/logo.svg b/src/frontend/example/05_sidebar/logo.svg deleted file mode 100644 index cccc49b..0000000 --- a/src/frontend/example/05_sidebar/logo.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/src/frontend/example/05_sidebar/styles.css b/src/frontend/example/05_sidebar/styles.css deleted file mode 100644 index 2bfcaf8..0000000 --- a/src/frontend/example/05_sidebar/styles.css +++ /dev/null @@ -1,289 +0,0 @@ -/* -=============== -Fonts -=============== -*/ -@import url('https://fonts.googleapis.com/css?family=Open+Sans|Roboto:400,700&display=swap'); - -/* -=============== -Variables -=============== -*/ - -:root { - /* dark shades of primary color*/ - --clr-primary-1: hsl(205, 86%, 17%); - --clr-primary-2: hsl(205, 77%, 27%); - --clr-primary-3: hsl(205, 72%, 37%); - --clr-primary-4: hsl(205, 63%, 48%); - /* primary/main color */ - --clr-primary-5: hsl(205, 78%, 60%); - /* lighter shades of primary color */ - --clr-primary-6: hsl(205, 89%, 70%); - --clr-primary-7: hsl(205, 90%, 76%); - --clr-primary-8: hsl(205, 86%, 81%); - --clr-primary-9: hsl(205, 90%, 88%); - --clr-primary-10: hsl(205, 100%, 96%); - /* darkest grey - used for headings */ - --clr-grey-1: hsl(209, 61%, 16%); - --clr-grey-2: hsl(211, 39%, 23%); - --clr-grey-3: hsl(209, 34%, 30%); - --clr-grey-4: hsl(209, 28%, 39%); - /* grey used for paragraphs */ - --clr-grey-5: hsl(210, 22%, 49%); - --clr-grey-6: hsl(209, 23%, 60%); - --clr-grey-7: hsl(211, 27%, 70%); - --clr-grey-8: hsl(210, 31%, 80%); - --clr-grey-9: hsl(212, 33%, 89%); - --clr-grey-10: hsl(210, 36%, 96%); - --clr-white: #fff; - --clr-red-dark: hsl(360, 67%, 44%); - --clr-red-light: hsl(360, 71%, 66%); - --clr-green-dark: hsl(125, 67%, 44%); - --clr-green-light: hsl(125, 71%, 66%); - --clr-black: #222; - --ff-primary: 'Roboto', sans-serif; - --ff-secondary: 'Open Sans', sans-serif; - --transition: all 0.3s linear; - --spacing: 0.1rem; - --radius: 0.25rem; - --light-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); - --dark-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); - --max-width: 1170px; - --fixed-width: 620px; -} - -/* -=============== -Global Styles -=============== -*/ - -*, -::after, -::before { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: var(--ff-secondary); - background: var(--clr-grey-10); - color: var(--clr-grey-1); - line-height: 1.5; - font-size: 0.875rem; -} - -ul { - list-style-type: none; -} - -a { - text-decoration: none; -} - -h1, -h2, -h3, -h4 { - letter-spacing: var(--spacing); - text-transform: capitalize; - line-height: 1.25; - margin-bottom: 0.75rem; - font-family: var(--ff-primary); -} - -h1 { - font-size: 3rem; -} - -h2 { - font-size: 2rem; -} - -h3 { - font-size: 1.25rem; -} - -h4 { - font-size: 0.875rem; -} - -p { - margin-bottom: 1.25rem; - color: var(--clr-grey-5); -} - -@media screen and (min-width: 800px) { - h1 { - font-size: 4rem; - } - - h2 { - font-size: 2.5rem; - } - - h3 { - font-size: 1.75rem; - } - - h4 { - font-size: 1rem; - } - - body { - font-size: 1rem; - } - - h1, - h2, - h3, - h4 { - line-height: 1; - } -} - -/* global classes */ - -/* section */ -.section { - padding: 5rem 0; -} - -.section-center { - width: 90vw; - margin: 0 auto; - max-width: 1170px; -} - -@media screen and (min-width: 992px) { - .section-center { - width: 95vw; - } -} - -main { - min-height: 100vh; - display: grid; - place-items: center; -} - -/* -=============== -Sidebar -=============== -*/ -.sidebar-toggle { - position: fixed; - top: 2rem; - right: 3rem; - font-size: 2rem; - background: transparent; - border-color: transparent; - color: var(--clr-primary-5); - transition: var(--transition); - cursor: pointer; - animation: bounce 2s ease-in-out infinite; -} - -.sidebar-toggle:hover { - color: var(--clr-primary-7); -} - -@keyframes bounce { - 0% { - transform: scale(1); - } - 50% { - transform: scale(1.5); - } - 100% { - transform: scale(1); - } -} - -.sidebar-header { - display: flex; - justify-content: space-between; - align-items: center; - padding: 1rem 1.5rem; -} - -.close-btn { - font-size: 1.75rem; - background: transparent; - border-color: transparent; - color: var(--clr-primary-5); - transition: var(--transition); - cursor: pointer; - color: var(--clr-red-dark); -} - -.close-btn:hover { - color: var(--clr-red-light); - transform: rotate(360deg); -} - -.logo { - justify-self: center; - height: 40px; -} - -.links a { - display: block; - font-size: 1.5rem; - text-transform: capitalize; - padding: 1rem 1.5rem; - color: var(--clr-grey-5); - transition: var(--transition); -} - -.links a:hover { - background: var(--clr-primary-8); - color: var(--clr-primary-5); - padding-left: 1.75rem; -} - -.social-icons { - justify-self: center; - display: flex; - padding-bottom: 2rem; -} - -.social-icons a { - font-size: 1.5rem; - margin: 0 0.5rem; - color: var(--clr-primary-5); - transition: var(--transition); -} - -.social-icons a:hover { - color: var(--clr-primary-1); -} - -.sidebar { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: var(--clr-white); - display: grid; - grid-template-rows: auto 1fr auto; - row-gap: 1rem; - box-shadow: var(--clr-red-dark); - transition: var(--transition); - /* transform: translate(-100%); */ -} - -.show-sidebar { - transform: translate(0); -} - -@media screen and (min-width: 676px) { - .sidebar { - width: 400px; - } -} diff --git a/src/frontend/example/grid_layout/grid_layout.css b/src/frontend/example/grid_layout/grid_layout.css deleted file mode 100644 index 9be4f0e..0000000 --- a/src/frontend/example/grid_layout/grid_layout.css +++ /dev/null @@ -1,37 +0,0 @@ -.item1 { - grid-area: header; -} - -.item2 { - grid-area: menu; -} - -.item3 { - grid-area: main; -} - -.item4 { - grid-area: right; -} - -.item5 { - grid-area: footer; -} - -.grid-container { - display: grid; - grid-template-areas: - 'header header header header header header' - 'menu main main main main right' - 'menu footer footer footer footer footer'; - gap: 10px; - background-color: whitesmoke; - padding: 10px; -} - -.grid-container > div { - background-color: rgba(255, 255, 255, 0.8); - text-align: center; - padding: 20px 0; - font-size: 30px; -} \ No newline at end of file diff --git a/src/frontend/example/grid_layout/index.html b/src/frontend/example/grid_layout/index.html deleted file mode 100644 index 39c892c..0000000 --- a/src/frontend/example/grid_layout/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Example 1 - - - - -
-
header
-
menu
-
main
-
right
-
footer
-
- - \ No newline at end of file diff --git a/src/frontend/example/toggle_dark_light/app.js b/src/frontend/example/toggle_dark_light/app.js deleted file mode 100644 index 9b25a26..0000000 --- a/src/frontend/example/toggle_dark_light/app.js +++ /dev/null @@ -1,4 +0,0 @@ -function switchLightDark() { - let element = document.body - element.classList.toggle("dark-mode") -} \ No newline at end of file diff --git a/src/frontend/example/toggle_dark_light/index.html b/src/frontend/example/toggle_dark_light/index.html deleted file mode 100644 index 2b0ee21..0000000 --- a/src/frontend/example/toggle_dark_light/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - Darkmode - - - -

Toggle Dark/Light Mode

-

Click the button to toggle between dark and light mode for this page.

- - - - - - \ No newline at end of file diff --git a/src/frontend/example/toggle_dark_light/styles.css b/src/frontend/example/toggle_dark_light/styles.css deleted file mode 100644 index aebb339..0000000 --- a/src/frontend/example/toggle_dark_light/styles.css +++ /dev/null @@ -1,11 +0,0 @@ -body { - padding: 25px; - background-color: white; - color: black; - font-size: 25px; -} - -.dark-mode { - background-color: black; - color: white; -} \ No newline at end of file diff --git a/static/styles-main.css b/static/styles-main.css new file mode 100644 index 0000000..b82692c --- /dev/null +++ b/static/styles-main.css @@ -0,0 +1,26 @@ + +/* +=============== +Fonts +=============== +*/ +@import url("https://fonts.googleapis.com/css?family=Open+Sans|Roboto:400,700&display=swap"); + +/* +=============== +Variables +=============== +*/ +:root { + --demo-clr: #ff0000; +} + +/* +=============== +Global Styles +=============== +*/ + +h1 { + color: var(--demo-clr); +} \ No newline at end of file -- 2.39.5 From f2d21b63df7cf7e460ccc397e4ab6dd471c67ca1 Mon Sep 17 00:00:00 2001 From: vextv Date: Sun, 13 Oct 2024 18:21:40 +0200 Subject: [PATCH 02/37] added environment variable file --- .idea/sqldialects.xml | 7 ------- process.env | 1 + 2 files changed, 1 insertion(+), 7 deletions(-) delete mode 100644 .idea/sqldialects.xml create mode 100644 process.env diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml deleted file mode 100644 index a8b32a1..0000000 --- a/.idea/sqldialects.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/process.env b/process.env new file mode 100644 index 0000000..57eaaf2 --- /dev/null +++ b/process.env @@ -0,0 +1 @@ +APP_PORT = 3000 \ No newline at end of file -- 2.39.5 From c5ff3857c7871df7fa1908f279db0c82c73eee9c Mon Sep 17 00:00:00 2001 From: vextv Date: Mon, 14 Oct 2024 17:43:52 +0200 Subject: [PATCH 03/37] added environment variables --- package-lock.json | 1 + process.env | 9 ++++++++- scripts/modules/db-connect.js | 2 +- server.js | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6a8b103..3460d88 100644 --- a/package-lock.json +++ b/package-lock.json @@ -172,6 +172,7 @@ "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, diff --git a/process.env b/process.env index 57eaaf2..840a0a6 100644 --- a/process.env +++ b/process.env @@ -1 +1,8 @@ -APP_PORT = 3000 \ No newline at end of file +# configuration for web app +APP_PORT=3000 + +# configuration for db access +DB_HOST=172.0.0.1:3306 +DB_USER=root +DB_PASSWORD= +DB_DATABASE= diff --git a/scripts/modules/db-connect.js b/scripts/modules/db-connect.js index e860644..00b0540 100644 --- a/scripts/modules/db-connect.js +++ b/scripts/modules/db-connect.js @@ -1,5 +1,5 @@ const mysql = require('mysql2'); -require('dotenv').config(); +require('dotenv').config({path:'process.env'}); const connection = mysql.createConnection({ host : process.env.DB_HOST, diff --git a/server.js b/server.js index b744806..8f83748 100644 --- a/server.js +++ b/server.js @@ -3,7 +3,7 @@ const session = require('express-session'); const router = require('express').Router(); const path = require('path'); -require('dotenv').config(); +require('dotenv').config({path:'process.env'}); const app = express(); -- 2.39.5 From aa05ea70af1313b6c9162007a3c0354515fc5c38 Mon Sep 17 00:00:00 2001 From: vextv Date: Mon, 14 Oct 2024 18:39:56 +0200 Subject: [PATCH 04/37] added sql scripts for db --- .idea/dataSources.xml | 9 ++++----- sql/create_db.sql | 13 +++++++++++++ sql/delete_db.sql | 1 + 3 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 sql/create_db.sql create mode 100644 sql/delete_db.sql diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 63a12b6..f3b232c 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,15 +1,14 @@ - - postgresql + + mysql.8 true - org.postgresql.Driver - jdbc:postgresql://localhost:5432/postgres + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 - $ProjectFileDir$ diff --git a/sql/create_db.sql b/sql/create_db.sql new file mode 100644 index 0000000..44dc8e9 --- /dev/null +++ b/sql/create_db.sql @@ -0,0 +1,13 @@ +CREATE DATABASE 'webshop' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci; + +CREATE TABLE 'user' +( + id int, + lower_name varchar(255), + name varchar(255), + full_name varchar(255), + email varchar(255), + passwd varchar(255), + passwd_hash_algo varchar(255), + is_admin bool +) diff --git a/sql/delete_db.sql b/sql/delete_db.sql new file mode 100644 index 0000000..74a65f6 --- /dev/null +++ b/sql/delete_db.sql @@ -0,0 +1 @@ +DROP TABLE 'user'; -- 2.39.5 From 47cc1b042492797a8239ed2237417dfc3eee04f9 Mon Sep 17 00:00:00 2001 From: vextv Date: Tue, 15 Oct 2024 22:41:46 +0200 Subject: [PATCH 05/37] added example db create script --- .idea/sqldialects.xml | 7 +++ public/check-status.html | 2 +- sql/create_db.sql | 125 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 .idea/sqldialects.xml diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml new file mode 100644 index 0000000..2834bc7 --- /dev/null +++ b/.idea/sqldialects.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/public/check-status.html b/public/check-status.html index bf71fb7..6f71748 100644 --- a/public/check-status.html +++ b/public/check-status.html @@ -2,7 +2,7 @@ - + Document diff --git a/sql/create_db.sql b/sql/create_db.sql index 44dc8e9..3bc783e 100644 --- a/sql/create_db.sql +++ b/sql/create_db.sql @@ -1,5 +1,7 @@ CREATE DATABASE 'webshop' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci; +# example link: https://fabric.inc/blog/commerce/ecommerce-database-design-example + CREATE TABLE 'user' ( id int, @@ -9,5 +11,124 @@ CREATE TABLE 'user' email varchar(255), passwd varchar(255), passwd_hash_algo varchar(255), - is_admin bool -) + is_admin bool, + created_at timestamp, + modified_at timestamp +); + +CREATE TABLE 'user_address' +( + id int, + userid int, + address_line1 varchar(255), + address_line2 varchar(255), + city varchar(255), + postal_code varchar(255), + country varchar(255), + telephone varchar(255), + mobile varchar(255) +); + +CREATE TABLE 'user_payment' +( + id int, + user_id int, + payment_type varchar(255), + provider varchar(255), + account_no int, + expiry date +); + +CREATE TABLE 'shopping_session' +( + id int, + user_id varchar(255), + total decimal, + created_at timestamp, + modified_at timestamp +); + +CREATE TABLE 'cart_item' +( + id int, + session_id int, + product_id int, + quantity int, + created_at timestamp, + modified_at timestamp +); + +CREATE TABLE 'payment_details' +( + id int, + order_id int, + amount int, + provider varchar(255), + status varchar(255), + created_at timestamp, + modified_at timestamp +); + +CREATE TABLE 'order_items' +( + id int, + order_id int, + product_id int, + quantity int, + created_at timestamp, + modified_at timestamp +); + +CREATE TABLE 'order_details' +( + id int, + user_id varchar(255), + total decimal, + payment_id int, + created_at timestamp, + modified_at timestamp +); + +CREATE TABLE 'product' +( + id int, + name varchar(255), + desc text, + SKU varchar(255), + category_id int, + inventory_id int, + price decimal, + discount_id int, + created_at timestamp, + modified_at timestamp, + deleted_at timestamp +); + +CREATE TABLE 'product_category' +( + id int, + name varchar(255), + desc text, + created_at timestamp, + modified_at timestamp, + deleted_at timestamp +); +CREATE TABLE 'product_inventory' +( + id int, + quantity int, + created_at timestamp, + modified_at timestamp, + deleted_at timestamp +); +CREATE TABLE 'discount' +( + id int, + name varchar(255), + desc text, + discount_percent decimal, + active bool, + created_at timestamp, + modified_at timestamp, + deleted_at timestamp +) \ No newline at end of file -- 2.39.5 From ce181e35f12c06ce5cea6e7e550554d5440b0d5d Mon Sep 17 00:00:00 2001 From: florianspengler Date: Fri, 15 Nov 2024 08:09:55 +0100 Subject: [PATCH 06/37] fixxed server.js and some other stuff --- public/{check-status.html => index.html} | 2 +- scripts/routes/other/getstatus.js | 8 -------- scripts/routes/other/route-index.js | 8 ++++++++ server.js | 5 ++--- static/{ => Styles}/styles-main.css | 0 5 files changed, 11 insertions(+), 12 deletions(-) rename public/{check-status.html => index.html} (66%) delete mode 100644 scripts/routes/other/getstatus.js create mode 100644 scripts/routes/other/route-index.js rename static/{ => Styles}/styles-main.css (100%) diff --git a/public/check-status.html b/public/index.html similarity index 66% rename from public/check-status.html rename to public/index.html index 6f71748..b0a69b4 100644 --- a/public/check-status.html +++ b/public/index.html @@ -4,7 +4,7 @@ Document - +

Hello there...

diff --git a/scripts/routes/other/getstatus.js b/scripts/routes/other/getstatus.js deleted file mode 100644 index 7570b8c..0000000 --- a/scripts/routes/other/getstatus.js +++ /dev/null @@ -1,8 +0,0 @@ -const path = require('path'); -const router = require('express').Router(); - -router.get('/status', (req, res) => { - res.sendFile(path.join(__dirname, '../../../public/check-status.html')); -}); - -module.exports = router; \ No newline at end of file diff --git a/scripts/routes/other/route-index.js b/scripts/routes/other/route-index.js new file mode 100644 index 0000000..a89972e --- /dev/null +++ b/scripts/routes/other/route-index.js @@ -0,0 +1,8 @@ +const path = require('path'); +const router = require('express').Router(); + +router.get('/', (req, res) => { + res.sendFile(path.join(__dirname, '../../../public/index.html')); +}); + +module.exports = router; \ No newline at end of file diff --git a/server.js b/server.js index 8f83748..2f52214 100644 --- a/server.js +++ b/server.js @@ -17,11 +17,10 @@ app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(express.static(path.join(__dirname, 'static'))); app.use(express.static(path.join(__dirname, '/scripts'))); -app.use(express.static(path.join(__dirname, '/scripts/modules'))); -const get_status = require('./scripts/routes/other/getstatus.js'); +const getIndexRoute = require('./scripts/routes/other/route-index'); -app.use(get_status); +app.use('/', getIndexRoute); app.listen(process.env.APP_PORT, () => { console.log("\x1b[32m"); diff --git a/static/styles-main.css b/static/Styles/styles-main.css similarity index 100% rename from static/styles-main.css rename to static/Styles/styles-main.css -- 2.39.5 From ef31591bd9f5b3e1b370dbef92c0172dacd73f79 Mon Sep 17 00:00:00 2001 From: vex Date: Fri, 15 Nov 2024 08:13:33 +0100 Subject: [PATCH 07/37] edited gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3715fa6..fbf8516 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.idea # ---> Node # Logs logs -- 2.39.5 From 01b15fa3702f5c9d8334b8b98e2a52852f05e573 Mon Sep 17 00:00:00 2001 From: florianspengler Date: Fri, 15 Nov 2024 08:20:16 +0100 Subject: [PATCH 08/37] removed link from index.html --- public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index b0a69b4..876cab2 100644 --- a/public/index.html +++ b/public/index.html @@ -4,7 +4,7 @@ Document - +

Hello there...

-- 2.39.5 From e2033874dd659e8ee1efa05753a873125d52b9d9 Mon Sep 17 00:00:00 2001 From: vex Date: Fri, 15 Nov 2024 10:07:21 +0100 Subject: [PATCH 09/37] added example homepage --- public/example/index.html | 24 ++++++++++ public/index.html | 3 +- scripts/example.js | 11 +++++ scripts/routes/other/route-index.js | 6 ++- static/Styles/example.css | 68 +++++++++++++++++++++++++++++ 5 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 public/example/index.html create mode 100644 scripts/example.js create mode 100644 static/Styles/example.css diff --git a/public/example/index.html b/public/example/index.html new file mode 100644 index 0000000..76a2d64 --- /dev/null +++ b/public/example/index.html @@ -0,0 +1,24 @@ + + + + + Homepage + + + + + +
+ +

Collapsed Sidebar

+

Content...

+
+ + + \ No newline at end of file diff --git a/public/index.html b/public/index.html index 876cab2..5682097 100644 --- a/public/index.html +++ b/public/index.html @@ -7,6 +7,7 @@ -

Hello there...

+

Hello there...

+Test \ No newline at end of file diff --git a/scripts/example.js b/scripts/example.js new file mode 100644 index 0000000..ca41a87 --- /dev/null +++ b/scripts/example.js @@ -0,0 +1,11 @@ +/* Set the width of the sidebar to 250px and the left margin of the page content to 250px */ +function openNav() { + document.getElementById("mySidebar").style.width = "250px"; + document.getElementById("main").style.marginLeft = "250px"; +} + +/* Set the width of the sidebar to 0 and the left margin of the page content to 0 */ +function closeNav() { + document.getElementById("mySidebar").style.width = "0"; + document.getElementById("main").style.marginLeft = "0"; +} \ No newline at end of file diff --git a/scripts/routes/other/route-index.js b/scripts/routes/other/route-index.js index a89972e..aef688a 100644 --- a/scripts/routes/other/route-index.js +++ b/scripts/routes/other/route-index.js @@ -3,6 +3,10 @@ const router = require('express').Router(); router.get('/', (req, res) => { res.sendFile(path.join(__dirname, '../../../public/index.html')); -}); +}) + +router.get('/example', (req, res) => { + res.sendFile(path.join(__dirname, '../../../public/example/index.html')); +}) module.exports = router; \ No newline at end of file diff --git a/static/Styles/example.css b/static/Styles/example.css new file mode 100644 index 0000000..b4c5134 --- /dev/null +++ b/static/Styles/example.css @@ -0,0 +1,68 @@ +/* The sidebar menu */ +.sidebar { + height: 100%; /* 100% Full-height */ + width: 0; /* 0 width - change this with JavaScript */ + position: fixed; /* Stay in place */ + z-index: 1; /* Stay on top */ + top: 0; + left: 0; + background-color: #111; /* Black*/ + overflow-x: hidden; /* Disable horizontal scroll */ + padding-top: 60px; /* Place content 60px from the top */ + transition: 0.5s; /* 0.5 second transition effect to slide in the sidebar */ +} + +/* The sidebar links */ +.sidebar a { + padding: 8px 8px 8px 32px; + text-decoration: none; + font-size: 25px; + color: #818181; + display: block; + transition: 0.3s; +} + +/* When you mouse over the navigation links, change their color */ +.sidebar a:hover { + color: #f1f1f1; +} + +/* Position and style the close button (top right corner) */ +.sidebar .closebtn { + position: absolute; + top: 0; + right: 25px; + font-size: 36px; + margin-left: 50px; +} + +/* The button used to open the sidebar */ +.openbtn { + font-size: 20px; + cursor: pointer; + background-color: #111; + color: white; + padding: 10px 15px; + border: none; +} + +.openbtn:hover { + background-color: #444; +} + +/* Style page content - use this if you want to push the page content to the right when you open the side navigation */ +#main { + transition: margin-left .5s; /* If you want a transition effect */ + padding: 20px; +} + +/* On smaller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */ +@media screen and (max-height: 450px) { + .sidebar { + padding-top: 15px; + } + + .sidebar a { + font-size: 18px; + } +} \ No newline at end of file -- 2.39.5 From acb4622f560d00facd67e3a9fb5ef09f2b3f96ca Mon Sep 17 00:00:00 2001 From: florianspengler Date: Fri, 15 Nov 2024 10:13:45 +0100 Subject: [PATCH 10/37] fixxed js integration in html template --- public/example/index.html | 2 +- server.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/example/index.html b/public/example/index.html index 76a2d64..92748d6 100644 --- a/public/example/index.html +++ b/public/example/index.html @@ -19,6 +19,6 @@

Collapsed Sidebar

Content...

- + \ No newline at end of file diff --git a/server.js b/server.js index 2f52214..05079f0 100644 --- a/server.js +++ b/server.js @@ -15,8 +15,8 @@ app.use(session({ app.use(express.json()); app.use(express.urlencoded({ extended: true })); -app.use(express.static(path.join(__dirname, 'static'))); app.use(express.static(path.join(__dirname, '/scripts'))); +app.use(express.static(path.join(__dirname, '/static'))); const getIndexRoute = require('./scripts/routes/other/route-index'); -- 2.39.5 From 9bc7bb9bb4934a55a76b4a9b228f0a03baa2f19d Mon Sep 17 00:00:00 2001 From: vex Date: Fri, 15 Nov 2024 11:02:59 +0100 Subject: [PATCH 11/37] added example style and layout on page --- public/example/index.html | 26 ++++++++++++++++++++++---- static/Styles/example.css | 31 +++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/public/example/index.html b/public/example/index.html index 92748d6..2c5b393 100644 --- a/public/example/index.html +++ b/public/example/index.html @@ -13,12 +13,30 @@ Clients Contact -
- -

Collapsed Sidebar

-

Content...

+
+
+
+

header

+
+
+ +

Collapsed Sidebar

+
+
+

main

+
+
+

right

+
+ +
+
+ + \ No newline at end of file diff --git a/static/Styles/example.css b/static/Styles/example.css index b4c5134..1b5e40d 100644 --- a/static/Styles/example.css +++ b/static/Styles/example.css @@ -65,4 +65,35 @@ .sidebar a { font-size: 18px; } +} + + +/* grid layout for the content */ +.grid-container { + display: grid; + grid-template-areas: 'left header header' + 'left main right' + 'footer footer footer'; + grid-template-columns: [left] 80px [line2] calc(100% - 160px) [line3] 80px [right]; + grid-template-rows: [top] 80px [line2] calc(100% - 160px) [line3] 80px [bottom]; +} + +.left { + grid-area: left; +} + +.right { + grid-area: right; +} + +.header { + grid-area: header; +} + +.main { + grid-area: main; +} + +.footer { + grid-area: footer; } \ No newline at end of file -- 2.39.5 From 9ca4415ff9359f5f9f598b28d1d8eb7a4a050e9c Mon Sep 17 00:00:00 2001 From: vextv Date: Fri, 15 Nov 2024 13:51:30 +0100 Subject: [PATCH 12/37] updated sql scripts --- .gitignore | 2 +- sql/create_db.sql | 40 +++++++++++++++++++++++++--------------- sql/delete_db.sql | 13 ++++++++++++- 3 files changed, 38 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index fbf8516..d3e6c52 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -.idea +.idea* # ---> Node # Logs logs diff --git a/sql/create_db.sql b/sql/create_db.sql index 3bc783e..88cc2f3 100644 --- a/sql/create_db.sql +++ b/sql/create_db.sql @@ -1,32 +1,35 @@ CREATE DATABASE 'webshop' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci; -# example link: https://fabric.inc/blog/commerce/ecommerce-database-design-example +-- example link: https://fabric.inc/blog/commerce/ecommerce-database-design-example CREATE TABLE 'user' ( - id int, + id int NOT NULL AUTO_INCREMENT, lower_name varchar(255), - name varchar(255), + name varchar(255) NOT NULL, full_name varchar(255), - email varchar(255), + email varchar(255) NOT NULL, passwd varchar(255), passwd_hash_algo varchar(255), is_admin bool, created_at timestamp, - modified_at timestamp + modified_at timestamp, + PRIMARY KEY (id), + UNIQUE (email, passwd) ); CREATE TABLE 'user_address' ( id int, - userid int, + user_id int, address_line1 varchar(255), address_line2 varchar(255), city varchar(255), postal_code varchar(255), - country varchar(255), + country varchar(2), telephone varchar(255), - mobile varchar(255) + mobile varchar(255), + UNIQUE (telephone, mobile, user_id) ); CREATE TABLE 'user_payment' @@ -36,7 +39,8 @@ CREATE TABLE 'user_payment' payment_type varchar(255), provider varchar(255), account_no int, - expiry date + expiry date, + UNIQUE (user_id) ); CREATE TABLE 'shopping_session' @@ -45,7 +49,8 @@ CREATE TABLE 'shopping_session' user_id varchar(255), total decimal, created_at timestamp, - modified_at timestamp + modified_at timestamp, + UNIQUE (user_id) ); CREATE TABLE 'cart_item' @@ -91,10 +96,13 @@ CREATE TABLE 'order_details' CREATE TABLE 'product' ( - id int, + id int NOT NULL, name varchar(255), - desc text, - SKU varchar(255), + color varchar(255), + make varchar(255), + model varchar(255) NOT NULL, + engine varchar(255), + description text, category_id int, inventory_id int, price decimal, @@ -108,11 +116,12 @@ CREATE TABLE 'product_category' ( id int, name varchar(255), - desc text, + description text, created_at timestamp, modified_at timestamp, deleted_at timestamp ); + CREATE TABLE 'product_inventory' ( id int, @@ -121,11 +130,12 @@ CREATE TABLE 'product_inventory' modified_at timestamp, deleted_at timestamp ); + CREATE TABLE 'discount' ( id int, name varchar(255), - desc text, + description text, discount_percent decimal, active bool, created_at timestamp, diff --git a/sql/delete_db.sql b/sql/delete_db.sql index 74a65f6..6549ee6 100644 --- a/sql/delete_db.sql +++ b/sql/delete_db.sql @@ -1 +1,12 @@ -DROP TABLE 'user'; +DROP TABLE IF EXISTS 'user'; +DROP TABLE IF EXISTS 'user_address'; +DROP TABLE IF EXISTS 'user_payment'; +DROP TABLE IF EXISTS 'shopping_session'; +DROP TABLE IF EXISTS 'cart_item'; +DROP TABLE IF EXISTS 'payment_details'; +DROP TABLE IF EXISTS 'order_items'; +DROP TABLE IF EXISTS 'order_details'; +DROP TABLE IF EXISTS 'product'; +DROP TABLE IF EXISTS 'product_category'; +DROP TABLE IF EXISTS 'product_inventory'; +DROP TABLE IF EXISTS 'discount'; -- 2.39.5 From ac206cd94f45f54938bdc473607c42e959b8c067 Mon Sep 17 00:00:00 2001 From: vextv Date: Fri, 15 Nov 2024 14:55:22 +0100 Subject: [PATCH 13/37] changed example website --- .idea/inspectionProfiles/Project_Default.xml | 16 ++++++++++++++++ .idea/sqldialects.xml | 7 ------- public/example/index.html | 3 +-- scripts/example.js | 20 ++++++++++++++++---- static/Styles/example.css | 1 + 5 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 .idea/inspectionProfiles/Project_Default.xml delete mode 100644 .idea/sqldialects.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..e1cfb03 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml deleted file mode 100644 index 2834bc7..0000000 --- a/.idea/sqldialects.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/public/example/index.html b/public/example/index.html index 2c5b393..738501c 100644 --- a/public/example/index.html +++ b/public/example/index.html @@ -20,8 +20,7 @@

header

- -

Collapsed Sidebar

+

main

diff --git a/scripts/example.js b/scripts/example.js index ca41a87..d539db9 100644 --- a/scripts/example.js +++ b/scripts/example.js @@ -1,11 +1,23 @@ +let sidebarEl = document.getElementById("mySidebar") +let mainEl = document.getElementById("main") + /* Set the width of the sidebar to 250px and the left margin of the page content to 250px */ function openNav() { - document.getElementById("mySidebar").style.width = "250px"; - document.getElementById("main").style.marginLeft = "250px"; + sidebarEl.style.width = "250px"; + mainEl.style.marginLeft = "250px"; } /* Set the width of the sidebar to 0 and the left margin of the page content to 0 */ function closeNav() { - document.getElementById("mySidebar").style.width = "0"; - document.getElementById("main").style.marginLeft = "0"; + sidebarEl.style.width = "0"; + mainEl.style.marginLeft = "0"; +} + +/* Toggle the sidebar */ +function toggleNav() { + if (sidebarEl.offsetWidth > 0) { + closeNav() + } else { + openNav() + } } \ No newline at end of file diff --git a/static/Styles/example.css b/static/Styles/example.css index 1b5e40d..024d1c7 100644 --- a/static/Styles/example.css +++ b/static/Styles/example.css @@ -10,6 +10,7 @@ overflow-x: hidden; /* Disable horizontal scroll */ padding-top: 60px; /* Place content 60px from the top */ transition: 0.5s; /* 0.5 second transition effect to slide in the sidebar */ + font-family: "Agency FB"; } /* The sidebar links */ -- 2.39.5 From 937329c9a4121a2ab5d73148060b0b4c74386ed1 Mon Sep 17 00:00:00 2001 From: vex Date: Mon, 18 Nov 2024 09:06:34 +0100 Subject: [PATCH 14/37] added database connection --- {sql => database/db_scripts}/create_db.sql | 0 {sql => database/db_scripts}/delete_db.sql | 0 database/query/get_users.js | 17 +++++++++++++++++ 3 files changed, 17 insertions(+) rename {sql => database/db_scripts}/create_db.sql (100%) rename {sql => database/db_scripts}/delete_db.sql (100%) create mode 100644 database/query/get_users.js diff --git a/sql/create_db.sql b/database/db_scripts/create_db.sql similarity index 100% rename from sql/create_db.sql rename to database/db_scripts/create_db.sql diff --git a/sql/delete_db.sql b/database/db_scripts/delete_db.sql similarity index 100% rename from sql/delete_db.sql rename to database/db_scripts/delete_db.sql diff --git a/database/query/get_users.js b/database/query/get_users.js new file mode 100644 index 0000000..8669762 --- /dev/null +++ b/database/query/get_users.js @@ -0,0 +1,17 @@ +const mysql = require('mysql'); + +const connection = mysql.createConnection({ + host: "localhost", + user: "root", + password: "root", + database: "webshop" +}); + +connection.connect(function (err) { + if (err) throw err; + console.log("Connected to database"); + connection.query("SELECT * FROM users", function (err, result) { + if (err) throw err; + console.log(result); + }) +}); \ No newline at end of file -- 2.39.5 From d6126e68896f212714a03b439eddb817adc31070 Mon Sep 17 00:00:00 2001 From: vex Date: Mon, 18 Nov 2024 11:14:53 +0100 Subject: [PATCH 15/37] added login page (WIP) --- public/index.html | 1 + public/login/index.html | 27 +++++++++++++++++++++++++++ scripts/login.js | 7 +++++++ scripts/routes/other/route-index.js | 4 ++++ 4 files changed, 39 insertions(+) create mode 100644 public/login/index.html create mode 100644 scripts/login.js diff --git a/public/index.html b/public/index.html index 5682097..3f4e590 100644 --- a/public/index.html +++ b/public/index.html @@ -9,5 +9,6 @@

Hello there...

Test +Login \ No newline at end of file diff --git a/public/login/index.html b/public/login/index.html new file mode 100644 index 0000000..f87b425 --- /dev/null +++ b/public/login/index.html @@ -0,0 +1,27 @@ + + + + + Login + + +
+ +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/scripts/login.js b/scripts/login.js new file mode 100644 index 0000000..dbef5a6 --- /dev/null +++ b/scripts/login.js @@ -0,0 +1,7 @@ +let nameEl = document.getElementById("loginMail"); +let passwordEl = document.getElementById("loginPassword"); + +function login() { + //console.log(nameEl.value) + //console.log(passwordEl.value) +} \ No newline at end of file diff --git a/scripts/routes/other/route-index.js b/scripts/routes/other/route-index.js index aef688a..562512e 100644 --- a/scripts/routes/other/route-index.js +++ b/scripts/routes/other/route-index.js @@ -9,4 +9,8 @@ router.get('/example', (req, res) => { res.sendFile(path.join(__dirname, '../../../public/example/index.html')); }) +router.get('/login', (req, res) => { + res.sendFile(path.join(__dirname, '../../../public/login/index.html')); +}) + module.exports = router; \ No newline at end of file -- 2.39.5 From 044385c18318b50f8e3a1d4107541cd90df6d2f0 Mon Sep 17 00:00:00 2001 From: vextv Date: Mon, 18 Nov 2024 21:12:50 +0100 Subject: [PATCH 16/37] updated sql scripts --- database/db_scripts/create_db.sql | 48 ++++----- database/db_scripts/test.sql | 170 ++++++++++++++++++++++++++++++ database/query/get_users.js | 4 +- scripts/login.js | 4 +- 4 files changed, 198 insertions(+), 28 deletions(-) create mode 100644 database/db_scripts/test.sql diff --git a/database/db_scripts/create_db.sql b/database/db_scripts/create_db.sql index 88cc2f3..2093833 100644 --- a/database/db_scripts/create_db.sql +++ b/database/db_scripts/create_db.sql @@ -12,8 +12,8 @@ CREATE TABLE 'user' passwd varchar(255), passwd_hash_algo varchar(255), is_admin bool, - created_at timestamp, - modified_at timestamp, + created_at int8, + modified_at int8, PRIMARY KEY (id), UNIQUE (email, passwd) ); @@ -48,8 +48,8 @@ CREATE TABLE 'shopping_session' id int, user_id varchar(255), total decimal, - created_at timestamp, - modified_at timestamp, + created_at int8, + modified_at int8, UNIQUE (user_id) ); @@ -59,8 +59,8 @@ CREATE TABLE 'cart_item' session_id int, product_id int, quantity int, - created_at timestamp, - modified_at timestamp + created_at int8, + modified_at int8 ); CREATE TABLE 'payment_details' @@ -70,8 +70,8 @@ CREATE TABLE 'payment_details' amount int, provider varchar(255), status varchar(255), - created_at timestamp, - modified_at timestamp + created_at int8, + modified_at int8 ); CREATE TABLE 'order_items' @@ -80,8 +80,8 @@ CREATE TABLE 'order_items' order_id int, product_id int, quantity int, - created_at timestamp, - modified_at timestamp + created_at int8, + modified_at int8 ); CREATE TABLE 'order_details' @@ -90,8 +90,8 @@ CREATE TABLE 'order_details' user_id varchar(255), total decimal, payment_id int, - created_at timestamp, - modified_at timestamp + created_at int8, + modified_at int8 ); CREATE TABLE 'product' @@ -107,9 +107,9 @@ CREATE TABLE 'product' inventory_id int, price decimal, discount_id int, - created_at timestamp, - modified_at timestamp, - deleted_at timestamp + created_at int8, + modified_at int8, + deleted_at int8 ); CREATE TABLE 'product_category' @@ -117,18 +117,18 @@ CREATE TABLE 'product_category' id int, name varchar(255), description text, - created_at timestamp, - modified_at timestamp, - deleted_at timestamp + created_at int8, + modified_at int8, + deleted_at int8 ); CREATE TABLE 'product_inventory' ( id int, quantity int, - created_at timestamp, - modified_at timestamp, - deleted_at timestamp + created_at int8, + modified_at int8, + deleted_at int8 ); CREATE TABLE 'discount' @@ -138,7 +138,7 @@ CREATE TABLE 'discount' description text, discount_percent decimal, active bool, - created_at timestamp, - modified_at timestamp, - deleted_at timestamp + created_at int8, + modified_at int8, + deleted_at int8 ) \ No newline at end of file diff --git a/database/db_scripts/test.sql b/database/db_scripts/test.sql new file mode 100644 index 0000000..70f3efb --- /dev/null +++ b/database/db_scripts/test.sql @@ -0,0 +1,170 @@ +CREATE TABLE `discount` +( + `deleted_at` INT(8) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `description` TEXT NOT NULL, + `discount_percent` DECIMAL(8, 2) NOT NULL, + `modified_at` INT(8) NOT NULL, + `created_at` INT(8) NOT NULL, + `active` BOOLEAN NOT NULL +); +CREATE TABLE `user_address` +( + `address_line1` VARCHAR(255) NOT NULL, + `city` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `country` VARCHAR(2) NOT NULL, + `user_id` INT NOT NULL, + `mobile` VARCHAR(255) NOT NULL, + `postal_code` INT NOT NULL, + `address_line2` VARCHAR(255) NOT NULL, + `telephone` VARCHAR(255) NOT NULL +); +ALTER TABLE + `user_address` + ADD UNIQUE `user_address_mobile_unique` (`mobile`); +ALTER TABLE + `user_address` + ADD UNIQUE `user_address_telephone_unique` (`telephone`); +CREATE TABLE `product_inventory` +( + `created_at` INT(8) NOT NULL, + `modified_at` INT(8) NOT NULL, + `quantity` INT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `deleted_at` INT(8) NOT NULL +); +CREATE TABLE `payment_details` +( + `order_id` INT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `status` VARCHAR(255) NOT NULL, + `provider` VARCHAR(255) NOT NULL, + `modified_at` INT(8) NOT NULL, + `amount` INT NOT NULL, + `created_at` INT(8) NOT NULL +); +CREATE TABLE `order_details` +( + `payment_id` INT NOT NULL, + `total` DECIMAL(8, 2) NOT NULL, + `modified_at` INT(8) NOT NULL, + `created_at` INT(8) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `user_id` INT NOT NULL +); +CREATE TABLE `oder_items` +( + `modified_at` INT(8) NOT NULL, + `user_id` BIGINT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `quantity` INT NOT NULL, + `order_id` INT NOT NULL, + `created_at` INT(8) NOT NULL, + `product_id` INT NOT NULL +); +CREATE TABLE `user_payment` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `provider` VARCHAR(255) NOT NULL, + `account_no` VARCHAR(255) NOT NULL, + `expiry` DATE NOT NULL, + `payment_type` VARCHAR(255) NOT NULL, + `user_id` INT NOT NULL +); +CREATE TABLE `product` +( + `category_id` INT NOT NULL, + `model` VARCHAR(255) NOT NULL, + `color` VARCHAR(255) NOT NULL, + `engine` VARCHAR(255) NOT NULL, + `description` TEXT NOT NULL, + `make` VARCHAR(255) NOT NULL, + `inventory_id` INT NOT NULL, + `discount_id` INT NOT NULL, + `created_at` INT(8) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `deleted_at` INT(8) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `modified_at` INT(8) NOT NULL, + `price` DECIMAL(8, 2) NOT NULL +); +CREATE TABLE `product_category` +( + `created_at` INT(8) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `modified_at` INT(8) NOT NULL, + `desc` TEXT NOT NULL, + `deleted_at` INT(8) NOT NULL +); +CREATE TABLE `user` +( + `is_active` BOOLEAN NOT NULL, + `lower_name` VARCHAR(255) NOT NULL, + `email` VARCHAR(255) NOT NULL, + `passwd_hash_algo` VARCHAR(255) NOT NULL, + `modified_at` INT(8) NOT NULL, + `is_admin` BOOLEAN NOT NULL, + `name` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_at` INT(8) NOT NULL, + `passwd` VARCHAR(255) NOT NULL +); +ALTER TABLE + `user` + ADD UNIQUE `user_email_unique` (`email`); +CREATE TABLE `shopping_session` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_at` INT(8) NOT NULL, + `user_id` INT NOT NULL, + `modified_at` INT(8) NOT NULL, + `total` DECIMAL(8, 2) NOT NULL +); +CREATE TABLE `cart_item` +( + `product_id` INT NOT NULL, + `session_id` INT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_at` INT(8) NOT NULL, + `modified_at` INT(8) NOT NULL, + `quantity` INT NOT NULL +); +ALTER TABLE + `product` + ADD CONSTRAINT `product_inventory_id_foreign` FOREIGN KEY (`inventory_id`) REFERENCES `product_inventory` (`id`); +ALTER TABLE + `oder_items` + ADD CONSTRAINT `oder_items_order_id_foreign` FOREIGN KEY (`order_id`) REFERENCES `order_details` (`id`); +ALTER TABLE + `product` + ADD CONSTRAINT `product_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `product_category` (`id`); +ALTER TABLE + `order_details` + ADD CONSTRAINT `order_details_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `cart_item` + ADD CONSTRAINT `cart_item_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); +ALTER TABLE + `oder_items` + ADD CONSTRAINT `oder_items_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); +ALTER TABLE + `user_address` + ADD CONSTRAINT `user_address_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `order_details` + ADD CONSTRAINT `order_details_payment_id_foreign` FOREIGN KEY (`payment_id`) REFERENCES `payment_details` (`id`); +ALTER TABLE + `product` + ADD CONSTRAINT `product_discount_id_foreign` FOREIGN KEY (`discount_id`) REFERENCES `discount` (`id`); +ALTER TABLE + `user_payment` + ADD CONSTRAINT `user_payment_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `shopping_session` + ADD CONSTRAINT `shopping_session_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `cart_item` + ADD CONSTRAINT `cart_item_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `shopping_session` (`id`); \ No newline at end of file diff --git a/database/query/get_users.js b/database/query/get_users.js index 8669762..f899821 100644 --- a/database/query/get_users.js +++ b/database/query/get_users.js @@ -3,14 +3,14 @@ const mysql = require('mysql'); const connection = mysql.createConnection({ host: "localhost", user: "root", - password: "root", + password: "", database: "webshop" }); connection.connect(function (err) { if (err) throw err; console.log("Connected to database"); - connection.query("SELECT * FROM users", function (err, result) { + connection.query("SELECT * FROM user", function (err, result) { if (err) throw err; console.log(result); }) diff --git a/scripts/login.js b/scripts/login.js index dbef5a6..6d17a2a 100644 --- a/scripts/login.js +++ b/scripts/login.js @@ -2,6 +2,6 @@ let nameEl = document.getElementById("loginMail"); let passwordEl = document.getElementById("loginPassword"); function login() { - //console.log(nameEl.value) - //console.log(passwordEl.value) + console.log(nameEl.value) + console.log(passwordEl.value) } \ No newline at end of file -- 2.39.5 From 07e48d70a2dc53fcc3ee855cff8bb392283226cb Mon Sep 17 00:00:00 2001 From: vex Date: Tue, 19 Nov 2024 08:21:02 +0100 Subject: [PATCH 17/37] sql scripts are now functional for XAMPP (MariaDB) --- database/db_scripts/create_db.sql | 268 ++++++++++++++++-------------- database/db_scripts/delete_db.sql | 36 ++-- database/db_scripts/test.sql | 170 ------------------- 3 files changed, 171 insertions(+), 303 deletions(-) delete mode 100644 database/db_scripts/test.sql diff --git a/database/db_scripts/create_db.sql b/database/db_scripts/create_db.sql index 2093833..343c50e 100644 --- a/database/db_scripts/create_db.sql +++ b/database/db_scripts/create_db.sql @@ -1,144 +1,170 @@ -CREATE DATABASE 'webshop' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci; - --- example link: https://fabric.inc/blog/commerce/ecommerce-database-design-example - -CREATE TABLE 'user' +CREATE TABLE `discount` ( - id int NOT NULL AUTO_INCREMENT, - lower_name varchar(255), - name varchar(255) NOT NULL, - full_name varchar(255), - email varchar(255) NOT NULL, - passwd varchar(255), - passwd_hash_algo varchar(255), - is_admin bool, - created_at int8, - modified_at int8, - PRIMARY KEY (id), - UNIQUE (email, passwd) + `deleted_at` INT(8) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `description` TEXT NOT NULL, + `discount_percent` DECIMAL(8, 2) NOT NULL, + `modified_at` INT(8) NOT NULL, + `created_at` INT(8) NOT NULL, + `active` BOOLEAN NOT NULL ); - -CREATE TABLE 'user_address' +CREATE TABLE `user_address` ( - id int, - user_id int, - address_line1 varchar(255), - address_line2 varchar(255), - city varchar(255), - postal_code varchar(255), - country varchar(2), - telephone varchar(255), - mobile varchar(255), - UNIQUE (telephone, mobile, user_id) + `address_line1` VARCHAR(255) NOT NULL, + `city` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `country` VARCHAR(2) NOT NULL, + `user_id` INT UNSIGNED NOT NULL, + `mobile` VARCHAR(255) NOT NULL, + `postal_code` INT NOT NULL, + `address_line2` VARCHAR(255) NOT NULL, + `telephone` VARCHAR(255) NOT NULL ); - -CREATE TABLE 'user_payment' +ALTER TABLE + `user_address` + ADD UNIQUE `user_address_mobile_unique` (`mobile`); +ALTER TABLE + `user_address` + ADD UNIQUE `user_address_telephone_unique` (`telephone`); +CREATE TABLE `product_inventory` ( - id int, - user_id int, - payment_type varchar(255), - provider varchar(255), - account_no int, - expiry date, - UNIQUE (user_id) + `created_at` INT(8) NOT NULL, + `modified_at` INT(8) NOT NULL, + `quantity` INT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `deleted_at` INT(8) NOT NULL ); - -CREATE TABLE 'shopping_session' +CREATE TABLE `payment_details` ( - id int, - user_id varchar(255), - total decimal, - created_at int8, - modified_at int8, - UNIQUE (user_id) + `order_id` INT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `status` VARCHAR(255) NOT NULL, + `provider` VARCHAR(255) NOT NULL, + `modified_at` INT(8) NOT NULL, + `amount` INT NOT NULL, + `created_at` INT(8) NOT NULL ); - -CREATE TABLE 'cart_item' +CREATE TABLE `order_details` ( - id int, - session_id int, - product_id int, - quantity int, - created_at int8, - modified_at int8 + `payment_id` INT UNSIGNED NOT NULL, + `total` DECIMAL(8, 2) NOT NULL, + `modified_at` INT(8) NOT NULL, + `created_at` INT(8) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `user_id` INT UNSIGNED NOT NULL ); - -CREATE TABLE 'payment_details' +CREATE TABLE `order_items` ( - id int, - order_id int, - amount int, - provider varchar(255), - status varchar(255), - created_at int8, - modified_at int8 + `modified_at` INT(8) NOT NULL, + `user_id` BIGINT NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `quantity` INT NOT NULL, + `order_id` INT UNSIGNED NOT NULL, + `created_at` INT(8) NOT NULL, + `product_id` INT UNSIGNED NOT NULL ); - -CREATE TABLE 'order_items' +CREATE TABLE `user_payment` ( - id int, - order_id int, - product_id int, - quantity int, - created_at int8, - modified_at int8 + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `provider` VARCHAR(255) NOT NULL, + `account_no` VARCHAR(255) NOT NULL, + `expiry` DATE NOT NULL, + `payment_type` VARCHAR(255) NOT NULL, + `user_id` INT UNSIGNED NOT NULL ); - -CREATE TABLE 'order_details' +CREATE TABLE `product` ( - id int, - user_id varchar(255), - total decimal, - payment_id int, - created_at int8, - modified_at int8 + `category_id` INT UNSIGNED NOT NULL, + `model` VARCHAR(255) NOT NULL, + `color` VARCHAR(255) NOT NULL, + `engine` VARCHAR(255) NOT NULL, + `description` TEXT NOT NULL, + `make` VARCHAR(255) NOT NULL, + `inventory_id` INT UNSIGNED NOT NULL, + `discount_id` INT UNSIGNED NOT NULL, + `created_at` INT(8) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `deleted_at` INT(8) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `modified_at` INT(8) NOT NULL, + `price` DECIMAL(8, 2) NOT NULL ); - -CREATE TABLE 'product' +CREATE TABLE `product_category` ( - id int NOT NULL, - name varchar(255), - color varchar(255), - make varchar(255), - model varchar(255) NOT NULL, - engine varchar(255), - description text, - category_id int, - inventory_id int, - price decimal, - discount_id int, - created_at int8, - modified_at int8, - deleted_at int8 + `created_at` INT(8) NOT NULL, + `name` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `modified_at` INT(8) NOT NULL, + `desc` TEXT NOT NULL, + `deleted_at` INT(8) NOT NULL ); - -CREATE TABLE 'product_category' +CREATE TABLE `user` ( - id int, - name varchar(255), - description text, - created_at int8, - modified_at int8, - deleted_at int8 + `is_active` BOOLEAN NOT NULL, + `lower_name` VARCHAR(255) NOT NULL, + `email` VARCHAR(255) NOT NULL, + `passwd_hash_algo` VARCHAR(255) NOT NULL, + `modified_at` INT(8) NOT NULL, + `is_admin` BOOLEAN NOT NULL, + `name` VARCHAR(255) NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_at` INT(8) NOT NULL, + `passwd` VARCHAR(255) NOT NULL ); - -CREATE TABLE 'product_inventory' +ALTER TABLE + `user` + ADD UNIQUE `user_email_unique` (`email`); +CREATE TABLE `shopping_session` ( - id int, - quantity int, - created_at int8, - modified_at int8, - deleted_at int8 + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_at` INT(8) NOT NULL, + `user_id` INT UNSIGNED NOT NULL, + `modified_at` INT(8) NOT NULL, + `total` DECIMAL(8, 2) NOT NULL ); - -CREATE TABLE 'discount' +CREATE TABLE `cart_item` ( - id int, - name varchar(255), - description text, - discount_percent decimal, - active bool, - created_at int8, - modified_at int8, - deleted_at int8 -) \ No newline at end of file + `product_id` INT UNSIGNED NOT NULL, + `session_id` INT UNSIGNED NOT NULL, + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_at` INT(8) NOT NULL, + `modified_at` INT(8) NOT NULL, + `quantity` INT NOT NULL +); +ALTER TABLE + `product` + ADD CONSTRAINT `product_inventory_id_foreign` FOREIGN KEY (`inventory_id`) REFERENCES `product_inventory` (`id`); +ALTER TABLE + `order_items` + ADD CONSTRAINT `order_items_order_id_foreign` FOREIGN KEY (`order_id`) REFERENCES `order_details` (`id`); +ALTER TABLE + `product` + ADD CONSTRAINT `product_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `product_category` (`id`); +ALTER TABLE + `order_details` + ADD CONSTRAINT `order_details_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `cart_item` + ADD CONSTRAINT `cart_item_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); +ALTER TABLE + `order_items` + ADD CONSTRAINT `order_items_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); +ALTER TABLE + `user_address` + ADD CONSTRAINT `user_address_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `order_details` + ADD CONSTRAINT `order_details_payment_id_foreign` FOREIGN KEY (`payment_id`) REFERENCES `payment_details` (`id`); +ALTER TABLE + `product` + ADD CONSTRAINT `product_discount_id_foreign` FOREIGN KEY (`discount_id`) REFERENCES `discount` (`id`); +ALTER TABLE + `user_payment` + ADD CONSTRAINT `user_payment_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `shopping_session` + ADD CONSTRAINT `shopping_session_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `cart_item` + ADD CONSTRAINT `cart_item_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `shopping_session` (`id`); \ No newline at end of file diff --git a/database/db_scripts/delete_db.sql b/database/db_scripts/delete_db.sql index 6549ee6..29a0cf7 100644 --- a/database/db_scripts/delete_db.sql +++ b/database/db_scripts/delete_db.sql @@ -1,12 +1,24 @@ -DROP TABLE IF EXISTS 'user'; -DROP TABLE IF EXISTS 'user_address'; -DROP TABLE IF EXISTS 'user_payment'; -DROP TABLE IF EXISTS 'shopping_session'; -DROP TABLE IF EXISTS 'cart_item'; -DROP TABLE IF EXISTS 'payment_details'; -DROP TABLE IF EXISTS 'order_items'; -DROP TABLE IF EXISTS 'order_details'; -DROP TABLE IF EXISTS 'product'; -DROP TABLE IF EXISTS 'product_category'; -DROP TABLE IF EXISTS 'product_inventory'; -DROP TABLE IF EXISTS 'discount'; +drop table if exists cart_item; + +drop table if exists discount; + +drop table if exists oder_items; + +drop table if exists order_details; + +drop table if exists payment_details; + +drop table if exists product; + +drop table if exists product_category; + +drop table if exists product_inventory; + +drop table if exists shopping_session; + +drop table if exists user; + +drop table if exists user_address; + +drop table if exists user_payment; + diff --git a/database/db_scripts/test.sql b/database/db_scripts/test.sql deleted file mode 100644 index 70f3efb..0000000 --- a/database/db_scripts/test.sql +++ /dev/null @@ -1,170 +0,0 @@ -CREATE TABLE `discount` -( - `deleted_at` INT(8) NOT NULL, - `name` VARCHAR(255) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `description` TEXT NOT NULL, - `discount_percent` DECIMAL(8, 2) NOT NULL, - `modified_at` INT(8) NOT NULL, - `created_at` INT(8) NOT NULL, - `active` BOOLEAN NOT NULL -); -CREATE TABLE `user_address` -( - `address_line1` VARCHAR(255) NOT NULL, - `city` VARCHAR(255) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `country` VARCHAR(2) NOT NULL, - `user_id` INT NOT NULL, - `mobile` VARCHAR(255) NOT NULL, - `postal_code` INT NOT NULL, - `address_line2` VARCHAR(255) NOT NULL, - `telephone` VARCHAR(255) NOT NULL -); -ALTER TABLE - `user_address` - ADD UNIQUE `user_address_mobile_unique` (`mobile`); -ALTER TABLE - `user_address` - ADD UNIQUE `user_address_telephone_unique` (`telephone`); -CREATE TABLE `product_inventory` -( - `created_at` INT(8) NOT NULL, - `modified_at` INT(8) NOT NULL, - `quantity` INT NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `deleted_at` INT(8) NOT NULL -); -CREATE TABLE `payment_details` -( - `order_id` INT NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `status` VARCHAR(255) NOT NULL, - `provider` VARCHAR(255) NOT NULL, - `modified_at` INT(8) NOT NULL, - `amount` INT NOT NULL, - `created_at` INT(8) NOT NULL -); -CREATE TABLE `order_details` -( - `payment_id` INT NOT NULL, - `total` DECIMAL(8, 2) NOT NULL, - `modified_at` INT(8) NOT NULL, - `created_at` INT(8) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `user_id` INT NOT NULL -); -CREATE TABLE `oder_items` -( - `modified_at` INT(8) NOT NULL, - `user_id` BIGINT NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `quantity` INT NOT NULL, - `order_id` INT NOT NULL, - `created_at` INT(8) NOT NULL, - `product_id` INT NOT NULL -); -CREATE TABLE `user_payment` -( - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `provider` VARCHAR(255) NOT NULL, - `account_no` VARCHAR(255) NOT NULL, - `expiry` DATE NOT NULL, - `payment_type` VARCHAR(255) NOT NULL, - `user_id` INT NOT NULL -); -CREATE TABLE `product` -( - `category_id` INT NOT NULL, - `model` VARCHAR(255) NOT NULL, - `color` VARCHAR(255) NOT NULL, - `engine` VARCHAR(255) NOT NULL, - `description` TEXT NOT NULL, - `make` VARCHAR(255) NOT NULL, - `inventory_id` INT NOT NULL, - `discount_id` INT NOT NULL, - `created_at` INT(8) NOT NULL, - `name` VARCHAR(255) NOT NULL, - `deleted_at` INT(8) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `modified_at` INT(8) NOT NULL, - `price` DECIMAL(8, 2) NOT NULL -); -CREATE TABLE `product_category` -( - `created_at` INT(8) NOT NULL, - `name` VARCHAR(255) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `modified_at` INT(8) NOT NULL, - `desc` TEXT NOT NULL, - `deleted_at` INT(8) NOT NULL -); -CREATE TABLE `user` -( - `is_active` BOOLEAN NOT NULL, - `lower_name` VARCHAR(255) NOT NULL, - `email` VARCHAR(255) NOT NULL, - `passwd_hash_algo` VARCHAR(255) NOT NULL, - `modified_at` INT(8) NOT NULL, - `is_admin` BOOLEAN NOT NULL, - `name` VARCHAR(255) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `created_at` INT(8) NOT NULL, - `passwd` VARCHAR(255) NOT NULL -); -ALTER TABLE - `user` - ADD UNIQUE `user_email_unique` (`email`); -CREATE TABLE `shopping_session` -( - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `created_at` INT(8) NOT NULL, - `user_id` INT NOT NULL, - `modified_at` INT(8) NOT NULL, - `total` DECIMAL(8, 2) NOT NULL -); -CREATE TABLE `cart_item` -( - `product_id` INT NOT NULL, - `session_id` INT NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `created_at` INT(8) NOT NULL, - `modified_at` INT(8) NOT NULL, - `quantity` INT NOT NULL -); -ALTER TABLE - `product` - ADD CONSTRAINT `product_inventory_id_foreign` FOREIGN KEY (`inventory_id`) REFERENCES `product_inventory` (`id`); -ALTER TABLE - `oder_items` - ADD CONSTRAINT `oder_items_order_id_foreign` FOREIGN KEY (`order_id`) REFERENCES `order_details` (`id`); -ALTER TABLE - `product` - ADD CONSTRAINT `product_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `product_category` (`id`); -ALTER TABLE - `order_details` - ADD CONSTRAINT `order_details_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -ALTER TABLE - `cart_item` - ADD CONSTRAINT `cart_item_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); -ALTER TABLE - `oder_items` - ADD CONSTRAINT `oder_items_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); -ALTER TABLE - `user_address` - ADD CONSTRAINT `user_address_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -ALTER TABLE - `order_details` - ADD CONSTRAINT `order_details_payment_id_foreign` FOREIGN KEY (`payment_id`) REFERENCES `payment_details` (`id`); -ALTER TABLE - `product` - ADD CONSTRAINT `product_discount_id_foreign` FOREIGN KEY (`discount_id`) REFERENCES `discount` (`id`); -ALTER TABLE - `user_payment` - ADD CONSTRAINT `user_payment_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -ALTER TABLE - `shopping_session` - ADD CONSTRAINT `shopping_session_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -ALTER TABLE - `cart_item` - ADD CONSTRAINT `cart_item_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `shopping_session` (`id`); \ No newline at end of file -- 2.39.5 From fee0e5c1835f78b4755d879b54750c5a515afea7 Mon Sep 17 00:00:00 2001 From: Ruwen Date: Tue, 19 Nov 2024 18:46:13 +0100 Subject: [PATCH 18/37] =?UTF-8?q?Login=20=C3=BCberarbeitet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/Webshop.iml | 1 + .idea/inspectionProfiles/Project_Default.xml | 19 +++- .idea/jsLibraryMappings.xml | 2 +- public/login/LoginBackround.jpg | Bin 0 -> 546898 bytes public/login/index.html | 47 ++++++--- public/login/style.css | 103 +++++++++++++++++++ 6 files changed, 154 insertions(+), 18 deletions(-) create mode 100644 public/login/LoginBackround.jpg create mode 100644 public/login/style.css diff --git a/.idea/Webshop.iml b/.idea/Webshop.iml index 533a2cb..8b332b7 100644 --- a/.idea/Webshop.iml +++ b/.idea/Webshop.iml @@ -6,5 +6,6 @@ + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index e1cfb03..9687cac 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -6,11 +6,28 @@ + + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml index 9da3653..93218c2 100644 --- a/.idea/jsLibraryMappings.xml +++ b/.idea/jsLibraryMappings.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/public/login/LoginBackround.jpg b/public/login/LoginBackround.jpg new file mode 100644 index 0000000000000000000000000000000000000000..087be4609577e51352a91a770f5b3425eba3bd1f GIT binary patch literal 546898 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

~WnsxRy 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

h4x^-X+&7R&gdJ7X3nMI=RXbEB1r{E!>oXz@& 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

p<&ZZe?BB#v@G$EQkOWV4d^ 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 B-fRE> literal 0 HcmV?d00001 diff --git a/public/login/index.html b/public/login/index.html index f87b425..52e874a 100644 --- a/public/login/index.html +++ b/public/login/index.html @@ -1,24 +1,39 @@ - + - Login + + + + + Loging + -

- -
- -
- +
diff --git a/public/login/style.css b/public/login/style.css new file mode 100644 index 0000000..d3c6d9d --- /dev/null +++ b/public/login/style.css @@ -0,0 +1,103 @@ +{ + margin: 0 +; + padding: 0 +; + box-sizing: border-box +; + font-family: "Poppins", sans-serif +; +} + +body { + display: flex; + justify-content: center; + align-items: center; + min-height: 100vh; + background: url("LoginBackround.jpg"); +} + +.wrapper { + width: 420px; + background: lightgrey; + color: #111111; + border-radius: 15px; + padding: 45px 25px; +} + +.wrapper h1 { + font-size: 36px; + text-align: center; + margin-bottom: 40px; +} + +.wrapper .input-box { + position: relative; + width: 89%; + height: 50px; + margin: 20px 1px; +} + +.input-box input { + width: 100%; + height: 100%; + outline: none; + border: 2px solid rgba(255, 255, 255, .2); + border-radius: 40px; + font-size: 16px; + padding: 0 20px; +} + +.wrapper .input-box input::placeholder { + color: #111111; +} + +.input-box i { + position: absolute; + left: 390px; + top: 50%; + transform: translateY(-50%); + font-size: 20px; + margin-top: 4px; +} + +.wrapper .remember-forgot { + display: flex; + justify-content: space-between; + font-size: 16.5px; + margin: 10px 20px; +} + +.remember-forgot a { + color: #111111; + text-decoration: none; +} + +.remember-forgot a:hover { + text-decoration: underline; +} + +.wrapper .register-link { + font-size: 14px; + text-align: center; +} + +.register-link a { + color: #111111; + text-decoration: none; + margin: -1px 6px; +} + +.register-link a:hover { + text-decoration: underline; +} + +.wrapper .btn { + width: 100%; + height: 50px; + border: none; + outline: none; + margin-top: 40px; + border-radius: 40px; + cursor: pointer; +} -- 2.39.5 From fa7f7d59cb2c875b5d0e369bcaef3b4f4cbe79fe Mon Sep 17 00:00:00 2001 From: vex Date: Wed, 20 Nov 2024 10:02:33 +0100 Subject: [PATCH 19/37] cleaned up files and fixed stylesheet --- public/login/index.html | 2 +- {public => static/Styles}/login/style.css | 2 +- {public/login => static/images}/LoginBackround.jpg | Bin 3 files changed, 2 insertions(+), 2 deletions(-) rename {public => static/Styles}/login/style.css (96%) rename {public/login => static/images}/LoginBackround.jpg (100%) diff --git a/public/login/index.html b/public/login/index.html index 52e874a..a62fea3 100644 --- a/public/login/index.html +++ b/public/login/index.html @@ -4,7 +4,7 @@ - + Loging diff --git a/public/login/style.css b/static/Styles/login/style.css similarity index 96% rename from public/login/style.css rename to static/Styles/login/style.css index d3c6d9d..4d9e32f 100644 --- a/public/login/style.css +++ b/static/Styles/login/style.css @@ -14,7 +14,7 @@ body { justify-content: center; align-items: center; min-height: 100vh; - background: url("LoginBackround.jpg"); + background: url("../../images/LoginBackround.jpg"); } .wrapper { diff --git a/public/login/LoginBackround.jpg b/static/images/LoginBackround.jpg similarity index 100% rename from public/login/LoginBackround.jpg rename to static/images/LoginBackround.jpg -- 2.39.5 From 24b01903efb49ddc45871ea285d9cfcd67a3e7cd Mon Sep 17 00:00:00 2001 From: vextv Date: Wed, 20 Nov 2024 22:41:34 +0100 Subject: [PATCH 20/37] added first working db query and script to fill DB with random data (WIP) --- database/db_scripts/create_db.sql | 18 +++++++++--------- database/db_scripts/fill_database.sql | 13 +++++++++++++ database/query/get_users.js | 17 ----------------- process.env | 2 +- scripts/query/get_users.js | 17 +++++++++++++++++ 5 files changed, 40 insertions(+), 27 deletions(-) create mode 100644 database/db_scripts/fill_database.sql delete mode 100644 database/query/get_users.js create mode 100644 scripts/query/get_users.js diff --git a/database/db_scripts/create_db.sql b/database/db_scripts/create_db.sql index 343c50e..8ce4e11 100644 --- a/database/db_scripts/create_db.sql +++ b/database/db_scripts/create_db.sql @@ -1,10 +1,10 @@ CREATE TABLE `discount` ( - `deleted_at` INT(8) NOT NULL, - `name` VARCHAR(255) NOT NULL, `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(255) NOT NULL, `description` TEXT NOT NULL, `discount_percent` DECIMAL(8, 2) NOT NULL, + `deleted_at` INT(8) NOT NULL, `modified_at` INT(8) NOT NULL, `created_at` INT(8) NOT NULL, `active` BOOLEAN NOT NULL @@ -101,16 +101,16 @@ CREATE TABLE `product_category` ); CREATE TABLE `user` ( - `is_active` BOOLEAN NOT NULL, + `is_active` BOOLEAN NOT NULL DEFAULT '1', `lower_name` VARCHAR(255) NOT NULL, - `email` VARCHAR(255) NOT NULL, - `passwd_hash_algo` VARCHAR(255) NOT NULL, - `modified_at` INT(8) NOT NULL, - `is_admin` BOOLEAN NOT NULL, + `email` VARCHAR(255) NOT NULL DEFAULT 'NONE', + `passwd_hash_algo` VARCHAR(255) NOT NULL DEFAULT 'NONE', + `modified_at` INT(8) NOT NULL DEFAULT '0', + `is_admin` BOOLEAN NOT NULL DEFAULT '0', `name` VARCHAR(255) NOT NULL, `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `created_at` INT(8) NOT NULL, - `passwd` VARCHAR(255) NOT NULL + `created_at` INT(8) NOT NULL DEFAULT '0', + `passwd` VARCHAR(255) NOT NULL DEFAULT 'NONE' ); ALTER TABLE `user` diff --git a/database/db_scripts/fill_database.sql b/database/db_scripts/fill_database.sql new file mode 100644 index 0000000..3b27652 --- /dev/null +++ b/database/db_scripts/fill_database.sql @@ -0,0 +1,13 @@ +CREATE PROCEDURE prepare_data() +BEGIN + DECLARE i INT DEFAULT 1; + + WHILE i < 100 + DO + INSERT INTO webshop.user(is_active, name, lower_name, email) + VALUES ('1', 'harry', 'potter', 'test@test.de'); + SET i = i + 1; + end while; +end; + +CALL prepare_data(); \ No newline at end of file diff --git a/database/query/get_users.js b/database/query/get_users.js deleted file mode 100644 index f899821..0000000 --- a/database/query/get_users.js +++ /dev/null @@ -1,17 +0,0 @@ -const mysql = require('mysql'); - -const connection = mysql.createConnection({ - host: "localhost", - user: "root", - password: "", - database: "webshop" -}); - -connection.connect(function (err) { - if (err) throw err; - console.log("Connected to database"); - connection.query("SELECT * FROM user", function (err, result) { - if (err) throw err; - console.log(result); - }) -}); \ No newline at end of file diff --git a/process.env b/process.env index 840a0a6..13dd02d 100644 --- a/process.env +++ b/process.env @@ -5,4 +5,4 @@ APP_PORT=3000 DB_HOST=172.0.0.1:3306 DB_USER=root DB_PASSWORD= -DB_DATABASE= +DB_DATABASE=webshop diff --git a/scripts/query/get_users.js b/scripts/query/get_users.js new file mode 100644 index 0000000..3f80d31 --- /dev/null +++ b/scripts/query/get_users.js @@ -0,0 +1,17 @@ +const mysql = require('mysql'); + +const connection = mysql.createConnection({ + host: "localhost", + user: "root", + password: "", + database: "webshop" +}) + +connection.connect(function (err) { + if (err) throw err + console.log("Connected to database") + connection.query("SELECT * FROM user WHERE ID = 1", function (err, result) { + if (err) throw err + console.log(result) + }) +}) \ No newline at end of file -- 2.39.5 From 160c9f6299319f4f726af53b8f42c677a027356f Mon Sep 17 00:00:00 2001 From: Ruwen Date: Thu, 21 Nov 2024 09:53:50 +0100 Subject: [PATCH 21/37] Augen Symbol entfernt --- .idea/jsLibraryMappings.xml | 2 +- public/login/index.html | 11 +++++++++-- static/Styles/login/style.css | 1 - 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml index 93218c2..2f279b3 100644 --- a/.idea/jsLibraryMappings.xml +++ b/.idea/jsLibraryMappings.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/public/login/index.html b/public/login/index.html index a62fea3..6494ab5 100644 --- a/public/login/index.html +++ b/public/login/index.html @@ -6,7 +6,12 @@ - Loging + Login + @@ -14,7 +19,9 @@

Login

- +
diff --git a/static/Styles/login/style.css b/static/Styles/login/style.css index 4d9e32f..de143f8 100644 --- a/static/Styles/login/style.css +++ b/static/Styles/login/style.css @@ -58,7 +58,6 @@ body { top: 50%; transform: translateY(-50%); font-size: 20px; - margin-top: 4px; } .wrapper .remember-forgot { -- 2.39.5 From ce8cf93f4690aa9beccb2637f69ece9a55eba2e7 Mon Sep 17 00:00:00 2001 From: vex Date: Fri, 22 Nov 2024 11:38:58 +0100 Subject: [PATCH 22/37] added working routine to fill "user" table with data --- database/db_scripts/fill_database.sql | 7 +++++-- scripts/query/get_users.js | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/database/db_scripts/fill_database.sql b/database/db_scripts/fill_database.sql index 3b27652..b54923f 100644 --- a/database/db_scripts/fill_database.sql +++ b/database/db_scripts/fill_database.sql @@ -1,13 +1,16 @@ CREATE PROCEDURE prepare_data() BEGIN DECLARE i INT DEFAULT 1; + DECLARE emailString CHAR(16) DEFAULT 'test'; + WHILE i < 100 DO + SET emailString = CONCAT(emailString, CAST(i AS CHAR(16)), '@test.de'); INSERT INTO webshop.user(is_active, name, lower_name, email) - VALUES ('1', 'harry', 'potter', 'test@test.de'); + VALUES ('1', 'harry', 'potter', emailString); SET i = i + 1; end while; end; -CALL prepare_data(); \ No newline at end of file +#CALL prepare_data(); \ No newline at end of file diff --git a/scripts/query/get_users.js b/scripts/query/get_users.js index 3f80d31..42de95b 100644 --- a/scripts/query/get_users.js +++ b/scripts/query/get_users.js @@ -10,7 +10,7 @@ const connection = mysql.createConnection({ connection.connect(function (err) { if (err) throw err console.log("Connected to database") - connection.query("SELECT * FROM user WHERE ID = 1", function (err, result) { + connection.query("SELECT * FROM webshop.user WHERE ID = 1", function (err, result) { if (err) throw err console.log(result) }) -- 2.39.5 From 6681b29d51db0987ebaca38512aaddd94de4ce8a Mon Sep 17 00:00:00 2001 From: vex Date: Fri, 22 Nov 2024 12:40:38 +0100 Subject: [PATCH 23/37] cleaned up code --- database/db_scripts/delete_db.sql | 3 +-- database/db_scripts/fill_database.sql | 9 ++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/database/db_scripts/delete_db.sql b/database/db_scripts/delete_db.sql index 29a0cf7..58f5dfd 100644 --- a/database/db_scripts/delete_db.sql +++ b/database/db_scripts/delete_db.sql @@ -20,5 +20,4 @@ drop table if exists user; drop table if exists user_address; -drop table if exists user_payment; - +drop table if exists user_payment; \ No newline at end of file diff --git a/database/db_scripts/fill_database.sql b/database/db_scripts/fill_database.sql index b54923f..523ec8b 100644 --- a/database/db_scripts/fill_database.sql +++ b/database/db_scripts/fill_database.sql @@ -1,8 +1,9 @@ -CREATE PROCEDURE prepare_data() +CREATE PROCEDURE fill_user_table() BEGIN DECLARE i INT DEFAULT 1; DECLARE emailString CHAR(16) DEFAULT 'test'; + DELETE FROM webshop.user; WHILE i < 100 DO @@ -10,7 +11,5 @@ BEGIN INSERT INTO webshop.user(is_active, name, lower_name, email) VALUES ('1', 'harry', 'potter', emailString); SET i = i + 1; - end while; -end; - -#CALL prepare_data(); \ No newline at end of file + END WHILE; +END; \ No newline at end of file -- 2.39.5 From 67e5d2085406c906e69e4ac093145ee31bd28944 Mon Sep 17 00:00:00 2001 From: vex Date: Tue, 7 Jan 2025 12:02:09 +0100 Subject: [PATCH 24/37] =?UTF-8?q?absoluter=20pfad=20f=C3=BCr=20.env=20date?= =?UTF-8?q?ien=20notwendig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 122 ++++++++++++++++++++++++++++++++++ package.json | 1 + process.env | 2 +- scripts/modules/db-connect.js | 2 +- scripts/modules/test.js | 9 +++ scripts/query/get_users.js | 2 +- 6 files changed, 135 insertions(+), 3 deletions(-) create mode 100644 scripts/modules/test.js diff --git a/package-lock.json b/package-lock.json index 3460d88..016df15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "express": "^4.21.1", "express-session": "^1.18.1", "mysql": "^2.18.1", + "mysql2": "^3.12.0", "path": "^0.12.7" } }, @@ -33,6 +34,15 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "node_modules/aws-ssl-profiles": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/bignumber.js": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", @@ -151,6 +161,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -338,6 +357,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "license": "MIT", + "dependencies": { + "is-property": "^1.0.2" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -450,11 +478,47 @@ "node": ">= 0.10" } }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "license": "MIT" + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/lru.min": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.1.tgz", + "integrity": "sha512-FbAj6lXil6t8z4z3j0E5mfRlPzxkySotzUHwRXjlpRh10vc6AI6WN62ehZj82VG7M20rqogJ0GLwar2Xa05a8Q==", + "license": "MIT", + "engines": { + "bun": ">=1.0.0", + "deno": ">=1.30.0", + "node": ">=8.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wellwelwel" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -533,6 +597,59 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "node_modules/mysql2": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.12.0.tgz", + "integrity": "sha512-C8fWhVysZoH63tJbX8d10IAoYCyXy4fdRFz2Ihrt9jtPILYynFEKUUzpp1U7qxzDc3tMbotvaBH+sl6bFnGZiw==", + "license": "MIT", + "dependencies": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru.min": "^1.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "license": "MIT", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -741,6 +858,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, "node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", diff --git a/package.json b/package.json index 27b6f65..74a3901 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "express": "^4.21.1", "express-session": "^1.18.1", "mysql": "^2.18.1", + "mysql2": "^3.12.0", "path": "^0.12.7" } } diff --git a/process.env b/process.env index 13dd02d..237aa94 100644 --- a/process.env +++ b/process.env @@ -2,7 +2,7 @@ APP_PORT=3000 # configuration for db access -DB_HOST=172.0.0.1:3306 +DB_HOST=localhost DB_USER=root DB_PASSWORD= DB_DATABASE=webshop diff --git a/scripts/modules/db-connect.js b/scripts/modules/db-connect.js index 00b0540..037d14d 100644 --- a/scripts/modules/db-connect.js +++ b/scripts/modules/db-connect.js @@ -1,5 +1,5 @@ const mysql = require('mysql2'); -require('dotenv').config({path:'process.env'}); +require('dotenv').config({path: 'C:/Daten/Webshop/process.env'}); const connection = mysql.createConnection({ host : process.env.DB_HOST, diff --git a/scripts/modules/test.js b/scripts/modules/test.js new file mode 100644 index 0000000..4946a75 --- /dev/null +++ b/scripts/modules/test.js @@ -0,0 +1,9 @@ +require('mysql2') +var connection = require('./db-connect') +connection.query("SELECT * FROM webshop.user WHERE ID = 15", function (err, result) { + if (err) throw err + console.log(result) +}) +connection.end() + +// require("dotenv").config({path:'C:/Daten/Webshop/process.env'}) \ No newline at end of file diff --git a/scripts/query/get_users.js b/scripts/query/get_users.js index 42de95b..72caeef 100644 --- a/scripts/query/get_users.js +++ b/scripts/query/get_users.js @@ -10,7 +10,7 @@ const connection = mysql.createConnection({ connection.connect(function (err) { if (err) throw err console.log("Connected to database") - connection.query("SELECT * FROM webshop.user WHERE ID = 1", function (err, result) { + connection.query("SELECT * FROM webshop.user WHERE ID = 15", function (err, result) { if (err) throw err console.log(result) }) -- 2.39.5 From 2897a9c0a3a76b66972ab4bc9d68e7c8a16a15b1 Mon Sep 17 00:00:00 2001 From: vextv Date: Tue, 7 Jan 2025 20:37:25 +0100 Subject: [PATCH 25/37] =?UTF-8?q?NPM=20'app-root-path'=20Modul=20eingebaut?= =?UTF-8?q?=20um=20absolute=20Pfade=20f=C3=BCr=20.js=20zu=20vermeiden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- scripts/modules/db-connect.js | 2 ++ scripts/modules/test.js | 11 ++++++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index d3e6c52..a2b6d9c 100644 --- a/.gitignore +++ b/.gitignore @@ -104,7 +104,6 @@ dist # vuepress v2.x temp and cache directory .temp -.cache # Docusaurus cache and generated files .docusaurus @@ -132,3 +131,5 @@ dist .pnp.* /.idea/git_toolbox_blame.xml +.package.json +.package-lock.json \ No newline at end of file diff --git a/scripts/modules/db-connect.js b/scripts/modules/db-connect.js index 037d14d..97419f7 100644 --- a/scripts/modules/db-connect.js +++ b/scripts/modules/db-connect.js @@ -1,5 +1,7 @@ const mysql = require('mysql2'); require('dotenv').config({path: 'C:/Daten/Webshop/process.env'}); +//to-do: '.env' Dateien aus anderen Directories aufrufen ohne absoluten Pfad +// require("dotenv").config({path:'C:/Daten/Webshop/process.env'}) const connection = mysql.createConnection({ host : process.env.DB_HOST, diff --git a/scripts/modules/test.js b/scripts/modules/test.js index 4946a75..f101177 100644 --- a/scripts/modules/test.js +++ b/scripts/modules/test.js @@ -1,9 +1,10 @@ require('mysql2') -var connection = require('./db-connect') -connection.query("SELECT * FROM webshop.user WHERE ID = 15", function (err, result) { + +let appRoot = require('app-root-path') +let dbConnect = require(appRoot + '/scripts/modules/db-connect.js') + +dbConnect.query("SELECT * FROM webshop.user WHERE ID = 0", function (err, result) { if (err) throw err console.log(result) }) -connection.end() - -// require("dotenv").config({path:'C:/Daten/Webshop/process.env'}) \ No newline at end of file +dbConnect.end() \ No newline at end of file -- 2.39.5 From 0907e841101f2146de024230de8927bb6388a367 Mon Sep 17 00:00:00 2001 From: vex Date: Wed, 8 Jan 2025 12:41:06 +0100 Subject: [PATCH 26/37] login skript erstellt --- scripts/modules/{test.js => login.js} | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) rename scripts/modules/{test.js => login.js} (54%) diff --git a/scripts/modules/test.js b/scripts/modules/login.js similarity index 54% rename from scripts/modules/test.js rename to scripts/modules/login.js index f101177..454dccc 100644 --- a/scripts/modules/test.js +++ b/scripts/modules/login.js @@ -1,9 +1,11 @@ require('mysql2') +let userInput = "test1" + let appRoot = require('app-root-path') let dbConnect = require(appRoot + '/scripts/modules/db-connect.js') -dbConnect.query("SELECT * FROM webshop.user WHERE ID = 0", function (err, result) { +dbConnect.query("SELECT * FROM webshop.user WHERE email = " + "'" + userInput + "'", function (err, result) { if (err) throw err console.log(result) }) -- 2.39.5 From e8a0823631bb320678c3c27e3244d8f8cdd19670 Mon Sep 17 00:00:00 2001 From: gitfreeking Date: Fri, 10 Jan 2025 09:47:17 +0100 Subject: [PATCH 27/37] Startseite erstellt --- .idea/dataSources.xml | 2 +- package-lock.json | 30 ++-- package.json | 4 +- public/index.html | 14 -- public/startseite.html | 87 +++++++++++ scripts/routes/other/route-index.js | 2 +- static/Styles/startseite/style.css | 234 ++++++++++++++++++++++++++++ 7 files changed, 343 insertions(+), 30 deletions(-) delete mode 100644 public/index.html create mode 100644 public/startseite.html create mode 100644 static/Styles/startseite/style.css diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index f3b232c..935ffdb 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,7 +1,7 @@ - + mysql.8 true com.mysql.cj.jdbc.Driver diff --git a/package-lock.json b/package-lock.json index 3460d88..12c8b6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,8 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "dotenv": "^16.4.5", - "express": "^4.21.1", + "dotenv": "^16.4.7", + "express": "^4.21.2", "express-session": "^1.18.1", "mysql": "^2.18.1", "path": "^0.12.7" @@ -169,9 +169,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -226,9 +226,10 @@ } }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -249,7 +250,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -264,6 +265,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express-session": { @@ -589,9 +594,10 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" }, "node_modules/process": { "version": "0.11.10", diff --git a/package.json b/package.json index 27b6f65..eb23671 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "license": "ISC", "description": "Webshop Autohändler", "dependencies": { - "dotenv": "^16.4.5", - "express": "^4.21.1", + "dotenv": "^16.4.7", + "express": "^4.21.2", "express-session": "^1.18.1", "mysql": "^2.18.1", "path": "^0.12.7" diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 3f4e590..0000000 --- a/public/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - Document - - - -

Hello there...

-Test -Login - - \ No newline at end of file diff --git a/public/startseite.html b/public/startseite.html new file mode 100644 index 0000000..0aa7b59 --- /dev/null +++ b/public/startseite.html @@ -0,0 +1,87 @@ + + + + + + Autohändler Webshop + + + + + +
+ +
+

Autohändler Webshop

+
+ +
+ + 0 +
+
+
+ + + + + +
+ + +
+
+ Auto +

BMW 3er Limousine

+

Preis: 35.000€

+

Baujahr: 2020 | Kilometerstand: 20.000 km

+ +
+
+ Auto +

Audi Q5

+

Preis: 50.000€

+

Baujahr: 2022 | Kilometerstand: 10.000 km

+ +
+
+
+
+ + + + + diff --git a/scripts/routes/other/route-index.js b/scripts/routes/other/route-index.js index 562512e..34691e1 100644 --- a/scripts/routes/other/route-index.js +++ b/scripts/routes/other/route-index.js @@ -2,7 +2,7 @@ const path = require('path'); const router = require('express').Router(); router.get('/', (req, res) => { - res.sendFile(path.join(__dirname, '../../../public/index.html')); + res.sendFile(path.join(__dirname, '../../../public/startseite.html')); }) router.get('/example', (req, res) => { diff --git a/static/Styles/startseite/style.css b/static/Styles/startseite/style.css new file mode 100644 index 0000000..d9450fe --- /dev/null +++ b/static/Styles/startseite/style.css @@ -0,0 +1,234 @@ +/* Allgemeine Einstellungen */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: "Poppins", sans-serif; +} + +body { + background: #f8f9fa; + color: #333; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* Header */ +header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 15px 20px; + width: 100%; + background: #ffffff; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + position: sticky; + top: 0; + z-index: 1000; +} + +header h1 { + font-size: 28px; + color: #333; +} + +.header-right { + display: flex; + align-items: center; + gap: 15px; +} + +header .login-btn { + font-size: 14px; + text-decoration: none; + color: white; + background: #ff6600; + padding: 10px 20px; + border-radius: 25px; + transition: background 0.3s ease; +} + +header .login-btn:hover { + background: #e95b00; +} + +.cart { + display: flex; + align-items: center; + position: relative; + font-size: 24px; + color: #ff6600; + cursor: pointer; +} + +.cart-count { + position: absolute; + top: -5px; + right: -10px; + background: #ff6600; + color: white; + font-size: 12px; + width: 20px; + height: 20px; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; +} + +/* Navigation */ +.menu { + background: #ffffff; + width: 100%; + margin-bottom: 20px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +.menu-list { + list-style: none; + display: flex; + justify-content: space-around; + padding: 15px 0; +} + +.menu-item { + position: relative; +} + +.menu-item a { + text-decoration: none; + color: #333; + font-size: 18px; + padding: 10px 20px; + transition: background 0.3s ease, color 0.3s ease; +} + +.menu-item a:hover { + background: #ff6600; + color: white; + border-radius: 10px; +} + +/* Submenu */ +.submenu { + position: absolute; + top: 100%; + left: 0; + background: #ffffff; + border-radius: 10px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + display: none; + list-style: none; + min-width: 200px; + z-index: 10; +} + +.submenu li { + padding: 10px 20px; +} + +.submenu li a { + color: #333; +} + +.submenu li a:hover { + color: white; + background: #ff6600; + border-radius: 5px; +} + +.menu-item:hover .submenu { + display: block; +} + +/* Suchleiste */ +.search-bar { + display: flex; + gap: 15px; + width: 100%; + padding: 20px; + background: #ffffff; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + position: sticky; + top: 65px; + z-index: 1000; +} + +.search-bar input, +.search-bar select { + padding: 12px; + font-size: 16px; + border: 1px solid #ddd; + border-radius: 5px; + flex: 1; +} + +.search-bar button { + padding: 12px 20px; + background: #ff6600; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + transition: background 0.3s ease; +} + +.search-bar button:hover { + background: #e95b00; +} + +/* Karten */ +.card-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 20px; + width: 100%; + padding: 20px; +} + +.card { + background: #ffffff; + border-radius: 10px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + text-align: center; + padding: 20px; + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.card img { + max-width: 100%; + height: auto; + border-radius: 10px; + margin-bottom: 10px; +} + +.card h3 { + font-size: 20px; + color: #333; + margin: 10px 0; +} + +.card p { + font-size: 14px; + color: #666; + margin: 5px 0; +} + +.add-to-cart { + background: #ff6600; + color: white; + border: none; + padding: 12px 20px; + border-radius: 25px; + margin-top: 10px; + cursor: pointer; + transition: background 0.3s ease; +} + +.add-to-cart:hover { + background: #e95b00; +} -- 2.39.5 From 96378d1ad6ff83867aff46ac142d62eb81a69b12 Mon Sep 17 00:00:00 2001 From: gitfreeking Date: Thu, 27 Feb 2025 10:36:43 +0100 Subject: [PATCH 28/37] startseite.html und registrieren.html erstellt. Keine 100%. --- public/example/index.html | 41 --- public/login/index.html | 49 --- public/login/login.html | 33 ++ public/registrieren/passwordValidation.js | 45 +++ public/registrieren/registrieren.html | 51 ++++ public/{ => startseite}/startseite.html | 2 +- scripts/routes/other/route-index.js | 8 +- static/Styles/example.css | 288 +++++++++++++----- static/Styles/login/login.css | 109 +++++++ static/Styles/login/style.css | 102 ------- static/Styles/registrieren/registrieren.css | 129 ++++++++ .../startseite/{style.css => startseite.css} | 0 12 files changed, 585 insertions(+), 272 deletions(-) delete mode 100644 public/example/index.html delete mode 100644 public/login/index.html create mode 100644 public/login/login.html create mode 100644 public/registrieren/passwordValidation.js create mode 100644 public/registrieren/registrieren.html rename public/{ => startseite}/startseite.html (97%) create mode 100644 static/Styles/login/login.css delete mode 100644 static/Styles/login/style.css create mode 100644 static/Styles/registrieren/registrieren.css rename static/Styles/startseite/{style.css => startseite.css} (100%) diff --git a/public/example/index.html b/public/example/index.html deleted file mode 100644 index 738501c..0000000 --- a/public/example/index.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - Homepage - - - - -
-
-
-
-

header

-
-
- -
-
-

main

-
-
-

right

-
- -
-
-
- - - - - \ No newline at end of file diff --git a/public/login/index.html b/public/login/index.html deleted file mode 100644 index 6494ab5..0000000 --- a/public/login/index.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - Login - - - - -
- -

Login

-
- - -
-
- - -
- -
- - Passwort vergessen? -
- - - - - - -
- - - - - \ No newline at end of file diff --git a/public/login/login.html b/public/login/login.html new file mode 100644 index 0000000..3a14541 --- /dev/null +++ b/public/login/login.html @@ -0,0 +1,33 @@ + + + + + + + + Login + + +
+
+

Login

+
+ + +
+
+ + +
+ + + + +
+
+ + + diff --git a/public/registrieren/passwordValidation.js b/public/registrieren/passwordValidation.js new file mode 100644 index 0000000..3a6fbc2 --- /dev/null +++ b/public/registrieren/passwordValidation.js @@ -0,0 +1,45 @@ +// Funktion, um die Stärke des Passworts zu bewerten +function checkPasswordStrength(password) { + const strengthBar = document.getElementById('passwordStrengthBar'); + const passwordStrength = evaluatePasswordStrength(password); + + // Aktualisiere den Sicherheitsbalken basierend auf der Stärke + if (passwordStrength === 'weak') { + strengthBar.classList.remove('medium', 'strong'); + strengthBar.classList.add('weak'); + } else if (passwordStrength === 'medium') { + strengthBar.classList.remove('weak', 'strong'); + strengthBar.classList.add('medium'); + } else { + strengthBar.classList.remove('weak', 'medium'); + strengthBar.classList.add('strong'); + } +} + +// Funktion zur Beurteilung der Passwortstärke +function evaluatePasswordStrength(password) { + if (password.length >= 8 && /[A-Z]/.test(password) && /[0-9]/.test(password)) { + return 'strong'; + } else if (password.length >= 6) { + return 'medium'; + } else { + return 'weak'; + } +} + +// Event Listener für das Passwortfeld +document.getElementById('regPassword').addEventListener('input', function() { + checkPasswordStrength(this.value); +}); + +// Event Listener für das Bestätigungs-Passwortfeld +document.getElementById('confirmPassword').addEventListener('input', function() { + const password = document.getElementById('regPassword').value; + const confirmPassword = this.value; + + if (password !== confirmPassword) { + this.setCustomValidity("Die Passwörter stimmen nicht überein."); + } else { + this.setCustomValidity(""); + } +}); diff --git a/public/registrieren/registrieren.html b/public/registrieren/registrieren.html new file mode 100644 index 0000000..f95b594 --- /dev/null +++ b/public/registrieren/registrieren.html @@ -0,0 +1,51 @@ + + + + + + + + Registrieren + + +
+
+

Registrieren

+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ + +
+ + + + + +
+
+ + + diff --git a/public/startseite.html b/public/startseite/startseite.html similarity index 97% rename from public/startseite.html rename to public/startseite/startseite.html index 0aa7b59..7640721 100644 --- a/public/startseite.html +++ b/public/startseite/startseite.html @@ -4,7 +4,7 @@ Autohändler Webshop - + diff --git a/scripts/routes/other/route-index.js b/scripts/routes/other/route-index.js index 34691e1..227b036 100644 --- a/scripts/routes/other/route-index.js +++ b/scripts/routes/other/route-index.js @@ -2,7 +2,7 @@ const path = require('path'); const router = require('express').Router(); router.get('/', (req, res) => { - res.sendFile(path.join(__dirname, '../../../public/startseite.html')); + res.sendFile(path.join(__dirname, '../../../public/startseite/startseite.html')); }) router.get('/example', (req, res) => { @@ -10,7 +10,11 @@ router.get('/example', (req, res) => { }) router.get('/login', (req, res) => { - res.sendFile(path.join(__dirname, '../../../public/login/index.html')); + res.sendFile(path.join(__dirname, '../../../public/login/login.html')); +}) + +router.get('/registrieren', (req, res) => { + res.sendFile(path.join(__dirname, '../../../public/registrieren/registrieren.html')); }) module.exports = router; \ No newline at end of file diff --git a/static/Styles/example.css b/static/Styles/example.css index 024d1c7..d9450fe 100644 --- a/static/Styles/example.css +++ b/static/Styles/example.css @@ -1,100 +1,234 @@ -/* The sidebar menu */ -.sidebar { - height: 100%; /* 100% Full-height */ - width: 0; /* 0 width - change this with JavaScript */ - position: fixed; /* Stay in place */ - z-index: 1; /* Stay on top */ - top: 0; - left: 0; - background-color: #111; /* Black*/ - overflow-x: hidden; /* Disable horizontal scroll */ - padding-top: 60px; /* Place content 60px from the top */ - transition: 0.5s; /* 0.5 second transition effect to slide in the sidebar */ - font-family: "Agency FB"; +/* Allgemeine Einstellungen */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: "Poppins", sans-serif; } -/* The sidebar links */ -.sidebar a { - padding: 8px 8px 8px 32px; +body { + background: #f8f9fa; + color: #333; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* Header */ +header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 15px 20px; + width: 100%; + background: #ffffff; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + position: sticky; + top: 0; + z-index: 1000; +} + +header h1 { + font-size: 28px; + color: #333; +} + +.header-right { + display: flex; + align-items: center; + gap: 15px; +} + +header .login-btn { + font-size: 14px; text-decoration: none; - font-size: 25px; - color: #818181; - display: block; - transition: 0.3s; -} - -/* When you mouse over the navigation links, change their color */ -.sidebar a:hover { - color: #f1f1f1; -} - -/* Position and style the close button (top right corner) */ -.sidebar .closebtn { - position: absolute; - top: 0; - right: 25px; - font-size: 36px; - margin-left: 50px; -} - -/* The button used to open the sidebar */ -.openbtn { - font-size: 20px; - cursor: pointer; - background-color: #111; color: white; - padding: 10px 15px; + background: #ff6600; + padding: 10px 20px; + border-radius: 25px; + transition: background 0.3s ease; +} + +header .login-btn:hover { + background: #e95b00; +} + +.cart { + display: flex; + align-items: center; + position: relative; + font-size: 24px; + color: #ff6600; + cursor: pointer; +} + +.cart-count { + position: absolute; + top: -5px; + right: -10px; + background: #ff6600; + color: white; + font-size: 12px; + width: 20px; + height: 20px; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; +} + +/* Navigation */ +.menu { + background: #ffffff; + width: 100%; + margin-bottom: 20px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +.menu-list { + list-style: none; + display: flex; + justify-content: space-around; + padding: 15px 0; +} + +.menu-item { + position: relative; +} + +.menu-item a { + text-decoration: none; + color: #333; + font-size: 18px; + padding: 10px 20px; + transition: background 0.3s ease, color 0.3s ease; +} + +.menu-item a:hover { + background: #ff6600; + color: white; + border-radius: 10px; +} + +/* Submenu */ +.submenu { + position: absolute; + top: 100%; + left: 0; + background: #ffffff; + border-radius: 10px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + display: none; + list-style: none; + min-width: 200px; + z-index: 10; +} + +.submenu li { + padding: 10px 20px; +} + +.submenu li a { + color: #333; +} + +.submenu li a:hover { + color: white; + background: #ff6600; + border-radius: 5px; +} + +.menu-item:hover .submenu { + display: block; +} + +/* Suchleiste */ +.search-bar { + display: flex; + gap: 15px; + width: 100%; + padding: 20px; + background: #ffffff; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + position: sticky; + top: 65px; + z-index: 1000; +} + +.search-bar input, +.search-bar select { + padding: 12px; + font-size: 16px; + border: 1px solid #ddd; + border-radius: 5px; + flex: 1; +} + +.search-bar button { + padding: 12px 20px; + background: #ff6600; + color: white; border: none; + border-radius: 5px; + cursor: pointer; + transition: background 0.3s ease; } -.openbtn:hover { - background-color: #444; +.search-bar button:hover { + background: #e95b00; } -/* Style page content - use this if you want to push the page content to the right when you open the side navigation */ -#main { - transition: margin-left .5s; /* If you want a transition effect */ +/* Karten */ +.card-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 20px; + width: 100%; padding: 20px; } -/* On smaller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */ -@media screen and (max-height: 450px) { - .sidebar { - padding-top: 15px; - } - - .sidebar a { - font-size: 18px; - } +.card { + background: #ffffff; + border-radius: 10px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + text-align: center; + padding: 20px; + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; } - -/* grid layout for the content */ -.grid-container { - display: grid; - grid-template-areas: 'left header header' - 'left main right' - 'footer footer footer'; - grid-template-columns: [left] 80px [line2] calc(100% - 160px) [line3] 80px [right]; - grid-template-rows: [top] 80px [line2] calc(100% - 160px) [line3] 80px [bottom]; +.card img { + max-width: 100%; + height: auto; + border-radius: 10px; + margin-bottom: 10px; } -.left { - grid-area: left; +.card h3 { + font-size: 20px; + color: #333; + margin: 10px 0; } -.right { - grid-area: right; +.card p { + font-size: 14px; + color: #666; + margin: 5px 0; } -.header { - grid-area: header; +.add-to-cart { + background: #ff6600; + color: white; + border: none; + padding: 12px 20px; + border-radius: 25px; + margin-top: 10px; + cursor: pointer; + transition: background 0.3s ease; } -.main { - grid-area: main; +.add-to-cart:hover { + background: #e95b00; } - -.footer { - grid-area: footer; -} \ No newline at end of file diff --git a/static/Styles/login/login.css b/static/Styles/login/login.css new file mode 100644 index 0000000..7ff8038 --- /dev/null +++ b/static/Styles/login/login.css @@ -0,0 +1,109 @@ +/* Allgemeine Einstellungen */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: "Poppins", sans-serif; +} + +body { + background: #f8f9fa; + color: #333; + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; +} + +/* Wrapper */ +.wrapper { + background: #ffffff; + padding: 40px; + border-radius: 10px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + max-width: 400px; + width: 100%; +} + +h1 { + font-size: 24px; + text-align: center; + color: #333; + margin-bottom: 20px; +} + +/* Input-Box */ +.input-box { + position: relative; + margin-bottom: 20px; +} + +.input-box input { + width: 100%; + padding: 12px 40px 12px 15px; + border: 1px solid #ddd; + border-radius: 5px; + font-size: 16px; + color: #333; +} + +/* Styling für das Schloss-Icon */ +.input-box i { + position: absolute; + top: 50%; + right: 15px; + transform: translateY(-50%); + color: #888; + font-size: 20px; + cursor: pointer; +} + +/* Remember and Forgot */ +.remember-forgot { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + font-size: 14px; +} + +.remember-forgot a { + color: #ff6600; + text-decoration: none; +} + +.remember-forgot a:hover { + text-decoration: underline; +} + +/* Button */ +.btn { + width: 100%; + padding: 12px 20px; + background: #ff6600; + color: white; + border: none; + border-radius: 5px; + font-size: 16px; + cursor: pointer; + transition: background 0.3s ease; +} + +.btn:hover { + background: #e95b00; +} + +/* Register-Link */ +.register-link { + text-align: center; + font-size: 14px; +} + +.register-link a { + color: #ff6600; + text-decoration: none; +} + +.register-link a:hover { + text-decoration: underline; +} \ No newline at end of file diff --git a/static/Styles/login/style.css b/static/Styles/login/style.css deleted file mode 100644 index de143f8..0000000 --- a/static/Styles/login/style.css +++ /dev/null @@ -1,102 +0,0 @@ -{ - margin: 0 -; - padding: 0 -; - box-sizing: border-box -; - font-family: "Poppins", sans-serif -; -} - -body { - display: flex; - justify-content: center; - align-items: center; - min-height: 100vh; - background: url("../../images/LoginBackround.jpg"); -} - -.wrapper { - width: 420px; - background: lightgrey; - color: #111111; - border-radius: 15px; - padding: 45px 25px; -} - -.wrapper h1 { - font-size: 36px; - text-align: center; - margin-bottom: 40px; -} - -.wrapper .input-box { - position: relative; - width: 89%; - height: 50px; - margin: 20px 1px; -} - -.input-box input { - width: 100%; - height: 100%; - outline: none; - border: 2px solid rgba(255, 255, 255, .2); - border-radius: 40px; - font-size: 16px; - padding: 0 20px; -} - -.wrapper .input-box input::placeholder { - color: #111111; -} - -.input-box i { - position: absolute; - left: 390px; - top: 50%; - transform: translateY(-50%); - font-size: 20px; -} - -.wrapper .remember-forgot { - display: flex; - justify-content: space-between; - font-size: 16.5px; - margin: 10px 20px; -} - -.remember-forgot a { - color: #111111; - text-decoration: none; -} - -.remember-forgot a:hover { - text-decoration: underline; -} - -.wrapper .register-link { - font-size: 14px; - text-align: center; -} - -.register-link a { - color: #111111; - text-decoration: none; - margin: -1px 6px; -} - -.register-link a:hover { - text-decoration: underline; -} - -.wrapper .btn { - width: 100%; - height: 50px; - border: none; - outline: none; - margin-top: 40px; - border-radius: 40px; - cursor: pointer; -} diff --git a/static/Styles/registrieren/registrieren.css b/static/Styles/registrieren/registrieren.css new file mode 100644 index 0000000..1027480 --- /dev/null +++ b/static/Styles/registrieren/registrieren.css @@ -0,0 +1,129 @@ +/* Allgemeine Einstellungen */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: "Poppins", sans-serif; +} + +body { + background: #f8f9fa; + color: #333; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* Wrapper für das Formular */ +.wrapper { + width: 100%; + max-width: 400px; + margin: 50px auto; + padding: 20px; + background: #fff; + border-radius: 10px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +h1 { + text-align: center; + margin-bottom: 20px; + color: #333; +} + +/* Eingabefelder */ +.input-box { + position: relative; + margin-bottom: 20px; +} + +/* Textfelder */ +.input-box input { + width: 100%; + padding: 12px 15px; + font-size: 16px; + border: 1px solid #ddd; + border-radius: 5px; + outline: none; + padding-left: 40px; /* Platz für das Icon */ +} + +/* Positionierung der Icons */ +.input-box i { + position: absolute; + top: 50%; + left: 10px; + transform: translateY(-50%); + font-size: 18px; + color: #888; +} + +/* Passwortfeld */ +.input-box input[type="password"] { + padding-right: 40px; /* Platz für das Passwort-Symbol rechts */ +} + +/* Positionierung des Passwort-Symbols */ +#toggleRegPassword { + position: absolute; + top: 50%; + right: 10px; + transform: translateY(-50%); + font-size: 18px; + color: #888; + cursor: pointer; +} + +/* Passwort Sicherheitsbalken */ +.password-strength-bar { + width: 100%; + height: 5px; + background-color: #ddd; + border-radius: 5px; + margin-top: 10px; +} + +/* Sicherheitsstufen */ +.password-strength-bar.weak { + background-color: #f44336; /* Rot für schwach */ +} + +.password-strength-bar.medium { + background-color: #ff9800; /* Orange für mittel */ +} + +.password-strength-bar.strong { + background-color: #4caf50; /* Grün für stark */ +} + +/* Button */ +.btn { + width: 100%; + padding: 12px; + background: #ff6600; + color: white; + border: none; + border-radius: 25px; + font-size: 16px; + cursor: pointer; + transition: background 0.3s ease; +} + +.btn:hover { + background: #e95b00; +} + +/* Registrierung-Link */ +.register-link { + text-align: center; + margin-top: 20px; +} + +.register-link a { + text-decoration: none; + color: #ff6600; +} + +.register-link a:hover { + color: #e95b00; +} diff --git a/static/Styles/startseite/style.css b/static/Styles/startseite/startseite.css similarity index 100% rename from static/Styles/startseite/style.css rename to static/Styles/startseite/startseite.css -- 2.39.5 From 3bab7599c7723a5ff5a012f7d6c99b4f608e75b4 Mon Sep 17 00:00:00 2001 From: vex Date: Thu, 27 Feb 2025 11:16:17 +0100 Subject: [PATCH 29/37] changed gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index a2b6d9c..97fad76 100644 --- a/.gitignore +++ b/.gitignore @@ -132,4 +132,6 @@ dist /.idea/git_toolbox_blame.xml .package.json +.package-lock.json +.package.json .package-lock.json \ No newline at end of file -- 2.39.5 From 1670b943f798c34c8e21e002580ce16bce9c785f Mon Sep 17 00:00:00 2001 From: vextv Date: Fri, 7 Mar 2025 23:13:58 +0100 Subject: [PATCH 30/37] login funktion angepasst --- package-lock.json | 10 ++++++++++ package.json | 1 + scripts/modules/login.js | 21 ++++++++++++++++++--- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index dd91a0c..8ccc96d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "app-root-path": "^3.1.0", "dotenv": "^16.4.7", "express": "^4.21.2", "express-session": "^1.18.1", @@ -29,6 +30,15 @@ "node": ">= 0.6" } }, + "node_modules/app-root-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", + "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", diff --git a/package.json b/package.json index c7934d8..c391410 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "license": "ISC", "description": "Webshop Autohändler", "dependencies": { + "app-root-path": "^3.1.0", "dotenv": "^16.4.7", "express": "^4.21.2", "express-session": "^1.18.1", diff --git a/scripts/modules/login.js b/scripts/modules/login.js index 454dccc..e265f91 100644 --- a/scripts/modules/login.js +++ b/scripts/modules/login.js @@ -5,8 +5,23 @@ let userInput = "test1" let appRoot = require('app-root-path') let dbConnect = require(appRoot + '/scripts/modules/db-connect.js') -dbConnect.query("SELECT * FROM webshop.user WHERE email = " + "'" + userInput + "'", function (err, result) { - if (err) throw err - console.log(result) +dbConnect.query("SELECT is_active, name, passwd FROM webshop.user WHERE email = " + "'" + userInput + "'", async (err, result) => { + if (err) + console.log(err) + + if(result.length > 0){ + // tell user "email is already in use" + } else if (passwd !== passwd_confirm){ + // tell user "passwords do not match" + } + let hashedPasswd = await bcrypt.hash(password, 8) + + dbConnect.query('INSERT INTO user SET?', {name: name, email: email, passwd: hashedPasswd}, (err, res) => { + if(err) + console.log(err) + else{ + // tell user "user registered" + } + }) }) dbConnect.end() \ No newline at end of file -- 2.39.5 From 81808ab120a5dc604fcc1b3be9b62f8df3d0f78d Mon Sep 17 00:00:00 2001 From: rgemm Date: Thu, 10 Apr 2025 18:24:47 +0200 Subject: [PATCH 31/37] =?UTF-8?q?Hinzuf=C3=BCgen=20des=20Warenkorbs=20und?= =?UTF-8?q?=20css=20NICHT=20fertig/final?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/Warenkorb/warenkorb.html | 33 +++++++++++ public/startseite/startseite.html | 6 +- scripts/routes/other/route-index.js | 3 + static/Styles/Warenkorb/warenkorb.css | 79 +++++++++++++++++++++++++++ 4 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 public/Warenkorb/warenkorb.html create mode 100644 static/Styles/Warenkorb/warenkorb.css diff --git a/public/Warenkorb/warenkorb.html b/public/Warenkorb/warenkorb.html new file mode 100644 index 0000000..1a51dd8 --- /dev/null +++ b/public/Warenkorb/warenkorb.html @@ -0,0 +1,33 @@ + + + + + Warenkorb + + + +
+

🛒 Dein Warenkorb

+ +
+
+ Produkt 1 + +
+ +
+ +
+
+ Produkt 2 +
+ +
+ +
+
+ + +
+ + diff --git a/public/startseite/startseite.html b/public/startseite/startseite.html index 7640721..7e443f4 100644 --- a/public/startseite/startseite.html +++ b/public/startseite/startseite.html @@ -15,10 +15,10 @@

Autohändler Webshop

diff --git a/scripts/routes/other/route-index.js b/scripts/routes/other/route-index.js index 227b036..1d6c308 100644 --- a/scripts/routes/other/route-index.js +++ b/scripts/routes/other/route-index.js @@ -17,4 +17,7 @@ router.get('/registrieren', (req, res) => { res.sendFile(path.join(__dirname, '../../../public/registrieren/registrieren.html')); }) +router.get('/Warenkorb', (req, res) => { + res.sendFile(path.join(__dirname, '../../../public/warenkorb/warenkorb.html')); +}) module.exports = router; \ No newline at end of file diff --git a/static/Styles/Warenkorb/warenkorb.css b/static/Styles/Warenkorb/warenkorb.css new file mode 100644 index 0000000..b1209d4 --- /dev/null +++ b/static/Styles/Warenkorb/warenkorb.css @@ -0,0 +1,79 @@ +body { + font-family: Arial, sans-serif; + background-color: #f3f3f3; + margin: 0; + padding: 130px; +} + +.warenkorb { + max-width: 500px; + margin: 0 auto; + background: white; + padding: 120px; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0,0,0,0.1); +} + +.warenkorb h2 { + font-size: 30px; + text-align: center; + margin-bottom: 60px; +} + +.item { + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #ddd; + padding: 10px 0; + margin-bottom: 35px; +} + +.item .info { + display: flex; + flex-direction: column; +} + +.item .name { + font-weight: bold; +} + +.item .price { + color: #555; +} + +.remove { + background-color: #ff4d4f; + border: none; + color: white; + padding: 6px 12px; + border-radius: 6px; + cursor: pointer; +} + +.remove:hover { + background-color: #e60000; +} + +.summary { + text-align: right; + font-size: 1.1em; + margin: 20px 0; +} + +.checkout { + display: block; + width: 100%; + padding: 12px; + background-color: #4CAF50; + border: none; + color: white; + font-size: 16px; + border-radius: 8px; + cursor: pointer; + margin-top: 90px; +} + +.checkout:hover { + background-color: #45a049; +} -- 2.39.5 From 641d14a2dd94e6872f5b2d9fbe5e46974d13dbe6 Mon Sep 17 00:00:00 2001 From: vex Date: Fri, 11 Apr 2025 08:54:50 +0200 Subject: [PATCH 32/37] - fixed database fill script - added new query script --- database/db_scripts/fill_database.sql | 2 -- package-lock.json | 4 +--- scripts/query/get_products.js | 17 +++++++++++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 scripts/query/get_products.js diff --git a/database/db_scripts/fill_database.sql b/database/db_scripts/fill_database.sql index 523ec8b..5fcda43 100644 --- a/database/db_scripts/fill_database.sql +++ b/database/db_scripts/fill_database.sql @@ -3,8 +3,6 @@ BEGIN DECLARE i INT DEFAULT 1; DECLARE emailString CHAR(16) DEFAULT 'test'; - DELETE FROM webshop.user; - WHILE i < 100 DO SET emailString = CONCAT(emailString, CAST(i AS CHAR(16)), '@test.de'); diff --git a/package-lock.json b/package-lock.json index 1d8698a..8ccc96d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,9 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "app-root-path": "^3.1.0", "dotenv": "^16.4.7", "express": "^4.21.2", - "app-root-path": "^3.1.0", - "dotenv": "^16.4.5", - "express": "^4.21.1", "express-session": "^1.18.1", "mysql": "^2.18.1", "mysql2": "^3.12.0", diff --git a/scripts/query/get_products.js b/scripts/query/get_products.js new file mode 100644 index 0000000..9f51378 --- /dev/null +++ b/scripts/query/get_products.js @@ -0,0 +1,17 @@ +const mysql = require('mysql'); + +const connection = mysql.createConnection({ + host: "localhost", + user: "root", + password: "", + database: "webshop" +}) + +connection.connect(function (err) { + if (err) throw err + console.log("Connected to database") + connection.query("SELECT * FROM webshop.product LIMIT 10", function (err, result) { + if (err) throw err + console.log(result) + }) +}) \ No newline at end of file -- 2.39.5 From 0482eeec59c81acc1f1ec25a7d6b58e181f08a09 Mon Sep 17 00:00:00 2001 From: vex Date: Fri, 11 Apr 2025 09:03:30 +0200 Subject: [PATCH 33/37] - fixed new query script --- database/db_scripts/fill_database.sql | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/database/db_scripts/fill_database.sql b/database/db_scripts/fill_database.sql index 5fcda43..c923fcd 100644 --- a/database/db_scripts/fill_database.sql +++ b/database/db_scripts/fill_database.sql @@ -1,13 +1,16 @@ -CREATE PROCEDURE fill_user_table() +CREATE + DEFINER = root@localhost procedure prepare_data() BEGIN DECLARE i INT DEFAULT 1; DECLARE emailString CHAR(16) DEFAULT 'test'; + DECLARE readyEmailString CHAR(32); WHILE i < 100 DO - SET emailString = CONCAT(emailString, CAST(i AS CHAR(16)), '@test.de'); + SET readyEmailString = CONCAT(emailString, CAST(i AS CHAR(16)), '@test.de'); INSERT INTO webshop.user(is_active, name, lower_name, email) - VALUES ('1', 'harry', 'potter', emailString); + VALUES ('1', 'harry', 'potter', readyEmailString); SET i = i + 1; END WHILE; -END; \ No newline at end of file +END; + -- 2.39.5 From 1e0aea7fd54727dc805138e4dda155a97bb4bc6f Mon Sep 17 00:00:00 2001 From: vex Date: Fri, 11 Apr 2025 09:26:22 +0200 Subject: [PATCH 34/37] - added script to fill product table [WIP] --- database/db_scripts/fill_products.sql | 30 +++++++++++++++++++ .../{fill_database.sql => fill_users.sql} | 3 +- 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 database/db_scripts/fill_products.sql rename database/db_scripts/{fill_database.sql => fill_users.sql} (98%) diff --git a/database/db_scripts/fill_products.sql b/database/db_scripts/fill_products.sql new file mode 100644 index 0000000..757f560 --- /dev/null +++ b/database/db_scripts/fill_products.sql @@ -0,0 +1,30 @@ +INSERT INTO webshop.product_inventory (id) VALUE (1); + +INSERT INTO webshop.product (model, color, engine, description, make, + discount_id, created_at, name, + deleted_at, modified_at, price, inventory_id, category_id) + VALUES +-- Example row 1 +('Model X', 'Red', 'V8', 'A powerful red car', 'Tesla', + FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'Red Thunder', + 1, UNIX_TIMESTAMP(), ROUND(50000 + (RAND() * 50000), 2), id, 1), + +-- Example row 2 +('Civic', 'Blue', 'I4', 'Efficient and reliable', 'Honda', + FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'Blue Breeze', + 1, UNIX_TIMESTAMP(), ROUND(20000 + (RAND() * 15000), 2), id, 1), + +-- Example row 3 +('Mustang', 'Black', 'V6', 'A sleek muscle car', 'Ford', + FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'Black Panther', + 1, UNIX_TIMESTAMP(), ROUND(30000 + (RAND() * 20000), 2), id, 1), + +-- Example row 4 +('Camry', 'White', 'Hybrid', 'Eco-friendly and spacious', 'Toyota', + FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'White Cloud', + 1, UNIX_TIMESTAMP(), ROUND(25000 + (RAND() * 10000), 2), id, 1), + +-- Example row 5 +('A4', 'Gray', 'V6 Turbo', 'Luxury and performance', 'Audi', + FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'Gray Ghost', + 1, UNIX_TIMESTAMP(), ROUND(40000 + (RAND() * 30000), 2), id, 1); \ No newline at end of file diff --git a/database/db_scripts/fill_database.sql b/database/db_scripts/fill_users.sql similarity index 98% rename from database/db_scripts/fill_database.sql rename to database/db_scripts/fill_users.sql index c923fcd..d21e23b 100644 --- a/database/db_scripts/fill_database.sql +++ b/database/db_scripts/fill_users.sql @@ -12,5 +12,4 @@ BEGIN VALUES ('1', 'harry', 'potter', readyEmailString); SET i = i + 1; END WHILE; -END; - +END; \ No newline at end of file -- 2.39.5 From 97a1ac474419f2b66d8f36d0b70b1307a6d38601 Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 14 Apr 2025 19:22:40 +0200 Subject: [PATCH 35/37] fixed create DB script to actually create a database --- database/db_scripts/create_db.sql | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/database/db_scripts/create_db.sql b/database/db_scripts/create_db.sql index 8ce4e11..164043d 100644 --- a/database/db_scripts/create_db.sql +++ b/database/db_scripts/create_db.sql @@ -1,3 +1,7 @@ +CREATE DATABASE IF NOT EXISTS `webshop` + CHARACTER SET utf8 COLLATE utf8_general_ci; +USE `webshop`; + CREATE TABLE `discount` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 2.39.5 From 6783aaeb1a7efac90a3bbafe0580bbecd21ed41b Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 14 Apr 2025 17:43:51 +0000 Subject: [PATCH 36/37] README.md aktualisiert --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 11e1154..230d2a9 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # Webshop -Webshop Autohändler \ No newline at end of file +Webshop für Modellautos \ No newline at end of file -- 2.39.5 From ff594657b01cfbcea17530c14d5754cfce335458 Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 14 Apr 2025 22:31:24 +0200 Subject: [PATCH 37/37] - deleted unnecessary files - created a new script to fill the databse with random testdata - improved the script to create the databse --- database/db_scripts/create_db.sql | 174 ------ database/db_scripts/delete_db.sql | 23 - database/db_scripts/fill_products.sql | 30 - database/db_scripts/fill_users.sql | 15 - database/db_scripts/webshop_structure.sql | 146 +++++ database/db_scripts/webshop_test-data.sql | 643 ++++++++++++++++++++++ 6 files changed, 789 insertions(+), 242 deletions(-) delete mode 100644 database/db_scripts/create_db.sql delete mode 100644 database/db_scripts/delete_db.sql delete mode 100644 database/db_scripts/fill_products.sql delete mode 100644 database/db_scripts/fill_users.sql create mode 100644 database/db_scripts/webshop_structure.sql create mode 100644 database/db_scripts/webshop_test-data.sql diff --git a/database/db_scripts/create_db.sql b/database/db_scripts/create_db.sql deleted file mode 100644 index 164043d..0000000 --- a/database/db_scripts/create_db.sql +++ /dev/null @@ -1,174 +0,0 @@ -CREATE DATABASE IF NOT EXISTS `webshop` - CHARACTER SET utf8 COLLATE utf8_general_ci; -USE `webshop`; - -CREATE TABLE `discount` -( - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `name` VARCHAR(255) NOT NULL, - `description` TEXT NOT NULL, - `discount_percent` DECIMAL(8, 2) NOT NULL, - `deleted_at` INT(8) NOT NULL, - `modified_at` INT(8) NOT NULL, - `created_at` INT(8) NOT NULL, - `active` BOOLEAN NOT NULL -); -CREATE TABLE `user_address` -( - `address_line1` VARCHAR(255) NOT NULL, - `city` VARCHAR(255) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `country` VARCHAR(2) NOT NULL, - `user_id` INT UNSIGNED NOT NULL, - `mobile` VARCHAR(255) NOT NULL, - `postal_code` INT NOT NULL, - `address_line2` VARCHAR(255) NOT NULL, - `telephone` VARCHAR(255) NOT NULL -); -ALTER TABLE - `user_address` - ADD UNIQUE `user_address_mobile_unique` (`mobile`); -ALTER TABLE - `user_address` - ADD UNIQUE `user_address_telephone_unique` (`telephone`); -CREATE TABLE `product_inventory` -( - `created_at` INT(8) NOT NULL, - `modified_at` INT(8) NOT NULL, - `quantity` INT NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `deleted_at` INT(8) NOT NULL -); -CREATE TABLE `payment_details` -( - `order_id` INT NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `status` VARCHAR(255) NOT NULL, - `provider` VARCHAR(255) NOT NULL, - `modified_at` INT(8) NOT NULL, - `amount` INT NOT NULL, - `created_at` INT(8) NOT NULL -); -CREATE TABLE `order_details` -( - `payment_id` INT UNSIGNED NOT NULL, - `total` DECIMAL(8, 2) NOT NULL, - `modified_at` INT(8) NOT NULL, - `created_at` INT(8) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `user_id` INT UNSIGNED NOT NULL -); -CREATE TABLE `order_items` -( - `modified_at` INT(8) NOT NULL, - `user_id` BIGINT NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `quantity` INT NOT NULL, - `order_id` INT UNSIGNED NOT NULL, - `created_at` INT(8) NOT NULL, - `product_id` INT UNSIGNED NOT NULL -); -CREATE TABLE `user_payment` -( - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `provider` VARCHAR(255) NOT NULL, - `account_no` VARCHAR(255) NOT NULL, - `expiry` DATE NOT NULL, - `payment_type` VARCHAR(255) NOT NULL, - `user_id` INT UNSIGNED NOT NULL -); -CREATE TABLE `product` -( - `category_id` INT UNSIGNED NOT NULL, - `model` VARCHAR(255) NOT NULL, - `color` VARCHAR(255) NOT NULL, - `engine` VARCHAR(255) NOT NULL, - `description` TEXT NOT NULL, - `make` VARCHAR(255) NOT NULL, - `inventory_id` INT UNSIGNED NOT NULL, - `discount_id` INT UNSIGNED NOT NULL, - `created_at` INT(8) NOT NULL, - `name` VARCHAR(255) NOT NULL, - `deleted_at` INT(8) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `modified_at` INT(8) NOT NULL, - `price` DECIMAL(8, 2) NOT NULL -); -CREATE TABLE `product_category` -( - `created_at` INT(8) NOT NULL, - `name` VARCHAR(255) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `modified_at` INT(8) NOT NULL, - `desc` TEXT NOT NULL, - `deleted_at` INT(8) NOT NULL -); -CREATE TABLE `user` -( - `is_active` BOOLEAN NOT NULL DEFAULT '1', - `lower_name` VARCHAR(255) NOT NULL, - `email` VARCHAR(255) NOT NULL DEFAULT 'NONE', - `passwd_hash_algo` VARCHAR(255) NOT NULL DEFAULT 'NONE', - `modified_at` INT(8) NOT NULL DEFAULT '0', - `is_admin` BOOLEAN NOT NULL DEFAULT '0', - `name` VARCHAR(255) NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `created_at` INT(8) NOT NULL DEFAULT '0', - `passwd` VARCHAR(255) NOT NULL DEFAULT 'NONE' -); -ALTER TABLE - `user` - ADD UNIQUE `user_email_unique` (`email`); -CREATE TABLE `shopping_session` -( - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `created_at` INT(8) NOT NULL, - `user_id` INT UNSIGNED NOT NULL, - `modified_at` INT(8) NOT NULL, - `total` DECIMAL(8, 2) NOT NULL -); -CREATE TABLE `cart_item` -( - `product_id` INT UNSIGNED NOT NULL, - `session_id` INT UNSIGNED NOT NULL, - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - `created_at` INT(8) NOT NULL, - `modified_at` INT(8) NOT NULL, - `quantity` INT NOT NULL -); -ALTER TABLE - `product` - ADD CONSTRAINT `product_inventory_id_foreign` FOREIGN KEY (`inventory_id`) REFERENCES `product_inventory` (`id`); -ALTER TABLE - `order_items` - ADD CONSTRAINT `order_items_order_id_foreign` FOREIGN KEY (`order_id`) REFERENCES `order_details` (`id`); -ALTER TABLE - `product` - ADD CONSTRAINT `product_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `product_category` (`id`); -ALTER TABLE - `order_details` - ADD CONSTRAINT `order_details_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -ALTER TABLE - `cart_item` - ADD CONSTRAINT `cart_item_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); -ALTER TABLE - `order_items` - ADD CONSTRAINT `order_items_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); -ALTER TABLE - `user_address` - ADD CONSTRAINT `user_address_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -ALTER TABLE - `order_details` - ADD CONSTRAINT `order_details_payment_id_foreign` FOREIGN KEY (`payment_id`) REFERENCES `payment_details` (`id`); -ALTER TABLE - `product` - ADD CONSTRAINT `product_discount_id_foreign` FOREIGN KEY (`discount_id`) REFERENCES `discount` (`id`); -ALTER TABLE - `user_payment` - ADD CONSTRAINT `user_payment_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -ALTER TABLE - `shopping_session` - ADD CONSTRAINT `shopping_session_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -ALTER TABLE - `cart_item` - ADD CONSTRAINT `cart_item_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `shopping_session` (`id`); \ No newline at end of file diff --git a/database/db_scripts/delete_db.sql b/database/db_scripts/delete_db.sql deleted file mode 100644 index 58f5dfd..0000000 --- a/database/db_scripts/delete_db.sql +++ /dev/null @@ -1,23 +0,0 @@ -drop table if exists cart_item; - -drop table if exists discount; - -drop table if exists oder_items; - -drop table if exists order_details; - -drop table if exists payment_details; - -drop table if exists product; - -drop table if exists product_category; - -drop table if exists product_inventory; - -drop table if exists shopping_session; - -drop table if exists user; - -drop table if exists user_address; - -drop table if exists user_payment; \ No newline at end of file diff --git a/database/db_scripts/fill_products.sql b/database/db_scripts/fill_products.sql deleted file mode 100644 index 757f560..0000000 --- a/database/db_scripts/fill_products.sql +++ /dev/null @@ -1,30 +0,0 @@ -INSERT INTO webshop.product_inventory (id) VALUE (1); - -INSERT INTO webshop.product (model, color, engine, description, make, - discount_id, created_at, name, - deleted_at, modified_at, price, inventory_id, category_id) - VALUES --- Example row 1 -('Model X', 'Red', 'V8', 'A powerful red car', 'Tesla', - FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'Red Thunder', - 1, UNIX_TIMESTAMP(), ROUND(50000 + (RAND() * 50000), 2), id, 1), - --- Example row 2 -('Civic', 'Blue', 'I4', 'Efficient and reliable', 'Honda', - FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'Blue Breeze', - 1, UNIX_TIMESTAMP(), ROUND(20000 + (RAND() * 15000), 2), id, 1), - --- Example row 3 -('Mustang', 'Black', 'V6', 'A sleek muscle car', 'Ford', - FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'Black Panther', - 1, UNIX_TIMESTAMP(), ROUND(30000 + (RAND() * 20000), 2), id, 1), - --- Example row 4 -('Camry', 'White', 'Hybrid', 'Eco-friendly and spacious', 'Toyota', - FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'White Cloud', - 1, UNIX_TIMESTAMP(), ROUND(25000 + (RAND() * 10000), 2), id, 1), - --- Example row 5 -('A4', 'Gray', 'V6 Turbo', 'Luxury and performance', 'Audi', - FLOOR(1 + RAND() * 5), UNIX_TIMESTAMP(), 'Gray Ghost', - 1, UNIX_TIMESTAMP(), ROUND(40000 + (RAND() * 30000), 2), id, 1); \ No newline at end of file diff --git a/database/db_scripts/fill_users.sql b/database/db_scripts/fill_users.sql deleted file mode 100644 index d21e23b..0000000 --- a/database/db_scripts/fill_users.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE - DEFINER = root@localhost procedure prepare_data() -BEGIN - DECLARE i INT DEFAULT 1; - DECLARE emailString CHAR(16) DEFAULT 'test'; - DECLARE readyEmailString CHAR(32); - - WHILE i < 100 - DO - SET readyEmailString = CONCAT(emailString, CAST(i AS CHAR(16)), '@test.de'); - INSERT INTO webshop.user(is_active, name, lower_name, email) - VALUES ('1', 'harry', 'potter', readyEmailString); - SET i = i + 1; - END WHILE; -END; \ No newline at end of file diff --git a/database/db_scripts/webshop_structure.sql b/database/db_scripts/webshop_structure.sql new file mode 100644 index 0000000..dc5ef4a --- /dev/null +++ b/database/db_scripts/webshop_structure.sql @@ -0,0 +1,146 @@ +DROP DATABASE IF EXISTS webshop; +CREATE DATABASE IF NOT EXISTS `webshop` + CHARACTER SET utf8 COLLATE utf8_general_ci; + +USE `webshop`; + +CREATE TABLE `user` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(255) NOT NULL, + `lower_name` VARCHAR(255) NOT NULL, + `email` VARCHAR(255) NOT NULL DEFAULT 'NONE', + `passwd` VARCHAR(255) NOT NULL DEFAULT 'NONE', + `passwd_hash_algo` VARCHAR(255) NOT NULL DEFAULT 'NONE', + `is_admin` BOOLEAN NOT NULL DEFAULT '0' +); +ALTER TABLE + `user` + ADD UNIQUE `user_email_unique` (`email`); +CREATE TABLE `user_address` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `user_id` INT UNSIGNED NOT NULL, + `address_line1` VARCHAR(255) NOT NULL, + `address_line2` VARCHAR(255) NOT NULL, + `city` VARCHAR(255) NOT NULL, + `postal_code` INT NOT NULL, + `country` VARCHAR(2) NOT NULL, + `telephone` VARCHAR(255) NOT NULL +); +ALTER TABLE + `user_address` + ADD UNIQUE `user_address_telephone_unique` (`telephone`); +CREATE TABLE `user_payment` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `user_id` INT UNSIGNED NOT NULL, + `payment_type` VARCHAR(255) NOT NULL, + `provider` VARCHAR(255) NOT NULL, + `account_no` VARCHAR(255) NOT NULL, + `expiry` DATE NOT NULL +); +CREATE TABLE `shopping_session` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `user_id` INT UNSIGNED NOT NULL, + `total` DECIMAL(8, 2) NOT NULL +); +CREATE TABLE `cart_item` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `session_id` INT UNSIGNED NOT NULL, + `product_id` INT UNSIGNED NOT NULL, + `quantity` INT NOT NULL +); +CREATE TABLE `payment_details` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `order_id` INT NOT NULL, + `amount` INT NOT NULL, + `provider` VARCHAR(255) NOT NULL, + `status` VARCHAR(255) NOT NULL +); +CREATE TABLE `product` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(255) NOT NULL, + `make` VARCHAR(255) NOT NULL, + `model` VARCHAR(255) NOT NULL, + `description` TEXT NOT NULL, + `category_id` INT UNSIGNED NOT NULL, + `price` DECIMAL(8, 2) NOT NULL, + `discount_id` INT UNSIGNED NOT NULL, + `created_at` DATE NOT NULL +); +CREATE TABLE `discount` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(255) NOT NULL, + `description` TEXT NOT NULL, + `discount_percent` DECIMAL(8, 2) NOT NULL, + `active` BOOLEAN NOT NULL +); +CREATE TABLE `order_items` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `order_id` INT UNSIGNED NOT NULL, + `product_id` INT UNSIGNED NOT NULL, + `quantity` INT NOT NULL, + `user_id` BIGINT NOT NULL +); +CREATE TABLE `product_category` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(255) NOT NULL +); +CREATE TABLE `order_details` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `user_id` INT UNSIGNED NOT NULL, + `total` DECIMAL(8, 2) NOT NULL, + `payment_id` INT UNSIGNED NOT NULL +); +CREATE TABLE `product_pictures` +( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `product_id` INT UNSIGNED NOT NULL, + `picture_base64` TEXT NOT NULL, + `is_primary` BOOLEAN NOT NULL +); +ALTER TABLE + `product_pictures` + ADD CONSTRAINT `product_pictures_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); +ALTER TABLE + `user_payment` + ADD CONSTRAINT `user_payment_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `order_details` + ADD CONSTRAINT `order_details_payment_id_foreign` FOREIGN KEY (`payment_id`) REFERENCES `payment_details` (`id`); +ALTER TABLE + `order_details` + ADD CONSTRAINT `order_details_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `order_items` + ADD CONSTRAINT `order_items_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); +ALTER TABLE + `product` + ADD CONSTRAINT `product_discount_id_foreign` FOREIGN KEY (`discount_id`) REFERENCES `discount` (`id`); +ALTER TABLE + `shopping_session` + ADD CONSTRAINT `shopping_session_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `product` + ADD CONSTRAINT `product_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `product_category` (`id`); +ALTER TABLE + `user_address` + ADD CONSTRAINT `user_address_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); +ALTER TABLE + `order_items` + ADD CONSTRAINT `order_items_order_id_foreign` FOREIGN KEY (`order_id`) REFERENCES `order_details` (`id`); +ALTER TABLE + `cart_item` + ADD CONSTRAINT `cart_item_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `shopping_session` (`id`); +ALTER TABLE + `cart_item` + ADD CONSTRAINT `cart_item_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`); \ No newline at end of file diff --git a/database/db_scripts/webshop_test-data.sql b/database/db_scripts/webshop_test-data.sql new file mode 100644 index 0000000..2e4bd83 --- /dev/null +++ b/database/db_scripts/webshop_test-data.sql @@ -0,0 +1,643 @@ +USE webshop; + +-- Product Categories +INSERT INTO product_category (id, name) +VALUES (1, 'Electronics'); +INSERT INTO product_category (id, name) +VALUES (2, 'Home Appliances'); +INSERT INTO product_category (id, name) +VALUES (3, 'Clothing'); +INSERT INTO product_category (id, name) +VALUES (4, 'Sports'); +INSERT INTO product_category (id, name) +VALUES (5, 'Books'); + +-- Discounts +INSERT INTO discount (id, name, description, discount_percent, active) +VALUES (1, 'Spring Sale', 'Description for Spring Sale', 15, TRUE); +INSERT INTO discount (id, name, description, discount_percent, active) +VALUES (2, 'Black Friday', 'Description for Black Friday', 40, TRUE); +INSERT INTO discount (id, name, description, discount_percent, active) +VALUES (3, 'New User', 'Description for New User', 10, TRUE); +INSERT INTO discount (id, name, description, discount_percent, active) +VALUES (4, 'Clearance', 'Description for Clearance', 25, TRUE); +INSERT INTO discount (id, name, description, discount_percent, active) +VALUES (5, 'Holiday Deal', 'Description for Holiday Deal', 20, TRUE); + +-- Users +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (1, 'User1', LOWER('User1'), 'user1@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (2, 'User2', LOWER('User2'), 'user2@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (3, 'User3', LOWER('User3'), 'user3@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (4, 'User4', LOWER('User4'), 'user4@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (5, 'User5', LOWER('User5'), 'user5@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (6, 'User6', LOWER('User6'), 'user6@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (7, 'User7', LOWER('User7'), 'user7@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (8, 'User8', LOWER('User8'), 'user8@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (9, 'User9', LOWER('User9'), 'user9@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (10, 'User10', LOWER('User10'), 'user10@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (11, 'User11', LOWER('User11'), 'user11@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (12, 'User12', LOWER('User12'), 'user12@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (13, 'User13', LOWER('User13'), 'user13@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (14, 'User14', LOWER('User14'), 'user14@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (15, 'User15', LOWER('User15'), 'user15@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (16, 'User16', LOWER('User16'), 'user16@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (17, 'User17', LOWER('User17'), 'user17@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (18, 'User18', LOWER('User18'), 'user18@example.com', 'password123', 'bcrypt', FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (19, 'User19', LOWER('User19'), 'user19@example.com', 'password123', 'bcrypt',FALSE); +INSERT INTO user (id, name, lower_name, email, passwd, passwd_hash_algo, is_admin) +VALUES (20, 'User20', LOWER('User20'), 'user20@example.com', 'password123', 'bcrypt', FALSE); + +-- User Addresses +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (1, '123 Main St', 'Apt 1', 'Berlin', 10001, 'DE', '1234567891'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (2, '123 Main St', 'Apt 2', 'Toronto', 10002, 'DE', '1234567892'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (3, '123 Main St', 'Apt 3', 'New York', 10003, 'GB', '1234567893'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (4, '123 Main St', 'Apt 4', 'Paris', 10004, 'DE', '1234567894'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (5, '123 Main St', 'Apt 5', 'Paris', 10005, 'FR', '1234567895'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (6, '123 Main St', 'Apt 6', 'New York', 10006, 'DE', '1234567896'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (7, '123 Main St', 'Apt 7', 'Berlin', 10007, 'FR', '1234567897'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (8, '123 Main St', 'Apt 8', 'Paris', 10008, 'US', '1234567898'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (9, '123 Main St', 'Apt 9', 'London', 10009, 'FR', '1234567899'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (10, '123 Main St', 'Apt 10', 'Paris', 10010, 'CA', '12345678910'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (11, '123 Main St', 'Apt 11', 'London', 10011, 'DE', '12345678911'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (12, '123 Main St', 'Apt 12', 'London', 10012, 'US', '12345678912'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (13, '123 Main St', 'Apt 13', 'Toronto', 10013, 'US', '12345678913'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (14, '123 Main St', 'Apt 14', 'Toronto', 10014, 'CA', '12345678914'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (15, '123 Main St', 'Apt 15', 'Paris', 10015, 'CA', '12345678915'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (16, '123 Main St', 'Apt 16', 'London', 10016, 'US', '12345678916'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (17, '123 Main St', 'Apt 17', 'New York', 10017, 'CA', '12345678917'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (18, '123 Main St', 'Apt 18', 'Berlin', 10018, 'GB', '12345678918'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (19, '123 Main St', 'Apt 19', 'Berlin', 10019, 'DE', '12345678919'); +INSERT INTO user_address (user_id, address_line1, address_line2, city, postal_code, country, telephone) +VALUES (20, '123 Main St', 'Apt 20', 'Berlin', 10020, 'GB', '12345678920'); + +-- User Payments +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (1, 'Credit Card', 'Stripe', 'ACCNO0001', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (2, 'Debit Card', 'Visa', 'ACCNO0002', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (3, 'PayPal', 'Stripe', 'ACCNO0003', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (4, 'PayPal', 'Visa', 'ACCNO0004', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (5, 'Debit Card', 'MasterCard', 'ACCNO0005', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (6, 'Credit Card', 'Visa', 'ACCNO0006', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (7, 'Debit Card', 'Stripe', 'ACCNO0007', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (8, 'PayPal', 'Stripe', 'ACCNO0008', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (9, 'Credit Card', 'MasterCard', 'ACCNO0009', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (10, 'PayPal', 'Stripe', 'ACCNO0010', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (11, 'PayPal', 'Visa', 'ACCNO0011', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (12, 'Debit Card', 'PayPal', 'ACCNO0012', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (13, 'PayPal', 'PayPal', 'ACCNO0013', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (14, 'PayPal', 'MasterCard', 'ACCNO0014', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (15, 'Credit Card', 'PayPal', 'ACCNO0015', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (16, 'Debit Card', 'Visa', 'ACCNO0016', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (17, 'Credit Card', 'PayPal', 'ACCNO0017', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (18, 'Debit Card', 'MasterCard', 'ACCNO0018', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (19, 'Debit Card', 'PayPal', 'ACCNO0019', '2026-12-31'); +INSERT INTO user_payment (user_id, payment_type, provider, account_no, expiry) +VALUES (20, 'PayPal', 'Stripe', 'ACCNO0020', '2026-12-31'); + +-- Products +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (1, 'Product1', 'BrandA', 'Model1', 'Description for Product1', 5, 318.94, 2, '2024-06-16'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (2, 'Product2', 'BrandC', 'Model2', 'Description for Product2', 5, 521.19, 5, '2025-03-05'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (3, 'Product3', 'BrandB', 'Model3', 'Description for Product3', 2, 230.04, 2, '2024-08-12'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (4, 'Product4', 'BrandC', 'Model4', 'Description for Product4', 1, 147.85, 4, '2025-03-02'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (5, 'Product5', 'BrandA', 'Model5', 'Description for Product5', 4, 520.02, 3, '2024-09-08'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (6, 'Product6', 'BrandC', 'Model6', 'Description for Product6', 4, 146.06, 5, '2024-07-08'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (7, 'Product7', 'BrandC', 'Model7', 'Description for Product7', 1, 862.11, 3, '2025-03-20'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (8, 'Product8', 'BrandC', 'Model8', 'Description for Product8', 1, 313.82, 2, '2024-10-17'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (9, 'Product9', 'BrandA', 'Model9', 'Description for Product9', 2, 491.74, 2, '2025-01-17'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (10, 'Product10', 'BrandB', 'Model10', 'Description for Product10', 3, 182.49, 3, '2025-01-02'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (11, 'Product11', 'BrandB', 'Model11', 'Description for Product11', 4, 907.39, 3, '2025-01-29'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (12, 'Product12', 'BrandB', 'Model12', 'Description for Product12', 2, 962.56, 2, '2024-07-01'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (13, 'Product13', 'BrandC', 'Model13', 'Description for Product13', 5, 933.24, 5, '2024-05-24'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (14, 'Product14', 'BrandB', 'Model14', 'Description for Product14', 2, 474.63, 1, '2024-11-26'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (15, 'Product15', 'BrandC', 'Model15', 'Description for Product15', 5, 112.99, 1, '2024-07-14'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (16, 'Product16', 'BrandA', 'Model16', 'Description for Product16', 5, 92.21, 5, '2024-06-21'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (17, 'Product17', 'BrandB', 'Model17', 'Description for Product17', 1, 30.15, 4, '2024-10-04'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (18, 'Product18', 'BrandA', 'Model18', 'Description for Product18', 2, 169.85, 1, '2024-11-07'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (19, 'Product19', 'BrandB', 'Model19', 'Description for Product19', 5, 559.7, 1, '2024-09-12'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (20, 'Product20', 'BrandB', 'Model20', 'Description for Product20', 1, 617.8, 4, '2024-04-26'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (21, 'Product21', 'BrandB', 'Model21', 'Description for Product21', 1, 353.15, 4, '2024-04-24'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (22, 'Product22', 'BrandA', 'Model22', 'Description for Product22', 4, 827.72, 1, '2024-04-17'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (23, 'Product23', 'BrandB', 'Model23', 'Description for Product23', 4, 24.71, 2, '2025-03-24'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (24, 'Product24', 'BrandB', 'Model24', 'Description for Product24', 1, 452.61, 1, '2024-07-06'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (25, 'Product25', 'BrandA', 'Model25', 'Description for Product25', 3, 245.66, 2, '2024-05-20'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (26, 'Product26', 'BrandA', 'Model26', 'Description for Product26', 4, 741.09, 2, '2024-12-23'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (27, 'Product27', 'BrandB', 'Model27', 'Description for Product27', 2, 549.64, 2, '2025-01-28'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (28, 'Product28', 'BrandC', 'Model28', 'Description for Product28', 3, 93.43, 2, '2024-07-15'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (29, 'Product29', 'BrandC', 'Model29', 'Description for Product29', 1, 610.66, 1, '2024-08-07'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (30, 'Product30', 'BrandC', 'Model30', 'Description for Product30', 4, 537.6, 3, '2024-06-24'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (31, 'Product31', 'BrandB', 'Model31', 'Description for Product31', 4, 377.7, 1, '2024-06-20'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (32, 'Product32', 'BrandA', 'Model32', 'Description for Product32', 4, 353.25, 2, '2024-09-20'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (33, 'Product33', 'BrandB', 'Model33', 'Description for Product33', 4, 550.94, 3, '2024-08-02'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (34, 'Product34', 'BrandA', 'Model34', 'Description for Product34', 1, 692.25, 4, '2024-04-16'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (35, 'Product35', 'BrandB', 'Model35', 'Description for Product35', 4, 249.37, 3, '2024-05-10'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (36, 'Product36', 'BrandC', 'Model36', 'Description for Product36', 4, 418.07, 1, '2024-08-18'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (37, 'Product37', 'BrandC', 'Model37', 'Description for Product37', 1, 455.82, 4, '2024-04-27'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (38, 'Product38', 'BrandA', 'Model38', 'Description for Product38', 4, 664.72, 1, '2024-12-28'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (39, 'Product39', 'BrandB', 'Model39', 'Description for Product39', 3, 80.6, 1, '2024-10-18'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (40, 'Product40', 'BrandA', 'Model40', 'Description for Product40', 4, 28.12, 4, '2024-09-05'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (41, 'Product41', 'BrandA', 'Model41', 'Description for Product41', 3, 251.78, 5, '2025-02-08'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (42, 'Product42', 'BrandC', 'Model42', 'Description for Product42', 4, 144.43, 1, '2024-05-11'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (43, 'Product43', 'BrandA', 'Model43', 'Description for Product43', 5, 748.88, 3, '2025-01-04'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (44, 'Product44', 'BrandB', 'Model44', 'Description for Product44', 5, 882.23, 1, '2024-08-19'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (45, 'Product45', 'BrandB', 'Model45', 'Description for Product45', 3, 899.3, 4, '2024-07-03'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (46, 'Product46', 'BrandC', 'Model46', 'Description for Product46', 4, 272.38, 4, '2024-11-11'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (47, 'Product47', 'BrandB', 'Model47', 'Description for Product47', 3, 470.78, 2, '2024-10-28'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (48, 'Product48', 'BrandC', 'Model48', 'Description for Product48', 2, 116.97, 1, '2024-09-13'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (49, 'Product49', 'BrandA', 'Model49', 'Description for Product49', 5, 30.57, 4, '2024-09-18'); +INSERT INTO product (id, name, make, model, description, category_id, price, discount_id, created_at) +VALUES (50, 'Product50', 'BrandB', 'Model50', 'Description for Product50', 2, 861.84, 4, '2024-11-26'); + +-- Product Pictures +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (1, 'mnELxugt4Ydr4FUssyH+bkSevIrNl/KBGyH8LLhxFKI=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (2, 'mr6UQfVtBB6Gj7MaxDer/zNGsEeJ3DHH5JzLZmKUC+c=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (3, 'yCeHteIvMo3LNNxflAknKAm3TUm6bI/+cUe4mCyp5Vs=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (4, 'A1trFKv8HmX7+WxtkRAod/QbH2xKBUr3AS0sh7OT+oI=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (5, 'zdfKP/uLcgmMv1x4v+5FA2gEGK00yW2HJDHemYAxEBk=', TRUE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (6, 'wFpi7y31rFU7VICwWc8ONnx2ApSFSaF1do/ozuoENTM=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (7, 'KkpNEMOR/cMQ3zv7mjdiMG8lWh6x7S6C8vQFzqN8YYk=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (8, 'VadAqdlySAPOguy/vVfGGaUzbMciyv9niqjS2peB79c=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (9, 'pecXJbykN65n5BwAuGiWEiW2YRP1vxk5JUaBB7Z2QKE=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (10, 'JRkmNYuGySf+MCx+dPRj5cVMOu0AhHEUhSeKWGvsoM0=', TRUE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (11, 'Tln4hU4s5Nyx5wkzA/kCn4puKxHqfrdpiEaOn+Dsj0c=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (12, 'rmlebzsSR28Xl8W7HrrCetU/Xlww/m750el2QgCLrtw=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (13, 'aSXu2+PDwlE0bJ7+JgifoIRYmNFgpf4Rac1Hih3OaoQ=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (14, '0nTDMczLNN5MmLM9CecyZyNHSjAg3+hj3QIEKjEheIw=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (15, 'eKKF0BWqGh977FJNERzlZH01xvLCJLfWO507tFctImA=', TRUE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (16, 'Qx0W4ZIOI3EWcdESsMm3Wp/NEfeGssKrTD4D7hH3bzs=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (17, 't70dXq30C82ca1wRo7TmG3GBEa1MrTccl6uVbOYUcf8=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (18, 'o2xac1ar86EUPNi/q+FJEqvfIjIVUTBBKCmHoMaAqKU=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (19, 'j252AyKpFxiTVlXHar/vicn1NBzUoZtMOA7V+bVSuto=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (20, 'ddoRalgx15Oq2XgG83ksnZYnr38k3bgytWyuvMwPVNc=', TRUE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (21, 'iPcGIdcvwInGY3mc6wMKYyfAagIz5ZRjmfbbtg2+fDc=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (22, 'vtP3wxpUhcgg+M1BQV88MlIWbsOU0FkT/3qiDEJfjsM=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (23, 'lkMSOWhVUXQJwj8qui8OsevJp+a8drNyYY1PdsF9ofQ=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (24, 'OXZP3Y5ZNRREjBlK49W4oESBVc1CaPPPOJXi6mlH6n4=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (25, '1ODn0qkTCPxfapjkV8baMp+KuFrkbaLhTZfb9NQgUPU=', TRUE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (26, 'bgz2EcoOVDRagfBNLi8aPMx3yE8TbmQryWKsT7dI35c=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (27, '5KkXTV4R2M4vbf9/1R4F1pEqt02AlU6BGcUSTzD/8PI=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (28, 'ZXLkPF69pEUGz7/asGZ/n1n1yOfknrWYFv13SpvpJ9s=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (29, 'DC8UtBTDA80YqgOKxu2jNfdm4Y8JpxzuCoRiHbAiT10=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (30, 'OFm88w/1zT7DQjOVXcANhLLD6khvrF3UI7b56KmBzaU=', TRUE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (31, 'DfPzNf2+gQ9fx7QGxDY2t8VL0rtizZGY8zPvzAbqMIk=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (32, 'w89sMLHYMX7IW5ykCvu4BW448GkG4/MAWt89jbkr7YI=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (33, 'syvLhg+8VIt4Gihgq+FtmPABuD3sAMTdDlyhOu85Kqo=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (34, '2fDRzCfntjtZAneqqyzr3hD6RV/0Ad/YmCwTwjNlenc=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (35, 'ygca9b8poneJF/3RS5Kr5GMfH7+kv6m0VFDDvknfwfE=', TRUE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (36, 'tRriLe4gYRGOepP/Bn0kb6ChEKoOfKMxgnmxOh1sgS0=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (37, 'ir5yC2KMiX0w7fnaGNp85WrZU04Mgc59KWr0hkx6DIc=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (38, 'oNw9xNd/JfmOFAVX+sKWiLfH2ipyP/z/wW4dmaPN2qM=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (39, 'D+mT9AXixD432UIBcTQBZ9sd+d6W6MsnJaSOWom2DxA=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (40, 'QbjTL1bK2X5GE2KGpisiI9UIBboZhv+zFH2S16cl2E0=', TRUE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (41, 'MrUZXSdNCy3Uiochw8wSQjMu4veozWLywvp3IlbIQwo=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (42, 'i2+PZBqElXU+yUCGWRpz/HOxy2RMbmFz+9Z/JWkOgHU=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (43, 'D73S1+s3ILVdRaXj0ow+baD0QAtBCUh6jNVyYkKx3Cs=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (44, 'gHDoV2NuiBiDGJEIWLy32zrFRQb5C0ocSIgKjYs1E84=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (45, 'ks4WUYGB7sv8hFgK+H3v72t7HXDMcArsRdtj2U9B798=', TRUE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (46, '4pX2NjrxNZCSy96Uj3yXSbcM+CZ8N0WZTKVzuEl4kls=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (47, 'lY+/60wB02mXhaMBw2vcGhkYyOHUxgw0ItOqcb+wM/Q=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (48, '/QDMi1jgaR9dDlJEKLte5Zf+aMe+7Z3BLdndbgOIDO4=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (49, 'oyYP6vIP1QfDWGJBF8DJrzrx9o44aH4tnXOGCPQfEF8=', FALSE); +INSERT INTO product_pictures (product_id, picture_base64, is_primary) +VALUES (50, 'fstdpDDpSI+KUdWR7zzqlsaHRQ82Elx396/DLJXgf6o=', TRUE); + +-- Shopping Sessions +INSERT INTO shopping_session (id, user_id, total) +VALUES (1, 1, 538.84); +INSERT INTO shopping_session (id, user_id, total) +VALUES (2, 2, 734.36); +INSERT INTO shopping_session (id, user_id, total) +VALUES (3, 3, 1680.53); +INSERT INTO shopping_session (id, user_id, total) +VALUES (4, 4, 303.57); +INSERT INTO shopping_session (id, user_id, total) +VALUES (5, 5, 1924.56); +INSERT INTO shopping_session (id, user_id, total) +VALUES (6, 6, 46.64); +INSERT INTO shopping_session (id, user_id, total) +VALUES (7, 7, 266.57); +INSERT INTO shopping_session (id, user_id, total) +VALUES (8, 8, 1503.89); +INSERT INTO shopping_session (id, user_id, total) +VALUES (9, 9, 1808.29); +INSERT INTO shopping_session (id, user_id, total) +VALUES (10, 10, 1890.97); +INSERT INTO shopping_session (id, user_id, total) +VALUES (11, 11, 30.01); +INSERT INTO shopping_session (id, user_id, total) +VALUES (12, 12, 1479.1); +INSERT INTO shopping_session (id, user_id, total) +VALUES (13, 13, 1559.22); +INSERT INTO shopping_session (id, user_id, total) +VALUES (14, 14, 1612.68); +INSERT INTO shopping_session (id, user_id, total) +VALUES (15, 15, 1905.59); +INSERT INTO shopping_session (id, user_id, total) +VALUES (16, 16, 141.6); +INSERT INTO shopping_session (id, user_id, total) +VALUES (17, 17, 496.74); +INSERT INTO shopping_session (id, user_id, total) +VALUES (18, 18, 1678.68); +INSERT INTO shopping_session (id, user_id, total) +VALUES (19, 19, 1140.02); +INSERT INTO shopping_session (id, user_id, total) +VALUES (20, 20, 872.75); + +-- Cart Items +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (1, 1, 40, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (2, 1, 26, 1); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (3, 2, 19, 4); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (4, 2, 23, 4); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (5, 3, 4, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (6, 3, 6, 5); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (7, 4, 21, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (8, 4, 26, 4); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (9, 5, 20, 1); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (10, 5, 3, 1); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (11, 6, 22, 2); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (12, 6, 1, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (13, 7, 49, 1); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (14, 7, 45, 1); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (15, 8, 7, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (16, 8, 20, 5); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (17, 9, 21, 2); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (18, 9, 13, 2); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (19, 10, 41, 4); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (20, 10, 21, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (21, 11, 19, 5); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (22, 11, 36, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (23, 12, 10, 4); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (24, 12, 38, 5); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (25, 13, 16, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (26, 13, 2, 1); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (27, 14, 22, 4); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (28, 14, 44, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (29, 15, 14, 1); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (30, 15, 14, 2); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (31, 16, 25, 4); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (32, 16, 1, 2); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (33, 17, 33, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (34, 17, 42, 4); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (35, 18, 48, 4); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (36, 18, 18, 5); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (37, 19, 21, 5); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (38, 19, 26, 2); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (39, 20, 36, 3); +INSERT INTO cart_item (id, session_id, product_id, quantity) +VALUES (40, 20, 36, 3); + +-- Orders and Payment Details +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (1, 1, 650, 'MasterCard', 'Failed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (1, 1, 650, 1); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (2, 2, 241, 'MasterCard', 'Pending'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (2, 2, 241, 2); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (3, 3, 134, 'PayPal', 'Failed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (3, 3, 134, 3); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (4, 4, 761, 'Stripe', 'Completed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (4, 4, 761, 4); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (5, 5, 356, 'Stripe', 'Failed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (5, 5, 356, 5); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (6, 6, 187, 'Visa', 'Failed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (6, 6, 187, 6); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (7, 7, 610, 'MasterCard', 'Completed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (7, 7, 610, 7); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (8, 8, 457, 'PayPal', 'Completed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (8, 8, 457, 8); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (9, 9, 178, 'MasterCard', 'Failed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (9, 9, 178, 9); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (10, 10, 156, 'Stripe', 'Failed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (10, 10, 156, 10); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (11, 11, 919, 'PayPal', 'Pending'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (11, 11, 919, 11); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (12, 12, 877, 'MasterCard', 'Failed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (12, 12, 877, 12); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (13, 13, 746, 'Visa', 'Completed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (13, 13, 746, 13); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (14, 14, 440, 'Stripe', 'Completed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (14, 14, 440, 14); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (15, 15, 983, 'Stripe', 'Completed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (15, 15, 983, 15); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (16, 16, 530, 'Visa', 'Failed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (16, 16, 530, 16); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (17, 17, 900, 'Visa', 'Completed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (17, 17, 900, 17); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (18, 18, 338, 'Stripe', 'Completed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (18, 18, 338, 18); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (19, 19, 759, 'PayPal', 'Pending'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (19, 19, 759, 19); +INSERT INTO payment_details (id, order_id, amount, provider, status) +VALUES (20, 20, 956, 'Stripe', 'Completed'); +INSERT INTO order_details (id, user_id, total, payment_id) +VALUES (20, 20, 956, 20); + +-- Order Items +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (1, 1, 21, 3, 1); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (2, 1, 25, 2, 1); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (3, 2, 22, 2, 2); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (4, 2, 27, 1, 2); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (5, 3, 15, 2, 3); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (6, 3, 32, 2, 3); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (7, 4, 17, 3, 4); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (8, 4, 28, 1, 4); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (9, 5, 47, 1, 5); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (10, 5, 34, 3, 5); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (11, 6, 16, 3, 6); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (12, 6, 19, 1, 6); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (13, 7, 17, 2, 7); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (14, 7, 10, 1, 7); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (15, 8, 40, 3, 8); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (16, 8, 29, 2, 8); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (17, 9, 23, 1, 9); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (18, 9, 13, 3, 9); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (19, 10, 8, 1, 10); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (20, 10, 2, 3, 10); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (21, 11, 27, 1, 11); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (22, 11, 4, 1, 11); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (23, 12, 27, 1, 12); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (24, 12, 10, 2, 12); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (25, 13, 8, 2, 13); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (26, 13, 22, 2, 13); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (27, 14, 33, 1, 14); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (28, 14, 46, 2, 14); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (29, 15, 37, 1, 15); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (30, 15, 10, 2, 15); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (31, 16, 27, 3, 16); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (32, 16, 26, 2, 16); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (33, 17, 15, 2, 17); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (34, 17, 12, 3, 17); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (35, 18, 39, 2, 18); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (36, 18, 26, 1, 18); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (37, 19, 15, 1, 19); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (38, 19, 29, 1, 19); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (39, 20, 16, 3, 20); +INSERT INTO order_items (id, order_id, product_id, quantity, user_id) +VALUES (40, 20, 8, 1, 20); \ No newline at end of file -- 2.39.5