Browse Source

Merge branch 'develop' of https://gitlab.com/fia72-dev/eva_lernsituation into develop

f/raum-übersicht
K.A.J 7 years ago
parent
commit
e784d9de21
  1. 23
      .gitignore
  2. 12
      .gitlab-ci.yml
  3. 13
      Docker/Dockerfile_FE_Host.dockerfile
  4. 2
      Docker/config/restart-host.sh
  5. 478
      Frontend/package-lock.json
  6. 3
      Frontend/package.json
  7. 5
      Frontend/public/index.html
  8. 17
      Frontend/src/components/App.js
  9. 376
      Frontend/src/components/Aufnahmeantrag.js
  10. 36
      Frontend/src/components/Login.js
  11. 148
      _Dokumente/Ausgearbeitete Dokumente/Endpoints.md
  12. 27
      _Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.md
  13. BIN
      _Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.pdf
  14. 26
      _Dokumente/Protokolle/2019-06-12_Protokoll.md
  15. 361
      package-lock.json

23
.gitignore vendored

@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

12
.gitlab-ci.yml

@ -1,9 +1,10 @@
stages:
- build
- build_docker
- build_frontend
build_frontend:
stage: build
stage: build_frontend
tags:
- docker
image: registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-build
@ -24,12 +25,15 @@ build_frontend:
- ssh $DEPLOY_ENV_USER@$DEPLOY_ENV_TARGET "rm -rf /home/$DEPLOY_ENV_USER/serve/*"
- ssh $DEPLOY_ENV_USER@$DEPLOY_ENV_TARGET "mkdir -p /home/$DEPLOY_ENV_USER/serve/$CI_COMMIT_REF_NAME"
- rsync --progress -av -e ssh /workdir/build/* $DEPLOY_ENV_USER@$DEPLOY_ENV_TARGET:/home/$DEPLOY_ENV_USER/serve/
only:
changes:
- Frontend/*
environment:
name: deploy
url: https://$DEPLOY_ENV_TARGET
build_docker_host:
stage: build
stage: build_docker
tags:
- docker-builder
before_script:
@ -51,7 +55,7 @@ build_docker_host:
- Docker/config/*
build_docker_builder:
stage: build
stage: build_docker
tags:
- docker-builder
before_script:

13
Docker/Dockerfile_FE_Host.dockerfile

@ -1,5 +1,14 @@
# Tag: frontend-serve
FROM nginx
# FROM nginx
COPY Docker/config/nginx.conf /etc/nginx/nginx.conf
# COPY Docker/config/nginx.conf /etc/nginx/nginx.conf
FROM node:10.8-stretch
WORKDIR /opt/frontend
RUN pwd && ls -la
RUN npm install -g serve
CMD ["serve", "-s", "build"]

2
Docker/config/restart-host.sh

@ -3,5 +3,5 @@ docker login -u gitlab+deploy-token-66068 -p vD23SzzitUn8y8xGknKz registry.gitla
docker stop eva_frontend_serve
docker rm eva_frontend_serve
docker rmi registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-serve
docker run -d -p 8083:80 -v /home/gitlab/serve:/usr/share/nginx/html:ro --name "eva_frontend_serve" registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-serve
docker run -d -p 8083:5000 -v /home/gitlab/serve:/opt/frontend/build:ro --name "eva_frontend_serve" registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-serve

478
Frontend/package-lock.json generated

@ -911,6 +911,11 @@
"resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-9.0.1.tgz",
"integrity": "sha512-6It2EVfGskxZCQhuykrfnALg7oVeiI6KclWSmGDqB0AiInVrTGB9Jp9i4/Ad21u9Jde/voVQz6eFX/eSg/UsPA=="
},
"@emotion/hash": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.1.tgz",
"integrity": "sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA=="
},
"@hapi/address": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.0.0.tgz",
@ -1148,6 +1153,105 @@
"@types/yargs": "^12.0.9"
}
},
"@material-ui/core": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.1.0.tgz",
"integrity": "sha512-dpS7OvW4eBInskB3l72htaBY+3VFfgEs0UiNczyJyqb6SjymVx7ymi0BnwfUOWJYwPq0jfRqPddy0ThADBqvHQ==",
"requires": {
"@babel/runtime": "^7.2.0",
"@material-ui/styles": "^4.1.0",
"@material-ui/system": "^4.1.0",
"@material-ui/types": "^4.1.0",
"@material-ui/utils": "^4.1.0",
"@types/react-transition-group": "^2.0.16",
"clsx": "^1.0.2",
"convert-css-length": "^2.0.0",
"debounce": "^1.1.0",
"deepmerge": "^3.0.0",
"hoist-non-react-statics": "^3.2.1",
"is-plain-object": "^3.0.0",
"normalize-scroll-left": "^0.2.0",
"popper.js": "^1.14.1",
"prop-types": "^15.7.2",
"react-event-listener": "^0.6.6",
"react-transition-group": "^4.0.0",
"warning": "^4.0.1"
},
"dependencies": {
"is-plain-object": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
"integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
"requires": {
"isobject": "^4.0.0"
}
},
"isobject": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
"integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA=="
}
}
},
"@material-ui/icons": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.1.0.tgz",
"integrity": "sha512-EwlS/D3O1lBEFBBOwBJgcV3c9zkLYy6GpJzBFL4i8rpkwfpWAE2dvz2TGsHfftfR60tiiLpZJhngBL7NJYnRng==",
"requires": {
"@babel/runtime": "^7.2.0"
}
},
"@material-ui/styles": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.1.0.tgz",
"integrity": "sha512-GMv/8UcfZv5P9Cl2eR+HbyJwCnrYOeDRW3BALCGZgQ7nBiQTQnrhXxA1MprBoRBPl5KiD2kQJdjbdkvT8OSfNg==",
"requires": {
"@babel/runtime": "^7.2.0",
"@emotion/hash": "^0.7.1",
"@material-ui/types": "^4.1.0",
"@material-ui/utils": "^4.1.0",
"clsx": "^1.0.2",
"csstype": "^2.5.2",
"deepmerge": "^3.0.0",
"hoist-non-react-statics": "^3.2.1",
"jss": "10.0.0-alpha.17",
"jss-plugin-camel-case": "10.0.0-alpha.17",
"jss-plugin-default-unit": "10.0.0-alpha.17",
"jss-plugin-global": "10.0.0-alpha.17",
"jss-plugin-nested": "10.0.0-alpha.17",
"jss-plugin-props-sort": "10.0.0-alpha.17",
"jss-plugin-rule-value-function": "10.0.0-alpha.17",
"jss-plugin-vendor-prefixer": "10.0.0-alpha.17",
"prop-types": "^15.7.2",
"warning": "^4.0.1"
}
},
"@material-ui/system": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.1.0.tgz",
"integrity": "sha512-1v/J2X820CzYhiH46z9qcbd+AVcQ+578ycsHAo6MVpu5eI399S6t+OcO6vg0FPhCrLshWynNGNfeF0JcLlrYzA==",
"requires": {
"@babel/runtime": "^7.2.0",
"deepmerge": "^3.0.0",
"prop-types": "^15.7.2",
"warning": "^4.0.1"
}
},
"@material-ui/types": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@material-ui/types/-/types-4.1.0.tgz",
"integrity": "sha512-F4z7GOAeEucPjrrhJ2PHBhMZjhggE6Jjnzmap5W2PdZ3TSWNlqucB+oOzT6EzWRkHDDhVmANMU8QMfT/kcZtOg=="
},
"@material-ui/utils": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.1.0.tgz",
"integrity": "sha512-muwmVU799tzPjzb+Q5E/CTDle0rXwkCAdvMVyU0BfbJhenkUsFmuYiCmbvMVOU1m6F1S5HWfXz8EP4pXwwAvrw==",
"requires": {
"@babel/runtime": "^7.2.0",
"prop-types": "^15.7.2",
"react-is": "^16.8.0"
}
},
"@mrmlnc/readdir-enhanced": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
@ -1337,11 +1441,33 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.0.tgz",
"integrity": "sha512-Jrb/x3HT4PTJp6a4avhmJCDEVrPdqLfl3e8GGMbpkGGdwAV5UGlIs4vVEfsHHfylZVOKZWpOqmqFH8CbfOZ6kg=="
},
"@types/prop-types": {
"version": "15.7.1",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz",
"integrity": "sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg=="
},
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
"integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw=="
},
"@types/react": {
"version": "16.8.19",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.19.tgz",
"integrity": "sha512-QzEzjrd1zFzY9cDlbIiFvdr+YUmefuuRYrPxmkwG0UQv5XF35gFIi7a95m1bNVcFU0VimxSZ5QVGSiBmlggQXQ==",
"requires": {
"@types/prop-types": "*",
"csstype": "^2.2.0"
}
},
"@types/react-transition-group": {
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.9.2.tgz",
"integrity": "sha512-5Fv2DQNO+GpdPZcxp2x/OQG/H19A01WlmpjVD9cKvVFmoVLOZ9LvBgSWG6pSXIU4og5fgbvGPaCV5+VGkWAEHA==",
"requires": {
"@types/react": "*"
}
},
"@types/stack-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
@ -3308,6 +3434,11 @@
"shallow-clone": "^0.1.2"
}
},
"clsx": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.0.4.tgz",
"integrity": "sha512-1mQ557MIZTrL/140j+JVdRM6e31/OA4vTYxXgqIIZlndyfjHpyawKZia1Im05Vp9BWmImkcNrNtFYQMyFcgJDg=="
},
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@ -3472,6 +3603,11 @@
"date-now": "^0.1.4"
}
},
"console-polyfill": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/console-polyfill/-/console-polyfill-0.1.2.tgz",
"integrity": "sha1-ls/tUcr3gYn2mVcubxgnHcN8DjA="
},
"constants-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
@ -3492,6 +3628,15 @@
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"convert-css-length": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-css-length/-/convert-css-length-2.0.0.tgz",
"integrity": "sha512-ygBgHNzImHJ/kjgqdzC0oaY2+EMID3s88/CZD2C9O1stM3PwsOwXzzlFTTkZy/bPZe0wjyt1UoYjilfunQGjlw==",
"requires": {
"console-polyfill": "^0.1.2",
"parse-unit": "^1.0.1"
}
},
"convert-source-map": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
@ -3599,6 +3744,15 @@
"sha.js": "^2.4.8"
}
},
"create-react-context": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz",
"integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==",
"requires": {
"fbjs": "^0.8.0",
"gud": "^1.0.0"
}
},
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@ -3752,6 +3906,15 @@
"resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz",
"integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w="
},
"css-vendor": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.2.tgz",
"integrity": "sha512-Xn5ZAlI00d8HaQ8/oQ8d+iBzSF//NCc77LPzsucM32X/R/yTqmXy6otVsAM0XleXk6HjPuXoVZwXsayky/fsFQ==",
"requires": {
"@babel/runtime": "^7.3.1",
"is-in-browser": "^1.0.2"
}
},
"css-what": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
@ -3870,6 +4033,11 @@
"cssom": "0.3.x"
}
},
"csstype": {
"version": "2.6.5",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.5.tgz",
"integrity": "sha512-JsTaiksRsel5n7XwqPAfB0l3TFKdpjW/kgAELf9vrb5adGA7UCPLajKK5s3nFrcFm3Rkyp/Qkgl73ENc1UY3cA=="
},
"cyclist": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
@ -3915,6 +4083,11 @@
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
"integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
},
"debounce": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz",
"integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg=="
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@ -3943,6 +4116,11 @@
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
},
"deepmerge": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz",
"integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow=="
},
"default-gateway": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
@ -4156,6 +4334,14 @@
"utila": "~0.4"
}
},
"dom-helpers": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
"integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
"requires": {
"@babel/runtime": "^7.1.2"
}
},
"dom-serializer": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
@ -4282,6 +4468,14 @@
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"encoding": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
"requires": {
"iconv-lite": "~0.4.13"
}
},
"end-of-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
@ -5117,6 +5311,35 @@
"bser": "^2.0.0"
}
},
"fbjs": {
"version": "0.8.17",
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
"integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
"requires": {
"core-js": "^1.0.0",
"isomorphic-fetch": "^2.1.1",
"loose-envify": "^1.0.0",
"object-assign": "^4.1.0",
"promise": "^7.1.1",
"setimmediate": "^1.0.5",
"ua-parser-js": "^0.7.18"
},
"dependencies": {
"core-js": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
},
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"requires": {
"asap": "~2.0.3"
}
}
}
},
"figgy-pudding": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
@ -5519,6 +5742,11 @@
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
"integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE="
},
"gud": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz",
"integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw=="
},
"gzip-size": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.0.0.tgz",
@ -5693,6 +5921,19 @@
"resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
},
"history": {
"version": "4.9.0",
"resolved": "https://registry.npmjs.org/history/-/history-4.9.0.tgz",
"integrity": "sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA==",
"requires": {
"@babel/runtime": "^7.1.2",
"loose-envify": "^1.2.0",
"resolve-pathname": "^2.2.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0",
"value-equal": "^0.4.0"
}
},
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
@ -5703,6 +5944,14 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
"hoist-non-react-statics": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz",
"integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==",
"requires": {
"react-is": "^16.7.0"
}
},
"hosted-git-info": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
@ -5863,6 +6112,11 @@
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
},
"hyphenate-style-name": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz",
"integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ=="
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@ -6172,6 +6426,11 @@
"is-extglob": "^2.1.1"
}
},
"is-in-browser": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
"integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
},
"is-number": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
@ -6298,6 +6557,15 @@
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
},
"isomorphic-fetch": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
"requires": {
"node-fetch": "^1.0.1",
"whatwg-fetch": ">=0.10.0"
}
},
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
@ -7561,6 +7829,82 @@
"verror": "1.10.0"
}
},
"jss": {
"version": "10.0.0-alpha.17",
"resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.17.tgz",
"integrity": "sha512-egGIUg+YRu0+U+XXlD0gmVtU/gW5sn7+qmDv7opwK5s8emZBE/VoN55X6CaMrAa0kLeGMldnI43KOWea6M9/mA==",
"requires": {
"@babel/runtime": "^7.3.1",
"is-in-browser": "^1.1.3",
"tiny-warning": "^1.0.2"
}
},
"jss-plugin-camel-case": {
"version": "10.0.0-alpha.17",
"resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.0-alpha.17.tgz",
"integrity": "sha512-aPY4kr6MwliH7KToLRzeSk1NxXUo9n7MQsAa0Hghwj01x9UnMkDkGAKENMKUtPjGkQZfiJpB9tTLFrSJ/6VrIQ==",
"requires": {
"@babel/runtime": "^7.3.1",
"hyphenate-style-name": "^1.0.3",
"jss": "10.0.0-alpha.17"
}
},
"jss-plugin-default-unit": {
"version": "10.0.0-alpha.17",
"resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.0-alpha.17.tgz",
"integrity": "sha512-KQgiXczvzJ9AlFdD8NS7FZLub0NSctSrCA9Yi/GqdsfJg4ZCriU4DzIybCZBHCi/INFGJmLIESYWSxnuhAzgSQ==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.17"
}
},
"jss-plugin-global": {
"version": "10.0.0-alpha.17",
"resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.0.0-alpha.17.tgz",
"integrity": "sha512-WYxiwwI+CLk0ozW8loeceqXBAZXBMsLBEZeRwVf9WX+FljdJkGwVZpRCk6LBX4aXnqAGyKqCxIAIJ3KP2yBdEg==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.17"
}
},
"jss-plugin-nested": {
"version": "10.0.0-alpha.17",
"resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.0.0-alpha.17.tgz",
"integrity": "sha512-onpFqv904KCujryf2t6IIV1/QoB7cSF7ojrd4UujcN5TPvYOvXF5bchi7jnHG5U0SLlRSDGMLJ9fhtoCknhEbw==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.17",
"tiny-warning": "^1.0.2"
}
},
"jss-plugin-props-sort": {
"version": "10.0.0-alpha.17",
"resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.0-alpha.17.tgz",
"integrity": "sha512-KnbyrxCbtQTqpDx2mSZU/r/E5QnDPIVfIxRi8K+W/q4gZpomBvqWC+xgvAk9hbpmA6QBoQaOilV8o12w2IZ6fg==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.17"
}
},
"jss-plugin-rule-value-function": {
"version": "10.0.0-alpha.17",
"resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.0-alpha.17.tgz",
"integrity": "sha512-8AuJB44Q+ehfkWVRi2XlRbUf6SrLmrHTa5EXd6dgQRCCRuvGmqX8Dl4fZvNeKRFjTLPZgzg9+31rqeOMhKa2vA==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.17"
}
},
"jss-plugin-vendor-prefixer": {
"version": "10.0.0-alpha.17",
"resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.0-alpha.17.tgz",
"integrity": "sha512-wDq9EL0QaoMGSGifPEBb+/SA9LBcqPEW0jpL9ht+Z2t+lV7NNz0j7uCEOuE6FvNWqHzUKTsiATs1rTHPkzNBEQ==",
"requires": {
"@babel/runtime": "^7.3.1",
"css-vendor": "^2.0.1",
"jss": "10.0.0-alpha.17"
}
},
"jsx-ast-utils": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz",
@ -8193,6 +8537,15 @@
"lower-case": "^1.1.1"
}
},
"node-fetch": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"requires": {
"encoding": "^0.1.11",
"is-stream": "^1.0.1"
}
},
"node-forge": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
@ -8310,6 +8663,11 @@
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
"integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
},
"normalize-scroll-left": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/normalize-scroll-left/-/normalize-scroll-left-0.2.0.tgz",
"integrity": "sha512-t5oCENZJl8TGusJKoCJm7+asaSsPuNmK6+iEjrZ5TyBj2f02brCRsd4c83hwtu+e5d4LCSBZ0uoDlMjBo+A8yA=="
},
"normalize-url": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
@ -8671,6 +9029,11 @@
"json-parse-better-errors": "^1.0.1"
}
},
"parse-unit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz",
"integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8="
},
"parse5": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
@ -8846,6 +9209,11 @@
"ts-pnp": "^1.0.0"
}
},
"popper.js": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz",
"integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA=="
},
"portfinder": {
"version": "1.0.20",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz",
@ -10068,11 +10436,67 @@
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.5.tgz",
"integrity": "sha512-O9JRum1Zq/qCPFH5qVEvDDrVun8Jv9vbHtZXCR1EuRj9sKg1xJTlHxBzU6AkCzpvxRLuiY4OKImy3cDLQ+UTdg=="
},
"react-event-listener": {
"version": "0.6.6",
"resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.6.tgz",
"integrity": "sha512-+hCNqfy7o9wvO6UgjqFmBzARJS7qrNoda0VqzvOuioEpoEXKutiKuv92dSz6kP7rYLmyHPyYNLesi5t/aH1gfw==",
"requires": {
"@babel/runtime": "^7.2.0",
"prop-types": "^15.6.0",
"warning": "^4.0.1"
}
},
"react-is": {
"version": "16.8.6",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
"integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA=="
},
"react-router": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.0.0.tgz",
"integrity": "sha512-6EQDakGdLG/it2x9EaCt9ZpEEPxnd0OCLBHQ1AcITAAx7nCnyvnzf76jKWG1s2/oJ7SSviUgfWHofdYljFexsA==",
"requires": {
"@babel/runtime": "^7.1.2",
"create-react-context": "^0.2.2",
"history": "^4.9.0",
"hoist-non-react-statics": "^3.1.0",
"loose-envify": "^1.3.1",
"path-to-regexp": "^1.7.0",
"prop-types": "^15.6.2",
"react-is": "^16.6.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
},
"dependencies": {
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"path-to-regexp": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
"integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
"requires": {
"isarray": "0.0.1"
}
}
}
},
"react-router-dom": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.0.0.tgz",
"integrity": "sha512-wSpja5g9kh5dIteZT3tUoggjnsa+TPFHSMrpHXMpFsaHhQkm/JNVGh2jiF9Dkh4+duj4MKCkwO6H08u6inZYgQ==",
"requires": {
"@babel/runtime": "^7.1.2",
"history": "^4.9.0",
"loose-envify": "^1.3.1",
"prop-types": "^15.6.2",
"react-router": "5.0.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
}
},
"react-scripts": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.0.0.tgz",
@ -10131,6 +10555,27 @@
"workbox-webpack-plugin": "4.2.0"
}
},
"react-transition-group": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.1.1.tgz",
"integrity": "sha512-K/N1wqJ2GRP2yj3WBqEUYa0KV5fiaAWpUfU9SpHOHefeKvyrO+VrnMBML21M19QZoVbDZKmuQFHZYoMMi1xuJA==",
"requires": {
"@babel/runtime": "^7.4.5",
"dom-helpers": "^3.4.0",
"loose-envify": "^1.4.0",
"prop-types": "^15.6.2"
},
"dependencies": {
"@babel/runtime": {
"version": "7.4.5",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz",
"integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==",
"requires": {
"regenerator-runtime": "^0.13.2"
}
}
}
},
"read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
@ -10457,6 +10902,11 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
"integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
},
"resolve-pathname": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz",
"integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg=="
},
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
@ -11544,6 +11994,16 @@
"resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q="
},
"tiny-invariant": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.4.tgz",
"integrity": "sha512-lMhRd/djQJ3MoaHEBrw8e2/uM4rs9YMNk0iOr8rHQ0QdbM7D4l0gFl3szKdeixrlyfm9Zqi4dxHCM2qVG8ND5g=="
},
"tiny-warning": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.2.tgz",
"integrity": "sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q=="
},
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@ -11680,6 +12140,11 @@
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"ua-parser-js": {
"version": "0.7.19",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz",
"integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ=="
},
"uglify-js": {
"version": "3.4.10",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
@ -11976,6 +12441,11 @@
"spdx-expression-parse": "^3.0.0"
}
},
"value-equal": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz",
"integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw=="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@ -12076,6 +12546,14 @@
"makeerror": "1.0.x"
}
},
"warning": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
"integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
"requires": {
"loose-envify": "^1.0.0"
}
},
"watchpack": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",

3
Frontend/package.json

@ -3,8 +3,11 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"@material-ui/core": "^4.0.2",
"@material-ui/icons": "^4.0.1",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-router-dom": "^5.0.0",
"react-scripts": "3.0.0"
},
"scripts": {

5
Frontend/public/index.html

@ -3,7 +3,10 @@
<head>
<meta charset="utf-8" />
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="viewport"
content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no"
/>
<meta name="theme-color" content="#000000" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>Lernsituation</title>

17
Frontend/src/components/App.js

@ -1,9 +1,24 @@
import React, { Component } from "react";
import CssBaseline from "@material-ui/core/CssBaseline";
import { BrowserRouter as Router, Route } from "react-router-dom";
import Login from "./Login.js";
import { Box } from "@material-ui/core";
import Aufnahmeantrag from "./Aufnahmeantrag.js";
class App extends Component {
state = {};
render() {
return <></>;
return (
<>
<CssBaseline />
<Router>
<Box flexDirection="column" width="100%">
<Route path="/login" component={Login} />
<Route path="/aufnahmeantrag" component={Aufnahmeantrag} />
</Box>
</Router>
</>
);
}
}

376
Frontend/src/components/Aufnahmeantrag.js

@ -0,0 +1,376 @@
import React, { Component } from "react";
import {
FormControlLabel,
Checkbox,
TextField,
Typography,
Grid,
Fab,
Container,
FormControl,
InputLabel,
MenuItem,
Select,
OutlinedInput
} from "@material-ui/core";
import SendIcon from "@material-ui/icons/Send";
import { withStyles, createStyles } from "@material-ui/core/styles";
const useStyles = createStyles(theme => ({
textField: {
margingLeft: theme.spacing(1),
marginRight: theme.spacing(1)
},
fab: {
margin: theme.spacing(1)
},
form: {
backgroundColor: "#f5f5f5",
borderRadius: "5px",
margin: "20px",
padding: "20px",
boxShadow: "0px 0px 5px 0px lightgrey",
border: "1px solid lightgrey"
},
checkbox: {
display: "flex",
alignItems: "center",
height: "100%",
marginLeft: "7px"
},
instruments: {
border: "1px solid lightgrey",
borderRadius: "5px",
display: "flex",
flexWrap: "wrap",
padding: "10px"
}
}));
class Aufnahmeantrag extends Component {
state = {
form: {
Name: "",
Vorname: "",
Geburtsdatum: "",
Geburtsort: "",
PLZ: "",
Ort: "",
Strasse: "",
Hausnummer: "",
Telefon: "",
EMail: "",
BLZ: "",
Bankname: "",
KontoNr: "",
Instrument: [],
Ermaessigt: null,
Laufzeit: "",
Typ: ""
},
instruments: [
{ name: "Gitarre", toggle: false },
{ name: "Schlagzeug", toggle: false },
{ name: "Flöte", toggle: false },
{ name: "Trompete", toggle: false },
{ name: "Banjo", toggle: false },
{ name: "Klavier", toggle: false },
{ name: "Orgel", toggle: false },
{ name: "Kazoo", toggle: false }
]
};
handleChange = name => event => {
this.setState({ form: { ...this.state.form, [name]: event.target.value } });
};
handleInstrument = instrument => {
var instruments = this.state.instruments;
var instrumentsArray = [];
instruments.forEach(obj => {
if (obj === instrument) obj.toggle = !obj.toggle;
if (obj.toggle === true) instrumentsArray.push(obj.name);
});
this.setState({
form: { ...this.state.form, Instrument: instrumentsArray }
});
this.setState({ instruments });
};
render() {
const classes = this.props.classes;
return (
<Container maxWidth="md">
<div className={classes.form}>
<Grid container direction="row" justify="center" alignItems="center">
<Grid container spacing={1}>
<Grid item xs={12}>
<Typography align="center" variant="h4">
Aufnahmeantrag
</Typography>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Name"
className={classes.textField}
value={this.state.form.Name}
onChange={this.handleChange("Name")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Vorname"
className={classes.textField}
value={this.state.form.Vorname}
onChange={this.handleChange("Vorname")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Geburtsdatum"
className={classes.textField}
value={this.state.form.Geburtsdatum}
onChange={this.handleChange("Geburtsdatum")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Geburtsort"
className={classes.textField}
value={this.state.form.Geburtsort}
onChange={this.handleChange("Geburtsort")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="PLZ"
className={classes.textField}
value={this.state.form.PLZ}
onChange={this.handleChange("PLZ")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Ort"
className={classes.textField}
value={this.state.form.Ort}
onChange={this.handleChange("Ort")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Strasse"
className={classes.textField}
value={this.state.form.Strasse}
onChange={this.handleChange("Strasse")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Hausnummer"
className={classes.textField}
value={this.state.form.Hausnummer}
onChange={this.handleChange("Hausnummer")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Telefon"
className={classes.textField}
value={this.state.form.Telefon}
onChange={this.handleChange("Telefon")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="EMail"
className={classes.textField}
value={this.state.form.EMail}
onChange={this.handleChange("EMail")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={12} xs={12}>
<Typography align="left" variant="h6">
Instrumente
</Typography>
<div className={classes.instruments}>
{this.state.instruments.map(instrument => (
<FormControlLabel
key={instrument.name}
control={
<Checkbox
checked={instrument.toggle}
onChange={() => this.handleInstrument(instrument)}
value={instrument.name}
color="primary"
/>
}
label={instrument.name}
/>
))}
</div>
</Grid>
<Grid item sm={6} xs={12}>
<FormControl
margin="normal"
fullWidth={true}
variant="outlined"
className={classes.textField}
>
<InputLabel htmlFor="outlined-laufzeit-simple">
Laufzeit
</InputLabel>
<Select
value={this.state.form.Laufzeit}
onChange={this.handleChange("Laufzeit")}
input={
<OutlinedInput
labelWidth={60}
name="laufzeit"
id="outlined-laufzeit-simple"
/>
}
>
<MenuItem value={6}>6 Monate</MenuItem>
<MenuItem value={12}>12 Monate</MenuItem>
</Select>
</FormControl>
</Grid>
<Grid item sm={6} xs={12}>
<FormControl
margin="normal"
fullWidth={true}
variant="outlined"
className={classes.textField}
>
<InputLabel htmlFor="outlined-laufzeit-simple">
Unterichtstyp
</InputLabel>
<Select
value={this.state.form.Typ}
onChange={this.handleChange("Typ")}
input={
<OutlinedInput
labelWidth={95}
name="laufzeit"
id="outlined-laufzeit-simple"
/>
}
>
<MenuItem value={"einzel"}>Einzelunterricht</MenuItem>
<MenuItem value={"band"}>Gruppenunterricht / Band</MenuItem>
</Select>
</FormControl>
</Grid>
<Grid item sm={12} xs={12}>
<div className={classes.checkbox}>
<FormControlLabel
control={
<Checkbox
checked={this.state.form.Ermaessigt}
onChange={() => this.handleChange("Ermaessigt")}
value="Ermaessigt"
color="primary"
/>
}
label="Schüler/Student/Azubi"
/>
</div>
</Grid>
</Grid>
<Grid container spacing={1}>
<Grid item xs={12}>
<Typography align="center" variant="h4">
Bankverbindung
</Typography>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="BLZ"
className={classes.textField}
value={this.state.form.BLZ}
onChange={this.handleChange("BLZ")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item sm={6} xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Bankname"
className={classes.textField}
value={this.state.form.Bankname}
onChange={this.handleChange("Bankname")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="KontoNr"
className={classes.textField}
value={this.state.form.KontoNr}
onChange={this.handleChange("KontoNr")}
margin="normal"
variant="outlined"
/>
</Grid>
</Grid>
<Fab color="primary" aria-label="Send" className={classes.fab}>
<SendIcon />
</Fab>
</Grid>
</div>
</Container>
);
}
}
export default withStyles(useStyles)(Aufnahmeantrag);

36
Frontend/src/components/Login.js

@ -0,0 +1,36 @@
import React, { Component } from "react";
import TextField from "@material-ui/core/TextField";
class Login extends Component {
state = {};
render() {
return (
<form>
<TextField
variant="outlined"
margin="normal"
required
fullWidth
id="email"
label="Email Address"
name="email"
autoComplete="email"
autoFocus
/>
<TextField
type="password"
variant="outlined"
margin="normal"
required
fullWidth
id="password"
label="Password"
name="password"
autoComplete="password"
/>
</form>
);
}
}
export default Login;

148
_Dokumente/Ausgearbeitete Dokumente/Endpoints.md

@ -1,34 +1,57 @@
# Endpoints
## Screens
Im folgenden werden diverse Http-Schnittstellen zur Kommunikation zwischen Frontend und Backend beschrieben.
Zusäzlich ist angegeben, für welche Benutzerrollen die jeweiligen Funktionen zu Verfügung steht.
---
### Login
- POST Login
- Parameter
- POST login
- Parameter
- Username string
- Password string
- POST logout
### Übersichtsseite (Dozent und Verwaltung)
- GET screens
- Liefert alle erlaubten Ansichten für einen User zurück
- Liefert alle erlaubten Ansichten für einen User zurück
- Liefert Array
- Screen string
### Wochenübersicht (Dozent)
- GET weekly_overview
- Liefert alle Unterrichtseinheiten für die nächsten 7 Tage
- Liefert alle Unterrichtseinheiten für die nächsten 7 Tage
- Liefert Array
### Kursübericht [besser Kursdetails] (Dozent und Verwaltung)
- GET course_detail
- Liefert alle Informationen zu einem Kurs
- Paramter
- KursID string
- Liefert object
- KursID string
- DozentID string
- DozentName string
- Unterrichtseinheiten Array
- StartZeit DateTime
- Students Array
- StudentID string
- StudentName string
- GET course_contents
- Liefert alle eingetragenen Inhalten zum Kurs
- Parameter
- KursID string
- PUT new_course_content
- Inhalt der Letzten UE wird gesetzt
- Inhalt der letzten UE wird gesetzt
- Parameter
- KursID string
- content string
- Content string
### Welcher Lehrer Welcher Kurs (Verwaltung)
- GET course_teacher_match
- Liefert Array
- Liefert Array
- KursID string
- KursName string
- DozentID string
@ -36,7 +59,7 @@
### Welche Schüler Welcher Kurs (Verwaltung)
- GET course_student_match
- Liefert Array
- Liefert Array
- KursID string
- KursName string
- DozentID string
@ -44,75 +67,82 @@
### Lehrerübersicht (Verwaltung)
- GET all_teachers
- Liefert Array
- Liefert alle Dozenten
- Liefert Array
- DozentID string
- DozentName string
### Schüler von Lehrer (Dozent und Verwaltung)
- GET students_of_teacher
- Parameter DozentID
- Liefert Array
- Parameter DozentID
- Liefert Array
- StundentID string
- StudentName string
### Raumübersicht (Verwaltung)
- GET rooms
- Liefert Array
- Liefert alle verfügbaren Räume, inkl. der vorhandenen Instrumente
- Liefert Array
- RaumID string
- RaumName string
- Instrumente Array
- InstrumentName string
- GET instruments
- Liefert Array
- InstrumentName string
- InstrumentID string
- InstrumentName string
- PUT create_rooms
- Parameter
- RaumName string
- Instrumente Array
- InstrumentID string
### Raumdetails (Verwaltung)
- GET room_free
- Parameter RaumID
- Liefert Frei bool
- Liefert alle aktuell freien Räumen
- Parameter
- RaumID string
- Liefert object
- Belegt bool
- GET room_instruments
- Parameter RaumID
- Liefert Array
- Liefert alle Instrumente zu einem Raum
- Parameter
- RaumID string
- Liefert Array
- InstrumentID string
- InstrumentName string
- Vorhanden bool
- GET lessons
- Parameter
- Liefert alle Unterrichtszeiten in einem Raum
- Parameter
- RaumID string
- Sort // Maybe wenn benötigt
- Liefert Array
- StartZeit DT
- Liefert Array
- StartZeit DateTime
### Kurs Erstellen [Person + Kurs]
- nutzt GET instruments
- GET create_
### Kurs Erstellen [Person + Kurs] (Verwaltung)
- POST get_capable_teachers
- Parameter
- Liefert alle Dozenten, die einen bestimmten Kurs leiten können
- Parameter
- Typ string
- Instrumente Array
- Liefert Array
- InstrumentID string
- Liefert Array
- DozentID string
- DozentName string
- POST get_cross_referenced_rooms
- Parameter
- Parameter
- Typ string
- Instrumente Array
- InstrumentName string
- InstrumentID string
- DozentID string
- Liefert Array
- Liefert Array
- RaumID string
- Zeiten Array
- Zeitfenster number
- Zeit DateTime
- POST create_person
- Parameter
- Erstellt eine Person
- Parameter
- Name string
- Vorname string
- istErmaesigt bool
- Geburtsdatum DT
- IstErmaessigt bool
- Geburtsdatum DateTime
- Geburtsort string
- PLZ string
- Ort string
@ -120,16 +150,44 @@
- Bankname string
- BLZ string
- KontoNr string
- Liefert object
- StudentID string
- POST create_course
- Parameter
// Kursdaten
- Erstellt einen Kurs
- Parameter
- Typ string
- Instrumente Array
- Instrument string
- InstrumentID string
- DonzentID string
- Unterrichtseinheiten Array
- Zeit int
- Zeit int
- POST enroll_student
- Parameter
- Ordnet einen Schueler einem Kurs zu
- Parameter
- KursID string
- PersonID string
- StudentID string
### Aufnahmeantrag (Anonymous)
- POST aufnahmeantrag
- Parameter
- Name string
- Vorname string
- IstErmaessigt bool
- Geburtsdatum DateTime
- Geburtsort string
- PLZ string
- Ort string
- StrasseHNR string
- Bankname string
- BLZ string
- KontoNr string
- Typ string
- Instrumente Array
- InstrumentID string
- Laufzeit
- KursID string
### Instrumente (Anonymous)
- GET instruments
- Liefert Instrumente Array
- InstrumentID string
- InstrumentName string

27
_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.md

@ -13,19 +13,24 @@
1. Hardware
1. Produktfunktionen
1. Dozentenfunktionen
1. Login
2. Wochenübersicht
3. Kursdetails
1. Wochenübersicht
2. Kursdetails
2. Verwaltungsfunktionen
1. Login
1. Offene Anträge
2. Kurse erstellen
3. Mitglied zu Gruppenkurs hinzufügen
4. Kursübersicht
5. Schülerübersicht
6. Schüler eines Lehrers
7. Raumübersicht m. Raumplan
8. Offene Anträge
9. Finanzübersichrt
1. Kursübersicht
2. Schülerübersicht
3. Schüler eines Dozenten
4. Raumübersicht m. Raumplan
5. Raumdetails
6. Offene Anträge
7. Finanzübersichrt
1. Sonstige Funktionen
1. Login
2. Mitglied zu Kurs hinzufügen
1. Benutzeroberfläche
1. Dialogstruktur
2. Bildschirmlayout
## Zielbestimmung

BIN
_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.pdf

Binary file not shown.

26
_Dokumente/Protokolle/2019-06-12_Protokoll.md

@ -0,0 +1,26 @@
# 2019-06-12 Protokoll
_Teilnehmer: Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_
_Ort: Schule_
## Agenda
* Projektstrukturplan und Zeitplan
* Pflichtenheft
* Abgabe Use-Case-Diagramm
* Endpoints
* Enthaltene Funktionen im Prototyp?
## Ergebnisse
* Pflichtenheft ist abgegeben
* Pflichenheft initial vollständig
* PSP vervollständigt
* Prototyp (enthaltene Funktionen)
* Login
* Antragsgformular
* Wochenübersicht für Dozenten (Dozenten)
* Kurse erstellen/bestätigen (Verwaltung)
## Resultierende Aufgaben
|Aufgabe|Verantwortlicher|Erledigt|
|Pflichtenheft|Levin|Ja|

361
package-lock.json generated

@ -0,0 +1,361 @@
{
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"@babel/runtime": {
"version": "7.4.4",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
"integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
"requires": {
"regenerator-runtime": "^0.13.2"
}
},
"@emotion/hash": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.1.tgz",
"integrity": "sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA=="
},
"@material-ui/core": {
"version": "4.0.0-beta.2",
"resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.0.0-beta.2.tgz",
"integrity": "sha512-AcAmd55hRloY2YqDvcwmZK4OiLZ+98nKliRh/YKyQqISEV0Lt98qRxxepluAm4KKr509Bjgg+rEJ+K+FpDTGjw==",
"requires": {
"@babel/runtime": "^7.2.0",
"@material-ui/styles": "^4.0.0-beta.2",
"@material-ui/system": "^4.0.0-beta.2",
"@material-ui/types": "^4.0.0-beta.2",
"@material-ui/utils": "^4.0.0-beta.1",
"@types/react-transition-group": "^2.0.16",
"clsx": "^1.0.2",
"convert-css-length": "^1.0.2",
"csstype": "^2.5.2",
"debounce": "^1.1.0",
"deepmerge": "^3.0.0",
"hoist-non-react-statics": "^3.2.1",
"is-plain-object": "^2.0.4",
"normalize-scroll-left": "^0.1.2",
"popper.js": "^1.14.1",
"prop-types": "^15.7.2",
"react-event-listener": "^0.6.6",
"react-transition-group": "^4.0.0",
"warning": "^4.0.1"
}
},
"@material-ui/styles": {
"version": "4.0.0-beta.2",
"resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.0.0-beta.2.tgz",
"integrity": "sha512-fX0pfTtw2f6+AlfzQlsue5AJ18mZbFbC9Og339tx9wwM8aPjk/9dNr9nPugAqFbdB41Lz3t4tn5sGx2Jm/grEg==",
"requires": {
"@babel/runtime": "^7.2.0",
"@emotion/hash": "^0.7.1",
"@material-ui/types": "^4.0.0-beta.2",
"@material-ui/utils": "^4.0.0-beta.1",
"clsx": "^1.0.2",
"deepmerge": "^3.0.0",
"hoist-non-react-statics": "^3.2.1",
"jss": "^10.0.0-alpha.16",
"jss-plugin-camel-case": "^10.0.0-alpha.16",
"jss-plugin-default-unit": "^10.0.0-alpha.16",
"jss-plugin-global": "^10.0.0-alpha.16",
"jss-plugin-nested": "^10.0.0-alpha.16",
"jss-plugin-props-sort": "^10.0.0-alpha.16",
"jss-plugin-rule-value-function": "^10.0.0-alpha.16",
"jss-plugin-vendor-prefixer": "^10.0.0-alpha.16",
"prop-types": "^15.7.2",
"warning": "^4.0.1"
}
},
"@material-ui/system": {
"version": "4.0.0-beta.2",
"resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.0.0-beta.2.tgz",
"integrity": "sha512-0KkCMZuUDGtx4iKbWxw9G4ncn5ZNgG7aYnHLEebFEPyb9EX66XP2whIUHWhPSaPBXb4QarUWOSCGDFoCX6ecSw==",
"requires": {
"@babel/runtime": "^7.2.0",
"deepmerge": "^3.0.0",
"prop-types": "^15.7.2",
"warning": "^4.0.1"
}
},
"@material-ui/types": {
"version": "4.0.0-beta.2",
"resolved": "https://registry.npmjs.org/@material-ui/types/-/types-4.0.0-beta.2.tgz",
"integrity": "sha512-Fct55vzMMUyiJqCBkBLERSrB2rdD7C4vbWtJcnhHaGSpAayG3jxhbxEoxm96UHsuI1DZAN7DdxwA4Y+w+pi78Q=="
},
"@material-ui/utils": {
"version": "4.0.0-beta.1",
"resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.0.0-beta.1.tgz",
"integrity": "sha512-DXheNh0CQ5y9QBFmXom3+lwKjFMLS1aBog40870fH3i0P0isVweSqVGadVDoyX9ma6cV/DfcLFSsb1+CBgNA1g==",
"requires": {
"@babel/runtime": "^7.2.0",
"prop-types": "^15.7.2",
"react-is": "^16.8.0"
}
},
"@types/prop-types": {
"version": "15.7.1",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz",
"integrity": "sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg=="
},
"@types/react": {
"version": "16.8.17",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.17.tgz",
"integrity": "sha512-pln3mgc6VfkNg92WXODul/ONo140huK9OMsx62GlBlZ2lvjNK86PQJhYMPLO1i66aF5O9OPyZefogvNltBIszA==",
"requires": {
"@types/prop-types": "*",
"csstype": "^2.2.0"
}
},
"@types/react-transition-group": {
"version": "2.9.1",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.9.1.tgz",
"integrity": "sha512-1usq4DRUVBFnxc9KGJAlJO9EpQrLZGDDEC8wDOn2+2ODSyudYo8FiIzPDRaX/hfQjHqGeeoNaNdA2bj0l35hZQ==",
"requires": {
"@types/react": "*"
}
},
"clsx": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.0.4.tgz",
"integrity": "sha512-1mQ557MIZTrL/140j+JVdRM6e31/OA4vTYxXgqIIZlndyfjHpyawKZia1Im05Vp9BWmImkcNrNtFYQMyFcgJDg=="
},
"console-polyfill": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/console-polyfill/-/console-polyfill-0.1.2.tgz",
"integrity": "sha1-ls/tUcr3gYn2mVcubxgnHcN8DjA="
},
"convert-css-length": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/convert-css-length/-/convert-css-length-1.0.2.tgz",
"integrity": "sha512-ecV7j3hXyXN1X2XfJBzhMR0o1Obv0v3nHmn0UiS3ACENrzbxE/EknkiunS/fCwQva0U62X1GChi8GaPh4oTlLg==",
"requires": {
"console-polyfill": "^0.1.2",
"parse-unit": "^1.0.1"
}
},
"css-vendor": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.2.tgz",
"integrity": "sha512-Xn5ZAlI00d8HaQ8/oQ8d+iBzSF//NCc77LPzsucM32X/R/yTqmXy6otVsAM0XleXk6HjPuXoVZwXsayky/fsFQ==",
"requires": {
"@babel/runtime": "^7.3.1",
"is-in-browser": "^1.0.2"
}
},
"csstype": {
"version": "2.6.4",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.4.tgz",
"integrity": "sha512-lAJUJP3M6HxFXbqtGRc0iZrdyeN+WzOWeY0q/VnFzI+kqVrYIzC7bWlKqCW7oCIdzoPkvfp82EVvrTlQ8zsWQg=="
},
"debounce": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz",
"integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg=="
},
"deepmerge": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz",
"integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow=="
},
"dom-helpers": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
"integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
"requires": {
"@babel/runtime": "^7.1.2"
}
},
"hoist-non-react-statics": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz",
"integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==",
"requires": {
"react-is": "^16.7.0"
}
},
"hyphenate-style-name": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz",
"integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ=="
},
"is-in-browser": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
"integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
},
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"requires": {
"isobject": "^3.0.1"
}
},
"isobject": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"jss": {
"version": "10.0.0-alpha.16",
"resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz",
"integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==",
"requires": {
"@babel/runtime": "^7.3.1",
"is-in-browser": "^1.1.3",
"tiny-warning": "^1.0.2"
}
},
"jss-plugin-camel-case": {
"version": "10.0.0-alpha.16",
"resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.0-alpha.16.tgz",
"integrity": "sha512-nki+smHEsFyoZ0OlOYtaxVqcQA0ZHVJCE1slRnk+1TklbmxbBiO4TwITMTEaNIDv0U0Uyb0Z8wVgFgRwCCIFog==",
"requires": {
"@babel/runtime": "^7.3.1",
"hyphenate-style-name": "^1.0.3",
"jss": "10.0.0-alpha.16"
}
},
"jss-plugin-default-unit": {
"version": "10.0.0-alpha.16",
"resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.0-alpha.16.tgz",
"integrity": "sha512-jjGW4F/r9yKvoyUk22M8nWhdMfvoWzJw/oFO2cDRXCk2onnWFiRALfqeUsEDyocwdZbyVF9WhZbSHn4GL03kSw==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.16"
}
},
"jss-plugin-global": {
"version": "10.0.0-alpha.16",
"resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.0.0-alpha.16.tgz",
"integrity": "sha512-B1mm2ZF9OEsWPmzkG5ZUXqV88smDqpc4unILLXhWVuj0U5JeT0DNitH+QbXFrSueDJzkWVfvqyckvWDR/0qeDg==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.16"
}
},
"jss-plugin-nested": {
"version": "10.0.0-alpha.16",
"resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.0.0-alpha.16.tgz",
"integrity": "sha512-3l/MB6COnIpq4GOXQFae6UydoaIPa81UxhuBTEQuiAojgTeUla9L7nB3h18Q4zAhQQpjxaEsyppAKuEzIP7kPQ==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.16",
"tiny-warning": "^1.0.2"
}
},
"jss-plugin-props-sort": {
"version": "10.0.0-alpha.16",
"resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.0-alpha.16.tgz",
"integrity": "sha512-+Yn9nugHAH58nf/d43H2uxMvlCFPDgLKRSmKO4Q4m1IGYjMbHsWt1Rk2HfC9IiCanqcqpc8hstwtzf+HG7PWFQ==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.16"
}
},
"jss-plugin-rule-value-function": {
"version": "10.0.0-alpha.16",
"resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.0-alpha.16.tgz",
"integrity": "sha512-MQap9ne6ZGZH0NlpSQTMSm6QalBTF0hYpd2uaGQwam+GlT7IKeO+sTjd46I1WgO3kyOmwb0pIY6CnuLQGXKtSA==",
"requires": {
"@babel/runtime": "^7.3.1",
"jss": "10.0.0-alpha.16"
}
},
"jss-plugin-vendor-prefixer": {
"version": "10.0.0-alpha.16",
"resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.0-alpha.16.tgz",
"integrity": "sha512-70yJ6QE5dN8VlPUGKld5jK2SKyrteheEL/ismexpybIufunMs6iJgkhDndbOfv8ia13yZgUVqeakMdhRKYwK1A==",
"requires": {
"@babel/runtime": "^7.3.1",
"css-vendor": "^2.0.1",
"jss": "10.0.0-alpha.16"
}
},
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
"normalize-scroll-left": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-scroll-left/-/normalize-scroll-left-0.1.2.tgz",
"integrity": "sha512-F9YMRls0zCF6BFIE2YnXDRpHPpfd91nOIaNdDgrx5YMoPLo8Wqj+6jNXHQsYBavJeXP4ww8HCt0xQAKc5qk2Fg=="
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"parse-unit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz",
"integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8="
},
"popper.js": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz",
"integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA=="
},
"prop-types": {
"version": "15.7.2",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
"react-is": "^16.8.1"
}
},
"react-event-listener": {
"version": "0.6.6",
"resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.6.tgz",
"integrity": "sha512-+hCNqfy7o9wvO6UgjqFmBzARJS7qrNoda0VqzvOuioEpoEXKutiKuv92dSz6kP7rYLmyHPyYNLesi5t/aH1gfw==",
"requires": {
"@babel/runtime": "^7.2.0",
"prop-types": "^15.6.0",
"warning": "^4.0.1"
}
},
"react-is": {
"version": "16.8.6",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
"integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA=="
},
"react-transition-group": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.0.1.tgz",
"integrity": "sha512-SsLcBYhO4afXJC9esL8XMxi/y0ZvEc7To0TvtrBELqzpjXQHPZOTxvuPh2/4EhYc0uSMfp2SExIxsyJ0pBdNzg==",
"requires": {
"dom-helpers": "^3.4.0",
"loose-envify": "^1.4.0",
"prop-types": "^15.6.2"
}
},
"regenerator-runtime": {
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
"integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
},
"tiny-warning": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.2.tgz",
"integrity": "sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q=="
},
"warning": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
"integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
"requires": {
"loose-envify": "^1.0.0"
}
}
}
}
Loading…
Cancel
Save