<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%&amp; --translate-file latin2pl
\documentclass[a4paper,10pt]{article}

\usepackage{polski}
\usepackage[latin2]{inputenc}



% Marginesy
\textwidth17cm \textheight24.5cm \topmargin-40pt
\oddsidemargin-0.04cm

%%%%%%%%%%%%%%%
% To zmieniac %
%%%%%%%%%%%%%%%
% Nazwa, wersja
\newcommand{\nazwaprojektu}{Snatch, serwer brydżowy}
\newcommand{\nazwadokumentu}{biznesowe przypadki użycia}
\newcommand{\wersjadokumentu}{1.9}

\title{\nazwaprojektu \ --- \nazwadokumentu}
\author{Micha\l{} Korch \and Piotr Tomanek \and Marcin Pilipczuk \and Piotr Tabor}

\begin{document}

% Definicja naglowka posrodku strony
\newcommand{\nagl}[1]{\par\begin{center}{\bf{#1}}\end{center}\par}
% Definicja tego na poczatku
\newcommand{\pocz}{\par {\bf{\nazwaprojektu}}\par {\bf{\nazwadokumentu}}\par {\bf{Wersja: \wersjadokumentu}}\par}

%% Historia
% environment
\newenvironment{historia}{\nagl{Historia}\begin{tabular*}{17cm}{c|c|c|l} {\bf{Data}} &amp; {\bf{Wersja}} &amp; {\bf{Autor}} &amp; {\bf{Zmiany}} \\}{\end{tabular*}}
% item
\newcommand{\hist}[4]{#1 &amp; #2 &amp; #3 &amp; \parbox[t]{9cm}{#4} \\ }

%% Spis tresci
\newcommand{\spistresci}{\tableofcontents}

\newcommand{\wfp}{www.bardzofajnyportal.pl}

\maketitle
\par
{\bf{Wersja: \wersjadokumentu}}
\par

\begin{historia}

\hist{2005-03-15}{0.1}{Marcin Pilipczuk}{Wzorzec}
\hist{2005-03-16}{1.0a}{Michał Korch}{Pierwsza wersja przypadków użycia dotyczących pracownika}
\hist{2005-03-16}{1.1a}{Michał Korch}{Uzupełnienia w przypadkach użycia dotyczących pracownika}
\hist{2005-03-16}{1.2a}{Michał Korch}{Drobne zmiany w przypadkach użycia dotyczących pracownika}
\hist{2005-03-17}{1.0b}{Piotr Tabor}{Pierwsza wersja przypadków użycia dotyczących gracza i widza}
\hist{2005-03-18}{1.1b}{Piotr Tabor}{Dodanie kolejnych przypadków użycia dotyczących gracza i widza}
\hist{2005-03-18}{1.3}{Piotr Tabor}{Złączenie obu gałęzi rozwoju dokumentu}
\hist{2005-03-19}{1.4}{Piotr Tabor}{Dopisanie przypadków 2.1.10-2.1.17}
\hist{2005-03-21}{1.5}{Piotr Tomanek}{Poprawki kontrolera}
\hist{2005-03-27}{1.6}{Marcin Pilipczuk}{Dopisanie przypadków sędziowskich - 2.2.*}
\hist{2005-03-30}{1.7}{Michał Korch}{Dopisanie przypadków użycia dotyczących reklamodawcy}
\hist{2005-04-02}{1.8}{Piotr Tomanek}{Poprawki kontrolera jakości}
\hist{2005-04-03}{1.9}{Marcin Pilipczuk}{Ukrycie pustych rzędów w tabelkach. Drobne poprawki.}
\end{historia}

\spistresci

\newpage
\newcommand*{\strz}{$&gt;$}

% Jesli to co mamy wypisac to -, to nic nie wypisujemy
\newcommand{\ben}[2]{
  \if#2-
  \else
  {\bf{#1:}} &amp; \parbox[t]{12cm}{#2}\\ \hline
  \fi}
\newcommand{\buc}[9]{
\subsubsection{ #1 }\par
\begin{tabular}{|l|l|} \hline
\ben{Udział biorą}{#2} % Actors
\ben{Wymaga, aby wcześniej}{#3} % Presequities, requirements
\ben{Przebieg zdarzenia}{#4} % Workflow
\ben{Efekt}{#5} % Goal
\ben{Kategoria}{#6} % Category
\ben{Ryzyko}{#7} % Risk
\ben{Oferowane możliwości}{#8} % Possibilities
\ben{Uwagi}{#9}
\end{tabular}
\par}

\section{Wstęp}

\subsection{Cel dokumentu}

Celem tego dokumentu jest szczegółowe opisanie możliwości tworzonego serwera gry brydżowej w ramach
portalu \wfp. Przedstawia on poszczególne Biznesowe Przypadki użycia tego programu.

Dokument ten stanowi załącznik do ,,Umowy o wykonanie projektu''
dla udziałowca. Wszelkiem zmiany opisanej w tym dokumencie
funkcjonalno\'{s}ci wymagają stosownego aneksu do umowy.

\subsection{O projekcie}
Dokument ten dotyczy projektu rozgrywek brydżowych przez Internet. Działający projekt ma umożliwić grę towarzyską
i organizowanie turniejów brydżowych przez Internet w ramach portalu www.bardzofajnyportal.pl, który jest udziałowcem
projektu. Zyski mają płynąć z zamieszczanych reklam.

\subsection{Definicje i skr\'{o}ty}
\begin{description}

\item[projekt, serwis] - to, co ten dokument opisuje - projekt rozgrywek brydżowych przez Internet.
\item[gracz] - klient grający w brydża przez działający projekt.
\item[widz] - klient obserwujący rozgrywki.
\item[sędzia] - klient mający większe uprawnienia, organizujący turnieje i nadzorujący je.
\item[udziałowiec] - portal www.bardzofajnyportal.pl, który jest udziałowcem i docelowym właścicielem binarnej wersji projektu.
\item[zesp\'{o}\l{}, Snatch] - zesp\'{o}\l{} wykonuj\k{a}cy projekt.

\end{description}

\subsection{Źródła}

Dokument ten korzysta

\begin{itemize}
\item Z Wizji Biznesowej w kwestii ogólnego wyglądu projektu.
\item Z Wizji, a w szczególności z zawartym w niej opisie funkcjonalności projektu.
\item Z SDP w sprawie ustawienia priorytetów dla poszczególnych opcji projektu.
\item Z załącznika A - schematu działania pojedynczego rozdania.
\end{itemize}

\subsection{Streszczenie}
W dokumencie tym szegółowo zostaje opisana funkcjonalno\'{s}ci
projektu poprzez pojedyncze Biznesowe Przypadki Użycia.

\newpage

\section{Biznesowe przypadki użycia}

\subsection{Gracz i widz}

\buc{Zalogowanie się gracza}{Gracz}{Nic}{
  Gracz uruchamia aplet znajdujący się na witrynie www serwisu. Następnie wprowadza
  swój login i hasło po czym je potwierdza. Aplet wysyła dane do serwera, 
  który je weryfikuje.}{
  Gracz zostaje zalogowany do serwisu bądź dostaje komunikat o błędnym haśle.}{
  core}{
  niskie}{
  Działanie systemu.}
  {Konieczne, by wykonać dowolne inne czynności będąc graczem.}{-}


\buc{Wylogowanie się gracza}{Gracz}{Gracz jest zalogowany}{
 	Gracz wybiera opcję - ,,Wyloguj się''. Następnie zostaje wylogowany. 
  }
  {Gracz zostaje wylogowany}
  {core}{
  niskie}{Odebranie dostępu do profilu gracza innym użytkownikom komputera}{-}{-}
  
  
\buc{Rejestracja gracza}{Użytkownik serwisu.}{Żaden użytkownik nie jest zalogowany}{
	Użytkownik wybiera na głównej witrynie link zatytułowany ,,Zarejestruj się''. Zostaje przeniesiony do
strony, na której podaje dane opisane w tabeli znajdującej się pod opisem tego przypadku.

Na stronie znajduje się również klauzula dotycząca zgody na przetwarzanie danych osobowych zgodna z ,,Ustawą o ochronie danych ,,osobowych''. Użytkownik wypełnia powyższe pola, a następnie wybiera przycisk ,,Zatwierdź''. 

System sprawdza dane i jeśli nie spełniają one powyższych warunków, ponownie wyświetla okno wpisywania danych (bez utraty już wpisanej zawartości) z komunikatem, które pola nie spełniają ,,Wymagań co do zawartości''. W przeciwnym wypadku 
wyświetla się strona informująca, że do użytkownika został wysłany e-mail wraz z informacją, iż rejestracja dobiegnie końca, gdy użytkownik wykona procedurę opisaną w e-mailu. 

Na wpisany w polu ,,e-mail'' adres, użytkownik otrzymuje list zawierający odnośnik do pewnej strony i informację, aby ją odwiedził.
Gdy użytkownik kliknie na link, pojawia się strona informująca, że procedura rejestracji została dopełniona i może się zalogować. Po około 4 sekundach następuje automatyczne przekierowanie na stronę logowania do systemu. 

Jeśli użytkownik nie dopełni procedury w ciągu 48 godzin, wszelkie zebrane dane zostają zapomniane a procedura kończy się brakiem założenia konta użytkownikowi.}
{Użytkownik posiada konto w systemie - jest potencjalnym graczem i może się już logować}
{core}
{niskie}
{-}
{-}

\newpage
Tabelka danych wprowadzanych przez gracza:

\begin{tabular}{|p{2.5cm}|p{1.8cm}|p{10cm}|} \hline
Dane 		&amp; Obowiązkowy &amp; Wymagania co do zawartości \\\hline
Pierwsze imie	&amp; tak &amp; maksymalnie 30 znaków\\\hline
Drugie imie	&amp; nie &amp; maksymalnie 30 znaków\\\hline
Nazwisko 	&amp; tak &amp; maksymalnie 50 znaków\\\hline
Płeć		&amp; tak &amp; wybór: kobieta lub mężczyzna\\\hline
Login		&amp; tak &amp; maksymalnie 20 znaków, ma być unikatowy dla wszystkich zarejestrowanych użytkowników\\\hline
Adres e-mail	&amp; tak &amp; maksymalnie 20 znaków, zgodny ze standardem, także unikatowy.\\\hline
Zamieszkały w 	&amp; tak &amp; maksymalnie 50 znaków\\\hline
Kod pocztowy	&amp; tak &amp; musi być w formacie xx-xxx\\\hline
Data urodzenia 	&amp; tak &amp; musi być w formacie yyyy-mm-dd: czyli np. 1984-05-22\\\hline
Ulica		&amp; nie &amp; maksymalnie 50 znaków\\\hline
Nr domu		&amp; nie &amp; maksymalnie 10 znaków\\\hline
PESEL		&amp; nie &amp; wpisany podlega procedurze walidacji zgodnie z Polską specyfikacją numeru PESEL\\\hline
Numer legitymacji PZBS &amp; nie &amp; 10 cyfr\\\hline
Stopień znajomości &amp; tak &amp; wybór spośród: ,,nie znam'', ,,początkujący'', ''średnio zaawansowany'', ,,zaawansowany'', ,,mistrz''\\\hline
System licytacyjny &amp; nie &amp; maksymalnie 3000 znaków \\\hline
Wykształcenie	&amp; tak &amp; wybór spośród: ,,brak'', ,,podstawowe'', ,,średnie niepełne'', ,,średnie'', ,,policealne'', ,,wyższe''\\\hline
Zawód 		&amp; tak &amp; wybór spośród: ,,uczeń'', ,,student'', lista 50 popularnych zawodów oraz opcja ,,inne''\\\hline
Hasło		&amp; tak &amp; pojawiają się gwiazdki - minimalnie 5 i maksymalnie 20 znaków\\\hline
Hasło powtórzone&amp; tak &amp; musi być identyczne jak powyżej \\\hline
Czy chce otrzymywać informacje o turniejach&amp;tak&amp;wybór: tak, nie\\\hline
Opis własny gracza &amp; nie &amp; maksymalnie 3000 znaków\\\hline
Domyślny język &amp; tak &amp; wybór: polski, angielski, niemiecki, francuski, rosyjski, ukraiński, esperanto, hiszpański, chiński, japoński, suahili, czeski.\\\hline
\end{tabular}


\buc{Rozegranie pojedynczego rozdania}
{Gracze: Gracz, Partner gracza, 2x Rywale. Ewentualnie: sędziowie i widzowie}
{Użytkownik jest zalogowany i posiada przypisanego partnera i rywali. Przydzielone zostało rozdanie i role w rozgrywce - przypadek ten ma status pomocniczy i będzie występował jako element innych przypadków}
{
    Tu zostanie umiesczont schemat czasowo załączony do dokumentu. Patrz: dodatek do dokumentu.
% TU ZNAJDZIE SIĘ SCHEMAT ROZGRYWKI BRYDŻOWEJ. Ja go nie mogę wstawić. Może Marcin da sobie radę (on ma doświadczenie ze wstawianiem geometrii)- obrazek jest w załączonym pliku. Jeśli się nie uda - tu będzie odnośnik do dodatku A. !!!!
}
{Samoocena gracza oraz wzajemna ocena graczy (psychologiczna) się zmienia}
{core}
{niskie}
{-}
{Jest to procedura pomocnicza wykorzystywana w innych przypadkach użycia i nie stanowi osobnej całości}


\buc{Rozegranie partyjki towarzyskiej - przez inicjatora stolika}
{Gracz}
{Gracz jest zalogowany}
{
1. Gracz wybiera ze swojego menu opcję ,,Załóż nowy stolik''. \\
2. Otwiera się strona, na której gracz wybiera sposób punktacji (impy/kreska) oraz pozycję przy stole (N, E, S, W), na której ,,inicjator'' zasiądzie.\\
3. Użytkownik klika ,,Zatwierdź''.\\
4. Otwiera się okienko prezentujące aktualnych graczy przy stole (początkowo tylko inicjatora), graczy chcących do stolika przystąpić (początkowo pusta lista) oraz przycisk ,,Odśwież''. Okno automatycznie odświeża się co 5 sekund. \\
5. Gdy pojawi się gracz chętny do dołączenia do stolika (patrz opis następnego przypadku użycia), pojawi się on na liście graczy chcących przystąpić do stolika wraz z wyborem podzbioru następujących opcji obok siebie i przyciskiem zatwierdź:
\begin{description}
\item[Posadź na N]
\item[Posadź na E]
\item[Posadź na S]
\item[Posadź na W]
\item[Odrzuć gracza]
\end{description}
6. Inicjator powtarzając kroki 3-5 co najmniej 3 razy, osiąga pełną obsadę stolika (4 graczy). W tym momencie pojawia się przycisk ,,rozpocznij grę''.\\
7. Użytkownik wybiera przycisk ,,Rozpocznij grę''.\\
8. System otwiera aplet Javy (parz punkt 2.1.3) przeprowadzający pojedyncze rozdanie. \\
9. Rozdanie zostaje zakończone. System wyświetla łączne wyniki w grze przy tym stoliku. Udostępnia też opcję ,,Zapamiętaj to rozdanie'', która dodaje rozdanie (historię rozgrywki, po zapytaniu o jego nazwę) do puli ,,zapamiętanych rozdań gracza''.\\
10. Gracz wybiera przycisk: ,,koniec'', co powoduje poinformowanie pozostałych graczy o zakończeniu gry i powrót wszystkich na główną stronę portalu lub ,,graj dalej'', która powoduje przejście do kroku 7. \\
Uwaga! Jeśli którykolwiek z graczy wybrał opcję ,,Koniec'', to mimo tego, że inicjator wybrał opcję ,,graj dalej'', zostanie on poinformowany, że ktoś opuścił stolik. Inicjator wraca na główną stronę portalu.\\ 
}
{-}
{core}
{niskie}
{-}
{-}

\buc{Rozegranie partii towarzyskiej - przyłączenie się do czyjegoś stolika}
 {Gracz}
 {Gracz jest zalogowany}
 {
 1. Gracz wybiera ze swojego menu opcję ,,Dosiądź się do stolika''. \\
 2. Otwiera się strona na której wymienione są wszystkie założone i nie wpełni obsadzone stoliki (czyli takie, że ich inicjator wykonuje punkt 3 do 6 z przypadku pt. ,,Rozegranie partii towarzyskiej - przez inicjatora stolika''). 
 Wypisywana jest nazwa stolika, kto jest jego inicjatorem, kto i które pozycje obsadził.\\
 3. Użytkownik wybiera jeden ze stolików i klika na niego.\\
 4. System wyświetla inicjatorowi stolika, że taki gracz chce sie przysiąść.\\
 5. Dopóki inicjator stolika nie odrzuci gracza (patrz punkt 5 poprzedniego przypadku) gracz jest informowany o aktualnym rozmieszczeniu graczy przy stole. Jeśli inicjator odrzuci gracza - gracz zostaje o tym poinformowany i przekierowany do strony zawierajcej listę stolików (powrót do punktu 2).\\
 6. Gdy inicjator wybierze ,,Rozpocznij grę'' w przeciągu około 5 sekund u użytkownika system uruchamia aplet Javy (parz punkt 2.1.3) - przeprowadzający pojedyncze rozdanie. \\
 9. Rozdanie zostaje zakończone. System wyświetla łączne wyniki w grze przy tym stoliku. Udostępnia też opcję ,,Zapamiętaj to rozdanie'', która dodaje rozdanie (historię rozgrywki), po zapytaniu o jego nazwę, do puli ,,zapamiętanych rozdań gracza''.\\
 10. Gracz bądź wybiera przycisk ,,koniec'' - co powoduje poinformowanie pozostałych graczy o zakończeniu gry i powrót wszystkich na główną stronę portalu, bądź ,,graj dalej''- który powoduje przejście do kroku 7. \\
 Uwaga! Jeśli którykolwiek z graczy wybrał opcję ,,koniec'', to mimo tego, że pozostali wybrali opcję ,,graj dalej'' to 
 gra się nie odbywa i następuje powrót wszystkich na główną stronę portalu.\\ 
 }
 {-}
 {core}
 {średnie}
 {-}
 {-}


%AAA - to poprawialem - Malcin
\buc{Rozegranie meczu brydżowego}
{Gracz inicjujący oraz zaproszeni przez niego gracze}
{Gracz jest zalogowany}
{Gracz wybiera opcję ,,mecz towarzyski'', jest to opcja rozegrania meczu w 8 osób. Pojawia mu się okienko dialogu pt. ,,mecz''. 
  Następnie spośród zalogowanych graczy wybiera siedmiu innych, którym proponuje grę w turnieju. Gdy skompletuje 8 osób,
ustawia ich w pary, po czym rozpoczyna się mecz na wylosowanych przez system rozdaniach. Po zakończeniu meczu wyniki są wyświetlane każdemu grającemu.}
{Rozegranie meczu towarzyskiego}
{core}
{niskie}
{Urozmaicenie rozgrywek}
{-}

\buc{Przeglądanie dostępnych turniejów dla gracza}
{Wszyscy gracze zalogowani w systemie}
{Gracz jest zalogowany}
{Na swojej głównej stronie, zaraz po zalogowaniu, gracz widzi listę turniejów w postaci:\\
Nazwa turnieju | Termin rozpoczęcia | Termin zakończenia | System punktacyjny | Status.

Lista ta obejmuje wszystkie niecodzienne turnieje przyszłe, turnieje, które się zakończyły nie dawniej niż tydzień temu (według czasu serwera) oraz wszystkie turnieje, w których gracz uczestniczył. 

Status jest jedną z następujących możliwości:
\begin{description}
	\item[Zaplanowany (rejestracja od \emph{data}) do \emph{data2}] - turniej jest zaplanowany, rejestracja się rozpocznie od wskazanego terminu \emph{data1} i będzie trwała do \emph{data2}. 
	\item[Trwa rejestracja do \emph{,,data''}] - gracz może zarejestrować się na turniej
	\item[Rejestracja zakończona]	- gracz nie może już zarejestrować się na turniej
	\item[Turniej w trakcie]	- gracz może w nim uczestniczyć jeśli jest zarejestowany na turniej lub obserwować, jeśli nie jest zarejestrowany.
	\item[Turniej zakończony]	- gracz może obejrzeć wyniki, rozdania i rozgrywki turnieju. 
\end{description}

Lista jest aktywna i stanowi punkt wyjścia dla postępowania opisanego w następujących przypadkach użycia:
\begin{itemize}
\item{2.1.9} ,,Rejestracja do turnieju''
\item{2.1.10} ,,Wzięcie udziału w turnieju''
\item{2.1.13} ,,Obserwacja trwającej rozgrywki''
\item{2.1.14} ,,Przeglądanie odbytych rozgrywek''
\item{2.1.15} ,,Przeglądanie wyników turnieju''
\end{itemize}
}
{-}
{core}
{niskie}
{następnie użytkownik może zarejestrować się do turnieju bądź obejrzeć jego wyniki}
{-}

\buc{Zarejestrowanie się do turnieju}
{Wszyscy gracze zalogowani w systemie}
{Gracz jest zalogowany}
{Gracz na liście dostępnych turniejów wybiera turniej ze statusem ,,w trakcie rejestracji''. Po kliknięciu na niego
otwiera się okno. w którym użytkownik wpisuje login swojego potencjalnego partnera. W tym momencie
system sprawdza, czy wprowadzony użytkownik:
\begin{itemize}
\item jest graczem systemu (niekoniecznie zalogowanym)
\item ma prawo uczestniczyć w tym turnieju
\item nie jest zarejestrowany do tego turnieju w innej parze (tj. z inną osobą wskazaną jako partner)
\end{itemize}
Jeśli wszystkie powyższe warunki są spełnione i wskazana osoba nie
jest zgłoszona do turnieju, system wysyła do niej e-mail z informacją, że użytkownik
zaproponował jej bycie partnerem we wskazanym turnieju. 

Jeśli wszystkie wymienione warunki są spełnione i wskazana osoba jest zgłoszona
już do turnieju, zostaje jej wysłany e-mail potwierdzający rejestrację jej wraz z partnerem do wybranego turnieju.

Jeśli któryś z warunków nie jest spełniony, użytkownik otrzymuje komunikat, że
rejestracja z tą osobą nie jest możliwa. 
}
{Użytkownik zostaje zarejestrowany na turniej lub zostaje zarejestrowany tylko wstępnie (bez potwierdzenia partnera). Mógł również nic nie zrobić.}
{core}
{niskie}
{Rejestracja bez efektu, jeśli partner rejestrującego się gracza nie zarejestruje się we wskazanym terminie}{-}


\buc{Wzięcie udziału w turnieju}
{Wszyscy uczestnicy turnieju}
{Gracz jest zalogowany oraz zarejstrował się wraz z partnerem na turniej}
{1. Gracz po zalogowaniu się do systemu w czasie trwania turnieju, otrzymuje 
 informację, że jest zapisany do turnieju, który trwa. \\
2. Gracz naciska przycisk ,,Włącz się do turnieju''. \\
3. Otwiera się strona zawierająca aktualną punktację pary w tym turnieju oraz jedną z trzech informacji:\\
\begin{description}
  \item[Partner nie jest dostępny] - czyli partner gracza nie włączył się do turnieju.
  \item[Przygotowanie do rozdania] - czyli wszystko jest gotowe i za najpóźniej 10 sekund włączy się aplet do przeprowadzania kolejnego rozdania. 
  \item[Oczekiwania na rywali] - informację zawierająca przybliżony czas, za który para będzie miała rozdanie do rozegrania (czyli będą dostępni rywale zgodnie z systemem przeprowadzania turnieju).
  \item[Turniej zakończony] - czyli informację, że turniej został zakończony i link do rankingu. Uczestnictwo w turnieju zostało zakończone. 
  \item[Para zdyskwalifikowana] - czyli informację, że para nie może dalej uczestniczyć w turnieju. Uczestnictwo w turnieju zostało zakończone.
\end{description}
Strona ta jest odświeżana automatycznie raz na 5 sekund. 
4. W sytuacji ,,przygotowanie do rozdania'' system automatycznie uruchomi aplet przeprowadzający pojedyncze rozdanie. 
5. Po zakończeniu rozdania system przechodzi do wyświetlania strony z punktu 3.
}{-}
{core}
{średnie}
{warunki końcowe}
{-}


\buc{Komunikacja gracza z sędzią w czasie trwania turnieju - wysłanie informacji do sędziego}
{Gracze uczestniczący w turnieju i właśnie uczestniczący w rozdaniu}
{Gracz posiada uruchomiony aplet Javy obsługi rozdania związanego z turniejem}
{Gracz klika na przycisk w aplecie zatutułowany ,,sędzia''. 
 System wyświetla okienko, w które użytkownik może wpisać tekst (do 3000 znaków)
 Użytkownik wpisuje tekst i naciska przycisk ,,wyślij''.}
{Wpisany tekst zostaje umieszczony na końcu kolejki informacji przeznaczonych dla sędziego i sędzia będzie mógł go odczytać w wykorzystaniem aplikacji sędziowskiej}
{core}
{niskie}
{-}
{-}


\buc{Komunikacja gracza z sędzią w czasie trwania turnieju - otrzymywanie informacji od sędziego}
{Gracze uczestniczący w turnieju i właśnie uczestniczący w rozdaniu}
{Gracz posiada uruchomiony aplet Javy obsługi rozdania związanego z turniejem}
{W dowolnym momencie w apecie Javy przeprowadzającym rozdanie może się otworzyć okienko dialogowe zawierające komunikat od sędziego i przycisk ,,OK''.}
{Użytkownik został poinformowany}
{core}
{niskie}
{-}{-}

\buc{Modyfikacja własnych ustawień gracza}
{Użytkownik zalogowany w systemie}
{Użytkownik jest zalogowany}
{Użytkownik wybiera z menu w portalu opcję ,,Mój profil''. Na stronie, którą system wyświetli znajdują się 
wszystkie wprowadzane przy rejestracji dane użytkownika. Na stronie tej znajduje się także przycisk ,,Modyfikuj dane''.
Otwiera on stronę analogiczną do tej, która się pojawia przy rejestracji nowego użytkownika, ale już wypełnioną - aktualnie pamiętanymi przez system danymi. \\
Następujące dane nie mogą zostać zmienione:
\begin{itemize}
	\item Login
	\item Adres e-mail
\end{itemize}
Użytkownik modyfikuje dane, a następnie wybiera przycisk ,,Zapamiętaj''. 
Dane zostają sprawdzone pod kątem zgodności z opisanymi w punkcie 2.1.1 kryteriami. 
Jeśli wprowadzone dane spełniają kryteria, system zmodyfikuje dane użytkownika, w
przeciwnym wypadku wyświetli komunikat o błędzie i pozwoli poprawić dane. }
{Dane użytkownika zostają zmienione}
{core}
{niskie}
{-}{-}


\buc{Oglądanie trwającej rozgrywki}
{Wszyscy użytkownicy portalu}
{brak}
{ Na stronie głównej www.bardzofajnyportal.pl znajduje się lista wszystkich aktualnie trwających turniejów (o statusie publicznym). Jak użytkownik kliknie na turniej pojawia się opis turnieju oraz m.in. lista
aktualnie toczonych rozgrywek (jako tabelka zawierająca graczy oraz układ kart). Gdy użytkownik kliknie na rozdanie (oraz w parametrach turnieju zapisane jest, że system umożlwia oglądanie turnieju przez osoby postronne) uruchamiany jest aplet Javy o wyglądzie identycznym do apletu przeprowadzającego rozgrywkę, z tym, że oglądający widzi karty wszystkich oraz nie ma możliwości wysłania komunikatu do sędziego, ani wpłynięcia na toczącą się rozgrywkę w żaden sposób. 
Widz może uruchomić w ten sposób kilka apletów, oraz zamykać aplety w dowolnym momencie.}
{-}
{core}
{niskie}
{-}
{-}

\buc{Oglądanie byłych rozgrywek turniejowych (rozdań - jako gier)}
{Wszyscy użytkownicy portalu}
{brak}
{ Na stronie głównej www.bardzofajnyportal.pl znajduje się link do strony ,,Archiwum turniejów''.  Po otworzeniu jej wyświetla się lista zakończonych już turniejów  (nie usuniętych jeszcze ze względu na niski status i starość) -- posortowana malejąco według dat. Po wybraniu konkretnego turnieju otwiera się strona
zawierająca listę rozdań w tym turnieju. Po wybraniu rozdania otwiera się strona zawierająca listę par par (czyli 4 graczy), którzy to rozdanie grali. Po wybraniu takiej pary otwiera się aplet Javy - prezentujący rozdanie, tak jakby je widział przyglądający się mu widz, tzn. oglądający widzi karty wszystkich i jedynie może oglądać poczynania graczy poprzez klikanie przycisku ,,Dalej''. 
Widz może uruchomić w ten sposób kilka apletów, oraz zamykać aplety w dowolnym momencie.}
{-}
{core}
{niskie}
{-}
{-}

\buc{Oglądanie wyników wybranego turnieju}
{Wszyscy użytkownicy portalu}
{brak}
{ Na stronie głównej www.bardzofajnyportal.pl znajduje się link do strony ,,Archiwum turniejów''.  Po otworzeniu jej wyświetla się lista zakończonych już turniejów  (nie usuniętych jeszcze ze względu na niski status i starość) -- posortowana malejąco według dat. Po wybraniu konkretnego turnieju otwiera się strona 
zawierająca m.in. wyniki turnieju - zgodnie z przyjętym w turnieju systemem punktacji. 
}
{-}
{core}
{niskie}
{-}
{-}

\buc{Oglądanie rankingu graczy}
{Wszyscy użytkownicy portalu}
{brak}
{Na stronie głównej www.bardzofajnyportal.pl znajduje się link do strony ,,Rankingi''.  
Użytkownik po otworzeniu otrzymuje listę prowadzonych przez system rankingów. 
Po wybraniu konkretnego rankingu, można go obejrzeć w formie tabelki z kolumnami: Pozycja w rankingu, Pseudonim, Liczba punktów. Kliknięcie na nagłówki kolumn powoduje przesortowanie listy według wybranej kolumny. Wyświetlane jest maksymalnie pierwsze 1000 osób. 
Po kliknięciu na punktacje wybranej osoby, użytkownikowi otwiera się strona zawierająca listę turniejów, z których punkty do rankingu pochodzą (i liczba tych punktów). 
}
{-}
{core}
{niskie}
{-}
{-}

\buc{Rozmowa gracza z innymi graczami - na forum}
{Wszyscy gracze zalogowani w systemie}
{Gracz jest zalogowany}
{Użytkownik wybiera w menu portalu opcję ,,Chat''. Otwiera się niezależne okienko (zakładka - zależnie od przeglądarki internetowej) zawierające ,,chata'' złożone z dwóch podokien: listy użytkowników oraz historii tekstów. Użytkownik wpisuje tekst w okienko edycyjne i po naciśnięciu klawisza ,,Enter'' wszystkim użytkownikom posiadającym
otwarte okno ,,chata'' w systemie w przeciągu 5 sekund wyświetla się ten tekst (na końcu okna historia) poprzedzony loginem autora.}
{Otwiera się okno umożliwiające rozmowę}
{core}
{niskie}
{-}
{-}


\buc{Rozmowa gracza z innym, konkretnym graczem}
{Wszyscy gracze zalogowani w systemie}
{Gracz jest zalogowany}
{Użytkownik wybiera w menu w portalu opcję ,,Chat''. Otwiera się niezależne okienko (zakładka - zależnie od przeglądarki internetowej) zawierające ,,chata'' złożone z dwóch podokien: listy użytkowników oraz historii tekstów. Użytkownik klika dwukrotnie na innego użytkownika - z listy użytkowników.
Wskazanemu użytkownikowi w tym momencie zadawane jest pytanie, czy chce przyjąć rozmowę od konkretnego gracza. Jeśli tak, otwiera się kolejne okno przeglądarki zawierające okno rozmowy ze wskazanym graczem oraz pola edycyjne. Jeśli nie - użytkownik ,,inicjujący'' informowany jest, iż wybrany rozmówca odrzucił zaproszenie do rozmowy.  

W nowo otwarty oknie ,,chata prywatnego'' użytkownik może wpisywać teksty w pole edycyjne i po zatwierdzeniu ich klawiszem ,,Enter''
pojawiają się one w analogicznym oknie po stronie rozmówcy (w przeciągu 5 sekund)}
{Otwiera się okno umożliwiające rozmowę}
{core}
{niskie}
{-}
{-}

\buc{Wyświetlanie reklam}
{Wszyscy użytkownicy portalu}
{-}
{W trakcie działania systemu wyświetlane są reklamy. Ich format zależy od tego, czy użytkownik wykorzystuje w danym momencie aplet Javy, czy zwykłą stronę internetową. 

Na stronie internetowej reklamy pojawiają się w następujących miejscach:
\begin{itemize}
\item Wyskakujące okienko reklamowe przy pierwszym uruchomieniu portalu danego dnia (identyfikacja po IP)
\item Baner w górnej części okna o wymiarach 460x80 pikseli
\item 3 banery 60x40 znajdujące się pod menu z prawej strony okna przeglądarki
\end{itemize}

Dla apletu javy reklamy pojawiają sie w następujących miejscach
\begin{itemize}
\item Banner - w górnej części głównego okna (wymiary: 580x40 pikseli)
\item Reklamy znajdujące się na kartach (po stronie zasłoniętej), (wymiar 45x60 pixeli)
\item Banner - w dolnej części głównego okna (wymiary: 580x40 pikseli)
\item Główna tapeta okna - będzie przykrywana innymi elementami (wymiar: 580x400 pixeli)
\end{itemize}

Banery są w postaci obrazka i związanego z nim adresu URL. Użytkownikowi po kliknięciu na banner otwiera się nowe okno (bądź zakładka) zawierająca stronę z adresu związanego z banerem. Baner może być animowanym obrazkiem bądź też aplikacją Flash.}
{Portal zarabia na siebie}
{core}
{niskie}
{-}
{-}

\buc{Frequently Asked Questions - przeglądanie udzielonych odpowiedzi}
{Wszyscy użytkownicy portalu}
{-}
{Użytkownik wybiera z menu na głównej stronie portalu ,,Pomoc''. 
Na otworzonej w ten sposób stronie, jako jedna z pozycji, znajduje się link do ,,Odpowiedzi na najczęściej zadawane pytania''.
Po przejściu na tę stronę użytkownikowi ukazuje się listę pytań, które są jednocześnie linkami do odpowiedzi w systemie.
}
{Użytkownikowi dostarczone są informacje}
{core}
{niskie}
{-}
{-}

\buc{Frequently Asked Questions - zadawanie nowego pytania}
{Wszyscy użytkownicy portalu}
{-}
{Użytkownik wybiera z menu na głównej stronie portalu ,,Pomoc''. 
Na otworzonej w ten sposób stronie, jako jedna z pozycji, znajduje się link do ,,Odpowiedzi do najczęściej zadawane pytania''.
Po przejściu na tę stronę użytkownikowi ukazuje się lista pytań, które są jednocześnie linkami do odpowiedzi w systemie oraz przycisk ,,Zadaj nowe pytanie'', po którego kliknięciu, zostaje przeniesiony na stronę umożliwiającą wpisanie treści pytania. Po zatwierdzeniu pytania, użytkownik powraca do strony ,,Odpowiedzi na najczęściej zadawane pytania''. 
}
{Pytanie zostaje dołączone do listy, którą pracownik www.bardzofajnyportal.pl może przeglądać (patrz punkt 2.4.9) }
{core}
{niskie}
{-}{-}

\buc{Manual dla dowolnego użytkownika portalu}
{Wszyscy użytkownicy portalu}
{-}
{Użytkownik wybiera z menu na głównej stronie portalu ,,Pomoc''. 
Na otworzonej w ten sposób stronie, jako jedna z pozycji, znajduje się dokument pt. ,,Jak wziąć udział w rozgrywkach w portalu www.bardzofajnyportal.pl'' . 
}
{Użytkownikowi dostarczone zostają informacje}
{core}
{niskie}
{-}
{-}

\buc{Manual dla użytkownika apletu}
{Użytkownik używający apletu Javy do przeprowadzania i przeglądania rozgrywki}
{Użytkownik używa apletu Javy do przeprowadzania i przeglądania rozgrywki}
{Użytkownik naciska przycisk ,,Pomoc''. Zostaje otwarte nowe okno (lub zakładka) przeglądarki internetowej zawierające dokument pt. ,,Jak wziąć udział w rozgrywkach w portalu www.bardzofajnyportal.pl'' oraz link do FAQ. 
}
{Użytkownikowi zostają dostarczone informacje}
{core}
{niskie}
{-}
{-}


\buc{Wybór języka}
{Wszyscy użytkownicy portalu}
{-}
{Na górze wszystkich stron znajduje się flaga narodowa aktualnie używanego przez system języka, a obok niej strzałka skierowana w dół. Gdy użytkownik kliknie na ikonę lub strzałkę, zostanie przeniesiony na stronę, na której są flagi narodowe: Polski, Anglii, Stanów Zjednoczonych Ameryki, Niemiec, Francji, Rosji, Ukrainy, Hiszpanii, Chin, Japonii, Kenii, Tanzanii, Ugandy, Zairu, Czech i Esperanto :D. Po kliknięciu na odpowiednią flagę, system przechodzi do strony wyjściowej (rozpoczęcia procedury), lecz posiadającej interfejs użytkownika w wybranym języku. }
{Cała komunikacja z użytkownikiem od tego momentu przeprowadzana jest w wybranym języku.}
{core}
{średnie}
{-}
{-}

\buc{Gra z SI (sztuczną inteligencją) }
{Gracz prowadzący ,,stolik''}
{Gracz założył stolik, na którym nie ma jeszcze kompletu graczy}
{Gracz znajdując się na stronie opieki nad stolikiem (patrz 2.1.3), stwierdza, że chce, by jago partnerem, bądź rywalem była ,,sztuczna inteligencja''. Wciska przycisk ,,Zaproś gracza''. System wypisuje listę wszystkich zalogowanych w danym momencie graczy wraz z opcją ,,Sztuczna inteligencja''. Po wybraniu jej oraz pozycji, na której będzie ,,ona'' grała, SI zasiada przy stoliku na zasadach w pełni analogicznych do ,,prawdziwej inteligencji''.} 
{W grze uczestniczy ,,sztuczna inteligencja''}
{core}
{wysokie}
{-}
{-}

\buc{Nauka gry w brydża}
{Dowolny użytkownik portalu}
{-}
{Użytkownik z głównej strony portalu www.bardzofajnyportal.pl przechodzi poprzez wybranie linku do 
strony zawierającej ,,samouczek brydża''. Przechodzi do stron webowych zawierających opis zasad i ,,dobre rady''. 
Na stronach tych mogą być również zawarte (w postaci linków) zapisy pojedynczych rozdań brydżowych, po których wybraniu
system uruchamia aplet Javy (analogiczny do tego służącego do uczestnictwa w rozgrywce), na którym może oglądać kolejne ruchy graczy w rozdaniu i przy pomocy przycisku ,,dalej'' przechodzić do kolejnych ruchów. 
}
{Użytkownik przegląda informacje}
{core}
{niskie}
{-}
{-}

\newpage
\subsection{Sędzia}

\buc{Zalogowanie sędziego do portalu}% Tytul
{Sędzia}%Udzial biora
{-}%Wymaga, aby wczesniej
{Sędzia wchodzi na stronę dla sędziów portalu \wfp. Uruchamia się u niego aplet sędziowski, który na początek prosi o podanie loginu i hasła.
Sędzia spełnia żądanie i dostaje odpowiedź, czy podał prawidłowe hasło.}%Przebieg zdarzenia
{Sędzia zostaje zalogowany do serwisu. Aplet nawiązuje połączenie z serwerem.}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Sędzia ma możliwość zrobienia czegokolwiek}%Oferowane mozliwosci
{Loginy i hasła graczy, którzy stali się sędziami, są ,,dziedziczone''.}%Uwagi

\buc{Wylogowanie sędziego z portalu}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany do portalu}%Wymaga, aby wczesniej
{Sędzia klika w aplecie przycisk wyloguj, po czym aplet rozłącza się z serwisem.}%Przebieg zdarzenia
{Koniec pracy sędziego}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Zabezpieczenie przed innymi użytkownikami tego samego komputera}%Oferowane mozliwosci
{-}%Uwagi

\buc{Zmiana hasła}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany}%Wymaga, aby wczesniej
{Sędzia z menu w aplecie wybiera opcję ,,zmień hasło'', po czym wprowadza dwukrotnie nowe hasło oraz poprzednie hasło w celu weryfikacji.}%Przebieg zdarzenia
{Hasło zostaje zmienione}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Większe bezpieczeństwo}%Oferowane mozliwosci
{-}%Uwagi

\buc{Zmiana danych}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany}%Wymaga, aby wczesniej
{Sędzia wybiera w aplecie opcję ,,moje dane'', po czym zmienia swoje dane: adres email itd.}%Przebieg zdarzenia
{Zmieniono dane sędziego w bazie danych}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Aktualność bazy danych}%Oferowane mozliwosci
{-}%Uwagi

\buc{Zgłoszenie gracza, który chce zostać sędzią}% Tytul
{Doświadczony gracz}%Udzial biora
{Gracz był zalogowany}%Wymaga, aby wczesniej
{Gracz poprzez jedną z opcji menu swojego apletu, zgłasza chęć zostania sędzią, dołączając do tego kilka zdań motywacyjnych, o które prosi go aplet.
Zgłoszenia graczy są moderowane przez pracowników \wfp.}%Przebieg zdarzenia
{Gracz zostaje sędzią lub jego prośba zostaje odrzucona}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Zwiększenie liczby sędziów, zwiększenie możliwości graczom}%Oferowane mozliwosci
{Rozważane jest udostępnienie możliwości zostania sędzią tylko graczom z pewnym doświadczeniem bądź pozycji w rankingu}%Uwagi

\buc{Pomoc}% Tytul
{Sędzia}%Udzial biora
{-}%Wymaga, aby wczesniej
{Obok apletu na stronie sędziowskiej \wfp, dostępny jest plik pomocy .hlp dla sędziów. Sędzia klika na link - otwiera się pomoc.
Pomoc dotyczy obsługi apletu.}%Przebieg zdarzenia
{Sędzia uzyska pomoc}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Pomoc dla sędziów, samodzielna nauka sędziów odnośnie korzystania z apletu}%Oferowane mozliwosci
{-}%Uwagi

\buc{FAQ}% Tytul
{Sędzia}%Udzial biora
{-}%Wymaga, aby wczesniej
{Obok apletu i linku do pomocy na stronie sędziowskiej \wfp, dostępne jest też FAQ podtrzymywane przez pracowników \wfp. Sędzia klika na link.}%Przebieg zdarzenia
{Sędzia może przeglądać FAQ dotyczące apletu sędziowskiego}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Mniej pytań do pracowników \wfp ze strony sędziów.}%Oferowane mozliwosci
{-}%Uwagi

\buc{Utworzenie nowego turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany}%Wymaga, aby wczesniej
{Sędzia wybiera z menu opcję ,,nowy turniej''. Aplet otwiera przed nim formularz. Sędzia ustala w formularzu, czy aplet ma być dostępny dla wszystkich 
  (publiczny), czy też tylko dla zaproszonych gości (prywatny), ustala datę turnieju, maksymalną liczbę graczy, sposób punktacji i rozgrywek 
    (mecz, turniej standardowy, itd.).}%Przebieg zdarzenia
{Zostaje utworzony nowy turniej}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Możliwość robienia prywatnych, nieoficjalnych turniejów sędziów.}%Oferowane mozliwosci
{Nowo założony turniej wymaga jeszcze: jeśli jest niepubliczny, zdefiniowania zaproszonych uczestników. Może się to odbywać przez dodanie pojedynczych
graczy do turnieju, bądź przez ustalenie kryteriów dostępu do turnieju. Ponadto każdy turniej wymaga ustalenia, od kiedy o nim informacje zostają ujawnione
publicznie oraz ,,zatwierdzenia'' turnieju przez sędziego - dopiero zatwierdzony turniej pojawia się w listingu turniejów widocznych przez graczy.

Te działania są opisane w dalszych Przypadkach Użycia przez sędziego.}%Uwagi

\buc{Ustalenie dostępności turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany i edytował jeden ze swoich turniejów}%Wymaga, aby wczesniej
{Sędzia ustala za pomocą opcji i ekranu apletu poświęconemu nowym turniejom, dostępność turnieju - czy jest on publiczny czy prywatny.}%Przebieg zdarzenia
{Sędzia definiuje dostępność turnieju.}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Personalizacja turniejów}%Oferowane mozliwosci
{Odbywa się to przy tworzeniu nowego turnieju}%Uwagi

\buc{Ustalenie, kto może brać udział w turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany oraz edytuje swój prywatny turniej}%Wymaga, aby wczesniej
{Sędzia ustala progi, jakie użytkownicy muszą spełnić, by być uczestnikami turnieju. 
Warunkami mogą być:
\begin{itemize}
\item odpowiednie miejsce w globalnym rankingu,
\item pochodzenie z odpowiedniego miasta bądź klubu,
\item odpowiednie miejsce w innym turnieju,
\item odpowiedni staż w portalu \wfp,
\item podanie określonego hasła.
\end{itemize}}%Przebieg zdarzenia
{Sędzia ogranicza dostępność turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Personalizacja turniejów}%Oferowane mozliwosci
{Turniej musi być niepubliczny, by była dostępna ta opcja.}%Uwagi

\buc{Zaproszenie gracza do turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany oraz edytuje swój prywatny turniej}%Wymaga, aby wczesniej
{Sędzia, obok ustalenia progów, może zaprosić pojedynczych graczy do turnieju. Może on wyszukać graczy za pomocą imienia i nazwiska bądź loginu,
a następnie dodać ich do listy uczestników turnieju. W szczególności turniej może składać się np. z 20 zaproszonych osób i nikogo więcej.}%Przebieg zdarzenia
{Gracz zostaje zaproszony do turnieju.}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Tworzenie małych, lokalnych turniejów}%Oferowane mozliwosci
{Człowiek zaproszony nie musi spełniać warunków z poprzedniego punktu.}%Uwagi

\buc{Ustalenie sposobu rozgrywki oraz punktacji turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany i edytował swój turniej}%Wymaga, aby wczesniej
{Sędzia wybiera jedną z opcji:
\begin{itemize}
\item Turniej jest meczem par.
\item Turniej jest tradycyjnym turniejem par.
\item Turniej jest turniejem indywidualnym
\end{itemize}
oraz wybiera sposób punktacji turnieju.}%Przebieg zdarzenia
{Ustalenie sposobu rozgrywania turnieju.}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Różnorodność turniejów.}%Oferowane mozliwosci
{Sposoby punktacji będą dodawane w miarę potrzeb i pomysłów graczy i sędziów.}%Uwagi

\buc{Ustalenie kolejności rozgrywek}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, edytował swój turniej i wybrał już typ turnieju (poprzedni punkt).}%Wymaga, aby wczesniej
{Sędzia za pomocą graficznego panelu z pomocą myszki, ustala kolejność przechodzenia par (osób) w turnieju, kilka sposobów jest predefiniowanych.
Może je modyfikować.}%Przebieg zdarzenia
{Ustalenie sposobu rozgrywania turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Personalizacja turnieju}%Oferowane mozliwosci
{Ta opcja będzie dość uproszczona, ew. później na życzenie \wfp  rozbudowana. Wstępnie będzie istniała możliwość wyboru z kilku predefiniowanych układów oraz przypisanie
zaproszonych osób do miejsc startowych.}%Uwagi

\buc{Ustalenie rozdań}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, edytował swój turniej i ustalił typ turnieju oraz kolejność rozgrywek (poprzednie dwa punkty).}%Wymaga, aby wczesniej
{Standardowo wszystkie rozdania w turnieju są losowane. Sędzia może jednak dla każdego rozdania, zdefiniować je wcześniej. W tym celu
sędzia klika na opcję w menu ,,rozdania'', po czym wybiera numer rozdania w turnieju. Ma wgląd, które po kolei pary je grają, może wprowadzić,
co jest na której ręce.}%Przebieg zdarzenia
{Wprowadzenie ułożonego uprzednio rozdania do turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Ciekawe rozdania w turnieju}%Oferowane mozliwosci
{-}%Uwagi

\buc{Ustawienie czasu publikacji informacji o turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany i edytował swój turniej}%Wymaga, aby wczesniej
{Sędzia ustala, od kiedy informacje o turnieju są dostępne w listingu turniejów na stronie \wfp.}%Przebieg zdarzenia
{Ustalenie, od kiedy informacja o turnieju jest jawna}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Definiowanie turniejów dużo wcześniej i nie ,,zaśmiecanie'' kalendarza przedwcześnie.}%Oferowane mozliwosci
{-}%Uwagi

