Browse Source

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

develop
K.A.J 7 years ago
parent
commit
e3cd4781a7
  1. 2
      Docker/Dockerfile_FE_Host.dockerfile
  2. 1
      Frontend/src/components/App.js
  3. 118
      Frontend/src/components/Login.js
  4. 216
      _Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.md
  5. BIN
      _Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.pdf
  6. BIN
      _Dokumente/Ausgearbeitete Dokumente/backend_code_login.png
  7. BIN
      _Dokumente/Ausgearbeitete Dokumente/backend_code_rooms.png
  8. BIN
      _Dokumente/Ausgearbeitete Dokumente/frontend_code_login.png
  9. BIN
      _Dokumente/Ausgearbeitete Dokumente/frontend_code_routerjsx.png

2
Docker/Dockerfile_FE_Host.dockerfile

@ -11,4 +11,4 @@ RUN pwd && ls -la
RUN npm install -g serve
CMD ["serve", "-s", "build"]
CMD ["serve", "-l", "tcp://0.0.0.0:5000", "-s", "build"]

1
Frontend/src/components/App.js

@ -5,7 +5,6 @@ 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: {

118
Frontend/src/components/Login.js

@ -1,36 +1,100 @@
import React, { Component } from "react";
import TextField from "@material-ui/core/TextField";
import { TextField, Typography, Grid, Fab, Container } from "@material-ui/core";
import SendIcon from "@material-ui/icons/Send";
import { withStyles, createStyles } from "@material-ui/styles";
const useStyles = createStyles(theme => ({
textField: {
margingLeft: theme.spacing(1),
marginRight: theme.spacing(1)
},
fab: {
margin: theme.spacing(1)
},
form: {
backgroundColor: "#f5f5f5",
borderRadius: "5px",
margin: "20px",
padding: "20px",
boxShadow: "0px 0px 5px 0px lightgrey",
border: "1px solid lightgrey"
}
}));
class Login extends Component {
state = {};
state = { username: "", password: "" };
handleChange = name => event => {
this.setState({ [name]: event.target.value });
};
// Test
// 123Abc!&
login() {
fetch("/login", { method: "POST", body: JSON.stringify(this.state) })
.then(function(response) {
if (response.status === 200) return response.json();
else return response.statusText;
})
.then(function(myJson) {
console.log(myJson);
//document.cookie = myJson;
});
}
render() {
const classes = this.props.classes;
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>
<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">
Login
</Typography>
</Grid>
<Grid item xs={12}>
<TextField
fullWidth={true}
id="outlined-name"
label="Username"
className={classes.textField}
value={this.state.username}
onChange={this.handleChange("username")}
margin="normal"
variant="outlined"
/>
</Grid>
<Grid item xs={12}>
<TextField
fullWidth={true}
id="outlined-password"
label="Password"
className={classes.textField}
value={this.state.password}
onChange={this.handleChange("password")}
margin="normal"
variant="outlined"
type="password"
/>
</Grid>
</Grid>
<Fab
color="primary"
aria-label="Send"
className={classes.fab}
onClick={() => this.login()}
>
<SendIcon />
</Fab>
</Grid>
</div>
</Container>
);
}
}
export default Login;
export default withStyles(useStyles)(Login);

216
_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.md

