---
# System prepended metadata

title: Operation Zulu

---

# Operation Zulu

:::success
Projektverantwortlicher: Oliver Gorczyca
Abgabe: 08.06.2021
:::

[TOC]

# Phase 1 – Analyse

:::info
Phasenverantwortlicher: Jonas Becker
Abgabe Expose: 23.03.21
Abgabe Lastenheft: 06.04.21
:::

## Expose
### Lösungsidee zur Umsetzung der geforderten Eigenschaften
Zur Umsetzung der geforderten Eigenschaften wird ein Discord-Chatbot konzipiert und implementiert, welcher über textuelle Eingaben steuerbar ist. Der Chatbot handelt automatisch und mit festgelegten Parametern die Ware (Buchstaben), dies umfasst das Kaufen, Halten und Verkaufen der Ware. Der Bot verwaltet ein Konto zur Erfassung der Währung (Punkte) und ein Inventar zur  Verwaltung der Ware (Buchstaben). Sowohl die SEG, als auch andere Bots dienen hierbei als Handelspartner. Der Bot erfasst die Transaktionen in einem Log erfasst und gibt wichtige Ereignisse im Channel aus. Aus dem Log generiert der Bot eine Statistik (Umsatz, Gewinn, Verlust,...). Der Bot gibt auf Anfrage alle offenen buy/sell orders als Direktnachricht aus.

### Identifikation von Teilproblemen
Buchstaben Kaufen
: Der Bot wertet die Auktion im Chat aus und bietet nach bestimmten Kriterien mittels eines Befehls mit.

Buchstaben Verkaufen
: Verkauft wird über einen Befehl, dazu gleicht der Bot den Bestand mit der Anfrage ab.

Buchstaben Halten
: Gehalten werden die Buchstaben in einer geeigeneten Speicherstruktur.

Ware zusammenstellen und liefern (String)
: Der Bot gleicht die Verkaufsanfrage mit Inventar ab und stellt fest folgende Fälle fest:
-1 Er besitzt die Ware und kann liefern 
-2 Er besitzt die Ware teilweise (1,2 Buchstaben fehlen) 
-3 Er kann die Ware nicht liefern
Nach bestimmten Kriterien entscheidet der Bot ob er verkauft, erst die fehlenden Buchstaben ersteigert und dann verkauft oder die Anfrage ablehnt. Inventar und Wallet werden entsprechend aktualisiert

Punkte halten
: Der Bot besitzt eine Wallet zur Erfassung seiner Kaufkraft in der Währung Punkte. Er kann Ein- und Abgänge erfassen und für die Dauer einer Session speichern.

Punkte überweisen
: Die Überweisung von Punkten funktioniert als bidirektionale Transaktion. Die Punkte werden der Richtung entsprechend dem Konto hinzugefügt oder abgezogen.

Käufer- und Verkäuferdaten verwalten
: Der Bot kann Informationen über Verkauf oder Einkauf anzeigen. Mit einem Befehl kann Datum und Uhrzeit sowie ID der gesamten Verkäufen ausgegeben sowie verwaltet werden. Die Daten werden in einem standartisierten Datenformat festgehalten.

Profit, Absatz und Umsatz verwalten
: Der Bot loggt getätigte Interaktionen. Aus diesem Log wird ein Objekt generiert, in dem Umsätze, Absätze und Profite filterbar gespeichert werden.

Handel und Interaktionen ausgeben
: Der Bot kann wichtige Ereignisse aus dem Log auch im Discord Channel ausgeben. Die Ausgabe wird durch das textuelle Interface getriggert.

User Interface
: Der Bot kann Nachrichten in Discord-Chat-Channels versenden und jenen Nachrichtenverlauf lesen.
Der Bot reagiert auf und interpretiert bestimmte gelesene Nachrichten.
Der Bot kann zur Lesebestätigung per Emoji auf Nachrichten reagieren. 

### Aufwandsschätzung
Das Projekt benötigt alle Mann-Tage

## Lastenheft

| LF10   | |
| ------ | ----------- |
| Prozess   | Punkte halten |
| Akteur | Zulu Bot |
| Beschreibung    |Der Bot verwendet ein Speicherstruktur mit der Bezeichnung Wallet, um damit seinen eigenen Punktestand zu erfassen  |

| LF20   | |
| ------ | ----------- |
| Prozess   | Punkte überweisen |
| Akteur | Zulu Bot |
| Beschreibung    |Der Bot kann Punkte an andere Bots überweisen   |

| LF30   | |
| ------ | ----------- |
| Prozess   | Punkte empfangen |
| Akteur | Zulu Bot |
| Beschreibung    |Der Bot verwendet sein Wallet, um Punkte an dere Bots oder die SEG zu überweisen und passt den eigenen Kontostand  an.  |

| LF40   | |
| ------ | ----------- |
| Prozess   | Käufer- und Verkäuferdaten verwalten |
| Akteur | Zulu Bot |
| Beschreibung    |Der User gibt einen entsprechenden Befehl ein und kann auf die gesamte Einkaufs-und Verkaufsgeschichte zugreifen.   |




# Phase 2 – Systemmodellierung

:::info
Phasenverantwortlicher: tbd
Abgabe Grobentwurf: 30.04.21
Abgabe Feinentwurf: 11.05.21
:::

## Grobentwurf

## Feinentwurf

# Phase 3 – Entwicklung

:::info
Phasenverantwortlicher: tbd 
Abgabe: 01.06.21
:::

# Phase 4 – Testen

:::info
Phasenverantwortlicher: tbd 
Abgabe: 01.06.21
:::

# Phase 5 – Abgabe & Präsentation

:::info
Phasenverantwortlicher: tbd
Abgabe: 08.06.21
:::