Browse Source

Merge branch 'f/formular-aufnahmeantrag' of gitlab.com:fia72-dev/eva_lernsituation into f/formular-aufnahmeantrag

f/formular-aufnahmeantrag
Kai Senkowski 7 years ago
parent
commit
6c2e4612eb
  1. 20
      .gitlab-ci.yml
  2. 4
      Backend/EVABackend/EVABackend/Dockerfile
  3. 2
      Backend/EVABackend/EVABackend/EVABackend.csproj
  4. 2
      Frontend/README.md
  5. 4
      Frontend/package.json
  6. 2
      README.md
  7. BIN
      _Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.png
  8. 57
      _Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.uxf
  9. BIN
      _Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.png
  10. 24
      _Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.uxf
  11. 135
      _Dokumente/Ausgearbeitete Dokumente/Endpoints.md
  12. 9
      _Dokumente/Ausgearbeitete Dokumente/Fragenkatalog.md
  13. BIN
      _Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.pdf
  14. BIN
      _Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.xlsx
  15. BIN
      _Dokumente/Ausgearbeitete Dokumente/MindMap.pdf
  16. 213
      _Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.md
  17. BIN
      _Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.pdf
  18. 15
      _Dokumente/Ausgearbeitete Dokumente/Wasserfalldiagramm.md
  19. BIN
      _Dokumente/Ausgearbeitete Dokumente/img/Hauptseite.png
  20. BIN
      _Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Dozent.png
  21. BIN
      _Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Verwaltung.png
  22. 0
      _Dokumente/Protokolle/.gitkeep
  23. 15
      _Dokumente/Protokolle/2019-05-15_Protokoll.md
  24. 19
      _Dokumente/Protokolle/2019-05-22_Protokoll.md
  25. 21
      _Dokumente/Protokolle/2019-05-29_Protokoll.md
  26. 24
      _Dokumente/Protokolle/2019-06-05_Protokoll.md
  27. 19
      _Dokumente/Protokolle/2019-06-12_Protokoll.md
  28. 3
      _Dokumente/Protokolle/Protokoll_Template.md

20
.gitlab-ci.yml