\buc{Zatwierdzenie turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany i wykonał już wszystkie wcześniejsze, konieczne czynności odnośnie turnieju}%Wymaga, aby wczesniej
{Sędzia klika ,,zatwierdź''.}%Przebieg zdarzenia
{Turniej jest zatwierdzony przez system, odbędzie się.}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Sędzia może bez pośpiechu układać turniej, nie zatwierdzając go, w trakcie kilku sesji pracy.}%Oferowane mozliwosci
{-}%Uwagi

\buc{Przeglądanie chętnych do turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, miał zatwierdzony turniej}%Wymaga, aby wczesniej
{Sędzia klika na opcję w menu ,,moje turnieje'', wybiera swój turniej a następnie ,,lista zgłoszonych''.}%Przebieg zdarzenia
{Sędzia ma listę ludzi, co się zgłosiła do turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Nadzór nad tym, kto jest w turnieju}%Oferowane mozliwosci
{Przydatne w usuwaniu niechcianych chętnych}%Uwagi

\buc{Usunięcie chętnego do turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, miał zatwierdzony turniej}%Wymaga, aby wczesniej
{Sędzia wybiera gracza z listy chętnych i klika ,,usuń''. Gracz ten nie może się już zarejestrować do tego turnieju,}%Przebieg zdarzenia
{Usunięcie niechcianego gracza z turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Filtrowanie graczy w turnieju}%Oferowane mozliwosci
{-}%Uwagi

