diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9878aa6..fccd567 100644 --- a/.gitlab-ci.yml +++ b/.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 diff --git a/Backend/EVABackend/EVABackend/Dockerfile b/Backend/EVABackend/EVABackend/Dockerfile index 87f7eeb..009b6ae 100644 --- a/Backend/EVABackend/EVABackend/Dockerfile +++ b/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"] \ No newline at end of file +ENTRYPOINT ["dotnet", "EVABackend.dll"] diff --git a/Backend/EVABackend/EVABackend/EVABackend.csproj b/Backend/EVABackend/EVABackend/EVABackend.csproj index 1a8fd53..5187791 100644 --- a/Backend/EVABackend/EVABackend/EVABackend.csproj +++ b/Backend/EVABackend/EVABackend/EVABackend.csproj @@ -12,7 +12,7 @@ - + diff --git a/Frontend/README.md b/Frontend/README.md index eec0b28..636f993 100644 --- a/Frontend/README.md +++ b/Frontend/README.md @@ -3,3 +3,5 @@ # Pakages - Material UI +- React Router +- Sentry diff --git a/README.md b/README.md index f568b43..73b9dc2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # EVA Lernsituation - +_Levin Faber, Alexej Komnik, Tobias Schiffarth, Kai Senkowski_ ## Teilnehmer * Levin Faber diff --git a/_Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.png b/_Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.png new file mode 100644 index 0000000..6d9701a Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.png differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.uxf b/_Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.uxf new file mode 100644 index 0000000..2ecb4cf --- /dev/null +++ b/_Dokumente/Ausgearbeitete Dokumente/EVA ERD Umletino.uxf @@ -0,0 +1,57 @@ +10UMLClass12560240180Person +<<abstract>> +-- +_Id_ +Name, Vorname +Geburtsdatum, Geburtsort +PLZ, Ort, Strasse +Telefon, EMail +Bankname +BLZ +KontoNrUMLClass12529010050Schueler +- +IstErmaessigtUMLClass26529010050Dozent +-- +StundensatzRelation3042303080lt=<<-10;10;10;60Relation1642303080lt=<<-10;10;10;60UMLClass184451120100Kurs +-- +_Id_ +Name +Laufzeit +Kuendigungsfrist +BestaetigtUMLClass63436110080Raum +-- +_Nr_ +Name +BelegtUMLClass46445110090Unterricht +-- +_Id_ +Name +Anfangszeit +Notiz +Relation25433180140m1=1 +m2=0..n60;10;10;120Relation16433190140m1=0..n +m2=1..n10;10;60;120Relation29449119040m1=1..n +m2=1170;10;10;10Relation554431160100m1=1 +m2=1..n130;10;130;70;10;70UMLClass15463018090UnterrichtTyp +<<enum>> +-- +Einzel +Gruppe +Musikalische FrüherziehungRelation234541110110*UnterrichtTyp* +m1=110;90;10;10UMLClass464271100120Instrument +<<enum>> +-- +Klavier +Schlagzeug +Geige +Gitarre +BandRelation55432116060m1=1..n +m2=110;10;130;10;130;40Relation35431113040m1=1..n +m2=0..n110;10;10;10UMLClass84060110110Antrag +- +Laufzeit +KursIdRelation5421870330m1=1 +m2=170;300;10;300;10;10;840;10;840;40Relation324161590550*UnterrichtTyp* +m1=110;520;570;520;570;10Relation504131360160*Instrumente* +m1=1..n10;140;10;20;340;19Relation294351190150*Instrumente* +m1=1..n170;10;10;130 \ No newline at end of file diff --git a/_Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.png b/_Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.png new file mode 100644 index 0000000..4e8957c Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.png differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.uxf b/_Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.uxf new file mode 100644 index 0000000..ea21546 --- /dev/null +++ b/_Dokumente/Ausgearbeitete Dokumente/EVA Use Case Umletino.uxf @@ -0,0 +1,24 @@ +10UMLActor1014580110VerwaltungUMLActor1053580110TeilnehmerUMLGeneric1305990660Online-Auftritt der Musikschule +-- +halign=centerUMLUseCase1604512040Dozenten anlegenUMLUseCase18055517040Aufnahmeantrag stellenUMLActor2040560110DozentUMLUseCase17038517050Stundenplan pro WocheUMLUseCase9404512040RaumplanungUMLUseCase70012512050Kurse anlegenUMLUseCase37044520050Eintragung der UnterrichtsinhalteUMLActor0695100110AdministratorUMLGeneric130665990150Backend-Administration +-- +halign=centerUMLUseCase95018512040UnterrichtsplanungUMLUseCase26070526040Zugriff und Verwaltung der DatenbankUMLUseCase27076523040Zugriff und Verwaltung des HostingsRelation81055150100lt=.> + + + <<includes>>10;80;130;10Relation81014516080lt=.> + + + <<includes>>10;17;140;60UMLUseCase200225290140Dozentenübersicht +-- +Welche Kurse aktuell +Welche Kurstypen möglich +Welche aktuellen Schüler (mit Anzahl) +Stundenplan pro Woche +Bezahlung (inkl. Stundensätze)UMLUseCase6204512070Schülerübersicht +-- +Kurse zu Schüler +UMLUseCase55019515070Raumübersicht +-- +Welche Instrumente +BelegunsplanUMLUseCase3504521040Übersicht monatliche EinnahmenRelation705711014010;120;90;10Relation705730014010;120;280;10Relation706757013010;110;550;10Relation7016715014010;10;130;120Relation701675008010;10;480;60Relation701376506010;40;630;10Relation803971107010;50;90;10Relation804373105010;10;290;30Relation805571204010;20;100;20Relation807072005010;30;180;20Relation807272108010;10;190;60Relation340170440430lt=.> +<<includes>>10;410;420;410;420;10 \ No newline at end of file diff --git a/_Dokumente/Ausgearbeitete Dokumente/Endpoints.md b/_Dokumente/Ausgearbeitete Dokumente/Endpoints.md new file mode 100644 index 0000000..8cb0c2b --- /dev/null +++ b/_Dokumente/Ausgearbeitete Dokumente/Endpoints.md @@ -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 \ No newline at end of file diff --git a/_Dokumente/Ausgearbeitete Dokumente/Fragenkatalog.md b/_Dokumente/Ausgearbeitete Dokumente/Fragenkatalog.md new file mode 100644 index 0000000..ce95b56 --- /dev/null +++ b/_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| \ No newline at end of file diff --git a/_Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.pdf b/_Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.pdf new file mode 100644 index 0000000..59ab01e Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.pdf differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.xlsx b/_Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.xlsx new file mode 100644 index 0000000..169ae0b Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/LS Musikschule. PROJEKTSTRUKTURPLAN.xlsx differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/MindMap.pdf b/_Dokumente/Ausgearbeitete Dokumente/MindMap.pdf new file mode 100644 index 0000000..6d01756 Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/MindMap.pdf differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/Papierprototyp_1.pdf b/_Dokumente/Ausgearbeitete Dokumente/Papierprototyp_1.pdf new file mode 100644 index 0000000..335649a Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/Papierprototyp_1.pdf differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/Papierprototyp_2.pdf b/_Dokumente/Ausgearbeitete Dokumente/Papierprototyp_2.pdf new file mode 100644 index 0000000..9bcd56f Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/Papierprototyp_2.pdf differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.md b/_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.md new file mode 100644 index 0000000..81225fe --- /dev/null +++ b/_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 \ No newline at end of file diff --git a/_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.pdf b/_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.pdf new file mode 100644 index 0000000..c6cc033 Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.pdf differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/Wasserfalldiagramm.md b/_Dokumente/Ausgearbeitete Dokumente/Wasserfalldiagramm.md new file mode 100644 index 0000000..e602d7b --- /dev/null +++ b/_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 \ No newline at end of file diff --git a/_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite.png b/_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite.png new file mode 100644 index 0000000..2eb000c Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite.png differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Dozent.png b/_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Dozent.png new file mode 100644 index 0000000..f199092 Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Dozent.png differ diff --git a/_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Verwaltung.png b/_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Verwaltung.png new file mode 100644 index 0000000..ccd7d07 Binary files /dev/null and b/_Dokumente/Ausgearbeitete Dokumente/img/Hauptseite_Verwaltung.png differ diff --git a/_Dokumente/Protokolle/.gitkeep b/_Dokumente/Protokolle/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/_Dokumente/Protokolle/2019-05-15_Protokoll.md b/_Dokumente/Protokolle/2019-05-15_Protokoll.md index 383ea9e..4291f7e 100644 --- a/_Dokumente/Protokolle/2019-05-15_Protokoll.md +++ b/_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||| \ No newline at end of file +|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|| \ No newline at end of file diff --git a/_Dokumente/Protokolle/2019-05-22_Protokoll.md b/_Dokumente/Protokolle/2019-05-22_Protokoll.md new file mode 100644 index 0000000..4ca6a9d --- /dev/null +++ b/_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| +|-|-|-| \ No newline at end of file diff --git a/_Dokumente/Protokolle/2019-05-29_Protokoll.md b/_Dokumente/Protokolle/2019-05-29_Protokoll.md new file mode 100644 index 0000000..f777511 --- /dev/null +++ b/_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| \ No newline at end of file diff --git a/_Dokumente/Protokolle/2019-06-05_Protokoll.md b/_Dokumente/Protokolle/2019-06-05_Protokoll.md new file mode 100644 index 0000000..f7d2b18 --- /dev/null +++ b/_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|| \ No newline at end of file diff --git a/_Dokumente/Protokolle/2019-06-12_Protokoll.md b/_Dokumente/Protokolle/2019-06-12_Protokoll.md new file mode 100644 index 0000000..831e2fa --- /dev/null +++ b/_Dokumente/Protokolle/2019-06-12_Protokoll.md @@ -0,0 +1,25 @@ +# 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 +* 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| +|-|-|-| \ No newline at end of file diff --git a/_Dokumente/Protokolle/Protokoll_Template.md b/_Dokumente/Protokolle/Protokoll_Template.md index fb37db1..0319690 100644 --- a/_Dokumente/Protokolle/Protokoll_Template.md +++ b/_Dokumente/Protokolle/Protokoll_Template.md @@ -11,4 +11,5 @@ _Ort: Schule_ * Punkt 1 ## Resultierende Aufgaben -[-] Punkt 1 \ No newline at end of file +|Aufgabe|Verantwortlicher|Erledigt| +|-|-|-| \ No newline at end of file