Wizja - marcello96/speed-game GitHub Wiki

Autorzy

  • Marcin Jakubowski
  • Paweł Matejko

Cel

Celem projektu jest stworzenie aplikacji webowej SpeedGame, która serwuje użytkownikom krótkie gry logiczne i zręcznościowe losowane na podstawie m.in. wcześniejszych ocen użytkownika. Celem naszego podprojektu jest stworzenie komponentu serwera udostępniającego interfejs dla stworzonych przez innych gier.

Wymagania funkcjonalne

  1. Główną funkcjonalnością serwera będzie zapewnienie strony internetowej na której użytkownicy będą mogli grać w zestaw gier obecnie załadowany na serwer. Wchodząc na stronę użytkownikowi zostanie wyświetlona losowa gra z zestawu na podstawie wcześniej wystawionych ocen. Po skończeniu gry użytkownik będzie miał możliwość wystawienia grze oceny od 1 do 5.

  2. Kolejnym elementem będzie umożliwienie użytkownikom dodawania nowych gier do zestawu w czasie pracy serwera. Gry będą musiały być spakowane w odpowiednie archiwum i kompatybilne z ustalonym przez serwer interfejsem.

  3. Poza tym serwer będzie również udostępniał stronę do administracji. Zezwoli ona na zobaczenie obecnie dostępnej listy gier, wystawionych im przez użytkowników ocen oraz na przeglądanie logów serwera.

Wymagania niefunkcjonalne

  1. Serwer stworzony w języku Java

  2. Jako podstawa framework Spring Boot

Wizja komunikacji komponent-serwer

Ogólny schemat działania:

  1. Serwer zwraca klientowi stronę początkową komponentu gry, przekazuje sterowanie do komponentu.
  2. Komponent pobiera dane konfiguracyjne z serwera.
  3. Komponent przesyła dane dotyczące wyniku rozgrywki i przekazuje sterowanie do serwera.
  4. Serwer zwraca klientowi stronę z oceną gry.
  5. Serwer losuje kolejną grę dla klienta i przekazuje sterowanie do wylosowanego komponentu gry.