-
Notifications
You must be signed in to change notification settings - Fork 0
Proof of Concept
Im folgenden werden unsere erstellten User Journeys anhand von einem „proof of concept“ mit Fokus auf den Programmablauf dargestellt. Ziel ist es, konkret darzustellen, welche Elemente des Systems bei einem bestimmten Vorhaben eines Nutzers zum Einsatz kommen, und mit welchen Mitteln sie miteinander interagieren.
User Journey 1 : Nutzer stellt Anfrage an Beatdrinks und übergibt eine Stimmung
Ziel ist es, dass dem Nutzer anhand einer ausgewählten Stimmung ein Song / eine Playlist sowie ein Rezept für einen zur Stimmung passenden Cocktail geliefert wird.
Dieser Ablauf beginnt mit der Übergabe der gewählten Stimmung des Users an das System. Die Stimmung kann aus einer festgelegten Liste ausgewählt werden. Da die Spotify-API mit eigenen Werten für bestimmte Eigenschaften eines Songs arbeitet (z.B. danceability, acousticeness, ...), wird die Stimmung in vorher festgelegte Größen dieser Werte "übersetzt". Dies geschieht über die Klasse "Translator". Anschließend wird mit diesen Werten eine Anfrage an die Spotify API gestellt, welche daraufhin - sofern kein Fehler passiert - auch die erwarteten Daten zurückgibt. Die Cocktail-Rezepte werden in der "Cocktails.JSON" als Objekte abgespeichert. Die Cocktails besitzen Stimmungen, welche auf sie passen. Anhand dieser wird ausgewählt, welche Cocktails dem Nutzer bei seiner Anfrage zurückgegeben werden. Sobald das System die Daten von Spotify und der Cocktails.JSON erhalten hat, werden diese mithilfe der Klasse "Combinator" zu einem einzelnen Objekt der Klasse "Combination" zusammengefasst und schließlich ausgegeben.
Exit-Kriterien: Das System erhält erfolgreich eine gültige Stimmung, und anschließend die Daten von Spotify und der Cocktails.JSON.
Fail-Kriterien: Ein oder mehrere Eingaben oder zurückgegebene Daten des Nutzers, der Spotify-API oder der Cocktails.JSON sind fehlerhaft oder nicht vorhanden. Der Ablauf kann nicht erfolgreich beendet werden.
Fallbacks: Bei einem Fehler im Ablauf gibt es außer einer erneuten Anfrage bei fehlerhaften Daten keine anderen Ansätze, da dieser Ablauf die fundamentale Funktion des Systems darstellt. Wenn er nicht funktioniert, macht der Rest des Systems auch keinen Sinn.
User Journey 2 : Erneuter Kombinationsversuch
Ziel ist es, dem Nutzer eine Alternative zu bieten, falls ihm die Musik oder die Cocktails, welche er vom System erhält, nicht gefallen.
Bei diesem Ablauf gibt der User zu Ende des User Journeys 1 an, dass ihm entweder das Cocktail-Rezept oder die Musik nicht gefällt. Das System erfragt eine neue Stimmungseingabe des Nutzers. Mit dieser neuen Stimmung wird User Journey 1 erneut ausgeführt.
Exit-Kriterien: Es gab keine fehlerhaften oder fehlenden Daten oder Eingaben, und dem Nutzer gefällt diesmal alles, was ihm geliefert wird.
Fail-Kriterien: Ein oder mehrere Eingaben oder zurückgegebene Daten des Nutzers, der Spotify-API oder der Cocktails.JSON sind fehlerhaft oder nicht vorhanden, oder der Nutzer gibt erneut an, dass ihm die Rückgabe nicht gefällt.
Fallbacks: Falls dem Nutzer die Rückgabe erneut nicht gefällt, kann er dies erneut angeben. Dann wird User Journey 2 so lange ausgeführt, bis der Nutzer ein Ergebnis erhält, mit dem er zufrieden ist. (Oder im schlimmsten Fall aufgibt)
User Journey 3 : Nutzer möchte keinen Cocktail mit einer bestimmten Zutat
Ziel ist es, die Präferenzen des Nutzers zu verarbeiten und für die Zukunft zu speichern, um zu vermeiden, dass ihm überhaupt Cocktails vorgeschlagen werden, welche er definitiv nicht mag.
Für den Start dieses Ablaufs muss der Nutzer zum Abschluss der User Journey 1 angeben, dass ihm der Cocktail aufgrund einer bestimmten Zutat nicht gefällt. Anschließend muss er angeben, welche Zutat ihm missfällt. Das System hinterlegt diese Präferenz und liefert ab sofort keine Cocktails mehr, welche diese Zutat enthalten. Anschließend wird erneut User Journey 1 durchgeführt, diesmal mit der gespeicherten Präferenz.
Exit-Kriterien: Es gab keine fehlerhaften oder fehlenden Daten oder Eingaben, der Nutzer akzeptiert zu Abschluss die zurückgegebenen Daten.
Fail-Kriterien: Ein oder mehrere Eingaben oder zurückgegebene Daten des Nutzers, der Spotify-API oder der Cocktails.JSON sind fehlerhaft oder nicht vorhanden, oder dem Nutzer gefällt der zurückgegebene Cocktail immer noch nicht (aufgrund einer Zutat oder generell).
Fallbacks: Falls dem Nutzer bei dem neu gelieferten Cocktail immer noch eine Zutat nicht gefällt, wird User Journey 3 erneut ausgeführt. Sollte ihm etwas anderes nicht gefallen, wird User Journey 2 erneut durchgeführt.
User Journey 4 : Spezielle Wünsche verarbeiten
Ziel ist es, dem Nutzer vollständige Kontrolle über seine Eingaben zu ermöglichen. Zum Nachteil der Simplizität kann der Nutzer anhand von spezifischen Eingaben ganz speziell auf ihn zugeschnittene Rückgaben erzielen.
Zu Beginn dieses Ablaufs gibt der Nutzer an, dass er eine Anfrage mit spezifischen Wünschen an das System stellen möchte. Das System bietet ihm daraufhin die Möglichkeit, beispielsweise spezielle Zutaten eines Cocktails, eine bestimmte Musikrichtung etc. anzugeben. Außerdem erhält der Nutzer die Möglichkeit, Elemente mit besonderen Eigenschaften aus der Rückgabe herauszufiltern (z.B.: Cocktails mit Ananas, aber kein Pina Colada, Musik vom Genre HipHop, aber keine Titel von Drake, ...) Das System verarbeitet diese Daten und stellt Anfragen an Spotify und die Cocktails.JSON mit den gewählten Kriterien. Abschließend wird dem Nutzer ein Objekt der Klasse "Combination" zurückgegeben, was seinen Kriterien entspricht.
Exit-Kriterien: Alle eingegeben Daten sind vollständig, nicht fehlerhaft, und können angewendet werden. Der Nutzer akzeptiert das ihm gelieferte Ergebnis.
Fail-Kriterien: Ein oder mehrere Eingaben oder zurückgegebene Daten des Nutzers, der Spotify-API oder der Cocktails.JSON sind fehlerhaft oder nicht vorhanden, oder ein Kriterium kann nicht angewendet werden (z.B. wenn der Nutzer nur Cocktails mit einer bestimmten Zutat erhalten möchte, diese Zutat aber bei keinem Cocktail vorhanden ist.)
Fallbacks: Der Nutzer kann es erneut mit anderen Eingaben versuchen, so lange, bis der Ablauf fehlerfrei funktioniert und er mit dem Ergebnis zufrieden ist.
