Compare commits

..

48 Commits

Author SHA1 Message Date
e10a184fd3 Added documenation pdfs 2022-02-11 10:01:48 +01:00
bf4759d744 Added associations to client class diagramm 2022-02-09 20:32:17 +01:00
d4b2851b86 Added associations at server class diagramm 2022-02-09 19:54:27 +01:00
3381fb57ef Fixed dia 2022-02-08 08:53:14 +01:00
5f089650e0 Added class dia for server 2022-02-07 15:02:34 +01:00
68f12b02b5 Added all diagrams 2022-02-07 13:07:46 +01:00
4b563e136c Added classes from app 2022-02-07 12:16:59 +01:00
4e59993e0b Added directory structure for diagramms 2022-02-07 10:35:56 +01:00
a0408983b1 Added png 2022-02-05 18:53:04 +01:00
be96f9efc2 Update diagrams 2022-02-05 18:51:41 +01:00
63bd63d124 Merge branch 'master' of git.bib.de:MAM/VPR-Docs 2022-02-01 10:23:04 +01:00
e174da799f Update activity diagram 2022-02-01 10:22:50 +01:00
62384a33b3 Merge branch 'master' of git.bib.de:MAM/VPR-Docs 2022-01-25 10:43:20 +01:00
390095c276 Updated API-ref 2022-01-25 10:43:01 +01:00
90676be5ec Updated DB-docs 2022-01-25 10:40:15 +01:00
28cb0bd664 Update 'Docs/testcases.md' 2022-01-17 09:19:23 +01:00
f700c79f16 Updated testcaseses 2022-01-11 10:03:42 +01:00
b98bad7a76 Added postman savefile 2022-01-10 13:01:38 +01:00
8bfded7e97 added testcases 2022-01-10 11:22:33 +01:00
8897cada7f Fixed testcase 4 2021-12-21 10:32:45 +01:00
cd245f19c3 Merge branch 'master' of git.bib.de:MAM/VPR-Docs 2021-12-21 10:32:12 +01:00
416e9a9a0a Updated required date format 2021-12-21 10:32:08 +01:00
4efb5154df Updated db-schema 2021-12-20 19:43:00 +01:00
29bc01fb42 Added testcases for creating event 2021-12-20 13:03:35 +01:00
e3bdfee519 Merge branch 'master' of git.bib.de:MAM/VPR-Docs 2021-12-20 12:43:19 +01:00
d55211eda5 Updated prototype login and settings 2021-12-20 12:43:01 +01:00
87514c664c added API Reference 2021-11-30 10:17:09 +01:00
f2847e9454 Merge branch 'master' of git.bib.de:MAM/VPR-Docs 2021-11-29 15:49:10 +01:00
59f3728d6f updated DB docs 2021-11-29 15:49:07 +01:00
0bfd6efd4a updated coding guide 2021-11-29 09:50:43 +01:00
e1124df99d updated coding guide 2021-11-28 19:38:20 +01:00
be3896b992 changed name from 'ui_stylguide' to 'ui guide' 2021-11-22 10:17:30 +01:00
e7aa7ce59b changed image from html to markdown in styleguide 2021-11-17 21:14:56 +01:00
390845a54c removed bakups 2021-11-17 15:10:14 +01:00
2d8bdf410c updated wireframe and created prototype 2021-11-17 15:07:57 +01:00
87e6db6a6b Update 'Docs/coding guide.md' 2021-11-16 12:22:17 +01:00
0787eff1d7 updated coding guide 2021-11-16 12:21:49 +01:00
d829aa101a moved ui styleguide src 2021-11-16 11:17:43 +01:00
e8444dfe44 Merge branch 'master' of git.bib.de:MAM/VPR-Docs 2021-11-16 11:14:20 +01:00
480a047e01 added ui styleguide 2021-11-16 11:14:17 +01:00
ce2d6a2442 Merge branch 'master' of git.bib.de:MAM/VPR-Docs 2021-11-16 11:03:10 +01:00
6fe4eb0bbd added new naming conventions 2021-11-16 11:03:05 +01:00
5c715a6814 Formatting settings General and Arrays 2021-11-16 11:01:40 +01:00
701040606e Merge branch 'master' of git.bib.de:MAM/VPR-Docs 2021-11-16 10:46:42 +01:00
52e0f486ad added code guide 2021-11-16 10:46:07 +01:00
ad3bd3312d updated wireframe 2021-11-15 10:22:07 +01:00
4c28946b5a added wireframes 2021-11-11 15:15:12 +01:00
f9dec340cd added id to iser stories 2021-11-08 10:10:50 +01:00
35 changed files with 509 additions and 43 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*.bak*
*.lck

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,30 +1,38 @@
https://dbdiagram.io/d/ https://dbdiagram.io/d/
Table "event" {
"id" bigint(20) [pk, not null, increment]
"name" varchar(255) [default: NULL]
"start" time [default: NULL]
"end" time [default: NULL]
"is_full_day" bit(1) [not null]
"is_private" bit(1) [not null]
"priority" int(11) [default: NULL]
}
Table "user" { Table "user" {
"id" INT(10) [pk] "id" bigint(20) [pk, not null, increment]
"name" VARCHAR(20) "login" varchar(255) [default: NULL]
"forename" VARCHAR(20) "forename" varchar(255) [default: NULL]
"password" VARCHAR(20) "name" varchar(255) [default: NULL]
"token" VARCHAR(20) "is_admin" bit(1) [not null]
"is_admin" BIT "password" tinyblob [default: NULL]
"salt" tinyblob [default: NULL]
"token" varchar(255) [default: NULL]
} }
Table "event" { Table "user_event" {
"id" INT(10) [pk] "date" date [not null, default: `curdate()`]
"name" VARCHAR(20) "event_id" bigint(20) [not null]
"priority" TINYINT(2) "user_id" bigint(20) [not null]
"is_full_day" BIT
"start" TIME Indexes {
"end" TIME event_id [name: "FKspe8srtv69gubpphvrnd7wekt"]
user_id [name: "FKk3smcqwou8absq8qjt3wk4vy9"]
(date, event_id, user_id) [pk]
}
} }
Table "event_list" { Ref:"event"."id" < "user_event"."event_id"
"id" INT(10) [pk]
"user_id" NT(10)
"event_id" NT(10)
"date" date
}
Ref:"event_list"."user_id" < "user"."id" Ref:"user"."id" < "user_event"."user_id"
Ref:"event_list"."event_id" < "event"."id"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

