Compare commits
50 Commits
b117281ede
...
master
Author | SHA1 | Date | |
---|---|---|---|
e10a184fd3 | |||
bf4759d744 | |||
d4b2851b86 | |||
3381fb57ef | |||
5f089650e0 | |||
68f12b02b5 | |||
4b563e136c | |||
4e59993e0b | |||
a0408983b1 | |||
be96f9efc2 | |||
63bd63d124 | |||
e174da799f | |||
62384a33b3 | |||
390095c276 | |||
90676be5ec | |||
28cb0bd664 | |||
f700c79f16 | |||
b98bad7a76 | |||
8bfded7e97 | |||
8897cada7f | |||
cd245f19c3 | |||
416e9a9a0a | |||
4efb5154df | |||
29bc01fb42 | |||
e3bdfee519 | |||
d55211eda5 | |||
87514c664c | |||
f2847e9454 | |||
59f3728d6f | |||
0bfd6efd4a | |||
e1124df99d | |||
be3896b992 | |||
e7aa7ce59b | |||
390845a54c | |||
2d8bdf410c | |||
87e6db6a6b | |||
0787eff1d7 | |||
d829aa101a | |||
e8444dfe44 | |||
480a047e01 | |||
ce2d6a2442 | |||
6fe4eb0bbd | |||
5c715a6814 | |||
701040606e | |||
52e0f486ad | |||
ad3bd3312d | |||
4c28946b5a | |||
f9dec340cd | |||
664786caf8 | |||
1db6f0c6ee |
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*.bak*
|
||||||
|
*.lck
|
BIN
Docs/Adobe XD/Ansicht/Monatsansicht.pdf
Normal file
BIN
Docs/Adobe XD/Ansicht/Wochenansicht.pdf
Normal file
BIN
Docs/Adobe XD/Prototyp/SharePlaner.xd
Normal file
@@ -1,26 +1,38 @@
|
|||||||
Table "User" {
|
https://dbdiagram.io/d/
|
||||||
"UID" NUMBER(3) [pk]
|
|
||||||
"name" VARCHAR(20)
|
Table "event" {
|
||||||
"forename" VARCHAR(20)
|
"id" bigint(20) [pk, not null, increment]
|
||||||
"password" VARCHAR(20)
|
"name" varchar(255) [default: NULL]
|
||||||
"token" VARCHAR(20)
|
"start" time [default: NULL]
|
||||||
"isAdmin" boolean
|
"end" time [default: NULL]
|
||||||
|
"is_full_day" bit(1) [not null]
|
||||||
|
"is_private" bit(1) [not null]
|
||||||
|
"priority" int(11) [default: NULL]
|
||||||
}
|
}
|
||||||
|
|
||||||
Table "Event" {
|
Table "user" {
|
||||||
"EID" NUMBER(3) [pk]
|
"id" bigint(20) [pk, not null, increment]
|
||||||
"name" VARCHAR(20)
|
"login" varchar(255) [default: NULL]
|
||||||
"priority" NUMBER(1)
|
"forename" varchar(255) [default: NULL]
|
||||||
"isFullDay" boolean
|
"name" varchar(255) [default: NULL]
|
||||||
"start" datetime
|
"is_admin" bit(1) [not null]
|
||||||
"end" datetime
|
"password" tinyblob [default: NULL]
|
||||||
|
"salt" tinyblob [default: NULL]
|
||||||
|
"token" varchar(255) [default: NULL]
|
||||||
}
|
}
|
||||||
|
|
||||||
Table "EventList" {
|
Table "user_event" {
|
||||||
"UID" NUMBER(3)
|
"date" date [not null, default: `curdate()`]
|
||||||
"EID" NUMBER(3)
|
"event_id" bigint(20) [not null]
|
||||||
"date" date
|
"user_id" bigint(20) [not null]
|
||||||
|
|
||||||
|
Indexes {
|
||||||
|
event_id [name: "FKspe8srtv69gubpphvrnd7wekt"]
|
||||||
|
user_id [name: "FKk3smcqwou8absq8qjt3wk4vy9"]
|
||||||
|
(date, event_id, user_id) [pk]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref:"EventList"."UID" < "User"."UID"
|
Ref:"event"."id" < "user_event"."event_id"
|
||||||
Ref:"EventList"."EID" < "Event"."EID"
|
|
||||||
|
Ref:"user"."id" < "user_event"."user_id"
|
||||||
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 42 KiB |
BIN
Docs/Documentations/Benutzerhandbuch Share Planner Client.pdf
Normal file
BIN
Docs/Documentations/Pflichtenheft Share Planner.pdf
Normal file
113
Docs/REST-API/API Reference.md
Normal 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"
|
216
Docs/REST-API/VPR Collection.postman_collection.json
Normal 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": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
Docs/VisualParadigm/Activity/01_SharePlaner.PNG
Normal file
After Width: | Height: | Size: 90 KiB |
BIN
Docs/VisualParadigm/Activity/02_TerminAnlegen.PNG
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
Docs/VisualParadigm/Activity/03_Optionen.PNG
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
Docs/VisualParadigm/Activity/04_BenutzerAnlegen.PNG
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
Docs/VisualParadigm/SharePlannerServer.vpp
Normal file
BIN
Docs/VisualParadigm/UseCase/SharePlannerUseCase.PNG
Normal file
After Width: | Height: | Size: 41 KiB |
46
Docs/coding guide.md
Normal 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.
|
32
Docs/create event testcases.md
Normal 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
After Width: | Height: | Size: 28 KiB |
BIN
Docs/src/colorTemplate2.PNG
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
Docs/src/palette.pdf
Normal file
26
Docs/testcases.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# Testfälle
|
||||||
|
</br>
|
||||||
|
|
||||||
|
## 1. Termin anlegen
|
||||||
|
</br>
|
||||||
|
|
||||||
|
__Zweck:__
|
||||||
|
Testet Fehlerhafte Eingaben
|
||||||
|
__Vorbereitung:__
|
||||||
|
Login mit Username: "testUser" und Passwort "pw"
|
||||||
|
__Aufräumarbeiten:__
|
||||||
|
Keine
|
||||||
|
__Hinweis:__
|
||||||
|
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
@@ -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
|
||||||
|
|
||||||
|

|
||||||
|

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