@ -24,6 +24,9 @@ build_frontend:
- ssh $DEPLOY_ENV_USER@$DEPLOY_ENV_TARGET "rm -rf /home/$DEPLOY_ENV_USER/serve/*"
- ssh $DEPLOY_ENV_USER@$DEPLOY_ENV_TARGET "mkdir -p /home/$DEPLOY_ENV_USER/serve/$CI_COMMIT_REF_NAME"
- rsync --progress -av -e ssh /workdir/build/* $DEPLOY_ENV_USER@$DEPLOY_ENV_TARGET:/home/$DEPLOY_ENV_USER/serve/
environment:
name: deploy
url: https://$DEPLOY_ENV_TARGET
build_docker_host:
stage: build
@ -37,12 +40,15 @@ build_docker_host:
- docker info
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker build -f Docker/Dockerfile_FE_Host -t registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-serve .
- 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"
when: manual
only:
changes:
- Docker/Dockerfile_FE_Host.dockerfile
- Docker/config/*
build_docker_builder:
stage: build
@ -52,7 +58,13 @@ build_docker_builder:
- docker info
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker build -f Docker/Dockerfile_FE_Builder -t registry.gitlab.com/fia72-dev/eva_lernsituation/frontend-build .
- 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
when: manual
only:
changes:
- Docker/Dockerfile_FE_Builder.dockerfile
- Docker/config/*
- Frontend/package.json
- Frontend/package-lock.json
- .gitlab-ci.yml

4
Backend/EVABackend/EVABackend/Dockerfile

@ -5,7 +5,7 @@ EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.1-stretch AS build
WORKDIR /src
COPY ["EVABackend/EVABackend.csproj", "EVABackend/"]
COPY ["EVABackend.csproj", "EVABackend/"]
RUN dotnet restore "EVABackend/EVABackend.csproj"
COPY . .
WORKDIR "/src/EVABackend"
@ -17,4 +17,4 @@ RUN dotnet publish "EVABackend.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "EVABackend.dll"]
ENTRYPOINT ["dotnet", "EVABackend.dll"]

2
Backend/EVABackend/EVABackend/EVABackend.csproj

@ -12,7 +12,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<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>

2
Frontend/README.md

@ -3,3 +3,5 @@
# Pakages
- Material UI
- React Router
- Sentry

4
Frontend/package.json

@ -3,8 +3,8 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"@material-ui/core": "^4.0.0-beta.2",
"@material-ui/icons": "^3.0.2",
"@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",

2
README.md

@ -1,5 +1,5 @@
# EVA Lernsituation
_Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_
## Teilnehmer
* Levin Faber

BIN
_Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

57
_Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.uxf

@ -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
&lt;&lt;abstract&gt;&gt;
--
_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=&lt;&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=&lt;&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
&lt;&lt;enum&gt;&gt;
--
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
&lt;&lt;enum&gt;&gt;
--
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>

BIN
_Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

24
_Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.uxf

@ -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=.&gt;
&lt;&lt;includes&gt;&gt;</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=.&gt;
&lt;&lt;includes&gt;&gt;</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=.&gt;
&lt;&lt;includes&gt;&gt;</panel_attributes><additional_attributes>10;410;420;410;420;10</additional_attributes></element></diagram>

135
_Dokumente/Ausgearbeitete Dokumente/Endpoints.md

@ -0,0 +1,135 @@
# Endpoints
## Screens
### Login
- POST Login
- Parameter
- Username string
- Password string
### Übersichtsseite (Dozent und Verwaltung)
- GET screens
- Liefert alle erlaubten Ansichten für einen User zurück
### Wochenübersicht (Dozent)
- GET weekly_overview
- Liefert alle Unterrichtseinheiten für die nächsten 7 Tage
### Kursübericht [besser Kursdetails] (Dozent und Verwaltung)
- GET course_detail
- KursID string
- GET course_contents
- KursID string
- PUT new_course_content
- Inhalt der Letzten UE wird gesetzt
- 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 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 Array
- RaumID string
- RaumName string
- Instrumente Array
- InstrumentName string
- GET instruments
- Liefert Array
- InstrumentName string
- PUT create_rooms
- RaumName string
- Instrumente Array
### Raumdetails (Verwaltung)
- GET room_free
- Parameter RaumID
- Liefert Frei bool
- GET room_instruments
- Parameter RaumID
- Liefert Array
- InstrumentName string
- Vorhanden bool
- GET lessons
- Parameter
- RaumID string
- Sort // Maybe wenn benötigt
- Liefert Array
- StartZeit DT
### Kurs Erstellen [Person + Kurs]
- nutzt GET instruments
- GET create_
- POST get_capable_teachers
- Parameter
- Typ string
- Instrumente Array
- Liefert Array
- DozentID string
- DozentName string
- POST get_cross_referenced_rooms
- Parameter
- Typ string
- Instrumente Array
- InstrumentName string
- DozentID string
- Liefert Array
- RaumID string
- Zeiten Array
- Zeitfenster number
- POST create_person
- Parameter
- Name string
- Vorname string
- istErmaesigt bool
- Geburtsdatum DT
- Geburtsort string
- PLZ string
- Ort string
- StrasseHNR string
- Bankname string
- BLZ string
- KontoNr string
- POST create_course
- Parameter
// Kursdaten
- Typ string
- Instrumente Array
- Instrument string
- DonzentID string
- Unterrichtseinheiten Array
- Zeit int
- POST enroll_student
- Parameter
- KursID string
- PersonID string

9
_Dokumente/Ausgearbeitete Dokumente/Fragenkatalog.md

@ -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|

BIN
_Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.pdf

Binary file not shown.

BIN
_Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.xlsx

Binary file not shown.

BIN
_Dokumente/Ausgearbeitete Dokumente/MindMap.pdf

Binary file not shown.

213
_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.md

@ -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
![Hauptseite](img/Hauptseite.png "Startseite")
#### Übersichtsseite Dozenten
Die Übersichtsseite Dozenten ist die Startseite des Dozenten, die der Dozent nach der Anmeldung /F01/ erreicht.
![Hauptseite](img/Hauptseite_Dozent.png "Hauptseite Dozent")
#### Übersichtsseite Verwaltung
Die Übersichtsseite Verwaltung ist die Startseite der Verwaltung, die die Verwaltung nach der Anmeldung /F01/ erreicht.
![Hauptseite](img/Hauptseite_Verwaltung.png "Hauptseite Dozent")
### 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

BIN
_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.pdf

Binary file not shown.

15
_Dokumente/Ausgearbeitete Dokumente/Wasserfalldiagramm.md

@ -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

BIN
_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Dozent.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Verwaltung.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

0
_Dokumente/Protokolle/.gitkeep

15
_Dokumente/Protokolle/2019-05-15_Protokoll.md

@ -29,13 +29,16 @@ _Ort: Schule_
* Docker (Version 18.09.6)
* Codeverwaltung Gitlab (Gitlab Cloud)
### Fragenkatalog
* Öffnungszeiten
* Arbeitszeiten
* Donzenten anlegen
|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||
|Erstellung ER-Diagram und im nächsten Meeting weiter besprechen|Alexej, Tobias||
|Erstellung Pflichtenheft und Definition der Endpoints nach Besprechung von Papierprototyp und ER-Diagram|||
|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||

19
_Dokumente/Protokolle/2019-05-22_Protokoll.md

@ -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|
|-|-|-|

21
_Dokumente/Protokolle/2019-05-29_Protokoll.md

@ -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|

24
_Dokumente/Protokolle/2019-06-05_Protokoll.md

@ -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||

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

@ -0,0 +1,19 @@
# 2019-06-12 Protokoll
_Teilnehmer: Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_
_Ort: Schule_
## Agenda
* Projetkstrukturplan und Zeitplan
* Pflichtenheft
* Abgabe Use-Case-Diagramm
* Endpoints
* Was soll alles im Prototyp enthalten sein?
## Ergebnisse
* Punkt 1
## Resultierende Aufgaben
|Aufgabe|Verantwortlicher|Erledigt|
|-|-|-|

3
_Dokumente/Protokolle/Protokoll_Template.md

@ -11,4 +11,5 @@ _Ort: Schule_
* Punkt 1
## Resultierende Aufgaben
[-] Punkt 1
|Aufgabe|Verantwortlicher|Erledigt|
|-|-|-|
Loading…
Cancel
Save