View File

@@ -0,0 +1,113 @@
# API Reference
The vpr Api ist created around REST. Our Api has several different endpoint, that are URL based and accept standard form-encoded request bodies.
It returns JSON-encoded responses and uses standard HTTP response codes.
---
## The Endpoints at "/vpr/"
GET:
- /all-users
POST:
- /all-events
- /add-user
- /add-event
- /del-event
---
## Status-codes dan HTTP-responses
| STATUS | meaning |
| --- | --- |
| 200 | OK. The Request was successful |
| 400 | Bad request. Check if you send all parameter |
| 404 | endpoint not found. The Url might contain a spelling mistake |
| 405 | Request-Method not allowed. Check if the endpoint requires an GET or POST request |
| 500 | Internal Server error. The request failed due to an exception at the server, the Request-parameter might be in a wrong format, or the database might be unreachable |
---
## /all-users
Request (GET):
curl localhost:8080/vpr/all-users | python3 -m json.tool
Response:
[
[
userId: int,
forename: string,
name: string
]
]
---
## /all-events
Request (POST):
curl localhost:8080/vpr/all-events -X POST -d "userId=<int>"
Response:
[
[
eventId: int,
name: string,
start: string,
priority: int,
isFullDay: boolean,
date: string,
userId: int,
forename: string,
name: string
]
]
---
## /add-user
Request (POST):
curl localhost:8080/vpr/add-user -X POST -d "name=<string>&forename=<string>&password=<string>&isAdmin=<boolean>"
Response:
status 200 if request is ok
And String "Saved"
---
## /add-event
Request (POST):
curl localhost:8080/vpr/add-event -X POST -d "userId=<String>&date=<String>&name=<String>&start=<String>&end=<String>&prority=<int>&isFullDay=<boolean>&isPrivate=<boolean>"
Response:
status 200 if request is ok
And String "Saved"
---
## /del-event
Request (POST):
curl localhost:8080/vpr/del-event -X POST -d "eventId=<int>"
Response:
status 200 if request is ok
And String "Deleted"