\buc{Wystartowanie swojego turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, miał turniej, który za chwilę planowo ma ruszyć}%Wymaga, aby wczesniej
{Sędzia klika na opcję ,,aktualny turniej'', aplet wyświetla wówczas menu dotyczące aktualnego turnieju oraz listę zalogowanych graczy.}%Przebieg zdarzenia
{Wystartowanie turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Nadzór sędziego nad turniejem}%Oferowane mozliwosci
{-}%Uwagi

\buc{Usunięcie nieobecnych graczy}% Tytul
{Sędzia}%Udzial biora
{Sędzie był zalogowany i miał aktualnie aktywny turniej}%Wymaga, aby wczesniej
{Sędzia klika na gracza w liście graczy, który nie zalogował się, i usuwa jego (i ew. jego partnera) z turnieju.}%Przebieg zdarzenia
{Usunięcie nieobecnego gracza}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Granie mimo nieobecności części graczy}%Oferowane mozliwosci
{-}%Uwagi

\buc{Ruszenie turnieju}% Bogdan mówi bankowy, Pochrybniak mówi dupa.
{Sędzia}%Udzial biora
{Sędzia był zalogowany, miał aktywny turniej, wszyscy gracze byli zalogowani}%Wymaga, aby wczesniej
{Sędzia klika ,,start''. Grającym uczestnikom pojawiają się w apletach pierwsze rozdania, rozpoczynają grę.}%Przebieg zdarzenia
{Rozpoczyna się turniej}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Jednoczesny start turnieju}%Oferowane mozliwosci
{Przebieg turnieju, kolejne rozdania oraz pilnowanie podstawowych zasad brydża, nadzoruje system. Sędzia jest potrzebny tylko do rozwiązywania 
nietypowych problemów, odpowiadania na pytania graczy oraz decyzji na koniec, co zrobić z wynikami.}%Uwagi

