Compare commits
141 Commits
master
...
f/formular
| Author | SHA1 | Date |
|---|---|---|
|
|
b60f09b101 | 7 years ago |
|
|
410d292264 | 7 years ago |
|
|
5616e84854 | 7 years ago |
|
|
517e31a638 | 7 years ago |
|
|
e0ea0bdce1 | 7 years ago |
|
|
5aca92512f | 7 years ago |
|
|
a8b6fdba05 | 7 years ago |
|
|
9a8e8adafd | 7 years ago |
|
|
7311176cef | 7 years ago |
|
|
1aa54c18f2 | 7 years ago |
|
|
536dd4b7a7 | 7 years ago |
|
|
e4c359fab5 | 7 years ago |
|
|
6c2e4612eb | 7 years ago |
|
|
eef0c6cc02 | 7 years ago |
|
|
a86ca40f60 | 7 years ago |
|
|
ba5e6dafcb | 7 years ago |
|
|
a19b0d05a0 | 7 years ago |
|
|
4f93a72bea | 7 years ago |
|
|
7ecba69ac5 | 7 years ago |
|
|
aff67bb600 | 7 years ago |
|
|
e4f6c38736 | 7 years ago |
|
|
7a3d966022 | 7 years ago |
|
|
30a174af35 | 7 years ago |
|
|
0f644ab9fb | 7 years ago |
|
|
3c1969a54e | 7 years ago |
|
|
bf985ed0a0 | 7 years ago |
|
|
3fdc722df7 | 7 years ago |
|
|
db8305a8e2 | 7 years ago |
|
|
044ebda7df | 7 years ago |
|
|
9b613c23a9 | 7 years ago |
|
|
4daebcf1d5 | 7 years ago |
|
|
91597f7de4 | 7 years ago |
|
|
138dda4374 | 7 years ago |
|
|
0beb7c57ca | 7 years ago |
|
|
d480a85c82 | 7 years ago |
|
|
fc4f037891 | 7 years ago |
|
|
6f904c3e38 | 7 years ago |
|
|
2b8de44519 | 7 years ago |
|
|
db978f9e90 | 7 years ago |
|
|
df559f1b8d | 7 years ago |
|
|
39f6fb1b18 | 7 years ago |
|
|
bcbd943dd6 | 7 years ago |
|
|
cd8005ef79 | 7 years ago |
|
|
112447b2dc | 7 years ago |
|
|
248b680fe6 | 7 years ago |
|
|
46f35ff7eb | 7 years ago |
|
|
3abdc43589 | 7 years ago |
|
|
b1fbad9eab | 7 years ago |
|
|
5409726f67 | 7 years ago |
|
|
74c2ee475b | 7 years ago |
|
|
645eafeb0d | 7 years ago |
|
|
e947e20f93 | 7 years ago |
|
|
3edee380b7 | 7 years ago |
|
|
ac8ea43d25 | 7 years ago |
|
|
63e55b8b1f | 7 years ago |
|
|
0c0d3a3be0 | 7 years ago |
|
|
afa43826b4 | 7 years ago |
|
|
17d441ddb1 | 7 years ago |
|
|
bafd52afb2 | 7 years ago |
|
|
7f5724a95f | 7 years ago |
|
|
3baeff8b0a | 7 years ago |
|
|
09f9687dd5 | 7 years ago |
|
|
0248913e81 | 7 years ago |
|
|
96bce4fc39 | 7 years ago |
|
|
1d2d00d8f8 | 7 years ago |
|
|
939dfaafb4 | 7 years ago |
|
|
e957901597 | 7 years ago |
|
|
6fb075ecc0 | 7 years ago |
|
|
60a1c01eb9 | 7 years ago |
|
|
7e23a93410 | 7 years ago |
|
|
337b2f9e7a | 7 years ago |
|
|
18232ee6b3 | 7 years ago |
|
|
1744b47a86 | 7 years ago |
|
|
a890331609 | 7 years ago |
|
|
8d9e9e7a44 | 7 years ago |
|
|
6dc3854226 | 7 years ago |
|
|
d121318f75 | 7 years ago |
|
|
4536a4ef40 | 7 years ago |
|
|
b94e0a3de7 | 7 years ago |
|
|
b79e566d18 | 7 years ago |
|
|
02a5e125a2 | 7 years ago |
|
|
ad6a2404d7 | 7 years ago |
|
|
233aa04817 | 7 years ago |
|
|
6e63b48163 | 7 years ago |
|
|
0b14603366 | 7 years ago |
|
|
cd887b4fb6 | 7 years ago |
|
|
7d439075b6 | 7 years ago |
|
|
895a6376b7 | 7 years ago |
|
|
cd5d32af4d | 7 years ago |
|
|
743e32885b | 7 years ago |
|
|
e6aa36948f | 7 years ago |
|
|
786af31d9f | 7 years ago |
|
|
0eeaeb077d | 7 years ago |
|
|
b515e5a7a7 | 7 years ago |
|
|
93fd8d871e | 7 years ago |
|
|
1fde640178 | 7 years ago |
|
|
f985a69de9 | 7 years ago |
|
|
ba0ed4a900 | 7 years ago |
|
|
4d3422b39d | 7 years ago |
|
|
4ccc812f35 | 7 years ago |
|
|
3509439dfb | 7 years ago |
|
|
6fa231ac3c | 7 years ago |
|
|
a6f323c8eb | 7 years ago |
|
|
479a4d2d81 | 7 years ago |
|
|
92bb8351dc | 7 years ago |
|
|
ac1c31beb7 | 7 years ago |
|
|
f777c10353 | 7 years ago |
|
|
abcd2e95fd | 7 years ago |
|
|
3e34d3cf1a | 7 years ago |
|
|
d0a85eb60c | 7 years ago |
|
|
2625465071 | 7 years ago |
|
|
ff38e43576 | 7 years ago |
|
|
bc4629ea67 | 7 years ago |
|
|
ff4d67bfe1 | 7 years ago |
|
|
849140bd54 | 7 years ago |
|
|
1535bb0e21 | 7 years ago |
|
|
95ea0e935a | 7 years ago |
|
|
30929c60f7 | 7 years ago |
|
|
f0014a083d | 7 years ago |
|
|
23fb24972e | 7 years ago |
|
|
819eda375b | 7 years ago |
|
|
e878d571ea | 7 years ago |
|
|
63acad363a | 7 years ago |
|
|
3d70291fa9 | 7 years ago |
|
|
6c3fc58051 | 7 years ago |
|
|
49f8e987f7 | 7 years ago |
|
|
e9a84f69a4 | 7 years ago |
|
|
9f7ba498f5 | 7 years ago |
|
|
80f04bad40 | 7 years ago |
|
|
a60f4338ab | 7 years ago |
|
|
bfe064c04a | 7 years ago |
|
|
64666e06eb | 7 years ago |
|
|
7c66efedae | 7 years ago |
|
|
99c0ad580f | 7 years ago |
|
|
bdb63ed920 | 7 years ago |
|
|
661be5e9b5 | 7 years ago |
|
|
e06404fc30 | 7 years ago |
|
|
b54b4bf845 | 7 years ago |
|
|
b59b103236 | 7 years ago |
|
|
3faa816ab5 | 7 years ago |
|
|
8422cd200f | 7 years ago |
87 changed files with 15552 additions and 3 deletions
@ -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* |
||||||
@ -0,0 +1,74 @@ |
|||||||
|
stages: |
||||||
|
- build_docker |
||||||
|
- build_frontend |
||||||
|
|
||||||
|
|
||||||
|
build_frontend: |
||||||
|
stage: build_frontend |
||||||
|
tags: |
||||||
|
- docker |
||||||
|
image: registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-build |
||||||
|
before_script: |
||||||
|
- eval $(ssh-agent -s) |
||||||
|
- ssh-add <(echo "${DEPLOY_ENV_KEY}") |
||||||
|
- mkdir -p ~/.ssh |
||||||
|
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' |
||||||
|
- cp -r Frontend/src/ /workdir/src/ |
||||||
|
- cp -r Frontend/public/ /workdir/public/ |
||||||
|
script: |
||||||
|
- pwd |
||||||
|
- ls -la |
||||||
|
- cd /workdir |
||||||
|
- npm run build |
||||||
|
- ls -la /workdir/build |
||||||
|
- ssh $DEPLOY_ENV_USER@$DEPLOY_ENV_TARGET "mkdir -p /home/$DEPLOY_ENV_USER/serve" |
||||||
|
- 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_docker |
||||||
|
tags: |
||||||
|
- docker-builder |
||||||
|
before_script: |
||||||
|
- eval $(ssh-agent -s) |
||||||
|
- ssh-add <(echo "${DEPLOY_ENV_KEY}") |
||||||
|
- mkdir -p ~/.ssh |
||||||
|
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config |
||||||
|
- docker info |
||||||
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY |
||||||
|
script: |
||||||
|
- docker build -f Docker/Dockerfile_FE_Host.dockerfile -t registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-serve . |
||||||
|
- docker push registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-serve |
||||||
|
- ls -la Docker/config/restart-host.sh |
||||||
|
- rsync --progress -av -e ssh Docker/config/restart-host.sh $DEPLOY_ENV_USER@$DEPLOY_ENV_TARGET:/home/$DEPLOY_ENV_USER/restart-host.sh |
||||||
|
- ssh $DEPLOY_ENV_USER@$DEPLOY_ENV_TARGET "./restart-host.sh" |
||||||
|
only: |
||||||
|
changes: |
||||||
|
- Docker/Dockerfile_FE_Host.dockerfile |
||||||
|
- Docker/config/* |
||||||
|
|
||||||
|
build_docker_builder: |
||||||
|
stage: build_docker |
||||||
|
tags: |
||||||
|
- docker-builder |
||||||
|
before_script: |
||||||
|
- docker info |
||||||
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY |
||||||
|
script: |
||||||
|
- docker build -f Docker/Dockerfile_FE_Builder.dockerfile -t registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-build . |
||||||
|
- docker push registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-build |
||||||
|
only: |
||||||
|
changes: |
||||||
|
- Docker/Dockerfile_FE_Builder.dockerfile |
||||||
|
- Docker/config/* |
||||||
|
- Frontend/package.json |
||||||
|
- Frontend/package-lock.json |
||||||
|
- .gitlab-ci.yml |
||||||
|
|
||||||
@ -0,0 +1,9 @@ |
|||||||
|
.dockerignore |
||||||
|
.env |
||||||
|
.git |
||||||
|
.gitignore |
||||||
|
.vs |
||||||
|
.vscode |
||||||
|
*/bin |
||||||
|
*/obj |
||||||
|
**/.toolstarget |
||||||
@ -0,0 +1,348 @@ |
|||||||
|
## Ignore Visual Studio temporary files, build results, and |
||||||
|
## files generated by popular Visual Studio add-ons. |
||||||
|
## |
||||||
|
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore |
||||||
|
|
||||||
|
# User-specific files |
||||||
|
*.rsuser |
||||||
|
*.suo |
||||||
|
*.user |
||||||
|
*.userosscache |
||||||
|
*.sln.docstates |
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio) |
||||||
|
*.userprefs |
||||||
|
|
||||||
|
# Mono auto generated files |
||||||
|
mono_crash.* |
||||||
|
|
||||||
|
# Build results |
||||||
|
[Dd]ebug/ |
||||||
|
[Dd]ebugPublic/ |
||||||
|
[Rr]elease/ |
||||||
|
[Rr]eleases/ |
||||||
|
x64/ |
||||||
|
x86/ |
||||||
|
[Aa][Rr][Mm]/ |
||||||
|
[Aa][Rr][Mm]64/ |
||||||
|
bld/ |
||||||
|
[Bb]in/ |
||||||
|
[Oo]bj/ |
||||||
|
[Ll]og/ |
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory |
||||||
|
.vs/ |
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot |
||||||
|
#wwwroot/ |
||||||
|
|
||||||
|
# Visual Studio 2017 auto generated files |
||||||
|
Generated\ Files/ |
||||||
|
|
||||||
|
# MSTest test Results |
||||||
|
[Tt]est[Rr]esult*/ |
||||||
|
[Bb]uild[Ll]og.* |
||||||
|
|
||||||
|
# NUNIT |
||||||
|
*.VisualState.xml |
||||||
|
TestResult.xml |
||||||
|
|
||||||
|
# Build Results of an ATL Project |
||||||
|
[Dd]ebugPS/ |
||||||
|
[Rr]eleasePS/ |
||||||
|
dlldata.c |
||||||
|
|
||||||
|
# Benchmark Results |
||||||
|
BenchmarkDotNet.Artifacts/ |
||||||
|
|
||||||
|
# .NET Core |
||||||
|
project.lock.json |
||||||
|
project.fragment.lock.json |
||||||
|
artifacts/ |
||||||
|
|
||||||
|
# StyleCop |
||||||
|
StyleCopReport.xml |
||||||
|
|
||||||
|
# Files built by Visual Studio |
||||||
|
*_i.c |
||||||
|
*_p.c |
||||||
|
*_h.h |
||||||
|
*.ilk |
||||||
|
*.meta |
||||||
|
*.obj |
||||||
|
*.iobj |
||||||
|
*.pch |
||||||
|
*.pdb |
||||||
|
*.ipdb |
||||||
|
*.pgc |
||||||
|
*.pgd |
||||||
|
*.rsp |
||||||
|
*.sbr |
||||||
|
*.tlb |
||||||
|
*.tli |
||||||
|
*.tlh |
||||||
|
*.tmp |
||||||
|
*.tmp_proj |
||||||
|
*_wpftmp.csproj |
||||||
|
*.log |
||||||
|
*.vspscc |
||||||
|
*.vssscc |
||||||
|
.builds |
||||||
|
*.pidb |
||||||
|
*.svclog |
||||||
|
*.scc |
||||||
|
|
||||||
|
# Chutzpah Test files |
||||||
|
_Chutzpah* |
||||||
|
|
||||||
|
# Visual C++ cache files |
||||||
|
ipch/ |
||||||
|
*.aps |
||||||
|
*.ncb |
||||||
|
*.opendb |
||||||
|
*.opensdf |
||||||
|
*.sdf |
||||||
|
*.cachefile |
||||||
|
*.VC.db |
||||||
|
*.VC.VC.opendb |
||||||
|
|
||||||
|
# Visual Studio profiler |
||||||
|
*.psess |
||||||
|
*.vsp |
||||||
|
*.vspx |
||||||
|
*.sap |
||||||
|
|
||||||
|
# Visual Studio Trace Files |
||||||
|
*.e2e |
||||||
|
|
||||||
|
# TFS 2012 Local Workspace |
||||||
|
$tf/ |
||||||
|
|
||||||
|
# Guidance Automation Toolkit |
||||||
|
*.gpState |
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in |
||||||
|
_ReSharper*/ |
||||||
|
*.[Rr]e[Ss]harper |
||||||
|
*.DotSettings.user |
||||||
|
|
||||||
|
# JustCode is a .NET coding add-in |
||||||
|
.JustCode |
||||||
|
|
||||||
|
# TeamCity is a build add-in |
||||||
|
_TeamCity* |
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool |
||||||
|
*.dotCover |
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool |
||||||
|
.axoCover/* |
||||||
|
!.axoCover/settings.json |
||||||
|
|
||||||
|
# Visual Studio code coverage results |
||||||
|
*.coverage |
||||||
|
*.coveragexml |
||||||
|
|
||||||
|
# NCrunch |
||||||
|
_NCrunch_* |
||||||
|
.*crunch*.local.xml |
||||||
|
nCrunchTemp_* |
||||||
|
|
||||||
|
# MightyMoose |
||||||
|
*.mm.* |
||||||
|
AutoTest.Net/ |
||||||
|
|
||||||
|
# Web workbench (sass) |
||||||
|
.sass-cache/ |
||||||
|
|
||||||
|
# Installshield output folder |
||||||
|
[Ee]xpress/ |
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in |
||||||
|
DocProject/buildhelp/ |
||||||
|
DocProject/Help/*.HxT |
||||||
|
DocProject/Help/*.HxC |
||||||
|
DocProject/Help/*.hhc |
||||||
|
DocProject/Help/*.hhk |
||||||
|
DocProject/Help/*.hhp |
||||||
|
DocProject/Help/Html2 |
||||||
|
DocProject/Help/html |
||||||
|
|
||||||
|
# Click-Once directory |
||||||
|
publish/ |
||||||
|
|
||||||
|
# Publish Web Output |
||||||
|
*.[Pp]ublish.xml |
||||||
|
*.azurePubxml |
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings, |
||||||
|
# but database connection strings (with potential passwords) will be unencrypted |
||||||
|
*.pubxml |
||||||
|
*.publishproj |
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to |
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained |
||||||
|
# in these scripts will be unencrypted |
||||||
|
PublishScripts/ |
||||||
|
|
||||||
|
# NuGet Packages |
||||||
|
*.nupkg |
||||||
|
# NuGet Symbol Packages |
||||||
|
*.snupkg |
||||||
|
# The packages folder can be ignored because of Package Restore |
||||||
|
**/[Pp]ackages/* |
||||||
|
# except build/, which is used as an MSBuild target. |
||||||
|
!**/[Pp]ackages/build/ |
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed |
||||||
|
#!**/[Pp]ackages/repositories.config |
||||||
|
# NuGet v3's project.json files produces more ignorable files |
||||||
|
*.nuget.props |
||||||
|
*.nuget.targets |
||||||
|
|
||||||
|
# Microsoft Azure Build Output |
||||||
|
csx/ |
||||||
|
*.build.csdef |
||||||
|
|
||||||
|
# Microsoft Azure Emulator |
||||||
|
ecf/ |
||||||
|
rcf/ |
||||||
|
|
||||||
|
# Windows Store app package directories and files |
||||||
|
AppPackages/ |
||||||
|
BundleArtifacts/ |
||||||
|
Package.StoreAssociation.xml |
||||||
|
_pkginfo.txt |
||||||
|
*.appx |
||||||
|
*.appxbundle |
||||||
|
*.appxupload |
||||||
|
|
||||||
|
# Visual Studio cache files |
||||||
|
# files ending in .cache can be ignored |
||||||
|
*.[Cc]ache |
||||||
|
# but keep track of directories ending in .cache |
||||||
|
!?*.[Cc]ache/ |
||||||
|
|
||||||
|
# Others |
||||||
|
ClientBin/ |
||||||
|
~$* |
||||||
|
*~ |
||||||
|
*.dbmdl |
||||||
|
*.dbproj.schemaview |
||||||
|
*.jfm |
||||||
|
*.pfx |
||||||
|
*.publishsettings |
||||||
|
orleans.codegen.cs |
||||||
|
|
||||||
|
# Including strong name files can present a security risk |
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424) |
||||||
|
#*.snk |
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components |
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) |
||||||
|
#bower_components/ |
||||||
|
|
||||||
|
# RIA/Silverlight projects |
||||||
|
Generated_Code/ |
||||||
|
|
||||||
|
# Backup & report files from converting an old project file |
||||||
|
# to a newer Visual Studio version. Backup files are not needed, |
||||||
|
# because we have git ;-) |
||||||
|
_UpgradeReport_Files/ |
||||||
|
Backup*/ |
||||||
|
UpgradeLog*.XML |
||||||
|
UpgradeLog*.htm |
||||||
|
ServiceFabricBackup/ |
||||||
|
*.rptproj.bak |
||||||
|
|
||||||
|
# SQL Server files |
||||||
|
*.mdf |
||||||
|
*.ldf |
||||||
|
*.ndf |
||||||
|
|
||||||
|
# Business Intelligence projects |
||||||
|
*.rdl.data |
||||||
|
*.bim.layout |
||||||
|
*.bim_*.settings |
||||||
|
*.rptproj.rsuser |
||||||
|
*- [Bb]ackup.rdl |
||||||
|
*- [Bb]ackup ([0-9]).rdl |
||||||
|
*- [Bb]ackup ([0-9][0-9]).rdl |
||||||
|
|
||||||
|
# Microsoft Fakes |
||||||
|
FakesAssemblies/ |
||||||
|
|
||||||
|
# GhostDoc plugin setting file |
||||||
|
*.GhostDoc.xml |
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio |
||||||
|
.ntvs_analysis.dat |
||||||
|
node_modules/ |
||||||
|
|
||||||
|
# Visual Studio 6 build log |
||||||
|
*.plg |
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file |
||||||
|
*.opt |
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) |
||||||
|
*.vbw |
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output |
||||||
|
**/*.HTMLClient/GeneratedArtifacts |
||||||
|
**/*.DesktopClient/GeneratedArtifacts |
||||||
|
**/*.DesktopClient/ModelManifest.xml |
||||||
|
**/*.Server/GeneratedArtifacts |
||||||
|
**/*.Server/ModelManifest.xml |
||||||
|
_Pvt_Extensions |
||||||
|
|
||||||
|
# Paket dependency manager |
||||||
|
.paket/paket.exe |
||||||
|
paket-files/ |
||||||
|
|
||||||
|
# FAKE - F# Make |
||||||
|
.fake/ |
||||||
|
|
||||||
|
# CodeRush personal settings |
||||||
|
.cr/personal |
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS) |
||||||
|
__pycache__/ |
||||||
|
*.pyc |
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it |
||||||
|
# tools/** |
||||||
|
# !tools/packages.config |
||||||
|
|
||||||
|
# Tabs Studio |
||||||
|
*.tss |
||||||
|
|
||||||
|
# Telerik's JustMock configuration file |
||||||
|
*.jmconfig |
||||||
|
|
||||||
|
# BizTalk build output |
||||||
|
*.btp.cs |
||||||
|
*.btm.cs |
||||||
|
*.odx.cs |
||||||
|
*.xsd.cs |
||||||
|
|
||||||
|
# OpenCover UI analysis results |
||||||
|
OpenCover/ |
||||||
|
|
||||||
|
# Azure Stream Analytics local run output |
||||||
|
ASALocalRun/ |
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log |
||||||
|
*.binlog |
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file |
||||||
|
*.nvuser |
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder |
||||||
|
.mfractor/ |
||||||
|
|
||||||
|
# Local History for Visual Studio |
||||||
|
.localhistory/ |
||||||
|
|
||||||
|
# BeatPulse healthcheck temp database |
||||||
|
healthchecksdb |
||||||
|
|
||||||
|
# Backup folder for Package Reference Convert tool in Visual Studio 2017 |
||||||
|
MigrationBackup/ |
||||||
@ -0,0 +1,25 @@ |
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00 |
||||||
|
# Visual Studio Version 16 |
||||||
|
VisualStudioVersion = 16.0.28803.156 |
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1 |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EVABackend", "EVABackend\EVABackend.csproj", "{35629A48-394C-4EE6-B853-1B92641B9FED}" |
||||||
|
EndProject |
||||||
|
Global |
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
||||||
|
Debug|Any CPU = Debug|Any CPU |
||||||
|
Release|Any CPU = Release|Any CPU |
||||||
|
EndGlobalSection |
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
||||||
|
{35629A48-394C-4EE6-B853-1B92641B9FED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{35629A48-394C-4EE6-B853-1B92641B9FED}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{35629A48-394C-4EE6-B853-1B92641B9FED}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
{35629A48-394C-4EE6-B853-1B92641B9FED}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
EndGlobalSection |
||||||
|
GlobalSection(SolutionProperties) = preSolution |
||||||
|
HideSolutionNode = FALSE |
||||||
|
EndGlobalSection |
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution |
||||||
|
SolutionGuid = {9D649B10-EA35-49B9-BCB5-A989D21D6832} |
||||||
|
EndGlobalSection |
||||||
|
EndGlobal |
||||||
@ -0,0 +1,45 @@ |
|||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
using System.Linq; |
||||||
|
using System.Threading.Tasks; |
||||||
|
using Microsoft.AspNetCore.Mvc; |
||||||
|
|
||||||
|
namespace EVABackend.Controllers |
||||||
|
{ |
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController] |
||||||
|
public class ValuesController : ControllerBase |
||||||
|
{ |
||||||
|
// GET api/values |
||||||
|
[HttpGet] |
||||||
|
public ActionResult<IEnumerable<string>> Get() |
||||||
|
{ |
||||||
|
return new string[] { "value1", "value2" }; |
||||||
|
} |
||||||
|
|
||||||
|
// GET api/values/5 |
||||||
|
[HttpGet("{id}")] |
||||||
|
public ActionResult<string> Get(int id) |
||||||
|
{ |
||||||
|
return "value"; |
||||||
|
} |
||||||
|
|
||||||
|
// POST api/values |
||||||
|
[HttpPost] |
||||||
|
public void Post([FromBody] string value) |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
// PUT api/values/5 |
||||||
|
[HttpPut("{id}")] |
||||||
|
public void Put(int id, [FromBody] string value) |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
// DELETE api/values/5 |
||||||
|
[HttpDelete("{id}")] |
||||||
|
public void Delete(int id) |
||||||
|
{ |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
FROM mcr.microsoft.com/dotnet/core/aspnet:2.1-stretch-slim AS base |
||||||
|
WORKDIR /app |
||||||
|
EXPOSE 80 |
||||||
|
EXPOSE 443 |
||||||
|
|
||||||
|
FROM mcr.microsoft.com/dotnet/core/sdk:2.1-stretch AS build |
||||||
|
WORKDIR /src |
||||||
|
COPY ["EVABackend.csproj", "EVABackend/"] |
||||||
|
RUN dotnet restore "EVABackend/EVABackend.csproj" |
||||||
|
COPY . . |
||||||
|
WORKDIR "/src/EVABackend" |
||||||
|
RUN dotnet build "EVABackend.csproj" -c Release -o /app |
||||||
|
|
||||||
|
FROM build AS publish |
||||||
|
RUN dotnet publish "EVABackend.csproj" -c Release -o /app |
||||||
|
|
||||||
|
FROM base AS final |
||||||
|
WORKDIR /app |
||||||
|
COPY --from=publish /app . |
||||||
|
ENTRYPOINT ["dotnet", "EVABackend.dll"] |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web"> |
||||||
|
|
||||||
|
<PropertyGroup> |
||||||
|
<TargetFramework>netcoreapp2.1</TargetFramework> |
||||||
|
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS> |
||||||
|
<UserSecretsId>81a3ba40-5295-4382-9a09-5339b5d22d08</UserSecretsId> |
||||||
|
</PropertyGroup> |
||||||
|
|
||||||
|
<ItemGroup> |
||||||
|
<Folder Include="wwwroot\" /> |
||||||
|
</ItemGroup> |
||||||
|
|
||||||
|
<ItemGroup> |
||||||
|
<PackageReference Include="Microsoft.AspNetCore.App" /> |
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.1" PrivateAssets="All" /> |
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.8" /> |
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.7.8" /> |
||||||
|
</ItemGroup> |
||||||
|
|
||||||
|
</Project> |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
using System.IO; |
||||||
|
using System.Linq; |
||||||
|
using System.Threading.Tasks; |
||||||
|
using Microsoft.AspNetCore; |
||||||
|
using Microsoft.AspNetCore.Hosting; |
||||||
|
using Microsoft.Extensions.Configuration; |
||||||
|
using Microsoft.Extensions.Logging; |
||||||
|
|
||||||
|
namespace EVABackend |
||||||
|
{ |
||||||
|
public class Program |
||||||
|
{ |
||||||
|
public static void Main(string[] args) |
||||||
|
{ |
||||||
|
CreateWebHostBuilder(args).Build().Run(); |
||||||
|
} |
||||||
|
|
||||||
|
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => |
||||||
|
WebHost.CreateDefaultBuilder(args) |
||||||
|
.UseStartup<Startup>(); |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,38 @@ |
|||||||
|
{ |
||||||
|
"iisSettings": { |
||||||
|
"windowsAuthentication": false, |
||||||
|
"anonymousAuthentication": true, |
||||||
|
"iisExpress": { |
||||||
|
"applicationUrl": "http://localhost:50570", |
||||||
|
"sslPort": 44374 |
||||||
|
} |
||||||
|
}, |
||||||
|
"$schema": "http://json.schemastore.org/launchsettings.json", |
||||||
|
"profiles": { |
||||||
|
"IIS Express": { |
||||||
|
"commandName": "IISExpress", |
||||||
|
"launchBrowser": true, |
||||||
|
"launchUrl": "api/values", |
||||||
|
"environmentVariables": { |
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||||
|
} |
||||||
|
}, |
||||||
|
"EVABackend": { |
||||||
|
"commandName": "Project", |
||||||
|
"launchBrowser": true, |
||||||
|
"launchUrl": "api/values", |
||||||
|
"environmentVariables": { |
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||||
|
}, |
||||||
|
"applicationUrl": "https://localhost:5001;http://localhost:5000" |
||||||
|
}, |
||||||
|
"Docker": { |
||||||
|
"commandName": "Docker", |
||||||
|
"launchBrowser": true, |
||||||
|
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/api/values", |
||||||
|
"httpPort": 50571, |
||||||
|
"useSSL": true, |
||||||
|
"sslPort": 44375 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,47 @@ |
|||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
using System.Linq; |
||||||
|
using System.Threading.Tasks; |
||||||
|
using Microsoft.AspNetCore.Builder; |
||||||
|
using Microsoft.AspNetCore.Hosting; |
||||||
|
using Microsoft.AspNetCore.HttpsPolicy; |
||||||
|
using Microsoft.AspNetCore.Mvc; |
||||||
|
using Microsoft.Extensions.Configuration; |
||||||
|
using Microsoft.Extensions.DependencyInjection; |
||||||
|
using Microsoft.Extensions.Logging; |
||||||
|
using Microsoft.Extensions.Options; |
||||||
|
|
||||||
|
namespace EVABackend |
||||||
|
{ |
||||||
|
public class Startup |
||||||
|
{ |
||||||
|
public Startup(IConfiguration configuration) |
||||||
|
{ |
||||||
|
Configuration = configuration; |
||||||
|
} |
||||||
|
|
||||||
|
public IConfiguration Configuration { get; } |
||||||
|
|
||||||
|
// This method gets called by the runtime. Use this method to add services to the container. |
||||||
|
public void ConfigureServices(IServiceCollection services) |
||||||
|
{ |
||||||
|
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); |
||||||
|
} |
||||||
|
|
||||||
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. |
||||||
|
public void Configure(IApplicationBuilder app, IHostingEnvironment env) |
||||||
|
{ |
||||||
|
if (env.IsDevelopment()) |
||||||
|
{ |
||||||
|
app.UseDeveloperExceptionPage(); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
app.UseHsts(); |
||||||
|
} |
||||||
|
|
||||||
|
app.UseHttpsRedirection(); |
||||||
|
app.UseMvc(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,9 @@ |
|||||||
|
{ |
||||||
|
"Logging": { |
||||||
|
"LogLevel": { |
||||||
|
"Default": "Debug", |
||||||
|
"System": "Information", |
||||||
|
"Microsoft": "Information" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
{ |
||||||
|
"Logging": { |
||||||
|
"LogLevel": { |
||||||
|
"Default": "Warning" |
||||||
|
} |
||||||
|
}, |
||||||
|
"AllowedHosts": "*" |
||||||
|
} |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
# Tag: frontend-build |
||||||
|
|
||||||
|
FROM node:10.8-stretch |
||||||
|
RUN apt update |
||||||
|
RUN apt install -y rsync |
||||||
|
RUN mkdir -p /workdir |
||||||
|
COPY Frontend/package.json /workdir/package.json |
||||||
|
COPY Frontend/package-lock.json /workdir/package-lock.json |
||||||
|
|
||||||
|
WORKDIR /workdir |
||||||
|
|
||||||
|
RUN pwd && ls -la |
||||||
|
|
||||||
|
run npm install |
||||||
|
|
||||||
@ -0,0 +1,14 @@ |
|||||||
|
# Tag: frontend-serve |
||||||
|
|
||||||
|
# FROM nginx |
||||||
|
|
||||||
|
# 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"] |
||||||
@ -0,0 +1,14 @@ |
|||||||
|
events { |
||||||
|
worker_connections 1024; |
||||||
|
} |
||||||
|
|
||||||
|
http { |
||||||
|
server { |
||||||
|
listen 80; |
||||||
|
root /usr/share/nginx/html; |
||||||
|
|
||||||
|
location / { |
||||||
|
autoindex on; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,7 @@ |
|||||||
|
#! /bin/bash |
||||||
|
docker login -u gitlab+deploy-token-66068 -p vD23SzzitUn8y8xGknKz registry.gitlab.com |
||||||
|
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:5000 -v /home/gitlab/serve:/opt/frontend/build:ro --name "eva_frontend_serve" registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-serve |
||||||
|
|
||||||
@ -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* |
||||||
@ -0,0 +1,7 @@ |
|||||||
|
# React App für die EVA_Lernsituatuin |
||||||
|
|
||||||
|
# Pakages |
||||||
|
|
||||||
|
- Material UI |
||||||
|
- React Router |
||||||
|
- Sentry |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge"> |
||||||
|
<title>Temporäre Seite</title> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
Hallo bitte geh weg. |
||||||
|
</body> |
||||||
|
</html> |
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,34 @@ |
|||||||
|
{ |
||||||
|
"name": "lernsituation", |
||||||
|
"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": { |
||||||
|
"start": "react-scripts start", |
||||||
|
"build": "react-scripts build", |
||||||
|
"test": "react-scripts test", |
||||||
|
"eject": "react-scripts eject" |
||||||
|
}, |
||||||
|
"eslintConfig": { |
||||||
|
"extends": "react-app" |
||||||
|
}, |
||||||
|
"browserslist": { |
||||||
|
"production": [ |
||||||
|
">0.2%", |
||||||
|
"not dead", |
||||||
|
"not op_mini all" |
||||||
|
], |
||||||
|
"development": [ |
||||||
|
"last 1 chrome version", |
||||||
|
"last 1 firefox version", |
||||||
|
"last 1 safari version" |
||||||
|
] |
||||||
|
} |
||||||
|
} |
||||||
|
After Width: | Height: | Size: 3.8 KiB |
@ -0,0 +1,18 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="de"> |
||||||
|
<head> |
||||||
|
<meta charset="utf-8" /> |
||||||
|
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" /> |
||||||
|
<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> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<noscript>You need to enable JavaScript to run this app.</noscript> |
||||||
|
<div id="root"></div> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
{ |
||||||
|
"short_name": "Lernsituation", |
||||||
|
"name": "EVA_Lernsituation", |
||||||
|
"icons": [ |
||||||
|
{ |
||||||
|
"src": "favicon.ico", |
||||||
|
"sizes": "64x64 32x32 24x24 16x16", |
||||||
|
"type": "image/x-icon" |
||||||
|
} |
||||||
|
], |
||||||
|
"start_url": ".", |
||||||
|
"display": "standalone", |
||||||
|
"theme_color": "#000000", |
||||||
|
"background_color": "#ffffff" |
||||||
|
} |
||||||
@ -0,0 +1,37 @@ |
|||||||
|
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"; |
||||||
|
import { createMuiTheme, MuiThemeProvider } from "@material-ui/core"; |
||||||
|
import { green, yellow } from "@material-ui/core/colors"; |
||||||
|
|
||||||
|
const theme = createMuiTheme({ |
||||||
|
palette: { |
||||||
|
primary: { main: "#2e294e" }, |
||||||
|
grey: { main: "#595959" }, |
||||||
|
danger: { main: "#d90368" }, |
||||||
|
secondary: { main: "#eadeda" }, |
||||||
|
text: { main: "#ffffff" } |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
class App extends Component { |
||||||
|
state = {}; |
||||||
|
render() { |
||||||
|
return ( |
||||||
|
<MuiThemeProvider theme={theme}> |
||||||
|
<CssBaseline /> |
||||||
|
<Router> |
||||||
|
<Box flexDirection="column" width="100%"> |
||||||
|
<Route path="/login" component={Login} /> |
||||||
|
<Route path="/aufnahmeantrag" component={Aufnahmeantrag} /> |
||||||
|
</Box> |
||||||
|
</Router> |
||||||
|
</MuiThemeProvider> |
||||||
|
); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
export default App; |
||||||
@ -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: "rgba(255, 255, 255, 1)", |
||||||
|
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 #bbb", |
||||||
|
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); |
||||||
@ -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; |
||||||
@ -0,0 +1,6 @@ |
|||||||
|
import React from "react"; |
||||||
|
import ReactDOM from "react-dom"; |
||||||
|
import "./style/index.css"; |
||||||
|
import App from "./components/App"; |
||||||
|
|
||||||
|
ReactDOM.render(<App />, document.getElementById("root")); |
||||||
@ -0,0 +1,19 @@ |
|||||||
|
body { |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", |
||||||
|
"Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", |
||||||
|
sans-serif; |
||||||
|
background-color: rgba(234, 222, 218, 1) !important; |
||||||
|
-webkit-font-smoothing: antialiased; |
||||||
|
-moz-osx-font-smoothing: grayscale; |
||||||
|
} |
||||||
|
|
||||||
|
code { |
||||||
|
font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", |
||||||
|
monospace; |
||||||
|
} |
||||||
|
|
||||||
|
html { |
||||||
|
background-color: rgba(234, 222, 218, 1); |
||||||
|
} |
||||||
@ -1,14 +1,42 @@ |
|||||||
# EVA Lernsituation |
# EVA Lernsituation |
||||||
|
_Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_ |
||||||
## Teilnehmer |
## Teilnehmer |
||||||
|
|
||||||
* Levin Faber |
* Levin Faber |
||||||
* Alexej Komnik |
* Alexej Komnik |
||||||
* Tobias Schifffarth |
* Tobias Schiffarth |
||||||
* Kai Senkowski |
* Kai Senkowski |
||||||
|
|
||||||
## Organisation |
## Organisation |
||||||
|
|
||||||
* ALLE Dokumente werden im [Gitlab](https://gitlab.com/fia72-dev/eva_lernsituation) abgelegt |
* Alle Dokumente werden im [Gitlab](https://gitlab.com/fia72-dev/eva_lernsituation) abgelegt |
||||||
* Kommunikation erfolgt über [Slack](https://dullidivision.slack.com) |
* Kommunikation erfolgt über [Slack](https://dullidivision.slack.com) |
||||||
* Es wird nach dem Wasserfallmodell entwickelt |
* Es wird nach dem Wasserfallmodell entwickelt |
||||||
|
|
||||||
|
|
||||||
|
## Kommunikationsplan |
||||||
|
|
||||||
|
* Alle Dokumente werden im [Gitlab](https://gitlab.com/fia72-dev/eva_lernsituation) abgelegt |
||||||
|
* Kommunikation erfolgt über [Slack](https://dullidivision.slack.com) oder mündlich in Meetings (es werden Protokolle erstellt) |
||||||
|
* Das Arbeiten erfolgt in der Schule und bei Bedarf nach Absprache Remote |
||||||
|
* Es wird pro Arbeitstag ein Meeting gehalten, in welchem der aktuelle Status besprochen wird ("Jour fixe") |
||||||
|
* Alle offiziellen Kommuniktionen werden von einem am Anfang des Meetings bestimmten Mitarbeiter dokumentiert _(Ordner /Dokumente/Protokolle. Hier liegt eine Vorlage)_ |
||||||
|
* Die Einhaltung der Kommunikationsrichtlinien wird vom Teamleiter überwacht |
||||||
|
|
||||||
|
|
||||||
|
## Konzepte |
||||||
|
|
||||||
|
### Infrastruktur |
||||||
|
|
||||||
|
* Alles wird in Dockercontainern deployed |
||||||
|
* Server können von Tobi und Levin bereitgestellt werden |
||||||
|
* Auf beiden ist eine Docker Installation vorhanden |
||||||
|
* Das gebaute FE wird von einem NGINX geserved (registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-serve) |
||||||
|
* // Todo backend @Tobi |
||||||
|
|
||||||
|
### Deployment |
||||||
|
|
||||||
|
* Deployed wird über GitLab Pipelines |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
|
After Width: | Height: | Size: 50 KiB |
@ -0,0 +1,57 @@ |
|||||||
|
<diagram program="umletino" version="14.3.0"><zoom_level>10</zoom_level><help_text></help_text><element><id>UMLClass</id><coordinates><x>125</x><y>60</y><w>240</w><h>180</h></coordinates><panel_attributes>Person |
||||||
|
<<abstract>> |
||||||
|
-- |
||||||
|
_Id_ |
||||||
|
Name, Vorname |
||||||
|
Geburtsdatum, Geburtsort |
||||||
|
PLZ, Ort, Strasse |
||||||
|
Telefon, EMail |
||||||
|
Bankname |
||||||
|
BLZ |
||||||
|
KontoNr</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>125</x><y>290</y><w>100</w><h>50</h></coordinates><panel_attributes>Schueler |
||||||
|
- |
||||||
|
IstErmaessigt</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>265</x><y>290</y><w>100</w><h>50</h></coordinates><panel_attributes>Dozent |
||||||
|
-- |
||||||
|
Stundensatz</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>304</x><y>230</y><w>30</w><h>80</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>164</x><y>230</y><w>30</w><h>80</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;10;10;60</additional_attributes></element><element><id>UMLClass</id><coordinates><x>184</x><y>451</y><w>120</w><h>100</h></coordinates><panel_attributes>Kurs |
||||||
|
-- |
||||||
|
_Id_ |
||||||
|
Name |
||||||
|
Laufzeit |
||||||
|
Kuendigungsfrist |
||||||
|
Bestaetigt</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>634</x><y>361</y><w>100</w><h>80</h></coordinates><panel_attributes>Raum |
||||||
|
-- |
||||||
|
_Nr_ |
||||||
|
Name |
||||||
|
Belegt</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>464</x><y>451</y><w>100</w><h>90</h></coordinates><panel_attributes>Unterricht |
||||||
|
-- |
||||||
|
_Id_ |
||||||
|
Name |
||||||
|
Anfangszeit |
||||||
|
Notiz |
||||||
|
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>254</x><y>331</y><w>80</w><h>140</h></coordinates><panel_attributes>m1=1 |
||||||
|
m2=0..n</panel_attributes><additional_attributes>60;10;10;120</additional_attributes></element><element><id>Relation</id><coordinates><x>164</x><y>331</y><w>90</w><h>140</h></coordinates><panel_attributes>m1=0..n |
||||||
|
m2=1..n</panel_attributes><additional_attributes>10;10;60;120</additional_attributes></element><element><id>Relation</id><coordinates><x>294</x><y>491</y><w>190</w><h>40</h></coordinates><panel_attributes>m1=1..n |
||||||
|
m2=1</panel_attributes><additional_attributes>170;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>554</x><y>431</y><w>160</w><h>100</h></coordinates><panel_attributes>m1=1 |
||||||
|
m2=1..n</panel_attributes><additional_attributes>130;10;130;70;10;70</additional_attributes></element><element><id>UMLClass</id><coordinates><x>154</x><y>630</y><w>180</w><h>90</h></coordinates><panel_attributes>UnterrichtTyp |
||||||
|
<<enum>> |
||||||
|
-- |
||||||
|
Einzel |
||||||
|
Gruppe |
||||||
|
Musikalische Früherziehung</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>234</x><y>541</y><w>110</w><h>110</h></coordinates><panel_attributes>*UnterrichtTyp* |
||||||
|
m1=1</panel_attributes><additional_attributes>10;90;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>464</x><y>271</y><w>100</w><h>120</h></coordinates><panel_attributes>Instrument |
||||||
|
<<enum>> |
||||||
|
-- |
||||||
|
Klavier |
||||||
|
Schlagzeug |
||||||
|
Geige |
||||||
|
Gitarre |
||||||
|
Band</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>554</x><y>321</y><w>160</w><h>60</h></coordinates><panel_attributes>m1=1..n |
||||||
|
m2=1</panel_attributes><additional_attributes>10;10;130;10;130;40</additional_attributes></element><element><id>Relation</id><coordinates><x>354</x><y>311</y><w>130</w><h>40</h></coordinates><panel_attributes>m1=1..n |
||||||
|
m2=0..n</panel_attributes><additional_attributes>110;10;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>840</x><y>60</y><w>110</w><h>110</h></coordinates><panel_attributes>Antrag |
||||||
|
- |
||||||
|
Laufzeit |
||||||
|
KursId</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>54</x><y>21</y><w>870</w><h>330</h></coordinates><panel_attributes>m1=1 |
||||||
|
m2=1</panel_attributes><additional_attributes>70;300;10;300;10;10;840;10;840;40</additional_attributes></element><element><id>Relation</id><coordinates><x>324</x><y>161</y><w>590</w><h>550</h></coordinates><panel_attributes>*UnterrichtTyp* |
||||||
|
m1=1</panel_attributes><additional_attributes>10;520;570;520;570;10</additional_attributes></element><element><id>Relation</id><coordinates><x>504</x><y>131</y><w>360</w><h>160</h></coordinates><panel_attributes>*Instrumente* |
||||||
|
m1=1..n</panel_attributes><additional_attributes>10;140;10;20;340;19</additional_attributes></element><element><id>Relation</id><coordinates><x>294</x><y>351</y><w>190</w><h>150</h></coordinates><panel_attributes>*Instrumente* |
||||||
|
m1=1..n</panel_attributes><additional_attributes>170;10;10;130</additional_attributes></element></diagram> |
||||||
|
After Width: | Height: | Size: 111 KiB |
@ -0,0 +1,24 @@ |
|||||||
|
<diagram program="umletino" version="14.3.0"><zoom_level>10</zoom_level><element><id>UMLActor</id><coordinates><x>10</x><y>145</y><w>80</w><h>110</h></coordinates><panel_attributes>Verwaltung</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLActor</id><coordinates><x>10</x><y>535</y><w>80</w><h>110</h></coordinates><panel_attributes>Teilnehmer</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>130</x><y>5</y><w>990</w><h>660</h></coordinates><panel_attributes>Online-Auftritt der Musikschule |
||||||
|
-- |
||||||
|
halign=center</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>160</x><y>45</y><w>120</w><h>40</h></coordinates><panel_attributes>Dozenten anlegen</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>180</x><y>555</y><w>170</w><h>40</h></coordinates><panel_attributes>Aufnahmeantrag stellen</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLActor</id><coordinates><x>20</x><y>405</y><w>60</w><h>110</h></coordinates><panel_attributes>Dozent</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>170</x><y>385</y><w>170</w><h>50</h></coordinates><panel_attributes>Stundenplan pro Woche</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>940</x><y>45</y><w>120</w><h>40</h></coordinates><panel_attributes>Raumplanung</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>700</x><y>125</y><w>120</w><h>50</h></coordinates><panel_attributes>Kurse anlegen</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>370</x><y>445</y><w>200</w><h>50</h></coordinates><panel_attributes>Eintragung der Unterrichtsinhalte</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLActor</id><coordinates><x>0</x><y>695</y><w>100</w><h>110</h></coordinates><panel_attributes>Administrator</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>130</x><y>665</y><w>990</w><h>150</h></coordinates><panel_attributes>Backend-Administration |
||||||
|
-- |
||||||
|
halign=center</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>950</x><y>185</y><w>120</w><h>40</h></coordinates><panel_attributes>Unterrichtsplanung</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>260</x><y>705</y><w>260</w><h>40</h></coordinates><panel_attributes>Zugriff und Verwaltung der Datenbank</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>270</x><y>765</y><w>230</w><h>40</h></coordinates><panel_attributes>Zugriff und Verwaltung des Hostings</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>810</x><y>55</y><w>150</w><h>100</h></coordinates><panel_attributes>lt=.> |
||||||
|
|
||||||
|
|
||||||
|
<<includes>></panel_attributes><additional_attributes>10;80;130;10</additional_attributes></element><element><id>Relation</id><coordinates><x>810</x><y>145</y><w>160</w><h>80</h></coordinates><panel_attributes>lt=.> |
||||||
|
|
||||||
|
|
||||||
|
<<includes>></panel_attributes><additional_attributes>10;17;140;60</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>200</x><y>225</y><w>290</w><h>140</h></coordinates><panel_attributes>Dozentenübersicht |
||||||
|
-- |
||||||
|
Welche Kurse aktuell |
||||||
|
Welche Kurstypen möglich |
||||||
|
Welche aktuellen Schüler (mit Anzahl) |
||||||
|
Stundenplan pro Woche |
||||||
|
Bezahlung (inkl. Stundensätze)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>620</x><y>45</y><w>120</w><h>70</h></coordinates><panel_attributes>Schülerübersicht |
||||||
|
-- |
||||||
|
Kurse zu Schüler |
||||||
|
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>550</x><y>195</y><w>150</w><h>70</h></coordinates><panel_attributes>Raumübersicht |
||||||
|
-- |
||||||
|
Welche Instrumente |
||||||
|
Belegunsplan</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>350</x><y>45</y><w>210</w><h>40</h></coordinates><panel_attributes>Übersicht monatliche Einnahmen</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>70</x><y>57</y><w>110</w><h>140</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;120;90;10</additional_attributes></element><element><id>Relation</id><coordinates><x>70</x><y>57</y><w>300</w><h>140</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;120;280;10</additional_attributes></element><element><id>Relation</id><coordinates><x>70</x><y>67</y><w>570</w><h>130</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;110;550;10</additional_attributes></element><element><id>Relation</id><coordinates><x>70</x><y>167</y><w>150</w><h>140</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;10;130;120</additional_attributes></element><element><id>Relation</id><coordinates><x>70</x><y>167</y><w>500</w><h>80</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;10;480;60</additional_attributes></element><element><id>Relation</id><coordinates><x>70</x><y>137</y><w>650</w><h>60</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;40;630;10</additional_attributes></element><element><id>Relation</id><coordinates><x>80</x><y>397</y><w>110</w><h>70</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;50;90;10</additional_attributes></element><element><id>Relation</id><coordinates><x>80</x><y>437</y><w>310</w><h>50</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;10;290;30</additional_attributes></element><element><id>Relation</id><coordinates><x>80</x><y>557</y><w>120</w><h>40</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;20;100;20</additional_attributes></element><element><id>Relation</id><coordinates><x>80</x><y>707</y><w>200</w><h>50</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;30;180;20</additional_attributes></element><element><id>Relation</id><coordinates><x>80</x><y>727</y><w>210</w><h>80</h></coordinates><panel_attributes></panel_attributes><additional_attributes>10;10;190;60</additional_attributes></element><element><id>Relation</id><coordinates><x>340</x><y>170</y><w>440</w><h>430</h></coordinates><panel_attributes>lt=.> |
||||||
|
<<includes>></panel_attributes><additional_attributes>10;410;420;410;420;10</additional_attributes></element></diagram> |
||||||
@ -0,0 +1,193 @@ |
|||||||
|
# Endpoints |
||||||
|
|
||||||
|
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 |
||||||
|
- Username string |
||||||
|
- Password string |
||||||
|
- POST logout |
||||||
|
|
||||||
|
|
||||||
|
### Übersichtsseite (Dozent und Verwaltung) |
||||||
|
- GET screens |
||||||
|
- 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 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 |
||||||
|
- Parameter |
||||||
|
- KursID string |
||||||
|
- Content string |
||||||
|
|
||||||
|
### Welcher Lehrer Welcher Kurs (Verwaltung) |
||||||
|
- GET course_teacher_match |
||||||
|
- Liefert Array |
||||||
|
- KursID string |
||||||
|
- KursName string |
||||||
|
- DozentID string |
||||||
|
- DozentName string |
||||||
|
|
||||||
|
### Welche Schüler Welcher Kurs (Verwaltung) |
||||||
|
- GET course_student_match |
||||||
|
- Liefert Array |
||||||
|
- KursID string |
||||||
|
- KursName string |
||||||
|
- DozentID string |
||||||
|
- DozentName string |
||||||
|
|
||||||
|
### Lehrerübersicht (Verwaltung) |
||||||
|
- GET all_teachers |
||||||
|
- Liefert alle Dozenten |
||||||
|
- Liefert Array |
||||||
|
- DozentID string |
||||||
|
- DozentName string |
||||||
|
|
||||||
|
### Schüler von Lehrer (Dozent und Verwaltung) |
||||||
|
- GET students_of_teacher |
||||||
|
- Parameter DozentID |
||||||
|
- Liefert Array |
||||||
|
- StundentID string |
||||||
|
- StudentName string |
||||||
|
|
||||||
|
### Raumübersicht (Verwaltung) |
||||||
|
- GET rooms |
||||||
|
- Liefert alle verfügbaren Räume, inkl. der vorhandenen Instrumente |
||||||
|
- Liefert Array |
||||||
|
- RaumID string |
||||||
|
- RaumName string |
||||||
|
- Instrumente Array |
||||||
|
- InstrumentID string |
||||||
|
- InstrumentName string |
||||||
|
- PUT create_rooms |
||||||
|
- Parameter |
||||||
|
- RaumName string |
||||||
|
- Instrumente Array |
||||||
|
- InstrumentID string |
||||||
|
|
||||||
|
### Raumdetails (Verwaltung) |
||||||
|
- GET room_free |
||||||
|
- Liefert alle aktuell freien Räumen |
||||||
|
- Parameter |
||||||
|
- RaumID string |
||||||
|
- Liefert object |
||||||
|
- Belegt bool |
||||||
|
- GET room_instruments |
||||||
|
- Liefert alle Instrumente zu einem Raum |
||||||
|
- Parameter |
||||||
|
- RaumID string |
||||||
|
- Liefert Array |
||||||
|
- InstrumentID string |
||||||
|
- InstrumentName string |
||||||
|
- Vorhanden bool |
||||||
|
- GET lessons |
||||||
|
- Liefert alle Unterrichtszeiten in einem Raum |
||||||
|
- Parameter |
||||||
|
- RaumID string |
||||||
|
- Liefert Array |
||||||
|
- StartZeit DateTime |
||||||
|
|
||||||
|
### Kurs Erstellen [Person + Kurs] (Verwaltung) |
||||||
|
- POST get_capable_teachers |
||||||
|
- Liefert alle Dozenten, die einen bestimmten Kurs leiten können |
||||||
|
- Parameter |
||||||
|
- Typ string |
||||||
|
- Instrumente Array |
||||||
|
- InstrumentID string |
||||||
|
- Liefert Array |
||||||
|
- DozentID string |
||||||
|
- DozentName string |
||||||
|
- POST get_cross_referenced_rooms |
||||||
|
- Parameter |
||||||
|
- Typ string |
||||||
|
- Instrumente Array |
||||||
|
- InstrumentID string |
||||||
|
- DozentID string |
||||||
|
- Liefert Array |
||||||
|
- RaumID string |
||||||
|
- Zeiten Array |
||||||
|
- Zeit DateTime |
||||||
|
- POST create_person |
||||||
|
- Erstellt eine Person |
||||||
|
- Parameter |
||||||
|
- Name string |
||||||
|
- Vorname string |
||||||
|
- IstErmaessigt bool |
||||||
|
- Geburtsdatum DateTime |
||||||
|
- Geburtsort string |
||||||
|
- PLZ string |
||||||
|
- Ort string |
||||||
|
- StrasseHNR string |
||||||
|
- Bankname string |
||||||
|
- BLZ string |
||||||
|
- KontoNr string |
||||||
|
- Liefert object |
||||||
|
- StudentID string |
||||||
|
- POST create_course |
||||||
|
- Erstellt einen Kurs |
||||||
|
- Parameter |
||||||
|
- Typ string |
||||||
|
- Instrumente Array |
||||||
|
- InstrumentID string |
||||||
|
- DonzentID string |
||||||
|
- Unterrichtseinheiten Array |
||||||
|
- Zeit int |
||||||
|
- POST enroll_student |
||||||
|
- Ordnet einen Schueler einem Kurs zu |
||||||
|
- Parameter |
||||||
|
- KursID 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 |
||||||
@ -0,0 +1,9 @@ |
|||||||
|
### Fragenkatalog |
||||||
|
|
||||||
|
|Frage|Antwort| |
||||||
|
|-|-| |
||||||
|
|Öffnungszeiten|10:00 - 21:00| |
||||||
|
|Arbeitszeiten von Dozenten (vollzeit, teilzeit)|beliebig| |
||||||
|
|Wer legt den Donzenten an?|Büro (Verwaltung) oder Admin| |
||||||
|
|Wer legt die Kurse an?|Büro (Verwaltung) oder Admin| |
||||||
|
|Benutzerrollen|Admin, Büro, Dozent, Schüler| |
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,213 @@ |
|||||||
|
# Pflichtenheft |
||||||
|
|
||||||
|
## Inhalt |
||||||
|
1. Zielbestimmung |
||||||
|
1. Musskriterien |
||||||
|
1. Abgrenzungskriterien |
||||||
|
1. Produkteinsatz |
||||||
|
1. Anwendungsbereiche |
||||||
|
1. Zielgruppen |
||||||
|
1. Betriebsbedingungen |
||||||
|
1. Produktumgebung |
||||||
|
1. Software |
||||||
|
1. Hardware |
||||||
|
1. Produktfunktionen |
||||||
|
1. Dozentenfunktionen |
||||||
|
1. Wochenübersicht |
||||||
|
2. Kursdetails |
||||||
|
2. Verwaltungsfunktionen |
||||||
|
1. Offene Anträge |
||||||
|
2. Kurse erstellen |
||||||
|
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 |
||||||
|
|
||||||
|
> Das Ziel von Parsec Iron Puffin (*PIP*) ist es, eine Anwendung zu bieten welche die Organisation der Musikschule erlaubt. Hierzu werden für Dozenten und Verwaltung verschiedene administrative Funktionen bereitgestellt. Die aktuellen Betriebsprozesse sollen vereinfacht und beschleunigt werden. |
||||||
|
|
||||||
|
### Musskriterien |
||||||
|
* Es besteht ein Authentifizierung um den Zugriff auf alle Funktionen auf die jeweils berechtigten Personen zu beschränken. |
||||||
|
* Der Dozent |
||||||
|
* Kann seine Stunden in der kommenden Woche sehen können. |
||||||
|
* Kann den Inhalt seiner Kurs für jede Unterrichtseinheit (*UE*) pflegen. |
||||||
|
* Kann die Schüler eines Kurses sehen. |
||||||
|
* Die Verwaltung |
||||||
|
* Kann sehen, welcher Lehrer welchen Kurs leitet. |
||||||
|
* Kann sehen, welcher Schüler an welchem Kurs teilnimmt. |
||||||
|
* Kann sehen, welche Schüler von einem gegebenen Lehrer unterrichtet werden. |
||||||
|
* Kann Räume anlegen. |
||||||
|
* Kann bearbeiten, welche Instrumente in einem Raum zu verfügung stehen. |
||||||
|
* Kann die aktuelle Verfügbarkeit und die nächsten Termine eines Raumes sehen. |
||||||
|
* Kann offene Anträge sehen. |
||||||
|
* Kann aus eingehenden Anträgen neue Kurs erstellen und UE planen. |
||||||
|
* Kann in einer Übersicht die Einnahmen der Musikschule und den Betrag, welcher an jeden Dozent gezahlt wird sehen. |
||||||
|
* Der Administrative Nutzer |
||||||
|
* Konfiguriert die Betriebsparameter des Systems |
||||||
|
* Sichert die Datenbank |
||||||
|
* Ein Kurs hat |
||||||
|
* einen Dozenten |
||||||
|
* einen Typ (Einzel-, Bandunterricht, Früherziehung) |
||||||
|
* einen Raum |
||||||
|
* ein oder zwei Zeitpunkte |
||||||
|
* und eine Laufzeit |
||||||
|
* Der Schüler |
||||||
|
* kann einen Aufnahmeantrag über ein Webformular abschicken |
||||||
|
* erhält, nachdem die Verwaltung einen Kurs aus dem Antrag erstellt hat, eine Bestätigung (Kursbestätigung) mit den Zeiten Seiner Unterrichtseinheiten |
||||||
|
* hat bis zum ersten Unterrichtstermin Zeit, um den Unterricht zu bestätigen |
||||||
|
* Sonstiges |
||||||
|
* Deutsch ist Verkehrssprache |
||||||
|
* Alle Funktionen sind über das Internet erreichbar |
||||||
|
* Die Anwendung ist für Mobilgeräte optimiert |
||||||
|
|
||||||
|
### Wunschkriterien |
||||||
|
* Der Administrative Nutzer |
||||||
|
* Möchte bei der Erstellung eines Kurses durch einen Vorschlag zu passendem Raum, Dozenten und Zeitpunkt unterstützt werden. |
||||||
|
* Der Schüler |
||||||
|
* Möchte sich einloggen können um die eigenen Unterrichtszeiten und Inhalte einzusehen |
||||||
|
* Sonstiges |
||||||
|
* Daten sollen soweit sinnvoll möglich auf dem Endgerät zwischengespeichert werden, damit auch ohne Internetverbindung Grundlegende funktionalität geleistet werden kann. |
||||||
|
|
||||||
|
### Abgrenzungungskriterien |
||||||
|
* Das *PIP* |
||||||
|
* soll keine Abrechnung erstellen oder verschicken. |
||||||
|
|
||||||
|
## Produkteinsatz |
||||||
|
|
||||||
|
### Anwendungsbereiche |
||||||
|
Die Anwendung wird von den Dozenten und der Verwaltung zur Planung und Organisation der Musikschule genutzt. |
||||||
|
|
||||||
|
### Zielgruppe |
||||||
|
Die Zielgruppe besteht aus der Verwaltung und allen aktuellen und zukünftigen Dozenten der Musikschule. Eventeuell wird die Zielgruppe um die Schüler der Musikschule erweitert. |
||||||
|
|
||||||
|
### Betriebsbedingungen |
||||||
|
* Betriebsdauer: täglich, 24 Stunden |
||||||
|
* Die Anwendung und ihre Teile werden auf einem virtuellen privaten Server bei einem externen Anbieter bereitgestellt |
||||||
|
* Die Anwendung ist global über das Internet erreichbar |
||||||
|
* Der Betrieb wird vom Auftragnehmer überwacht |
||||||
|
|
||||||
|
## Produktumgebung |
||||||
|
### Software |
||||||
|
* Client |
||||||
|
* Chrome oder Chromium basierter Browser der Version 74 |
||||||
|
* Server |
||||||
|
* Docker unter Linux (Version 18.09.5) |
||||||
|
|
||||||
|
### Hardware |
||||||
|
* Client |
||||||
|
* Internetfähiges Endgerät |
||||||
|
* Server |
||||||
|
* Internetfähiger Server |
||||||
|
* Ausreichende Rechen- und Festplattenkapazität |
||||||
|
|
||||||
|
## Produktfunktionen |
||||||
|
|
||||||
|
### **Dozentenfunktionen** |
||||||
|
#### Wochenübersicht **/FD01/** |
||||||
|
* Der Nutzer sieht eine Übersicht mit von Ihm gegebenen Kursen in den kommenden 7 Tagen, gruppiert nach Wochentag |
||||||
|
* Mit einem Klick auf einen Kurs gelangt man zu den entsprechenden Kursdetails |
||||||
|
|
||||||
|
#### Kursdetails **/FD02/** |
||||||
|
* Der Nutzer sieht Details zu einem Kurs |
||||||
|
* Er sieht alle Schüler, welche an dem Kurs teilnehmen |
||||||
|
* Er sieht die Einträge zu den den Unterrichtsinhalten der vergangen Unterrichtseinheiten und kann den Inhalt des letzten Termins bearbeiten / erfassen. |
||||||
|
|
||||||
|
### **Verwaltungsfunktionen |
||||||
|
|
||||||
|
#### Offene Anträge **/FV01/** |
||||||
|
* Es werden alle neu eingegangenen und nicht bestägtigten Anträge angzeigt. |
||||||
|
* Mit einem Klick auf einen eingegangen Antrag wird die [Kurs erstellen](#kurs-erstellen) Seite aufgerufen. |
||||||
|
|
||||||
|
#### Kurs Erstellen **/FV02/** |
||||||
|
* Nach einem eingegegangen Antrag kann basierent auf diesem ein Kurs erstellt werden. |
||||||
|
* Typ (Einzel, Gruppe, ), Instrument(e), Laufzeit und Personenbezogne Daten werden in der Kurserstllungs Mask vorausgefüllt |
||||||
|
* Es werden Dozenten angezeigt, welche zu den Instrumentenanforderungen passen |
||||||
|
* Es werden Räume angezeigt, welche zu den Instrumentenanforderungen passen |
||||||
|
* Nach Auswahl von Raum und Dozent wird/werden die Zeit(en) für die Unterrichtseinheiten gewählt werden; Die Möglichkeit der auswahl wird überprüft |
||||||
|
* Nach erfolgreicher Auswahl wird der Kurs in der Datenbank angelegt und der Schüler über den Kurs informiert. Dieser muss ihn vor der ersten Unterrichtseinheit bestätigen, ansonster verfällt der Kurs. |
||||||
|
|
||||||
|
#### Kursübersicht **/FV03/** |
||||||
|
* In der Kursübersicht werden in Tabellenform alle Kurse zusammen mit ihren Dozenten angezeigt. |
||||||
|
* Die Tabelle kann spaltenweise sortiert und nach Dozenten- und Kursname gefiltert werden. |
||||||
|
* Ein Klick auf einen Kurs führt zu [Kursdetails](#kursdetails-f02). |
||||||
|
* Ein Klick auf einen Dozenten führt zu [Schüler eines Dozenten](#sch%C3%BCler-eines-dozenten-fv05) |
||||||
|
|
||||||
|
#### Schülerübersicht **/FV04/** |
||||||
|
* Es werden in Tabellenform alle Schüler mit Ihren Kursen angezeigt, ein Kurs pro Zeile |
||||||
|
* Ein Schüler kann also mehrere Zeilen umfassen |
||||||
|
* Die Tabelle kann spaltenweise sortiert und nach Schüler- und Kursname gefiltert werden. |
||||||
|
|
||||||
|
#### Schüler eines Dozenten **/FV05/** |
||||||
|
* Es werden alle Schüler des ausgewählten Dozenten angezeigt. |
||||||
|
|
||||||
|
#### Raumübersicht **/FV06/** |
||||||
|
* Es werden alle Räume mit Grundlegenden Informationen angezeigt. |
||||||
|
* aktuelle Belegung |
||||||
|
* Instrumente |
||||||
|
* Es wird ein Button zum erstellen von neuen Räumen angzeigt |
||||||
|
|
||||||
|
#### Raumdetails **/FV07/** |
||||||
|
* Es werden alle Informationen zu einem Raum Angzeigt. |
||||||
|
* Name (bearbeitbar) |
||||||
|
* aktuelle Belegung |
||||||
|
* Instrumente (bearbeitbar) |
||||||
|
* Nächste 5 Unterrichtseinheiten in diesem Raum |
||||||
|
|
||||||
|
#### Finanzübersicht **/FV09/** |
||||||
|
* Es werden die gesamten monatlichen Einnahmen der Musikschule angzeigt. |
||||||
|
* Es werden die Zahlungen an die Dozenten, aufgeschlüsselt nacht Dozent angezeigt. |
||||||
|
|
||||||
|
### **Sonstige Funktionen** |
||||||
|
|
||||||
|
#### Login **/F01/** |
||||||
|
* Der Nutzer kann sich mit Benutzername und Passwort anmelden. |
||||||
|
* Benutzername und Passwort können von dem Administrativen Nutzer mithilfe von Direktzugriff auf das System angelegt werden |
||||||
|
|
||||||
|
#### Mitglied zu Kurs hinzufügen **/F02/** |
||||||
|
* Wenn ein Schüler einen Gruppenkurs erstellt hat, erhält dieser mit seiner Kursbestätigung einen Einladungslink, welcher auf eine "Antrag-Lite" Seite führt. |
||||||
|
* Hier können sich weiter Mitglieder der Gruppe/Band in diesen Kurs eintragen. |
||||||
|
* Dafür müssen diese nur Ihre Personenbezogenen Daten angeben, Sie werden in der über den Link identifizierten Kurs eingeschrieben. |
||||||
|
* Dies muss vor dem ersten Unterrichtstermin geschehen. |
||||||
|
|
||||||
|
|
||||||
|
## Benutzeroberfläche |
||||||
|
|
||||||
|
> Was sind die grundlegenden Anforderungen an die Benutzeroberfläche (Bildschirmlayout, Dialogstruktur, ...)? |
||||||
|
|
||||||
|
### Dialogstruktur |
||||||
|
|
||||||
|
Im Folgenden wird die grobe Dialogstruktur einer fehlerfreien bzw. konfliktfreien Benutzung des Systems gezeigt wird. |
||||||
|
Fehlereingaben haben eine akkumulierte Fehlermeldung zur Folge. |
||||||
|
|
||||||
|
#### Startseite |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
#### Übersichtsseite Dozenten |
||||||
|
|
||||||
|
Die Übersichtsseite Dozenten ist die Startseite des Dozenten, die der Dozent nach der Anmeldung /F01/ erreicht. |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
#### Übersichtsseite Verwaltung |
||||||
|
|
||||||
|
Die Übersichtsseite Verwaltung ist die Startseite der Verwaltung, die die Verwaltung nach der Anmeldung /F01/ erreicht. |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
### Bildschirmlayout |
||||||
|
|
||||||
|
Das Frontend wird mithilfe der JavaScript Bibliothek React erstellt, das Design wird mithilfe der MIT-lizensierten Designbibliothek Material-UI realisiert. Die Anwendung ist für Mobilegeräte optimiert und wird nach den Prinzipien des Responsiven Desings entwickelt. |
||||||
|
|
||||||
|
> Ausnahme sind die Administrationsfunktionen |
||||||
Binary file not shown.
@ -0,0 +1,11 @@ |
|||||||
|
# Rollenverteilung |
||||||
|
|
||||||
|
* Teamleitung ( Levin, Alexej ) |
||||||
|
* Aufgbenverteilung |
||||||
|
* Kommuniktion Organisieren (intern und mit Kunden) |
||||||
|
* Probleme lösen (intern und extern) |
||||||
|
* Übernimmt Controlling Aufgaben |
||||||
|
* Prozessbeobachtung ( Tobi ) |
||||||
|
* Diverse Geschehen beobachten und chronologisch dokumentieren |
||||||
|
* Entwickler ( alle ) |
||||||
|
* Entwicklung |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
## Analyse |
||||||
|
1. Ist-Analyse |
||||||
|
2. Soll-Konzept |
||||||
|
1. Pflichtenheft |
||||||
|
|
||||||
|
## DV Konzept (Datenverarbeitungskonzept) |
||||||
|
* UML, ERD, Testfallkatalog, Struktogramm |
||||||
|
|
||||||
|
## Implementierung |
||||||
|
* Kommentierter Code |
||||||
|
|
||||||
|
## Testen |
||||||
|
* Vom Testfallkatalog |
||||||
|
|
||||||
|
## Abnahme |
||||||
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 30 KiB |
@ -0,0 +1,21 @@ |
|||||||
|
# 2019-05-08 Protokoll |
||||||
|
|
||||||
|
_Teilnehmer: Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_ |
||||||
|
|
||||||
|
_Ort: Schule_ |
||||||
|
|
||||||
|
## Agenda |
||||||
|
* Rollenverteilung |
||||||
|
* Kommunikationsplan besprechen |
||||||
|
* Was ist unser erstes Todo |
||||||
|
* Brainstroming |
||||||
|
* Fragenkatalog erstellen |
||||||
|
|
||||||
|
## Ergebnisse |
||||||
|
* Im Vorlauf wurde ein Projektportfolio auf GitLab eingerichtet |
||||||
|
* Ein Rollenplan wurde erstellt |
||||||
|
* Der KP wurde besprochen |
||||||
|
* Erstes ToDo ist: MindMap erstellen |
||||||
|
|
||||||
|
## Resultierende Aufgaben |
||||||
|
* Keine |
||||||
@ -0,0 +1,44 @@ |
|||||||
|
# 2019-05-15 Protokoll |
||||||
|
|
||||||
|
_Teilnehmer: Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_ |
||||||
|
|
||||||
|
_Ort: Schule_ |
||||||
|
|
||||||
|
## Agenda |
||||||
|
* Papierprototyp |
||||||
|
* Pflichtenheft |
||||||
|
* ER-Diagram |
||||||
|
* Endpoints für Kommunikation zwischen FE und BE |
||||||
|
* Fragenkatalog erstellen |
||||||
|
* Verwendete Techniken |
||||||
|
* Programmiersprachen |
||||||
|
* Frameworks |
||||||
|
* Docker |
||||||
|
* Datenbank |
||||||
|
|
||||||
|
## Ergebnisse |
||||||
|
* Verwendete Techniken |
||||||
|
* Frontend |
||||||
|
* UI Library "React" (Version 16.8.6) |
||||||
|
* Designvorlage "Material UI" (Version 3) |
||||||
|
* Backend |
||||||
|
* C# mit ASP.NET Core WebAPI (Version 2.1) |
||||||
|
* EntityFrameworkCore (Version 6) |
||||||
|
* SQLite Datenbank für EntityFrameworkCore (Version 2.1) |
||||||
|
* Infrastruktur |
||||||
|
* Docker (Version 18.09.6) |
||||||
|
* Codeverwaltung Gitlab (Gitlab Cloud) |
||||||
|
### Fragenkatalog |
||||||
|
|Frage|Antwort| |
||||||
|
|-|-| |
||||||
|
|Öffnungszeiten|| |
||||||
|
|Arbeitszeiten|| |
||||||
|
|Donzenten anlegen|| |
||||||
|
|Benutzerrollen|Admin, Büro, Schüler| |
||||||
|
|
||||||
|
## Resultierende Aufgaben |
||||||
|
|Aufgabe|Verantwortlicher|Erledigt| |
||||||
|
|-|-|-| |
||||||
|
|Papierprototyp erstellen und im nächsten Metting weiter besprechen|Kai, Levin|X| |
||||||
|
|Erstellung ER-Diagram und im nächsten Meeting weiter besprechen|Alexej, Tobias|X| |
||||||
|
|Erstellung Pflichtenheft und Definition der Endpoints nach Besprechung von Papierprototyp und ER-Diagram|Alle|| |
||||||
@ -0,0 +1,19 @@ |
|||||||
|
# 2019-05-22 Protokoll |
||||||
|
|
||||||
|
_Teilnehmer: Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_ |
||||||
|
|
||||||
|
_Ort: Schule_ |
||||||
|
|
||||||
|
## Agenda |
||||||
|
* Papierprototyp |
||||||
|
* ER-Diagramm |
||||||
|
* Pflichtenheft |
||||||
|
* Laufzettel |
||||||
|
|
||||||
|
## Ergebnisse |
||||||
|
* Papierprototyp und ER-Diagramm besprochen und angepasst |
||||||
|
* Laufzettel: Abnahme von Kommunikationsplan und Papierprototyp |
||||||
|
|
||||||
|
## Resultierende Aufgaben |
||||||
|
|Aufgabe|Verantwortlicher|Erledigt| |
||||||
|
|-|-|-| |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
# 2019-05-29 Protokoll |
||||||
|
|
||||||
|
_Teilnehmer: Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_ |
||||||
|
|
||||||
|
_Ort: Schule_ |
||||||
|
|
||||||
|
## Agenda |
||||||
|
* Planung Pflichtenheft |
||||||
|
* Planung Projektsturkturplan inkl. Zeitplan |
||||||
|
* Laufzettel |
||||||
|
* Abnahme von ERD |
||||||
|
|
||||||
|
## Ergebnisse |
||||||
|
* Laufzettel: Abnahme von ERD, MindMap und Fragenkatalog |
||||||
|
|
||||||
|
## Resultierende Aufgaben |
||||||
|
|Aufgabe|Verantwortlicher|Erledigt| |
||||||
|
|-|-|-| |
||||||
|
|Erstellung Pflichtenheft|Kai, Levin|| |
||||||
|
|Erstellung Projektstrukturplan inkl. Zeitplan|Alexej, Tobi| |
||||||
|
|Erstellung div. Diagramme|Alexej, Tobi| |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
# 2019-06-05 Protokoll |
||||||
|
|
||||||
|
_Teilnehmer: Levin Faber, ~~Alexej Komnik~~, Tobias Schiffarth, Kai Senkowski_ |
||||||
|
|
||||||
|
_Ort: Schule_ |
||||||
|
|
||||||
|
## Agenda |
||||||
|
* Projektstrukturplan und Zeitplan |
||||||
|
* Erstellung Datenbankschema |
||||||
|
* Status Pflichtenheft |
||||||
|
* Nächste TODOs |
||||||
|
* Vorbereitung Präsentation |
||||||
|
* Pipelines erstellen |
||||||
|
* Authentifizierung der Benutzer |
||||||
|
* Laufzettel |
||||||
|
|
||||||
|
## Ergebnisse |
||||||
|
* Pflichtenheft erste Version fast vollständig |
||||||
|
|
||||||
|
## Resultierende Aufgaben |
||||||
|
|Aufgabe|Verantwortlicher|Erledigt| |
||||||
|
|-|-|-| |
||||||
|
|Erstellung Datenbankschema|Tobi|| |
||||||
|
|Vorbereitung Präsensation (Basislayout und Inhaltsgliederung)|Kai|| |
||||||
@ -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| |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
# 2019-xx-xx Protokoll |
||||||
|
|
||||||
|
_Teilnehmer: Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_ |
||||||
|
|
||||||
|
_Ort: Schule_ |
||||||
|
|
||||||
|
## Agenda |
||||||
|
* Punkt 1 |
||||||
|
|
||||||
|
## Ergebnisse |
||||||
|
* Punkt 1 |
||||||
|
|
||||||
|
## Resultierende Aufgaben |
||||||
|
|Aufgabe|Verantwortlicher|Erledigt| |
||||||
|
|-|-|-| |
||||||
@ -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…
Reference in new issue