View File

@@ -0,0 +1,216 @@
{
"info": {
"_postman_id": "d73d7eb9-ee3c-4fb4-af6f-baeba6db7f78",
"name": "VPR Collection",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "User",
"item": [
{
"name": "add user",
"request": {
"method": "POST",
"header": [],
"url": {
"raw": "http://localhost:8080/user/add?name=Alex&forename=Rechtin&password=pw&isAdmin=true&login=alex",
"protocol": "http",
"host": [
"localhost"
],
"port": "8080",
"path": [
"user",
"add"
],
"query": [
{
"key": "name",
"value": "Alex"
},
{
"key": "forename",
"value": "Rechtin"
},
{
"key": "password",
"value": "pw"
},
{
"key": "isAdmin",
"value": "true"
},
{
"key": "login",
"value": "alex"
}
]
}
},
"response": []
},
{
"name": "login",
"request": {
"method": "POST",
"header": [],
"url": {
"raw": "http://localhost:8080/user/add?name=Alex&forename=Rechtin&password=pw&isAdmin=true&login=alex",
"protocol": "http",
"host": [
"localhost"
],
"port": "8080",
"path": [
"user",
"add"
],
"query": [
{
"key": "name",
"value": "Alex"
},
{
"key": "forename",
"value": "Rechtin"
},
{
"key": "password",
"value": "pw"
},
{
"key": "isAdmin",
"value": "true"
},
{
"key": "login",
"value": "alex"
}
]
}
},
"response": []
},
{
"name": "delete user",
"request": {
"method": "POST",
"header": [],
"url": {
"raw": "http://localhost:8080/user/del?userId=1",
"protocol": "http",
"host": [
"localhost"
],
"port": "8080",
"path": [
"user",
"del"
],
"query": [
{
"key": "userId",
"value": "1"
}
]
}
},
"response": []
},
{
"name": "all user",
"request": {
"method": "GET",
"header": [],
"url": null
},
"response": []
}
]
},
{
"name": "Event",
"item": [
{
"name": "add event",
"request": {
"method": "POST",
"header": [],
"url": {
"raw": "localhost:8080/event/add?userId=1&date=2021-12-24&name=TestEvent&start=&end=&prority=1&isFullDay=true&isPrivate=true",
"host": [
"localhost"
],
"port": "8080",
"path": [
"event",
"add"
],
"query": [
{
"key": "userId",
"value": "1"
},
{
"key": "date",
"value": "2021-12-24"
},
{
"key": "name",
"value": "TestEvent"
},
{
"key": "start",
"value": ""
},
{
"key": "end",
"value": ""
},
{
"key": "prority",
"value": "1"
},
{
"key": "isFullDay",
"value": "true"
},
{
"key": "isPrivate",
"value": "true"
}
]
}
},
"response": []
}
]
},
{
"name": "Other",
"item": [
{
"name": "status test",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8080/vpr/status-test",
"protocol": "http",
"host": [
"localhost"
],
"port": "8080",
"path": [
"vpr",
"status-test"
]
}
},
"response": []
}
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

46
Docs/coding guide.md Normal file
View File

@@ -0,0 +1,46 @@
# 1 Formatting
## 1.1 General
Maximal 80-100 letters in one line
We use the default build in Formatter from 'IntelliJ IDEA' (Ctr+Alt+L)
## 1.2 Brackets
Brackets will be used like this:
public void example() {
}
## 1.3 Arrays
String[] array = new String[]{"1", "2", "3", "4"}
or
String[] array = new String[]{
"1",
"2",
"3",
"4"
}
# 2 Naming
## 2.1 General
Names should only include ASCII letters and digits. They should never begin with a digit.
All names should _ALWAYS_ be in english.
## 2.2 Class names
Class names are written in UpperCamelCase.
## 2.3 Method names
Method names are written in lowerCamelCase.
They are often verbs describing the function of the method e.g. _startProcess_ or _log_.
## 2.4 Constant names
Constant names are written in UPPER_CASE.
## 2.5 Variable names
Variable names are written in lowerCamelCase.
The names should _ALWAYS_ be words that are descriptive.
## 2.6 File names
File names are written in lowerCameCase.

View File

@@ -0,0 +1,32 @@
# Eingabe eines Termins
Beim Anlegen eines Termins wird die Eingabe geprüft.
Folgende Regeln müssen zutreffen:
- Der Name muss mindestens 3 Zeichen haben.
- Er darf nur folgende Zeichen enthalten: __[A-Za-zÄÖÜäöü0-9 =!?+*/$%€.:,;_<>()-]__
- Das Datum muss valide sein
- Das Datum muss das Format MM/TT/JJJJ haben
- Das Datum darf nicht in der Vergangenheit liegen
<br/><br/>
## Äquivalenzklassen:
ID | Beschreibung | Eingabe | Erwartetes Ergebniss
---|---|---|---
0 | Name < 3 | le | Fehler
1 | Name > 3, verbotenes Zeichen |Einkaufen\ | Fehler
2 | Datum falsches Format | 20/12/2021 | Fehler
3 | Datum in Vergangenheit | 12/20/2021 | Fehler
4 | Datum nicht valide | 02/31/2021 | Fehler
5 | Name > 3, kein verbotenes Zeichen, Datum richtiges Format, Datum nicht in der Vergangenheit, Datum Valide | Einkaufen!, 12/23/2021 | Erfolg
<br/><br/>
## Grenzfälle:
ID | Beschreibung | Eingabe | Erwartetes Ergebniss
---|---|---|---
0 | Name == 3 | SEN | Erfolg
1 | Datum == Heute | 12/20/2021 | Erfolg

BIN
Docs/src/colorTemplate.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
Docs/src/colorTemplate2.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
Docs/src/palette.pdf Normal file

Binary file not shown.

26
Docs/testcases.md Normal file
View File

@@ -0,0 +1,26 @@
# Testfälle
</br>
## 1. Termin anlegen
</br>
__Zweck:__
&nbsp;&nbsp;&nbsp;&nbsp; Testet Fehlerhafte Eingaben
__Vorbereitung:__
&nbsp;&nbsp;&nbsp;&nbsp; Login mit Username: "testUser" und Passwort "pw"
__Aufräumarbeiten:__
&nbsp;&nbsp;&nbsp;&nbsp; Keine
__Hinweis:__
&nbsp;&nbsp;&nbsp;&nbsp; Um einen Termin zu erstellen muss man den ersten Button der linken Navigationsleiste klicken
</br>
</br>
## 1.1 Testsequenz: Fehlerhafte Eingabe
ID | Eingabe | Erwartetes Ergebniss | Befund
--- | --- | --- | ---
1.1.1 | Keine Eingabe | Fehlermeldung: "Der Name muss eine Länge von 3 haben" | _befund eintragen_
1.1.2 | Name: "Test\Termin" | Fehlermeldung: "Der Name Darf nur aus Zahlen, Buchstaben </br> und folgenden Sonderzeichen bestehen: =!?+*/$%€.:,;_ <>()-“" | _befund eintragen_
1.1.3 | Name: "TestTermin" | Fehlermeldung: "Bitte eine Priorität wählen." | _befund eintragen_
1.1.4 | Name: "Test Termin" </br> Priorität: "gering" | Fehlermeldung: "Das Datum muss in der Zukunft liegen." | _befund eintragen_
1.1.5 | Name: "Test Termin" </br> Priorität: "gering" </br> Datum"02-10-1996" | Fehlermeldung: "Das Datum muss in der Zukunft liegen." |_befund eintragen_

23
Docs/ui guide.md Normal file
View File

@@ -0,0 +1,23 @@
# 01 Typographie
## Font: Segoe UI
### Header 1
Font size: 35
Font Weight: Bold
### Header 2
Font size: 30
Font Weight: Regular
### Text
Font size: 25
Font Weight: Regular
# 02 Colors
![colorTemplate](src/colorTemplate.PNG)
![colorTemplate](src/colorTemplate2.PNG)

View File

@@ -1,77 +1,77 @@
# User # User
#0 Termine anzeigen #0100 Termine anzeigen
Als User möchte ich meine Termine angezeigt bekommen. Als User möchte ich meine Termine angezeigt bekommen.
#0 Öffentliche Termine anzeigen #0200 Öffentliche Termine anzeigen
Als User möchte ich Termine der Anderen sehen können. Als User möchte ich Termine der Anderen sehen können.
#0 Kalender #0300 Kalender
Als User möchte ich einen haben durch den ich blättern kann. Als User möchte ich einen haben durch den ich blättern kann.
#0 Wochen / Monatsanischt #0400 Wochen / Monatsanischt
Als User möchte ich zwishcen wochen und Monatskalender wechseln können. Als User möchte ich zwishcen wochen und Monatskalender wechseln können.
<br/> <br/>
#0 Termine anlegen #0500 Termine anlegen
Als User möchte ich neue Termine anlegen können. Als User möchte ich neue Termine anlegen können.
#0 Uhrzeiten für Termine #0600 Uhrzeiten für Termine
Als User möchte ich meinen Terminen optional eine Start-/Enduhrzeit geben. Als User möchte ich meinen Terminen optional eine Start-/Enduhrzeit geben.
#0 Multi-Tage Termine #0700 Multi-Tage Termine
Als User möchte ich Termine auch über mehrere Tage anlegen können. Als User möchte ich Termine auch über mehrere Tage anlegen können.
#0 Wiederholende Termine #0800 Wiederholende Termine
Als User möchte ich wiederhohlende Termine anlegen können. Als User möchte ich wiederhohlende Termine anlegen können.
#0 Private Termine #0900 Private Termine
Als User möchte ich meinen Terminen privat oder öffentlich anlegen. Als User möchte ich meinen Terminen privat oder öffentlich anlegen.
#0 Typ Festlegen #1000 Typ Festlegen
Als User möchte ich meinem Termin einen Typ geben, um die Prorität berechnen zu lassen und den Termin besonders kennzeichnen. Als User möchte ich meinem Termin einen Typ geben, um die Prorität berechnen zu lassen und den Termin besonders kennzeichnen.
#0 Priorität angeben #1100 Priorität angeben
Als User möchte ich die Priorität des Termins angeben, damit gegenfalls andere Termine mit niedriger prorität verschoben werden. Als User möchte ich die Priorität des Termins angeben, damit gegenfalls andere Termine mit niedriger prorität verschoben werden.
<br/> <br/>
#0 Termine bearbeiten #1200 Termine bearbeiten
Als User möchte ich Termine bearbeiten können. Als User möchte ich Termine bearbeiten können.
#0 Termine löschen #1300 Termine löschen
Als User möchte ich Termine wieder Löschen können. Als User möchte ich Termine wieder Löschen können.
#0 Termine priorisieren #1400 Termine priorisieren
Als User möchte ich meine Termine priorisieren können. Als User möchte ich meine Termine priorisieren können.
<br/> <br/>
#0 Angemeldet bleiben #1500 Angemeldet bleiben
Als User möchte ich angemeldet bleiben können, um beim Login nicht jedes mal meine Daten ein zu geben. Als User möchte ich angemeldet bleiben können, um beim Login nicht jedes mal meine Daten ein zu geben.
#0 Offline Speicher #1600 Offline Speicher
Als User möchte ich meine Termine auch ohne Verbindung zur DB sehen, um die Anwendung auch offline zu nutzen. Als User möchte ich meine Termine auch ohne Verbindung zur DB sehen, um die Anwendung auch offline zu nutzen.
# Admin # Admin
#0 User anlegen #1700 User anlegen
Als Admin möchte ich neue User anlegen können. Als Admin möchte ich neue User anlegen können.
#0 User bearbeiten #1800 User bearbeiten
Als Admin möchte ich User bearbeiten können. Als Admin möchte ich User bearbeiten können.
#0 User löschen #1900 User löschen
Als Admin möchte ich User löschen können. Als Admin möchte ich User löschen können.
<br/> <br/>
#0 Admin Termine bearbeiten #2000 Admin Termine bearbeiten
Als Admin möchte ich alle öffentlichen Termine bearbeiten können. Als Admin möchte ich alle öffentlichen Termine bearbeiten können.
#0 Admin Termine löschen #2100 Admin Termine löschen
Als Admin möchte ich alle öffentlichen Termine löschen können. Als Admin möchte ich alle öffentlichen Termine löschen können.
#0 Admin Termine anlegen #2200 Admin Termine anlegen
Als Admin möchte ich öffentlichen Termine für jeden User anlegen können. Als Admin möchte ich öffentlichen Termine für jeden User anlegen können.