\buc{Odpowiedź na pytanie gracza}% Tytul
{Sędzia, gracz}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej, gracz zadał pytanie}%Wymaga, aby wczesniej
{Sędzia w oknie komunikatora rozmawia z graczem. Może to skutkować nałożeniem kary na innego gracza.}%Przebieg zdarzenia
{Rozmowa gracza z sędzią}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Zgłaszanie nieprawidłowości, zadawanie pytań}%Oferowane mozliwosci
{Głównie służy to do zgłaszania nieprawidłowości w grze.}%Uwagi

\buc{Wysłanie komunikatu do gracza}% Tytul
{Sędzia, gracz}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej, gracz grał}%Wymaga, aby wczesniej
{Sędzia klika na gracza, klika ,,rozmowa'' i przez komunikator rozmawia z graczem}%Przebieg zdarzenia
{Rozmowa}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Komunikacja z graczami}%Oferowane mozliwosci
{-}%Uwagi

\buc{Nałożenie kary punktowej na gracza bądź parę}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej}%Wymaga, aby wczesniej
{Sędzia zaznaczy graczy, klika ,,kary'', ustala wymiar kary oraz wypełnia rubryczkę ,,za co''.}%Przebieg zdarzenia
{Zostaje nałożona kara}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Kary regulaminowe na turniejach}%Oferowane mozliwosci
{-}%Uwagi

