04.Use Cases - Gandiko/WBA2SS15VollGanderManke GitHub Wiki

USE-CASE

##Use case: Kamera anhand der ID und dem Hersteller suchen

USE-CASE: Szenario 1

actors: Kai Uwe

precondition:

Kai Uwe muss mit seinem Userkonto auf dem Server angemeldet sein.

main flow:

1. Kai Uwe sucht anhand der ID nach einer Kamera für sein Filmprojekt.

2. Es wird app.get('/equipment/kamera/:id') vom Server gesendet und somit die Datenbank durchsucht.

3. Es wird die Datenbank durchsucht um alle Treffer mit app.get('/equipment/kamera/:id')auszugeben.

4. Schnell stellt er fest, dass er für die Kamera auch ein passendes Objektiv braucht und muss nun versuchen ein solches zu finden. Dies versucht er anhand des Herstellers.

5. Nach der Eingabe eines bestimmten Herstellers , wird mit app.get('/equipment/objektive') alle gelisteten Objektive in einem Array namens 'Ergebnisse' gespeichert.

6. Es wird das Array mit res.json(ergebnisse.filter(function(e,i,ergebnisse) durchsucht, um alle Treffer mit return e.hersteller == req.query.hersteller auszugeben.

alternate flow a1

2a. Schlägt app.get('/equipment/kamera/:id') fehl, wird der Statuscode '404 Die Kamera wurde nicht gefunden' an Kai Uwe gesendet.

3a. Schlägt app.get('/kamera/objektiv/:id') fehl wird der Statuscode '404 Die Kameras wurden nicht gefunden' an Kai Uwe gesendet.

5a. Schlägt app.get('/equipment/objektive') fehl, wurde das Objektiv nicht gefunden und es muss erneut eingegeben werden.

6a. Schlägt res.json(ergebnisse.filter(function(e,i,ergebnisse) bzw. return e.hersteller == req.query.hersteller fehl wird der Statuscode '404 Das Objektiv wurde nicht gefunden' an Graf Karl von Wittensbüttel gesendet.

postcondition:

Erfolg! Kai Uwe hat erfolgreich nach einer Kamera und einem Objektiv gesucht.

postcondition:

Misserfolg! Kai Uwe konnte die Suche nicht durchführen.

end Kamera anhand der Id und ein Objektiv mit dem Herstellernamen gesucht

##Use case: Kamera erstellen und auch Löschen

USE-CASE Szenario 3

actors Linda

precondition:

Linda muss mit ihrem Userkonto auf dem Server angemeldet sein.

main flow a1

1. Linda entdeckt die Website und entscheidet sie auszuprobieren. Sie erstellt also ein Profil und loggt sich ein. Nach kurzem Zurechtfinden, findet sie die Option Equipment anbieten.

2. Sie sendet ihr erstelltes Equipment mit einem post('equipment/kamera') an den Server.

3. Pflichteingaben sind:

    Hersteller, Modell, Baujahr, Typ, Objektive, Preis. 

4. Vor einigen Monaten hatte Linda eine Sony HDR-PJ330 PJ-Serie HD Flash Camcorder als Angebot in die Datenabank geladen. Da sie diese aber nun für eigene Zwecke verwenden möchte, löscht sie diese aus ihren Angeboten heraus.

5. Es wird delete('/equipment/kamera/:id') vom Server gesendet und somit die Kamera mit der passenden ID gelöscht.

alternate flow a1

2a. Schlägtpost('equipment/kamera') fehl wird der Statuscode '500 internal Server Error' an Linda gesendet.

3a. Füllt sie ein Pflichtfeld nicht aus, erscheint eine Meldung, dass dieses noch ausgefüllt werden muss(jQuery).

5a. Schlägt delete('/equipment/kamera/:id') fehl wird diese nicht herausgenommen und ein Fehler tritt auf.

postcondition:

Erfolg! Linda hat erfolgreich eine Kamera mittels eines POST an die Datenbank angehängt. Erfolg! Linda hat erfolgreich eine Kamera gelöscht.

postcondition:

Misserfolg! Linda konnte ihre Kamera nicht an die Datenbank anhängen. Misserfolg! Linda konnte ihre Kamera nicht löschen.

end: Kamera erstellt und gelöscht.

##Use case: Equipment Rezession (Nutzer)

**USE-CASE Szenario 2

actors Madeline

precondition:

Madeline muss mit ihrem Userkonto auf dem Server angemeldet sein und mindestens ein Equipment ausgeliehen haben.

main flow

1. Madeline hatte sich Equipment von Klaus ausgeliehen und diese für ihren Trip nach Spanien verwendet. Der ganze Ablauf und das Equipment hat ihr so gut gefallen, dass sie Klaus eine gute Bewertung hinterlässt und zusätzlich sich auch noch in Textform bedanken möchte. Sie schreibt also eine nette Rezession und vergibt 5 von 5 Sternen.

2. Es wird post('/users/rezession') vom Server gesendet und somit die Möglichkeit gegeben eine Rezession zu verfassen.

3. Es wird Post('/users/rezession/Sterne') vom Server gesendet und somit die Möglichkeit gegeben ein Wert zwischen 1 und 5 auszuwählen. jQuery ermöglicht dann die Form.

alternate flow a1

2a. Schlägt post('/users/rezession') fehl, wird die Rezession nicht gesendet.

3a. Schlägt post('/users/rezession/Sterne') fehl, wird kein Stern vergeben.

postcondition:

Erfolg! Madeline hat erfolgreich eine Rezession verfasst und 5 Sterne vergeben, über die sich Klaus nun freuen kann.

postcondition:

Misserfolg! Madeline konnte keine Rezession abgeben und muss es erneut probieren

Misserfolg! Madeline konnte keine Sterne Verteilen und muss es erneut probieren

end: Equipment Rezession

##Use case: Equipment Rezession (Anbieter)

USE-CASE Szenario 4

actors Peter

precondition:

Peter muss mit seinem Userkonto auf dem Server angemeldet sein und mindestens ein Equipment verliehen haben.

main flow:

1. Peter hatte vor einiger Zeit seine Kamera an Karl ausgeliehen. Ausgemacht waren zwei Wochen und es gab eine Liste an Mängeln die diese Kamera bereits hatte. Als der Tag der Rückgabe kam, erhielt er keine Rückmeldung von Karl. Auch nach einer E-mail kam nichts. Erst nach drei Tagen und vielen vergeblichen Kontakt versuchen erhielt er die Kamera zurück. Diese wurde jedoch sehr schlecht behandelt und wies viele Schäden auf. Das wollte Peter nicht auf sich sitzen lassen und wollte andere Verleiher auch warnen. Aus diesen Gründen beschließt er eine Rezession zu hinterlassen.

2. Es wird post('/users/rezession') vom Server gesendet und somit die Möglichkeit gegeben eine Rezession zu verfassen.

3. Es wird post('/users/rezession/Sterne')vom Server gesendet und somit die Möglichkeit gegeben ein Wert zwischen 1 und 5 auszuwählen. jQuery ermöglicht dann die Form.

alternate flow a1

2a. Schlägt post('/users/rezession') fehl wird die Rezession nicht gesendet.

3a. Schlägt post('/users/rezession/Sterne') fehl, wird kein Stern vergeben.

postcondition:

Erfolg! Peter hat erfolgreich eine Rezession verfasst und 1 Stern vergeben, um andere User vor Karl zu warnen.

postcondition:

Misserfolg! Peter konnte keine Rezession abgeben und muss es erneut probieren.

Misserfolg! Peter konnte keine Sterne Verteilen und muss es erneut probieren.

end: Equipment Rezession

Home

⚠️ **GitHub.com Fallback** ⚠️