5. týždeň

Špecifikácia služieb projektu GameStudio

Ciele

  1. Špecifikácia služieb pre projekt GameStudio.

Úvod

Služby musia podporovať nasledovnú funkcionalitu:

  • Score - pridať skóre hráča s menom hráča a hodnotou, výpis najlepších skóre hráčov k danej hre.
  • Comment - pridať komentár k hre s menom autora a textom, výpis zoznamu komentárov k hre.
  • Rating - poslať hodnotenie hry s menom autora a hodnotou, zobrazenie hodnotenia hry od všetkých hráčov a priemerného hodnotenia.

Upozornenie

V rámci implementácie dodržte špecifikáciu poskytnutých rozhraní v balíku serviceSpecs.zip opísanú nižšie.

Poznámka

Zápis v špecifikácii využíva typy pre entitné triedy jazyka Java. V databáze samozrejme použite typ korešpondujúci s týmito typmi (VARCHAR, TIMESTAMP a pod.). Využite svoje znalosti z predmetu Databázové systémy.

1. Služba SCORE:

Zoznam stĺpcov pre tabuľku SCORE:

player : TEXT
game : TEXT
points : INTEGER
playedOn: DATE

Rozhranie ScoreService.java obsahuje nasledujúce metódy:

  • void addScore(Score score) throws ScoreException;
  • List<Score> getTopScores(String game) throws ScoreException;
  • void reset() throws ScoreException;

2. Služba COMMENT:

Zoznam stĺpcov pre tabuľku COMMENT:

player : TEXT
game : TEXT
comment : TEXT
commentedOn: DATE

Rozhranie CommentService.java obsahuje nasledujúce metódy:

  • void addComment(Comment comment) throws CommentException;
  • List<Comment> getComments(String game) throws CommentException;
  • void reset() throws CommentException;

3. Služba RATING:

Zoznam stĺpcov pre tabuľku RATING:

player : TEXT
game : TEXT
rating : INTEGER
ratedOn: DATE

Rozhranie RatingService.java obsahuje nasledujúce metódy:

  • void setRating(Rating rating) throws RatingException;
  • int getAverageRating(String game) throws RatingException;
  • int getRating(String game, String player) throws RatingException;
  • void reset() throws RatingException;

Poznámka

Služba pre hodnotenie funguje podobne ako hodnotenie hviezdičkami napr. v internetových aplikačných obchodoch.

Metóda pre pridávanie hodnotenia je teda logicky odlišná od ostatných služieb: hodnotenie nepridáva , ale nastavuje (preto set ). Teda ak sa v databáze nenachádza žiadne hodnotenie daného hráča pre hodnotenú hru, bude pridané nové hodnotenie. Ak sa takéto hodnotenie už v databáze nachádza, hodnota tohto existujúceho hodnotenia bude prepísaná.

Primárnym kľúčom je teda kombinácia mena hráča a názvu hodnotenej hry.

Hodnotenie má hodnotu v rozsahu 1-5.

Zdroje

  1. Rozhrania služieb na stiahnutie: serviceSpecs.zip
  2. Dokumentácia údajových typov pre Postgresql