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
- User Table
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 habe ich die Requests in Insomnia erstellt. Öffne insomnia.json
UML
Description
Languages
Java
86.7%
Batchfile
13.3%