\buc{Usunięcie gracza z turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej}%Wymaga, aby wczesniej
{Sędzia zaznacza gracza bądź parę i klika ,,usuń''. Gracze zostają usunięci z turnieju}%Przebieg zdarzenia
{Usunięcie graczy z turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Usuwanie graczy}%Oferowane mozliwosci
{Punktacja po usunięciu jest liczona standardowo - liczy się, że usunięci gracze graliby jak średnia sali w pozostałych rozdaniach.}%Uwagi

\buc{Przerwanie turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej}%Wymaga, aby wczesniej
{Sędzia klika ,,anuluj turniej''.}%Przebieg zdarzenia
{Przerwanie turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Przerwanie turnieju w razie nagłej konieczności}%Oferowane mozliwosci
{Nie będzie to, miejmy nadzieję, używana opcja. Istnieje jednak na wszelki wypadek, w przypadku nieprzewidzianych zdarzeń.}%Uwagi

\buc{Przyjęcie rezygnacji gracza z turnieju w trakcie trwania rozgrywek}% Tytul
{Sędzia, gracz}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej, gracz bądź para brała w nim udział}%Wymaga, aby wczesniej
{Gracze zgłaszają pytaniem, że chcą zrezygnować. Sędzia usuwa ich z turnieju}%Przebieg zdarzenia
{Odejście z turnieju graczy}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Rezygnacja graczy, którym nagle coś się przytrafiło, bez konieczności zakończenia turnieju}%Oferowane mozliwosci
{Punkty za nieobecnych są liczone jako średnia z rozgrywek}%Uwagi

