SWE1-MTCG/README.md
2021-01-07 20:50:37 +01:00

79 lines
6.2 KiB
Markdown

# Monster Trading Card Game
Created by *Georg Reisinger*
* RestServer von https://github.com/DerGeorg/RESTServer
* MTCG Git Repo https://github.com/DerGeorg/SWE1-MTCG
* JavaDoc online auf: http://mtcg.dergeorg.at
* Postgres Server läuft auf einem Raspberry Pi 4 --> http://postgres.dergeorg.at
* User Table
* *Alle User die in MTCG registriert sind*
* User_cards Table
* *Alle Cards der User*
* User_deck Table
* *Deck der User*
* Battle Table
* *Battle Einladungen*
* Battle_log Table
* *Nach beendetem battle wird hier das Log gespeichert*
* Package Table
* *Alle Packages die die User bekommen können*
* Card Table
* *Alle Cards die in dem Spiel verwendet werden*
* *Typ der Card wird automatisch in Card und Element Typ getrennt*
* Trading Table
* *Alle aktiven Trading deals*
## Protokoll
*Um für Testzwecke die DB zu leeren, die Route DELETE /db/all beachten. Setzt die DB zurück und erstellt alle Tabellen neu.*
#### Cards
* Card Type (z.B. FireSpell) wird zu ElementTyp(Fire) und CardType(Spell) aufgespalten
* Alle Cards sind in der Cards Tabelle gespeichert
* Wenn ein User Cards acquired, dann wird das passende package gelöscht und die Cards in seine user_card Table geschrieben
#### Deck
* Die Deckkarten werden in der Tabelle User_deck gespeichert
* Wird eine Card getradet, die im Deck ist, so wird das Deck des Users zurückgesetzt
* Wird ein Battle begonnen, dann muss der user 4 cards im deck haben.
#### Battle
* Beginnt ein User ein Battle und ist der erste, so wird in der Battle tabelle eine "Einladung" erstellt.
Die Einladung besteht aus: **Username, Userdeck, Battleid**
* Beginnt ein 2. User ein Battle, so sieht er das in der Battle Tabelle ein Spiel ohne 2. spieler ist, und kann beitreten.
#### Score & Stats
* Score zeigt das Ergebnis des letzten spieles an
* Stats zeigt die Ergebnisse aller vergangen Spiele
## API Beschreibung
#### GET
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|--------------------|------------------------------------|-----------|-------------------------|------------------------------------------------------|
| /cards | show all acquired cards | / | Cards Object | --header "Authorization: Basic kienboec-mtcgToken" |
| /deck | show deck | / | Cards Object | --header "Authorization: Basic kienboec-mtcgToken" |
| /deck?format=plain | show deck different representation | / | Card names Array | --header "Authorization: Basic kienboec-mtcgToken" |
| /users/{username} | get user | / | User Object | --header "Authorization: Basic kienboec-mtcgToken" |
| /stats | get stats about all battles | / | All battle Logs | --header "Authorization: Basic kienboec-mtcgToken" |
| /score | get score, about last battle | / | Last Battle Log | --header "Authorization: Basic kienboec-mtcgToken" |
| /tradings | get trading deals | / | List TradingDeal Object | --header "Authorization: Basic kienboec-mtcgToken" |
#### POST
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|------------------------|---------------------------|--------------------------------------|---------------------|------------------------------------------------------|
| /users | create user | Username, Password | User Object | / |
| /sessions | login user | Username, Password | login token | / |
| /packages | create package | [ID, Name, Damage]x5 | Package Object | --header "Authorization: Basic admin-mtcgToken" |
| /transactions/packages | acquire packages kienboec | / | Package Object | --header "Authorization: Basic kienboec-mtcgToken" |
| /battles | Battle | / | Anweisungen String | --header "Authorization: Basic kienboec-mtcgToken" |
| /tradings | create tradingdeal | Id, CardToTrade, Type, MinimumDamage | TradingDeal Object | --header "Authorization: Basic kienboec-mtcgToken" |
| /tradings/{TradeID} | Do Trade | CardID | New Card Object | --header "Authorization: Basic kienboec-mtcgToken" |
#### PUT
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|-------------------|----------------|------------------|--------------|------------------------------------------------------|
| /deck | configure deck | [ID, ID, ID, ID] | Cards Object | --header "Authorization: Basic kienboec-mtcgToken" |
| /users/{username} | / | Name, Bio, Image | User Object | --header "Authorization: Basic kienboec-mtcgToken" |
#### DELETE
| ROUTE | BESCHREIBUNG | ATTRIBUTE | RETURN | HEADER |
|---------------------|---------------------|-----------|--------|------------------------------------------------------|
| /tradings/{TradeID} | delete trading deal | / | / | --header "Authorization: Basic kienboec-mtcgToken" |
| /db/all | Reset DB + Recreate | / | / |--header "Authorization: Basic admin-mtcgToken" |
## Insomnia Requests
Basierend auf dem [Curl Script](https://github.com/DerGeorg/SWE1-MTCG/blob/master/curl.bat) habe ich die Requests in Insomnia erstellt.
[Öffne insomnia.json](https://github.com/DerGeorg/SWE1-MTCG/blob/master/insomnia.json)
## UML
* [UML.png](https://github.com/DerGeorg/SWE1-MTCG/blob/master/UML2021.png)
* [UML.svg](https://github.com/DerGeorg/SWE1-MTCG/blob/master/UML2021.svg)
![UML2021.svg](UML2021.svg)