|
|
# Plattform Dokumentation
|
|
|
|
|
|
Das Botolution Projekt bietet eine Plattform an, die es Entwicklern ermöglicht, durch eigens Programmierte Bots in verschiedenen Wettkämpfen teilzunehmen. Im ersten Teil wird beschrieben, wie Entwickler mit der Plattform kommunizieren können, während im zweiten Teil beschrieben wird wie die Plattform strukturiert ist und wie die interne Kommunikation abläuft.
|
|
|
|
|
|
## Kommunikation / API Dokumentation
|
|
|
|
|
|
### BotSDK
|
|
|
|
|
|
Das BotSDK steht momentan für [Java](https://git.fh-muenster.de/swa1/coding-challenge/bots/botsdk-java) und [C#](https://git.fh-muenster.de/swa1/coding-challenge/bots/botsdk) zur Verfügung und zukünftig könnte es auch eine JavaScript version geben. Das BotSDK wird zur Abstrahierung der Kommunikation zwischen Bots und Plattform verwendet, um das erstellen eines Bots zu vereinfachen.
|
|
|
|
|
|
### Frontend API
|
|
|
|
|
|
- Frontend - Backend API
|
|
|
|
|
|
## System Dokumentation
|
|
|
|
|
|
Die Plattform besteht aus einer reihe von Microservices, die jeweils für eine bestimmte Teilaufgabe der Plattform. Die Plattform an sich wird in dem [first-prototype Monorepo](https://git.fh-muenster.de/swa1/coding-challenge/platform/first-prototype) gehosted. Dort findet man für jeden Microservice einen eigenen Ordner. Im folgenden wird jeder Microservice und deren Aufgaben beschrieben.
|
|
|
|
|
|
### Architektur
|
|
|
|
|
|
- [Architektur](Architektur)
|
|
|
|
|
|
### [BotManager](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/BotManager)
|
|
|
|
|
|
Kennt alle Bots, und weiß welche Spiele Sie spielen können.
|
|
|
|
|
|
### [FrontEnd](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/FrontEnd)
|
|
|
|
|
|
Das Frontend ist die UI der Plattform und wird von Entwicklern genutzt um in teilen mit der Plattform zu interagieren. Hier können unter anderem Bots, Teams und Tourniere verwaltet werden. Außerdem kann das Frontend Matches initialisieren und Visualisiert verschiedene Zustände des Matches.
|
|
|
|
|
|
### [GameManager](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/GameManager)
|
|
|
|
|
|
Kennt alle Spiele.
|
|
|
|
|
|
### [GuiSignal](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/GuiSignal)
|
|
|
|
|
|
Bietet Websockets für das Frontend an.
|
|
|
|
|
|
### [MatchMaker](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/MatchMaker)
|
|
|
|
|
|
Mithilfe des Matchmakers kann ein beliebiges Spiel ausgeführt werden. Dieser verknüpft hierfür alle beteiligten Services im Sinne eines allgemeingültigen Spielablaufs.
|
|
|
|
|
|
### [MatchManager](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/MatchManager)
|
|
|
|
|
|
Speichert Matches und deren Spielzüge während der Durchführung in einer Datenbank. Kann alle Matches oder ein Match mit Spielzügen zurückgeben.
|
|
|
|
|
|
### [RefereeManager](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/RefereeManager)
|
|
|
|
|
|
Speichert die Zustände der Referees in einer dokumentenorientierten Datenbank (MongoDB), damit letzterer zustandslos ausgeführt und skaliert werden kann. Die Schnittstelle ist dabei generisch und unabhängig vom jeweiligen Spiel.
|
|
|
|
|
|
### [ServiceHelper](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/ServiceHelper)
|
|
|
|
|
|
Bietet Services die Möglichkeit sich mit dem Logging System zu verbinden.
|
|
|
|
|
|
### [SignalRHub](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/SignalRHub)
|
|
|
|
|
|
Bietet Websockets für die Bots an.
|
|
|
|
|
|
### [UserManager](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/UserManager)
|
|
|
|
|
|
Verwaltet Informationen über Benutzer, Teams und Kurse.
|
|
|
|
|
|
### [e2e](https://git.fh-muenster.de/swa1/coding-challenge/platform/-/tree/master/e2e)
|
|
|
|
|
|
Beim End-to-End (e2e) TestingTesting wird die komplette Applikation hochgefahren, Nuzereingaben simuliert und Assertionen ausgeführt. |
|
|
\ No newline at end of file |