\buc{Obejrzenie rozgrywki z turnieju}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej}%Wymaga, aby wczesniej
{Sędzia klika na opcję menu ,,rozegrane rozgrywki'', wybiera rozgrywkę i ogląda przebieg tej rozgrywki. Sędzia ogląda to rozdanie tak samo,
jak widz może oglądać rozdania po turnieju (patrz Przypadki Użycia Gracza).}%Przebieg zdarzenia
{Sędzia widzi, co się stało na turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Oglądanie rozgrywek, ew. wykrywanie nieprawidłowości, zaspokajanie ciekawości sędziego, weryfikacja dziwnych wyników rozgrywek}%Oferowane mozliwosci
{-}%Uwagi

\buc{Podejrzenie aktualnego stanu stolika}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej, trwało jakieś rozdanie}%Wymaga, aby wczesniej
{Sędzia klika na opcję menu ,,aktualne rozgrywki'', wybiera rozgrywkę i przygląda się, co się dzieje}%Przebieg zdarzenia
{Sędzia ogląda na żywo przebieg turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Natychmiastowa reakcja na zaistniałe sytuacje}%Oferowane mozliwosci
{Sędzia może otwierać kilka okienek z różnymi stolikami}%Uwagi

\buc{Podsumowanie wyników turnieju, ustalenie końcowego rankingu}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej, zakończyły się wszystkie rozgrywki turnieju}%Wymaga, aby wczesniej
{Po zakończeniu wszystkich rozgrywek, w menu sędziego pojawia się opcja ,,wyniki''. Sędzia wybierając ją, ma możliwość przeglądania rankingów proponowanych przez system,
może w tym momencie zmienić sposób naliczania punktów bądź też jeszcze nałożyć kary.}%Przebieg zdarzenia
{Podsumowanie wyników turnieju}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Zakończenie turnieju}%Oferowane mozliwosci
{Po zatwierdzeniu wyniki są wysyłane graczom}%Uwagi

\buc{Wysłanie wyników turnieju do serwera}% Tytul
{Sędzia}%Udzial biora
{Sędzia był zalogowany, trwał jego turniej, zakończyły się wszystkie rozgrywki, nastąpiło podsumowanie wyników}%Wymaga, aby wczesniej
{Sędzia klika ,,wyślij wyniki turnieju'', wyniki zostają wprowadzone do bazy danych i uwzględnione w rankingach}%Przebieg zdarzenia
{Dołączenie wyników turnieju do bazy danych i rankingów}%Efekt
{core}%Kategoria
{niskie}%Ryzyko
{Uwzględnienie turnieju w rankingach}%Oferowane mozliwosci
{-}%Uwagi

\buc{Eksport wyników turnieju do pliku}% Tytul
{Sędzia}
{Sędzia był zalogowany, trwał jego turniej, zakończyły się wszystkie rozgrywki, nastąpiło podsumowanie wyników}%Wymaga, aby wczesniej
{Sędzia po zakończeniu turnieju może kliknąć ,,eksport wyników''. Wybiera on jedną z opcji:
  \begin{itemize}
  \item plik tekstowy;
  \item plik tekstowy, kolumny pooddzielane znakami | lub ; (dla Excela itd.);
  \item formaty popularych turniejów do obsługi turniejów.
  \end{itemize}
 Po wybraniu, gdzie zapisać wyniki, wyniki zostają zapisane na dysku programu sędziego.}
{Eksport wyników do innego formatu.}
{usługi}
{średnie}
{Współpraca z innymi bazami danych}
{-}

\newpage
\subsection{Reklamodawca}

\buc{Rejestracja reklamodawcy}{Reklamodawca}{-}{
Reklamodawca wybiera z menu Reklamodawca\strz zarejestruj. Otwiera się okno,
w które reklamodawca wpisuje swoje dane (imię, nazwisko, dane instytucji, którą reprezentuje,
e-mail) i oczywiście login i dwukrotnie hasło. Reklamodawca musi też zaznaczyć checkbox przy treści
zgody na przetwarzanie jego danych przez www.bardzofajnyportal.pl. Po kliknięciu ,,rejestruj'', o ile obowiązkowe pola zostały
wypełnione, reklamodawca zostaje zarejestrowany w systemie.}{
Reklamodawca zostaje zarejestrowany w systemie}{
supporting}{niskie}{Korzystanie przez reklamodawcę z serwisu}{-}

\buc{Zalogowanie się reklamodawcy}{Reklamodawca}{Reklamodawca jest zarejestrowany}{
  Reklamodawca wchodzi na witrynę Reklamodawcy\strz logowanie. Wprowadza
  swój login i hasło po czym potwierdza.}{
 Reklamodawca zostaje zalogowany do serwisu lub dostaje komunikat o błędnym haśle.}{
  supporting}{
  niskie}{
  działanie systemu}{
  Konieczne, by wykonać dowolne, inne czynności będąc reklamodawcą}

\buc{Wylogowanie się reklamodawcy}{Reklamodawca}{Był zalogowany do portalu}%Wymaga, aby wczesniej
{Reklamodawca klika na ,,wyloguj''.}%Przebieg zdarzenia
{Koniec pracy reklamodawcy}%Efekt
{supporting}%Kategoria
{niskie}%Ryzyko
{Zabezpieczenie przed innymi użytkownikami tego samego komputera}%Oferowane mozliwosci
{-}%Uwagi

\buc{Zgłoszenie reklamy}{Reklamodawca}{Był zalogowany w portalu}{
Reklamodawca klika na ,,zgłoś baner''. Pojawia się formularz, w którym należy 
wybrać gdzie ma być ten baner umieszczony spośród następujących możliwości:
\begin{itemize}
\item
na stronie internetowej:
\begin{itemize}
\item Wyskakujące okienko reklamowe przy pierwszym uruchomieniu portalu danego dnia (identyfikacja po IP)
\item Baner w górnej części okna o wymiarach 460x80 pikseli
\item 3 banery 60x40 znajdujące się pod menu z prawej strony okna przeglądarki
\end{itemize}
\item
w aplecie javy gracza:
\begin{itemize}
\item Banner - w górnej części głównego okna (wymiary: 580x40 pikseli)
\item Reklamy znajdujące się na kartach (po stronie zasłoniętej), (wymiar 45x60 pixeli)
\item Banner - w dolnej części głównego okna (wymiary: 580x40 pikseli)
\item Główna tapeta okna - będzie przykrywana innymi elementami (wymiar: 580x400 pixeli).
\end{itemize}
\end{itemize}
Następnie reklamodawca podaje adres URL, w przypadku wybrania baneru, do którego ma prowadzić
link. Następnie klika na ,,otwórz'' i dzięki odpowiedniemu okienku otwierania
wybiera plik gif z lokalnego komputera, który na być umieszczony.
Reklamodawca wpisuje też okres na jaki chce swą reklamę umieścić (pojawia się informacja ze wstępnym
oszacowaniem ceny).
Po kliknięciu zatwierdź informacja o zgłoszeniu jest dostępna dla pracowników portalu.}{
Zgłoszenie chęci umieszczenia reklamy w portalu.}{supporting}{niskie}{-}{Potwierdzenie przyjęcia zgłoszenia i
termin zapłaty, reklamodawca otrzymuje pocztą elektroniczną - patrz przypadki użycia od strony pracownika portalu.}

\buc{Podgląd stanu własnych banerów}{Reklamodawca}{był zalogowany}{
Rklamodawca klika na ,,stan banerów''. Wyświetla się okno z zamieszczonymi i
zgłoszonymi reklamami i informacjami o nich, takimi jak: liczba odsłon, liczba kliknięć oraz stan 
(zgłoszony, zaakceptowany, opłacony).}{
Reklamodawca poznaje stan swoich reklam.}{suporting}{niskie}{-}{-}