@ -1,114 +1,118 @@
# Pflichtenheft
## Inhalt
- [Pflichtenheft](#pflichtenheft)
- [Inhalt](#inhalt)
- [Zielbestimmungsss](#zielbestimmungsss)
- [Musskriterien](#musskriterien)
- [Wunschkriterien](#wunschkriterien)
- [Abgrenzungungskriterien](#abgrenzungungskriterien)
- [Produktübersicht](#produkt%C3%BCbersicht)
- [Produktdaten](#produktdaten)
- [Speichernutzung](#speichernutzung)
- [Produktleistungen](#produktleistungen)
- [Benutzeroberfläche **/L01/**](#benutzeroberfl%C3%A4che-l01)
- [Datenschutz **/L02/**](#datenschutz-l02)
- [Loggin und Nachvollziehbarkeit **/L03/**](#loggin-und-nachvollziehbarkeit-l03)
- [Produkteinsatz](#produkteinsatz)
- [Anwendungsbereiche](#anwendungsbereiche)
- [Zielgruppe](#zielgruppe)
- [Betriebsbedingungen](#betriebsbedingungen)
- [Produktumgebung](#produktumgebung)
- [Software](#software)
- [Hardware](#hardware)
- [Entwicklungsumgebung](#entwicklungsumgebung)
- [Software](#software-1)
- [Backend](#backend)
- [Frontend](#frontend)
- [Hardware](#hardware-1)
- [Backend und Frontend](#backend-und-frontend)
- [Orgware](#orgware)
- [Backend und Frontend](#backend-und-frontend-1)
- [Produktfunktionen](#produktfunktionen)
- [Annahmen und Definitionen zu Produktfunktionen](#annahmen-und-definitionen-zu-produktfunktionen)
- [Dozentenfunktionen](#dozentenfunktionen)
- [Wochenübersicht **/FD01/**](#wochen%C3%BCbersicht-fd01)
- [Kursdetails **/FD02/**](#kursdetails-fd02)
- [Verwaltungsfunktionen](#verwaltungsfunktionen)
- [Offene Anträge **/FV01/**](#offene-antr%C3%A4ge-fv01)
- [Kurs Erstellen **/FV02/**](#kurs-erstellen-fv02)
- [Kursübersicht **/FV03/**](#kurs%C3%BCbersicht-fv03)
- [Schülerübersicht **/FV04/**](#sch%C3%BCler%C3%BCbersicht-fv04)
- [Schüler eines Dozenten **/FV05/**](#sch%C3%BCler-eines-dozenten-fv05)
- [Raumübersicht **/FV06/**](#raum%C3%BCbersicht-fv06)
- [Raumdetails **/FV07/**](#raumdetails-fv07)
- [Finanzübersicht **/FV09/**](#finanz%C3%BCbersicht-fv09)
- [Sonstige Funktionen](#sonstige-funktionen)
- [Login **/F01/**](#login-f01)
- [Mitglied zu Kurs hinzufügen **/F02/**](#mitglied-zu-kurs-hinzuf%C3%BCgen-f02)
- [Antrag Stellen **/F03/**](#antrag-stellen-f03)
- [Benutzeroberfläche](#benutzeroberfl%C3%A4che)
- [Dialogstruktur](#dialogstruktur)
- [Startseite](#startseite)
- [Übersichtsseite Dozenten](#%C3%BCbersichtsseite-dozenten)
- [Übersichtsseite Verwaltung](#%C3%BCbersichtsseite-verwaltung)
- [Bildschirmlayout](#bildschirmlayout)
- [Testfälle](#testf%C3%A4lle)
## Zielbestimmungsss
- [Pflichtenheft](#Pflichtenheft)
- [Inhalt](#Inhalt)
- [Zielbestimmung](#Zielbestimmung)
- [Musskriterien](#Musskriterien)
- [Wunschkriterien](#Wunschkriterien)
- [Abgrenzungungskriterien](#Abgrenzungungskriterien)
- [Produktübersicht](#Produkt%C3%BCbersicht)
- [Produktdaten](#Produktdaten)
- [Speichernutzung](#Speichernutzung)
- [Produktleistungen](#Produktleistungen)
- [Benutzeroberfläche **/L01/**](#Benutzeroberfl%C3%A4che-L01)
- [Datenschutz **/L02/**](#Datenschutz-L02)
- [Loggin und Nachvollziehbarkeit **/L03/**](#Loggin-und-Nachvollziehbarkeit-L03)
- [Produkteinsatz](#Produkteinsatz)
- [Anwendungsbereiche](#Anwendungsbereiche)
- [Zielgruppe](#Zielgruppe)
- [Betriebsbedingungen](#Betriebsbedingungen)
- [Produktumgebung](#Produktumgebung)
- [Software](#Software)
- [Hardware](#Hardware)
- [Entwicklungsumgebung](#Entwicklungsumgebung)
- [Software](#Software-1)
- [Backend](#Backend)
- [Frontend](#Frontend)
- [Hardware](#Hardware-1)
- [Backend und Frontend](#Backend-und-Frontend)
- [Orgware](#Orgware)
- [Backend und Frontend](#Backend-und-Frontend-1)
- [Produktfunktionen](#Produktfunktionen)
- [Annahmen und Definitionen zu Produktfunktionen](#Annahmen-und-Definitionen-zu-Produktfunktionen)
- [Dozentenfunktionen](#Dozentenfunktionen)
- [Wochenübersicht **/FD01/**](#Wochen%C3%BCbersicht-FD01)
- [Kursdetails **/FD02/**](#Kursdetails-FD02)
- [Verwaltungsfunktionen](#Verwaltungsfunktionen)
- [Offene Anträge **/FV01/**](#Offene-Antr%C3%A4ge-FV01)
- [Kurs Erstellen **/FV02/**](#Kurs-Erstellen-FV02)
- [Kursübersicht **/FV03/**](#Kurs%C3%BCbersicht-FV03)
- [Schülerübersicht **/FV04/**](#Sch%C3%BCler%C3%BCbersicht-FV04)
- [Schüler eines Dozenten **/FV05/**](#Sch%C3%BCler-eines-Dozenten-FV05)
- [Raumübersicht **/FV06/**](#Raum%C3%BCbersicht-FV06)
- [Raumdetails **/FV07/**](#Raumdetails-FV07)
- [Finanzübersicht **/FV09/**](#Finanz%C3%BCbersicht-FV09)
- [Sonstige Funktionen](#Sonstige-Funktionen)
- [Login **/F01/**](#Login-F01)
- [Mitglied zu Kurs hinzufügen **/F02/**](#Mitglied-zu-Kurs-hinzuf%C3%BCgen-F02)
- [Antrag Stellen **/F03/**](#Antrag-Stellen-F03)
- [Benutzeroberfläche](#Benutzeroberfl%C3%A4che)
- [Dialogstruktur](#Dialogstruktur)
- [Startseite](#Startseite)
- [Übersichtsseite Dozenten](#%C3%9Cbersichtsseite-Dozenten)
- [Übersichtsseite Verwaltung](#%C3%9Cbersichtsseite-Verwaltung)
- [Bildschirmlayout](#Bildschirmlayout)
- [Testfälle](#Testf%C3%A4lle)
<div class="page"/>
## 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.
Die Anwendung bietet der Verwaltung Übersichten über die Schüler, Dozenten, Kurse und Finanzen. Es können Schüler der Kurse und Dozenten der Schüler angezeigt werden.
Der Dozent erhält eine Übersicht über die Stunden, welche er in der Woch zu unterrichten hat. Außerdem kann er eine Detailansicht eines Kurses aufrufen, welche ihm Informationen über die Schüler in diesem Kurs und die Unterrichtsinhalte der vergangenen Stunden bietet.
Der Dozent erhält eine Übersicht über die Stunden, welche er in der Woche zu unterrichten hat. Außerdem kann er eine Detailansicht eines Kurses aufrufen, welche ihm Informationen über die Schüler in diesem Kurs und die Unterrichtsinhalte der vergangenen Stunden bietet.
Nutzer können mithilfe der Anwendung Kurse beantragen und "Band"-Kursen beitreten.
### Musskriterien
* Es besteht ein Authentifizierung um den Zugriff auf alle Funktionen auf die jeweils berechtigten Personen zu beschränken.
* Es besteht eine 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 seine Stunden in der kommenden Woche sehen.
* Kann den Inhalt seiner Kurse 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 Dozent welchen Kurs leitet.
* Kann sehen, welcher Schüler an welchem Kurs teilnimmt.
* Kann sehen, welche Schüler von einem gegebenen Lehrer unterrichtet werden.
* Kann sehen, welche Schüler von einem gegebenen Dozent unterrichtet werden.
* Kann Räume anlegen.
* Kann bearbeiten, welche Instrumente in einem Raum zu verfügung stehen.
* Kann bearbeiten, welche Instrumente in einem Raum zur 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.
* Kann aus eingehenden Anträgen neue Kurse 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
* Konfiguriert die Betriebsparameter des Systems.
* Sichert die Datenbank.
* 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
* 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
* 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
* 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.
* 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.
* Soll keine Abrechnung erstellen oder verschicken.
## Produktübersicht
* Das System wird von den Rollen Verwaltung, Dozent und Anonym bedient.
* Die Rollen Verwaltung und Dozent werden über einen Login authentizifiert, ihnen stehen abhängig von ihrer Rolle verschiedene Funktionen zur verfügung, diese werden unter [Produktfunktionen](#produktfunktionen) spezifiziert. Sonstige Funktionen stehen _allen_ Rollen zur verfügung.
<div class="page"/>
## Produktdaten
* Datenstrukturen der Anwendung:
![ERD](EVA&#32;ERD&#32;Umletino.png)
@ -124,6 +128,8 @@ Nutzer können mithilfe der Anwendung Kurse beantragen und "Band"-Kursen beitret
* Ein Kursdatensatzen kann bis zu 55 Byte groß sein.
* Ein Unterrichtseinheitendatensatz kann bis zu 2056 Byte groß sein.
<div class="page"/>
## Produktleistungen
### Benutzeroberfläche **/L01/**
* Die Anwendung bietet eine deutschsprachige Benutzeroberfläche
@ -132,7 +138,9 @@ Nutzer können mithilfe der Anwendung Kurse beantragen und "Band"-Kursen beitret
### Loggin und Nachvollziehbarkeit **/L03/**
* Zugriffe wie das Schreiben von Daten (anlegen und modifizieren von Datensätzen) werden in einem Log dokumentiert und können so nachvollzogen werden.
## Produkteinsatz
<div class="page"/>
## Produkteinsatz
### Anwendungsbereiche
Die Anwendung wird von den Dozenten und der Verwaltung zur Planung und Organisation der Musikschule genutzt.
@ -146,6 +154,8 @@ Die Zielgruppe besteht aus der Verwaltung und allen aktuellen und zukünftigen D
* Die Anwendung ist global über das Internet erreichbar
* Der Betrieb wird vom Auftragnehmer überwacht
<div class="page"/>
## Produktumgebung
### Software
* Client
@ -160,11 +170,13 @@ Die Zielgruppe besteht aus der Verwaltung und allen aktuellen und zukünftigen D
* Internetfähiger Server
* Ausreichende Rechen- und Festplattenkapazität
<div class="page"/>
## Entwicklungsumgebung
### Software
#### Backend
* Entwickler nutzen die IDE Visual Studio 2019 von Microsoft
* Zum Untersuchen der Datenbank wird der DB Browser genutzt
* Zum Untersuchen der Datenbank wird ein DB Browser genutzt
* Code wird mithilfe des .NET Komplierers kompiliert
* Als Betriebssystem wird Microsoft Windows genutzt
* Als Codeverwaltung wird Gitlab CE genutzt
@ -188,20 +200,22 @@ Die Zielgruppe besteht aus der Verwaltung und allen aktuellen und zukünftigen D
* Als Codeverwaltung wird Gitlab CE genutzt
* Als CI/CD Tool wird Gitlab CI/CD genutzt
<div class="page"/>
## Produktfunktionen
#### Annahmen und Definitionen zu Produktfunktionen
> Getroffene Annahmen und Definitionen zu unterliegenen Produktfunktionen und Geschäftsprozessen, mit denen die Nutzer nicht direkt in Kontakt kommen und daher nicht einer speziellen Funktion zugeordnet werden können.
* Aus einem eingegangenen Antrag wird wird von der Verwaltung mithilfe der gebotenen Funktion ein Kurs erstellt. Hierfür wählt diese einene passenden Dozenten, Raum, und Zeitpunkt(e) aus. Diese werden dem Antragsteller auf geeignetem Weg, zusammen mit einem ausgefertigtem Vertrag zustellt. Der Antragsteller hat bis zum ersten Unterrichtszeitpunkt Zeit, um diesen Vertrag unterschrieben vorzulegen, ansonsten verfällt der Kurs und Dozent und Raum werden zu dem Zeitpunkt(en) freigegeben.
* Im Falle eines "Band"-Kurses wird dem Antragsteller zusammen mit dem Vertrag ein Einzigartiger Link zugestellt. Über diesen Link können sich weiter Mitglieder durch angeben ihrer personenbezogenen Daten zu diesem bereits erstellten Kurs anmelden. Die Anmeldung ist bis zum ersten Unterrichtszeitpunkt möglich.
* Aus einem eingegangenen Antrag wird von der Verwaltung mithilfe der gebotenen Funktion ein Kurs erstellt. Hierfür wählt diese einen passenden Dozenten, Raum, und UEs aus. Diese werden dem Antragsteller auf geeignetem Weg, zusammen mit einem ausgefertigtem Vertrag, zustellt. Der Antragsteller hat bis zum ersten Unterrichtszeitpunkt Zeit, um diesen Vertrag unterschrieben vorzulegen. Ansonsten verfällt der Kurs und Dozent und Raum werden zu den Zeitpunkten der geplanten UEs freigegeben.
* Im Falle eines "Band"-Kurses wird dem Antragsteller zusammen mit dem Vertrag ein einzigartiger Link zugestellt. Über diesen Link können sich weitere Mitglieder durch angeben ihrer personenbezogenen Daten zu diesem bereits erstellten Kurs anmelden. Die Anmeldung ist bis zum ersten Unterrichtszeitpunkt möglich.
* Die Laufzeit des Vertrags startet zum ersten Unterrichtstermin.
* Unterrichtszeiten werden in 15min (1/4 Stunden) blöcken gegeben und geplant.
* Unterrichtszeiten werden in 15min (1/4 Stunden) Blöcken gegeben und geplant.
### Dozentenfunktionen
#### Wochenübersicht **/FD01/**
* Der Nutzer sieht eine Übersicht mit von Ihm gegebenen Kursen in den kommenden 7 Tagen, gruppiert nach Wochentag
* 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/**
@ -230,8 +244,8 @@ Die Zielgruppe besteht aus der Verwaltung und allen aktuellen und zukünftigen D
* 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
* 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/**
@ -239,40 +253,40 @@ Die Zielgruppe besteht aus der Verwaltung und allen aktuellen und zukünftigen D
#### Raumübersicht **/FV06/**
* Es werden alle Räume mit Grundlegenden Informationen angezeigt.
* aktuelle Belegung
* Aktuelle Belegung
* Instrumente
* Es wird ein Button zum erstellen von neuen Räumen angzeigt
* Es wird ein Button zum erstellen von neuen Räumen angezeigt
#### Raumdetails **/FV07/**
* Es werden alle Informationen zu einem Raum Angzeigt.
* Name (bearbeitbar)
* aktuelle Belegung
* 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.
* Es werden die Zahlungen an die Dozenten, aufgeschlüsselt nach 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
* Ein 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.
* Wenn ein Schüler einen Gruppenkurs ("Band"-Kurs) erstellt hat, erhält dieser mit seiner Kursbestätigung einen Einladungslink, welcher auf eine "Antrag-Lite" Seite führt.
* Hier können sich weitere 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.
#### Antrag Stellen **/F03/**
* Der Nutzer gibt personenbezogene- und kursbezogenen Daten an, aus diesen wird beim Absenden ein Antrag in der Datenbank erstellt, welche von der Verwaltung mithilfe der Funktion [Offene Anträge](#offene-antr%C3%A4ge-fv01) eingesehen und weiter verarbeitet werden können.
* Der Nutzer gibt personenbezogene- und kursbezogenen Daten an. Aus diesen wird beim Absenden ein Antrag in der Datenbank erstellt, welche von der Verwaltung mithilfe der Funktion [Offene Anträge](#offene-antr%C3%A4ge-fv01) eingesehen und weiter verarbeitet werden können.
* Personenbezogene Daten:
* Vorname
* Nachname
* Geb. Datum
* Geb. Ort
* Geburtsdatum
* Geburtsort
* PLZ
* Ort
* Straße
@ -287,14 +301,16 @@ Die Zielgruppe besteht aus der Verwaltung und allen aktuellen und zukünftigen D
* Laufzeit
* Unterrichtstyp
<div class="page"/>
## 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.
Im Folgenden wird die grobe Dialogstruktur einer fehlerfreien bzw. konfliktfreien Benutzung des Systems gezeigt.
Fehleingaben haben eine akkumulierte Fehlermeldung zur Folge.
#### Startseite
@ -314,13 +330,15 @@ Die Übersichtsseite Verwaltung ist die Startseite der Verwaltung, die die Verwa
### 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.
Das Frontend wird mithilfe der JavaScript Bibliothek React erstellt und 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 Designs entwickelt.
> Ausnahme sind die Administrationsfunktionen
<div class="page"/>
## Testfälle
1. Der Login funktioniert und erlaubt nur Zugriff auf authorisierte Bereiche / Ansichten.
1. Der Login funktioniert und erlaubt nur Zugriff auf autorisierte Bereiche und Ansichten.
2. Anonyme Nutzer können Anträge stellen, diese gehen in der Datenbank ein.
3. Die Verwaltung kann Anträge verarbeiten und daraus Kurse erstellen.
* Der Antragsteller wird über die Verarbeitung informiert.

BIN
_Dokumente/Ausgearbeitete Dokumente/Pflichtenheft.pdf

Binary file not shown.

BIN
_Dokumente/Ausgearbeitete Dokumente/backend_code_login.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

BIN
_Dokumente/Ausgearbeitete Dokumente/backend_code_rooms.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

BIN
_Dokumente/Ausgearbeitete Dokumente/frontend_code_login.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

BIN
_Dokumente/Ausgearbeitete Dokumente/frontend_code_routerjsx.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Loading…
Cancel
Save