\buc{Wydrukowanie formularza przelewu opłaty za baner}{Reklamodawca}{był zalogowany}{
Reklamodawca wyświetla stan swoich banerów (patrz poprzedni punkt). Przy każdej zaakceptowanej, nieopłaconej reklamie,
pokazuje się cena i link ,,wydrukuj formularz przelewu''. Po kliknięciu na ten link, pokazuje się wypełniony formularz
przelewu, przystosowany do wydruku.}{Reklamodawca może wydrukować formularz przelewu}{supporting}{niskie}{-}{-}


\buc{Kontakt z pracownikiem www.bardzofajnyportal.pl}{Reklamodawca}{nie musi być zalogowany}{
Reklamodawca klika ,,napisz do pracownika www.bardzofajnyportal.pl''. W efekcie wyświetla się formularz z miejscem 
na wpisanie treści wiadomości, zwrotnego adresu e-mail, imienia i nazwiska, nazwy reprezentowanej instytucji
(jeżeli reklamodawca jest zalogowany, elementy te wypełniane są automatycznie. 
Po uzupełnieniu formularza, reklamodawca klika na ,,wyślij''. Wiadomość zostaje dołączona do listy pytań od
reklamodawców, które przeglądają pracownicy (patrz przypadki użycia od strony pracownika).}{
Zapewniony jest kontakt reklamodawcy z pracownikiem www.bardzofajnyportal.pl}{supporting}{niskie}{-}{
Odpowiedź pracownika system wysyła e-mailem.}

\buc{Przegląd statystyk reklam}{Reklamodawca}{był zalogowany}{
Reklamodawca klika na ,,statystyki reklam''. Wyświetla się informacja zawierająca statystyki (liczba odsłon, liczba kliknięć)
podzielona na miejsca, w których można umieścić reklamę.}{-}
{supporting}{niskie}{-}{-}

\newpage
\subsection{Pracownik www.bardzofajnyportal.pl}

\buc{Zalogowanie się pracownika}{Pracownik}{Nic}{
  Pracownik wchodzi na odpowiednią witrynę serwisu. Wprowadza
  swój login i hasło po czym potwierdza.}{
  Pracownik zostaje zalogowany do serwisu lub dostaje komunikat o błędnym haśle.}{
  management}{
  niskie}{
  działanie systemu}{
  Konieczne, by wykonać dowolne, inne czynności będąc pracownikiem}
  
\buc{Wyświetlanie listy graczy}{Pracownik}{Zalogował się pracownik z prawem  obsługi użytkowników}{
  Pracownik wybiera z menu opcję ,,Dane\strz Gracze''. Wyświetlone zostaje okno
  pozwalające nanieść filtr na graczy (wyświetlić tylko część). Użytkownik
  za pomocą pól tekstowych, opuszczanych menu i checkboxów, wybiera odpowiadające 
  mu opcje i klika ,,OK''}{
  Zostaje wyświetlona lista graczy (imię, nazwisko, login, status) odpowiadająca wybranym
  opcjom}{
  management}{
  niskie}{-}{
  Konieczne, by wykonać dowolne, inne czynności związane z danymi graczy}
  
\buc{Wyświetlanie danych gracza}{Pracownik}{ Zalogował się pracownik z prawem obsługi użytkowników}{
  Pracownik wyświetla spis graczy (2.4.2), a następnie klika na wybranego gracza}{
  Zostają wyświetlone wszystkie dane tego gracza, informacje o udziale w turniejach i
  pozycji tego gracza w rankingu i jego wynikach, informacje związane ze statusem gracza (np. bycie sędzią)
  i przycisk ,,usuń'' (2.4.4)}{
  management}{
  niskie}{-}{
  Konieczne, by usunąć gracza lub zmienić jego status}

\buc{Usunięcie gracza}{Pracownik}{Zalogował się pracownik z prawem obsługi użytkowników}{
  Pracownik wyświetla informacje o danym graczu (2.4.3) i klika ,,usuń''. System prosi o
  potwierdzenie. System wyświetla też miejsce, w które pracownik wpisuje uzasadnienie, które ma
  być wysłane do gracza. W przypadku pozytywnej odpowiedzi (kliknięcia ,,tak,  usuń gracza'' system 
  usuwa gracza z bazy danych, wysyłając mu e-mail z informacją o usunięciu i
  uzasadnieniem. Dodatkowo wyświetla potwierdzenie wykonania operacji. W przeciwnym przypadku 
  (kliknięcie ,,anuluj''), system powraca do wyświetlania danych o wybranym graczu.}{
  Użytkownik zostaje usunięty.}{
  management}{
  niskie}{-}{-}

\buc{Zmiana statusu gracza}{Pracownik}{Zalogował się pracownik z prawem obsługi użytkowników}{
  Pracownik wyświetla informacje o danym graczu (2.4.3). Może wtedy zmienić jego status
  wybierając status z opuszczanego menu i klikając na przycisk ,,zmień'' znajdujący się obok.
  Teraz system wyświetla potwierdzenie wykonania operacji. Zostaje wysyłany e-mail do gracza z informacją o zmianie statusu.}{
  Status gracza zostaje zmieniony}{
  management}{
  niskie}{-}{-}
  
\buc{Wyświetlenie listy graczy ubiegających się o status sędziego}{Pracownik}{Zalogował się pracownik z prawem obsługi użytkowników}{
  Jedną z opcji dostępnych przy wyświetlaniu listy graczy (2.4.2) jest wyświetlenie
  tylko tych, którzy ubiegają się o status sędziego.}{
  Wyświetlona zostaje lista graczy ubiegających się o status sędziego}{
  management}{
  niskie}{-}{-}
  
\buc{Zaakceptowanie prośby gracza o status sędziego lub jej odrzucenie z prawem obsługi użytkowników}{Pracownik}{Pracownik się zalogował}{
  Wyświetlenie informacji o danym graczu (2.4.3), powoduje wyświetlenie informacji o
  tym, że gracz ubiega się o status sędziego. Przy tej informacji pracownik znajdzie przyciski ,,zaakceptuj'' i ,,odrzuć''.
  Kliknięcie ,,zaakceptuj'', spowoduje wyświetlenie okna służącego do potwierdzenia tej operacji. Potwierdzenie - kliknięcie ,,OK'',
  powoduje zmianę statusu gracza, wysłanie do niego e-maila z informacją o tej zmianie i
  wyświetlenie informacji o tym, że zmiana została dokonana. Kliknięcie ,,odrzuć'', spowoduje
  wyświetlenie miejsca, w które pracownik ma wpisać uzasadnienie decyzji o odrzuceniu i prośby o potwierdzenie
  tej decyzji. W przypadku kliknięcia ,,OK'', zostaje wysłany do gracza e-mail z informacją o 
  odrzuceniu jego prośby i uzasadnieniem}{
  Prośba gracza zostaje rozpatrzona. W przypadku pozytywnym staje się on sędzią}{
  management}{
  niskie}{-}{-}

\buc{Wyświetlanie listy pytań}{Pracownik}{Pracownik się zalogował i miał prawa obsługi pytań i FAQ}{
  Pracownik wybiera w menu opcję ,,Pytania i FAQ\strz Zadane pytania''. System wyświetla okno,
  pozwalające wybrać, które pytania chce się przejrzeć (data, od kogo). Po wybraniu i kliknięciu ,,OK'',
  pracownik zobaczy listę pytań (treść, autor), przy każdym przycisk ,,odpowiedz''.}{
  Wyświetlona zostaje lista pytań zgodnie z wyborem pracownika}{
  management}{
  niskie}{-}{
  Konieczne do udzielenia odpowiedzi na pytanie}
  
\buc{Udzielenie odpowiedzi na pytanie}{Pracownik}{Pracownik się zalogował i miał prawa obsługi pytań i FAQ}{
  Pracownik wyświetla listę interesujących go pytań (2.4.9) i przy wybranym pytaniu klika
  ,,odpowiedz''. System wyświetla okno zawierające treść, autora pytania oraz miejsce na 
  udzielenie odpowiedzi. Pracownik może kliknąć ,,anuluj'', w wyniku czego cała operacja zostaje przerwana,\
  a system powraca do wyświetlenia listy pytań. Pracownik po wpisaniu odpowiedzi klika ,,wyślij''. System wysyła e-mailem odpowiedź osobie, która zadała to pytanie i wyświetla
  pracownikowi informację o wysłaniu odpowiedzi. Pracownik może kliknąć ,,dodaj do FAQ'', wybierając,
  o które FAQ mu chodzi (dla sędziów, reklamodawców, graczy, widzów), co powoduje dodanie
  pytania i odpowiedzi do odpowiedniego FAQ. Następnie pytanie usuwane jest z listy zadanych
  pytań.}{
  Na pytanie zostaje udzielona odpowiedź. Pracownik ma możliwość dołączenia pytania i odpowiedzi do FAQ}{
  management}{
  niskie}{-}{-}
  
\buc{Dodanie elementu do FAQ}{Pracownik}{Pracownik się zalogował i miał prawa obsługi pytań i FAQ}{
  Pracownik wybiera z menu ,,Pytania i FAQ\strz Nowe FAQ''. Wyświetla się pole do wpisania 
  pytania i pole do wpisania odpowiedzi, przyciski ,,dodaj'' i ,,anuluj'' oraz opuszczane menu,
  umożliwiające wybór, do którego FAQ (dla sędziów, graczy, reklamodawców, widzów) dodać element. Pracownik
  wpisuje treść pytania wraz z odpowiedzią, a następnie klika ,,dodaj''. System wyświetla potwierdzenie wykonania
  czynności.}{
  Został dodany element do FAQ.}{
  management}{
  niskie}{-}{
  Istnieje możliwość dodania zadanego pytania do FAQ. Opisana jest ona w punkcie 2.4.9}
  
\buc{Edycja lub usuwanie elementów FAQ}{Pracownik}{Pracownik się zalogował i miał prawa obsługi pytań i FAQ}{
  Pracownik wybiera z menu ,,Pytania i FAQ\strz Edycja FAQ''. Pokazuje się okno,
  w którym pracownik wybiera, które FAQ go interesuje i klika ,,OK''. Wyświetla się lista
  FAQ, przy każdym z nich przyciski ,,edytuj'' i ,,usuń''. Kliknięcie przycisku ,,usuń''
  powoduje wyświetlenie okna z prośbą o potwierdzenie. Po kliknięciu na nim ,,OK'', element 
  FAQ zostaje usunięty i wyświetlone zostaje potwierdzenie wykonania operacji.
  \\ Natomiast kliknięcie ,,edytuj'', powoduje wyświetlenie
  okna edycji pytania i odpowiedzi z przyciskami ,,anuluj'' i ,,zatwierdź zmiany''.
  Kliknięcie ,,zatwierdź zmiany'' spowoduje zmianę elementu FAQ i wyświetlenie
  informacji potwierdzającej wykonanie tej operacji}{
  Wybrany element FAQ został usunięty lub zmieniony}{
  management}{
  niskie}{-}{-}
  
\buc{Wyświetlanie zgłoszeń reklamodawców}{Pracownik}{Pracownik się zalogował i miał prawa obsługi reklamodawców}{
  Pracownik wybiera z menu ,,Reklamy\strz Zgłoszenia reklamodawców''. W odpowiedzi
  system wyświetla zgłoszenia reklamodawców wraz z odpowiednimi komentarzami i 
  zgłoszonymi banerami. Przy każdym zgłoszeniu są dwa przyciski: ,,akceptuj'' i ,,odrzuć''}{
  Wyświetlone zostają zgłoszenia reklamodawców}{
  management}{
  niskie}{-}{
  Konieczne by zaakceptować lub odrzucić zgłoszenie reklamodawcy}
  
\buc{Akceptowanie lub odrzucanie zgłoszeń reklamodawców}{Pracownik}{Pracownik się zalogował i miał prawa obsługi reklamodawców}{
  Pracownik wyświetla zgłoszenia reklamodawców (2.4.12). Kliknięcie ,,akceptuj'' przy wybranym zgłoszeniu
  powoduje wyświetlenie okna pozwalającego pracownikowi na wybranie miejsca na baner (checkboxy będące listą dostępnych lokalizacji)
  Pracownik ustala ostateczną cenę, termin zapłaty, termin wyświetlania i klika ,,OK''. Wyświetlane jest wtedy
  okno z prośbą o potwierdzenie, a następnie, po zatwierdzeniu, umieszczany jest baner. Następuje również wysyłanie informacji do reklamodawcy z prośbą o zapłatę.\\
  Kliknięcie ,,odrzuć'', powoduje wyświetlenie okna z miejscem na wpisanie uzasadnienia.
  Kliknięcie ,,OK'', powoduje wysłanie informacji do reklamodawcy z uzasadnieniem.}{
  Zgłoszenie reklamodawcy zostaje rozpatrzone. Przy pozytywnym efekcie baner zostaje zamieszczony.}{
  management}{
  niskie}{-}{-}
  
\buc{Wyświetlanie listy obecnie zamieszczonych reklam}{Pracownik}{Pracownik się zalogował i miał prawa obsługi reklamodawców}{
  Pracownik wybiera z menu ,,Reklamy\strz Zamieszczone banery''. Wyświetla się okno pozwalające na wybór, które banery go interesują (części serwisu, reklamodawcy, data). Po wyborze i kliknięciu
  ,,OK'', pracowniku ukazuje się lista obecnie wyświetlanych banerów wraz ze statystykami i danymi reklamodawców.}{
  Pracownik ma wgląd do tego, jakie banery są umieszczone w serwisie}{
  management}{
  niskie}{-}{-}

\buc{Wyświetlenie listy turniejów}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi turniejów}{
  Pracownik wybiera z menu ,,Dane\strz Turnieje''. Wyświetla się okno, w którym pracownik
  wybiera jakie turnieje wyświetlić (wg. daty i innych atrybutów). Po kliknięciu ,,OK'' wyświetla
  się lista turniejów (nazwa, data, status).}{
  Wyświetlona zostaje lista turniejów}{management}{średnie}{-}{
  Konieczne do jakichkolwiek operacji na turniejach.}

\buc{Wyświetlenie ustawień wybranego turnieju}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi turniejów}{
  Pracownik wyświetla listę turniejów (2.4.15). Kliknięcie na dowolnie wybrany turniej, spowoduje wyświetlenie informacji o nim
  (Informacje te mogą się różnić w zależności od statusu turnieju (rozegrany, nierozegrany)). W przypadku turniejów nierozegranych,
  pojawiają się przyciski ,,edytuj'' i ,,usuń''.}{
  Wyświetlenie wszystkich informacji o wybranym turnieju.}{management}{średnie}{-}{
  Konieczne do edycji ustawień turnieju lub jego usunięcia}
  
\buc{Edycja ustawień turnieju}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi turniejów}{
  Po wyświetleniu informacji o wybranym, nierozegranym turnieju (2.4.16), pracownik może kliknąć na przycisk
  ,,edytuj''. Pokaże się okno, w którym będzie mógł zmienić datę i ustawienia turnieju (dostępność,
  wielkość, system punktacji itp. - pełna lista zostanie ustalona z udziałowcem wkrótce). Po kliknięciu ,,OK'',
  zmiany i ich efekty (np. wyrejestrowanie graczy nie spełniających nowych wymogów) zostaną poczynione.
  W niektórych przypadkach zmian (termin), zostaną rozesłane wiadomości do graczy i sędziów związanych z tym
  turniejem. System wyświetli pracownikowi potwierdzenie wykonanej operacji.}{
  Zostały zmienione ustawienia nierozegranego turnieju i wykonane wszelkie niezbędne czynności z tą zmianą związane.}{
  management}{średnie}{-}{-}
  
\buc{Usunięcie turnieju}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi turniejów}{
  Po wyświetleniu informacji o wybranym, nierozegranym turnieju (2.4.16), pracownik może kliknąć na przycisk
  ,,usuń''. Wyświetlone zostanie okienko z prośbą o potwierdzenie. Po kliknięciu ,,tak, usuń'' turniej zostanie usunięty,
  a do wszystkich osób z nim związanych zostaną wysłane wiadomości. System wyświetli pracownikowi
  potwierdzenie wykonania operacji.}{
  Wybrany turniej został usunięty}{management}{średnie}{-}{-}

\buc{Wyświetlenie listy pracowników}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi pracowników}{
  Pracownik wybiera z menu opcję ,,Dane\strz Pracownicy''. W efekcie wyświetla się okienko,
  w którym pracownik dokonuje wyboru, którzy pracownicy go interesują (wg. praw, daty zatrudnienia, działu).
  Po kliknięciu ,,OK'', wyświetlana jest lista pracowników (imię, nazwisko, dział).}{
  Wyświetlenie listy pracowników}{management}{średnie}{-}{
  Konieczne do wykonania jakichkolwiek operacji na pracownikach}
  
\buc{Wyświetlenie danych wybranego pracownika}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi pracowników}{
  Pracownik wyświetla listę pracowników (2.4.19) i klika na wybranego pracownika. W efekcie
  system wyświetla dane i uprawnienia tego pracownika i przyciski ,,edytuj'' oraz ,,usuń''.}{
  Wyświetlane są dane i uprawnienia wybranego pracownika}{management}{średnie}{-}{
  Konieczne do edycji danych lub uprawnień wybranego pracownika lub do jego usunięcia}
  
\buc{Edycja danych i uprawnień wybranego pracownika}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi pracowników}{
  Pracownik wyświetla dane wybranego pracownika (2.4.20) i klika ,,edytuj''. Ukazuje się okno, w którym
  można edytować dane i uprawnienia wybranego pracownika. Po kliknięciu ,,zatwierdź'', zmiany wprowadzane są
  do bazy danych. Wyświetla się okienko potwierdzenia wykonania operacji.}{
  Została dokonana zmiana danych lub uprawnień wybranego pracownika}{management}{średnie}{-}{-}

\buc{Usunięcie pracownika}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi pracowników}{
  Pracownik wyświetla dane wybranego pracownika (4.2.20) i klika ,,usuń''. Wyświetla
  się okno z prośbą o potwierdzenie tej operacji. Po kliknięciu ,,OK'', dane usuwanego pracownika
  zostają usunięte z bazy. Wyświetlone zostaje potwierdzenie wykonania operacji.}{
  Pracownik został usunięty}{management}{średnie}{-}{-}
  
\buc{Wykonanie archiwalnej kopii bazy danych}{Pracownik}{Pracownik się zalogował i ma prawa do kopiowania bazy danych}{
  Użytkownik wybiera opcję - wykonaj kopię zapasową. System prosi o podanie ścieżki, na której ma zostać umieszczona kopia zapasowa (na serwerze z zainstalowanym Oraclem 10i). System zapisuje cały, ,,trwały'' stan wiedzy systemu do wskazanego katalogu. Tworzy ewentualnie brakujące ścieżki}{Wykonana została archiwalna kopia bazy danych}{management}{duże}{-}{-}
  
\buc{Wyświetlenie listy rankingów}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi rankingów}{
  Pracownik wybiera z menu ,,Dabe\strz Rankingi''. W efekcie pojawia się okno pozwalające
  mu wybrać, o jakie rankingi mu chodzi. Po kliknięciu ,,OK'', pojawia się lista rankingów.}{
  Wyświetlona zostaje lista rankingów interesująca pracownika.}{management}{niskie}{-}{
  Konieczne do wykonywania operacji na stworzonych rankingach}

\buc{Wyświetlenie zawartości i ustawienia wybranego rankingu}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi rankingów}{
  Pracownik wyświetla listę rankingów (2.4.24) i klika na wybrany ranking. Wyświetlają się informacje
  o tym rankingu (ustawienia) i jego zawartość oraz przycisk ,,usuń''.}{
  Wyświetlona zostaje zawartość i ustawienia wybranego rankingu}{management}{niskie}{-}{
  Konieczne do usunięcia rankingu}

\buc{Usunięcie rankingu}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi rankingów}{
  Pracownik wyświetla zawartość i ustawienia wybranego rankingu (2.4.25) i klika na przycisk ,,usuń''.
  Pojawia się okno z prośbą o potwierdzenie. Po kliknięciu ,,OK'', ranking zostaje usunięty, a
  system wyświetla potwierdzenie wykonania tej operacji.}{
  Ranking zostaje usunięty}{management}{niskie}{-}{-}

\buc{Stworzenie nowego rankingu}{Pracownik}{Pracownik się zalogował i ma prawa do obsługi rankingów}{
  Pracownik wybiera z menu opcję ,,Dane\strz Nowy ranking''. W efekcie wyświetla mu się
  okno tworzenia rankingów, pozwalające zdefiniować czego ma dotyczyć ranking. Po
  kliknięciu ,,Stwórz'' ranking jest tworzony, a pracownik dostaje potwierdzenie wykonania
  operacji.}{
  Stworzono ranking}{management}{niskie}{-}{-}
    
\end{document}

</pre></body></html>