<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{\naz}{bardzofajnyspiewnik.pl\ }
\newcommand{\nazwaprojektu}{\naz }
\newcommand{\nazwadokumentu}{wizja projektu}
\newcommand{\wersjadokumentu}{1.3.2}


\title{\nazwaprojektu \ --- \nazwadokumentu}
\author{Anna Jasińska \and Michał Korch \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}
\maketitle
\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}


\begin{historia}
\hist{2005-10-15}{1.0}{Piotr Tabor}{Pierwsza wersja wizji.}
\hist{2005-10-16}{1.1}{Marcin Pilipczuk}{Kilka poprawek merytorycznych, uzgodnienie i przejrzenie priorytetów zadań, stworzenie dodatku.}
\hist{2005-10-17}{1.2}{Anna Jasińska}{Poprawki gramatyczne, wstęp.}
\hist{2005-10-17}{1.3}{Michał Korch}{Kolejne poprawki stylistyczne i drobne uzupełnienia.}
\hist{2005-10-17}{1.3.1}{Michał Korch}{Poprawiono formatowanie tabelki w rozdziale dotyczącym pierwszeństwa i priorytetów.}
\hist{2005-10-18}{1.3.2}{Marcin Pilipczuk}{Zmiana nazwy projektu.}
\end{historia}

\spistresci
\newpage

\section{Wst\k{e}p}

\subsection{Cel dokumentu}
Celem tego dokumentu jest dokładne opisanie funkcjonalności projektu \naz , a także opisanie jakim potrzebom użytkowników wychodzi on naprzeciw. Szczegółowy
opis planowanej realizacji tych wymagań zawarty będzie w
,,Przypadkach użycia''.


\subsection{O projekcie}
Dokument ten dotyczy projektu do prowadzenia, edycji, zarządzania śpiewnikami w postaci elektronicznej.
Działający projekt ma umożliwić prosty i estetyczny wydruk piosenek oraz zapewnić wygodne
i bogate w możliwości narzędzie do ich edycji. W architekturze projektu zostaną
uwzględnione możliwości rozszerzenia systemu do zarządzania całymi śpiewnikami,
które mogą być dostępne dla poszczególnych osób. 

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

\item[piosenka] -- jest to pojęcie obejmujące tekst, wersyfikację, akordy gitarowe i ich rozmieszczenie względem tekstu, a także metainformacje dotyczące
powstania i metod wykonywania,

\item[śpiewnik] -- jest to zbiór piosenek, niekiedy uporządkowany,

\item[parametry prezentacji piosenki] -- jest to zespół cech determinujący konkretny sposób wyświetlenia bądź wydrukowania piosenki,

\item[parametry prezentacji śpiewnika] -- jest to zespół cech determinujący konkretny sposób wyświetlenia śpiewnika. W szczególności obejmuje on wspólne
dla wszystkich piosenek ,,parametry prezentacji piosenki'',

\item[użytkownik] -- dowolna osoba korzystająca z systemu \naz , 

\item[edytor] -- jest to użytkownik posiadający uprawnienia do edycji piosenek,

\item[zesp\'{o}\l{}] - zesp\'{o}\l{} wykonuj\k{a}cy projekt,

\item[opcja] - część systemu zakwalifikowana jako ,,opcja'' nie jest niezbędna do działania systemu, aczkolwiek planujemy jej zaimplementowanie.

\end{description}

\subsection{Źródła}
Dokument jest pierwszym dokumentem przedstawiającym opis
funkcjonalno\'{s}ci i planów jej realizacji.


\subsection{Streszczenie}
W dokumencie tym szegółowo zostaje opisana funkcjonalno\'{s}ć
projektu. 
Dokument podaje szczegółowo potrzeby potencjalnych użytkowników oraz opisuje w jaki sposób są one zrealizowane przez oprogramowanie istniejące obecnie.
Następnie dokument uszczegóławia wymagania co do projektu
i jego przyszłe możliwości.

\newpage

\section{Sytuacja}

\subsection{Możliwości biznesowe}

Celem projektu jest stworzenie narzędzia umożliwiającego zebranie 
w spójnym systemie informatycznym kolejnej części dorobku ludzkiego. 

Podobnie jak system wikipedia odniósł sukces w zbieraniu wiedzy encyklopedycznej,
tak oparty o podobne mechanizmy system \naz  ma umożliwić zgromadzenie w 
jednym miejscu, ponad podziałami językowymi, dorobku muzycznego. Otwarty kod,
bezpłatne możliwości korzystania ze zgromadzonej wiedzy, oparcie o otwarte standardy i
umożliwienie wszystkim maksymalnie łatwego uzupełniania zasobów, które stały
się przyczyną sukcesów wikipedi - na tym chcemy oprzeć nasz projekt. 

Jednak system \naz  w swojej długofalowej wizji rozwoju zamierza udostępnić nieco więcej.
Chcemy, by każdy mógł założyć sobie konto, a w jego obrębie zarządzać interesującymi go piosenkami,
w szczególności zbierać utwory w śpiewniki i udostępniać je przez internet lub eksportować do formatu PDF i drukować. 

Tym samym pozwoli to zmniejszyć wiedzę i pracę potrzebną, by mieć na swojej prywatnej stronie, 
stronie grupy turystycznej, drużyny harcerskiej, kapeli czy grupy religijnej śpiewnik z utworami
ważnymi dla tej grupy. A przygotowanie tego śpiewnika poprzez profesjonalny skład tekstu dokona się za pomocą jednego kliknięcia.
Zmniejszy to liczbę kiepskich śpiewników przygotowywanych i drukowanych
przy pomocy oprogramowania nie najlepszej jakości i nie przystosowanego do tego celu, np. Microsoft Word. 

Wykorzystanie tego systemu na innych stronach będzie wymagało linkowania
do systemu \naz , co w długoterminowym rozrachunku spowoduje
wysoki ranking strony w wyszukiwarkach klasy Google i potencjalnie umożliwi
utrzymanie systemu z wpływów pochodzących z reklam. 

\subsection{Jakie problemy projekt rozwiązuje? Jakie daje zyski?}

\begin{itemize}

\item Repozytorium piosenek dostępne przez internet umożliwia 
   wykorzystywanie ich przez wiele narzędzi. Piosenki w formacie XML
   mogą być przetwarzane w wygodny sposób, przez bardzo wiele już istniejących narzędzi.

\item Zastosowanie Javy i modelu cienkiego klienta
służy uniezależnieniu systemu od platformy, a tym samym
czyni je użytecznym dla szerszej grupy użytkowników.

\item Oddzielenie wartstwy prezentacji od warstwy danych. Ten sam zbiór piosenek
użytkownik chce często w jednorodny sposób drukować, bądź prezentować na komputerze. 
Zastosowanie standardu XML do przechowowania piosenki zdecydowanie to ułatwia.

\item Wielojęzykowość -- poprzez zastosowanie standardu kodowania UTF-8 piosenki
mogą zawierać znaki niemal wszystkich języków (nawet w obrębie tej samej piosenki).

\item Historia -- system będzie prowadził historię wszystkich modyfikacji piosenki (w formie drzewa).

\item Drukowanie -- system będzie przeprowadzał porządny skład piosenki do druku i udostępniał go w formacie PDF
      Piosenka będzie mogła zostać złożona do druku na karkach A4 lub A5.
      
\item Edycja piosenki -- dostępna natychmiast ze strony WWW (nie wymagająca ściągnięcia piosenki ani żadnego oprogramowania),
     przy pomocy wygodnego edytora.

\item Opcjonalnie: prowadzenie śpiewników prywatnych (przypisanych do konta (użytkownika,organizacji)).

\item Opcjonalnie: hierarchia organizacji i użytkowników (konto może być związane z innym kontem i tym samym udostępniać mu szersze uprawnienia).
Np. rozważmy konto Jasia, konto zastępu i konto drużyny. Jaś jest w hierarchi przypisany do zastępu, a zastęp do drużyny.
Piosenki chronione zastępu są dostępne dla Jasia, ale nie są dostępne dla ogółu. 

\item Opcjonalnie: sterowanie udostępnianiem piosenki ze swojego konta. Piosenka może być: prywatna, chroniona (dostępna dla niższych w hierarchi) oraz publiczna. 
 Rozwiąże to problem utworów, które bądź nie nadają się do publicznej prezentacji, bądź są ,,jedyną słuszną wersją'' używaną tylko w danym środowisku.

\item Opcjonalnie: sterowanie udostępnianiem śpiewników ze swojego konta. Śpewnik może być: prywatny, chroniony (dostępna dla niższych w hierarchi) oraz publiczny. 

\item Opcjonalnie: umieszczenie śpiewnika z systemu \naz  na zewnętrzenej stronie internetowej (w IFrame z zadanym przez użytkownika CSS'em). Zmniejszy to koszt posiadania śpiewnika na własnej stronie i spopularyzuje system \naz . 

\item Opcjonalnie: system będzie umożliwiał estetyczne złożenie całego śpiewnika do druku i udostępniał go w formacie PDF. 
      Śpiewnik będzie dostępny w formacie A4 lub A5. 

\item Opcjonalnie: repozytorium piosenek może być synchronizowane pomiędzy kilkoma instancjami systemu \naz .

\item Opcjonalnie: interfejs do prowadzenia dyskusji edytorów nad konkretną piosenką.

\item Opcjonalnie: włączenie do opisów piosenek tabulatur lub nut. 

\item Opcjonalnie: projekt musi być tak skonstruowany, by został zindeksowany przez wyszukiwarki internetowe (wszystkie piosenki). 

\end{itemize}

\subsection{Czym projekt przewyższa inne rozwiązania?}

\begin{itemize}

\item Oparcie o otwarte standardy i protokoły komunikacyjne:
XML, CSS, SVN,

\item edycja utworów dostępna od zaraz i dla wszystkich 
(choć przewidujemy opcjonalne zawężenie uprawnień edycji),

\item niezależność od platformy,

\item profesjonalny skład do wydruku,

\item rozbudowane opcje profilowania (tzn. śpiewniki osobiste),

\item rozdzielenie warstwy danych od wersji prezentacji,

\item wersjonowanie piosenek,

\item śpiewnik ,,wygodniej niż z pudełka'' dostępny na prywatnych stronach WWW,

\end{itemize}

\newpage

\section{Opis potrzeb}

W tym rozdziale opisany jest obecny rynek śpiewników internetowych.

\subsection{Opis rynku}

Na polskim rynku obecnie działa kilka liczących się śpiewników
internetowych oraz ogrom ,,śpiewniczków''.

Większość ,,śpiewniczków'' to zbiór pojedyńczych stron z piosenkami, 
plików w formacie DOC lub po prostu plików teksowych i reprezentuje technicznie bardzo niski poziom. Nasz system stawia sobie za cel
ich zastąpienie. 

W kategorii śpiewników do niedawna liczył się serwis:
www.spiewnik.pl, ale na skutek problemów licencyjnych 
,,Polskiego Stowarzyszenia Wydawców Muzycznych'' musiał zawiesić działalność. 
Dlatego nasz system przy wpisaniu piosenki będzie żądał potwierdzenia, że
wprowadzony utwór nie jest obciążony prawnymi konsekwencjami prezentacji. 

Możliwe, że rozwój systemu umożliwi osiągnięcie wystarczających dochodów
do pokrycia tantiemów, a tym samym umożliwi prezentację utworów ,,komercyjnych'', 
jednak jest do bardzo daleko idąca wizja. % MP: Taboret, rozpędzasz się... ;-)

% MP
Wierzymy, iż nasz system
jest w stanie przejąć funkcję przynajmniej kilku procent z dostępnych ,,śpiewniczków''.

%AJ: Nie wiem jak się ma to co zrobił Marcin tutaj, do tego co zrobił Taboret, ale te rzeczy powtarzają niektóre informacje i są nieco sprzeczne. 
%Mi tam się bardziej podoba wersja Taboreta - jest bardziej optymistyczna:)
%MK: Poprawiłem tak, żeby moim zdaniem było najsensowniej

\subsection{Prezentacja użytkowników}
%MK Zmieniłem tytuł z podsumowanie na prezentacja

% MP
W poniższym rozdziale prezentujemy podstawowych użytkowników naszego systemu.

\subsubsection{Administrator serwisu}

Będzie to najprawdopodobniej jeden z twórców systemu, więc 
będzie mógł pracować bezpośrednio na strukturze danych systemu. 

Odpowiedzialność:
\begin{itemize}
\item utrzymanie systemu w działaniu,
\item zapewnienie niezawodności,
\item okresowe przeprowadzanie kopii bezpieczeństwa,
\item nadzorowanie pracy serwisu,
\item kontrola zgodności z prawem zamieszczonych utworów,
\item nadzorowanie i administracja bazą danych serwisu.
\end{itemize}

\subsubsection{Opiekun systemu}

(wyróżniony w opcjonalnej wersji systemu)

Opiekun systemu jest szczególnie zaawansowanym użytkownikiem.
W szczególności ma on uprawnienie do wycofywanie wszystkich 
zmian wprowadzonych przez zwykłych użytkowników. 

Cechy opiekuna systemu:
\begin{itemize}
	\item ma prawo wycofywać zmiany w publicznym drzewie piosenek, bądź przenosić je do pobocznych gałęzii,
	\item musi się autoryzować,
	\item jest powiadamiany o ostatnich zmianach w publicznym drzewie,
	\item potencjalnie jest stanie pracować bezpośrednio z repozytorium Subversion (projekt nie przewiduje
	specjalnego interfejsu, ale może on zostać dodany opcjonalnie).
\end{itemize}

\subsubsection{Użytkownik zarejestrowany}
(wyróżniony w opcjonalnej wersji systemu)

\begin{itemize}
	\item posiada konto w systemie i może się do niego autoryzować,
	\item może w obrębie konta tworzyć (komponować) śpiewniki i nadawać im uprawnienia,
	\item może w obrębie konta tworzyć lokalne wersje piosenek (poprzez utworzenie nowej lub dokonanie modyfikacji)
	dostępnych w drzewie publicznym,
	\item konto może podlegać innym kontom w hierarchii. Użytkownik może wybrać konta podległe jego kontu,
	\item użytkownik może za pomocą specjalnego linku umieścić śpiewnik bądź piosenkę na zewnętrzym serwisie www i 
	formatować ją za pomocą zadanego CSS'a (opcjonalnie też za pomocą zadanego arkusza XSLT).
\end{itemize}

\subsubsection{Edytor}
	Jest to użytkownik, który jest ma wpływ na dostępne w portalu piosenki. Może je
	edytować oraz dyskutować o zmianach. W opcjonalnej wersji systemu prawa do edycji mogą mieć tylko wyróżnieni
  użytkownicy systemu.
	
\subsubsection{Gość}
% MK konsekwentnie zmieniam odwiedzającego na gościa, bo wydaje mi się, że to zgrabniejszy termin
	Użytkownik zwykły. Zagląda do śpiewnika w celu wyszukania lub wydrukowania piosenek. Czasami chciałby też wydrukować całe śpiewniki (opcja). 
  Chciałby też móc dodawać komentarze do dostępnych piosenek (opcja).

\subsection{Analiza kluczowych użytkowników}

\subsubsection{Edytor}

	Jest kluczowy dla rozwoju śpiewnika, bo właśnie dzięku niemu w śpiewniku pojawiają się poprawki
	i nowe piosenki. Jak już chce coś poprawić, to nie należy zniechęcać go nadmiarem formalności, 
	tylko możliwie szybko udostępnić mu bardzo wygodne narzędzie do edytowania piosenek. Narzędzie
	powinno być idiotoodporne (termin techniczny) i uniemożliwić zapisanie w systemie niepoprawnych modyfikacji.
	%AJ - nie wiedziałam czy to poprawiać czy nie...
	%MK -- też nie wiem... ;)

	Gotów jest jednorazowo ściągnąć kilkumegabajtowy aplet do edycji. Czasami chciałby poedytować piosenki
	offline, a następnie dopiero dodać je do systemu \naz  (opcja). 

\subsubsection{Użytkownik zarejestrowany}

	Użytkownikowi zarejestrowanemu zależy na wygodzie komponowania śpiewnika, oraz
	szerokich możliwościach prezentacji śpiewnika. Jakość (wygląd, poprawność, 
	oszczędność miejsca, czytelność, zawartość merytoryczna) jest kluczowa dla śpiewników, które
	przygotowuje. Gotów jest poczekać parę minut, na profesjonalny skład swojego prywatnego śpiewnika. 

  Tworzenie prywatnych śpiewników jest w opcjonalnej wersji systemu.

	Potrzeba umieszczenia w śpiewniku pewnych piosenek motywuje użytkownika zarejestrowanego by zostać edytorem. 

\subsubsection{Gość}

	Gościowi zależy na wysokiej jakości zawartych na stronie informacjach oraz na
	wygodnych możliwościach przeszukiwania. Z pewnością oczekuje przeszukiwania po autorze, albumie, tytule oraz
	przeszukiwania pełnotekstowego po treści. Nie chce ściągać większych apletów. 
	Plików PDF z całym śpiewnikiem lub wybraną piosenką oczekuje natychmiast, bo w przeciwnym przypadku pójdzie 
	na inną stronę. 


\subsection{Obecne i przyszłe możliwości klienta.}

\subsubsection{Obecne problemy}

Obecnie proces utworzenia śpiewnika w większości przypadków
wymaga skopiowania z wielu różnych źródeł 
piosenek do edytora tekstu, a następnie dłuższej pracy 
w tym edytorze, w celu uzyskania sensownego i spójnego formatowania
w obrębie dokumentu. Utworzenie w ten sposób śpiewnika zawierającego akordy 
nad tekstem jest niemal niewykonywalne. % MP: Dobre :-)

Oczywiście dodatkowe elementy, jak np. spis treści są wprowadzane ręcznie, 
co jest pracochłonne i prowadzi do wielu błędów. 
Ponadto, chęć jakiejkolwiek zmiany formatowania śpiewnika wymaga ręcznego poprawienia
wszystkich piosenek.

Analogicznie wygląda sytuacja w przypadku tworzenia śpiewników internetowych. 
Śpiewnik składa się z całej strony statycznych linków i piosenek przeklejonych z różnych miejsc,
lub też jego utworzenie wymaga znajomości relacyjnych baz danych i języka programowania umożliwiającego 
dynamiczne generowanie stron (np. PHP). W szczególności wiele serwerów nie udostępnia
użytkownikom dostępu do wymienionych wyżej usług. 

\subsubsection{Rozwiązanie problemów}
% MK Zmieniłem tytuł rozdziału

Proponowany przez nas system nie będzie posiadał tych mankamentów. 
Dane opisujące piosenki bądą całkowicie niezależne od ich prezentacji.
Mamy nadzieję, że otwartość rozwiązania doprowadzi do 
powstania wielu narzędzi umożliwiających różnorodne formatowanie (prezentowanie) piosenek. 

W celu zmiany formatu całego śpiewnika, wystarczy zmienić opcję, bądź w
skrajnym przypadku przebudować pojedynczy szablon.

Praca wielu osób będzie służyła budowaniu jednego spójnego śpiewnika
opartego o platformę \naz . 

\subsection{Potrzeby}

\subsubsection{Potrzeby odwiedzającego}

\newcommand{\wpistabeli}[2]{{\bf{#1}} &amp; \parbox[t]{12cm}{#2}\\ \hline}
\newcommand{\potrzeba}[1]{\vskip 0.2cm
  \noindent {\bf{#1}}
\vskip 0.2cm}

\potrzeba{Szybki i wygodny interfejs wyszukiwania piosenek}

\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niezbędny w wersji podstawowej; zaawansowane wyszukiwanie: priorytet średni}
 \wpistabeli{Opis:}{Odwiedzający chce możliwie szybko i intuicyjnie uzyskać dostęp do interesującej piosenki i bardzo często do końca nie wie, co go interesuje}
 \wpistabeli{Rozwiązanie zapewnia:}{Wygodne GUI, dostępne przez przeglądarke internetową, udostępniające rozbudowane możliwości przeszukiwania zbioru piosenek}
\end{tabular}
 
\potrzeba{Duży zbiór piosenek wysokiej jakości}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Bardzo duży}
 \wpistabeli{Opis:}{Dobrze by oglądający się przyzwyczaił, że interesujące go utwory są dostępne przez nasz system}
 \wpistabeli{Rozwiązanie zapewnia:}{Wygodne narzędzie edytorskie i brak formalnych kwalifikacji by dodać nową piosenkę powinno zachęcić edytorów. Do systemu zostanie wstępnie zaimportowane około 200 utworów. }
\end{tabular}

\potrzeba{Możliwość obejrzenia piosenki w interesującym użytkownika formatowaniu}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niezbędny w wersji podstawowej; spersonalizowany: priorytet średni}
 \wpistabeli{Opis:}{Różnych oglądających interesują inne elementy piosenki, np. dla jednych kluczowe są akordy, dla innych są całkowicie nie istotne}
 \wpistabeli{Rozwiązanie zapewnia:}{ Możliwość wybrania parametrów prezentacji piosenki i obejrzenia piosenki według zadanej parametryzacji}
\end{tabular}

\potrzeba{Możliwość wydrukowania piosenki w interesującym użytkownika formatowaniu}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niezbędny w wersji podstawowej; spersonalizowany: priorytet średni}
 \wpistabeli{Opis:}{Często oglądający chce porządnie wydrukować piosenkę. Różnych oglądających interesują inne elementy piosenki, np. dla jednych kluczowe są akordy, dla innych są całkowicie nie istotne}
 \wpistabeli{Rozwiązanie zapewnia:}{ Możliwość wybrania parametrów prezentacji piosenki i wydrukowania piosenki według zadanej parametryzacji}
\end{tabular}

\potrzeba{Możliwość transponowania piosenki}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Średni}
 \wpistabeli{Opis:}{Proces autmatycznego przesunięcia piosenki w tonacji podlega łatwej autmatyzacji i może być wygodny}
 \wpistabeli{Rozwiązanie zapewnia:}{ Możliwość oglądania piosenki z wybraną transpozycją}
\end{tabular}


\potrzeba{Dostępność}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niezbędny}
 \wpistabeli{Opis:}{System ma być dostępny o każdej porze dnia i nocy (dopuszczalny okres nieczynności to 10h miesięcznie). System musi być dostępny z większości popularnych systemów operacyjnych.}
 \wpistabeli{Rozwiązanie zapewnia:}{ Jedynym wymaganiem jest przeglądarka internetowa, obsługująca HTML 4.01, JavaScript i Cookies oraz dostęp do internetu. }
\end{tabular}

\potrzeba{Możliwość komentowania piosenki}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Średni}
 \wpistabeli{Opis:}{Dobrze jest umożliwić oglądającemu publiczne wypowiedzenie się na temat danej pisenki. Może zmotywuje to np. do bardziej odważnego poprawienia}
 \wpistabeli{Rozwiązanie zapewnia:}{(opcjonalnie) Możliwość komentowania utworów z zaznaczeniem dla kogo komentarz jest przewidziany: wszystkich, edytora, grającego utwór}
\end{tabular}

\subsubsection{Potrzeby użytkowników zapisanych}

\potrzeba{Posiadanie własnego profilu}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niezbędne -- jeśli wprowadzimy tę grupę użytkowników, globalnie: priorytet duży}
 \wpistabeli{Opis:}{Użytkownik chce posiadać swoje ustawienia, swoje śpiewniki, swoje piosenki}
 \wpistabeli{Rozwiązanie zapewni:}{
 	\begin{itemize}
		\item możliwość rejestracji,
		\item logowania się do systemu, 
		\item zakładania śpiewników,
		\item wybierania piosenek do śpiewnika (z każdą piosenką jest także związana transpozycja interesująca użytkownika),
		\item ustawiania domyślnych parametrów prezentacji piosenek,
		\item ustawiania domyślnych parametrów drukowania piosenek,
		\item upubliczniania śpiewników wszystkim,
		\item wylogowywania się z systemu.
	\end{itemize}
	}
\end{tabular}

\potrzeba{Hierarchizacja dostępu do piosenek i śpiewników trzymanych w profilu}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niski}
 \wpistabeli{Opis:}{Naturalna jest hierarchia w otaczającym świecie... Dlatego też porządaną może być opcja hierarchiwizowania kont użytkowników. Jeżeli ktoś
 jest członkiem jakieś organizacji to chce mieć dostęp do wersji piosenek dostępnych w tej organizacji -- a nie koniecznie publicznych. Dlatego organizacja powinna mieć uprawnienia podczepić sobie tego użytkownika jako swojego członka.}
 \wpistabeli{Rozwiązanie zapewnia:}{Definiowanie użytkówników podrzędnych i nadawanie im uprawnień do piosenek lub całych śpiewników}
\end{tabular}

\potrzeba{Przygotowywanie wydruku całych śpiewników}

\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Duży}
 \wpistabeli{Opis:}{Przygotowywanie wydruku całych śpiewników w oparciu o zadane parametry -- jest ważne, bo 
 niewygodnie się śpiewa przy ognisku z ekranu}
 \wpistabeli{Rozwiązanie zapewnia:}{Możliwość uzyskania plikuw formacie PDF zawierającego przygotowany do wydruku śpiewnik z wykorzysaniem zadanej parametryzacji}
\end{tabular}

\potrzeba{Możliwość zamieszczenia śpiewnika na swojej stronie internetowej}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Średni}
 \wpistabeli{Opis:}{Użytkownik może umieścić fragment serwisu \naz  na swojej stronie internetowej i w ten
 sposób wejść w posiadanie bardzo rozbudowanego technicznie systemu śpiewnikowego, zawierającego tylko interesujące
 go piosenki.}
 \wpistabeli{Rozwiązanie zapewnia:}{Możliwość przedstawiania swojego śpiewnika na swojej stronie internetowej wraz z dostarczonym CSSem.}
\end{tabular}



\subsubsection{Potrzeby edytora}

\potrzeba{Tworzenia nowych piosenek i wprowadzania zmian do tych już istniejących}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niezbędne}
 \wpistabeli{Opis:}{Musi istnieć wygodny i dający duże możliwości edytor piosenek}
 \wpistabeli{Rozwiązanie zapewnia:}{
 	Edytor będzie apletem Javy. \\Zapewni następujące możliwości: 
 	\begin{itemize}
		\item wprowadzenie tekstu piosenek,
		\item wyróżnianie zwrotek,
		\item jednorazowe wprowadzanie powtarzających się fragmentów,
		\item rozmieszczanie akordów nad tekstem,
		\item edycje metadanych (wspomaganie poprzez np. udostępnianie list wcześniej wprowadzonych twórców),
		\item wygodne wpisywanie piosenek dostępnych gdzie indziej (wspomaganie procesu Copy-Paste),
		\item wielojęzykowść (UTF-8),
		\item opcjonalnie: dostęp bezpośrednio do źródła XML (bo niektórzy edytorzy mają nieco większą wiedzę).
%AJ: Zmieniłam na opcjonalnie, bo Ci mniej kumaci mogą niezałapać jak to wygląda i coś pochrzanić, a potem się denerwować, że im nie działa kiedy chcą to wyświetlić. A nie jest trudno jakiś nawias np niechcący zgubić.
	\end{itemize}
 }
\end{tabular}


\potrzeba{Dostęp do historii piosenek}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Bardzo duży}
 \wpistabeli{Opis:}{W celu uniknięcia sytuacji, gdy dwóch edytorów wprowadza w kółko przeciwne zmiany}
 \wpistabeli{Rozwiązanie zapewnia:}{Możliwość zobaczenia historii piosenki: (kto i kiedy wprowadził jakie zmiany)}
\end{tabular}


\potrzeba{Dyskusja edytorów nad piosenką}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Duży}
 \wpistabeli{Opis:}{W celu uniknięcia sytuacji, gdy dwóch edytorów wprowadza w kółko przeciwne zmiany, dobrze jest im dać możliwość przedyskutowania, która wersja jest lepsza.}
 \wpistabeli{Rozwiązanie zapewnia:}{(opcjonalnie) Możliwość prowadzenia dyskusji o piosence}
\end{tabular}

\potrzeba{Wiele wersji (gałęzi) piosenki}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Średni}
 \wpistabeli{Opis:}{Gdy dwóch edytorów nie może dojść do porozumienia, nie wystarczy zrobienie przypisu w piosence (np. akordy są całkowicie inne), to należy dać możliwość utworzenia dwóch wersji piosenki}
 \wpistabeli{Rozwiązanie zapewnia:}{System (opcjonalnie) będzie umożliwiał utworzenie wielu wersji(gałęzi) piosenki (branchowanie drzewa piosenek)}
\end{tabular}

\potrzeba{Praca offline}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niski}
 \wpistabeli{Opis:}{Czasami edytor może chcieć pracowania nad piosenką bez dostępu do internetu. Dobrze by było mu ją zapewnić.}
 \wpistabeli{Rozwiązanie zapewnia:}{System (opcjonalnie) będzie umożliwiał pracę apletu bez dostępu do internetu i 
 ewentualne rozstrzygnięcie konfliktów synchronizacji.}
\end{tabular}

%MK
\potrzeba{Rozpoznawanie akordów nie będących w standardzie}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niski}
 \wpistabeli{Opis:}{Część akordów można zapisać na różne sposoby. Edytor chciałby móc wpisać w dowolnej wersji i może w ogóle nie wiedzieć, któremu akordowi ze
 standardu wpisywany akord odpowiada.}
 \wpistabeli{Rozwiązanie zapewnia:}{Zaprogamowanie tłumaczenia akordów wpisywanych przez edytora na te zawarte w standardzie}
\end{tabular}


\subsubsection{Zewnętrzny developer}
\potrzeba{Otwarty system}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Średni}
 \wpistabeli{Opis:}{ 
 	Rozwój systemu będzie zależał od pracy niezależnych osób. By coś
	rozbudować, potrzebują one do tego dostępu. 
 }
 \wpistabeli{Rozwiązanie zapewnia:}{
 	\begin{itemize}
		\item dostęp do systemu będzie bezpłatny,
		\item kody źródłowe systemu będę dostępne,
		\item repozytorium piosenek (SVN) będzie publicznie dostępne do odczytu (poprzez protokuł svn lub/i https),
		\item repozytorium piosenek (SVN) będzie udostępnione do zapisu dla autoryzowanych narzędzi (by nie czegoś nie zepsuć),
		\item najnowsza wersja (head) piosenek będzie dostępna poprzez http,
		\item format piosenki będzie oparty o standard XML.
	\end{itemize}
 }
\end{tabular}

\potrzeba{Dokumentacja - standard XML opisu piosenek}
\begin{tabular}{|l|l|} \hline
 \wpistabeli{Priorytet:}{Niezbędne}
 \wpistabeli{Opis:}{Potrzeby jest szczegółowy opis naszego formatu oraz odpowiednie materiały dodatkowe (validator XSchema)}
 \wpistabeli{Rozwiązanie zapewnia:}{Dokumentację oraz XScheme}
\end{tabular}

\newpage

\section{Prezentacja produktu}

\subsection{Zależności i elementy składowe produktu}

Na całość systemu \naz  składają się następujące elementy:

\begin{description}
\item[Schemat bazy danych] -- przechowuje
informacje o użytkownikach systemu i ich profilach, a także
elementy zawarte w dyskusjach nad piosenkami. 
Dopuszczalna jest także sytuacja, gdy baza danych będzie zawierała indeks piosenek znajdujących się 
w repozytorium na potrzeby przyśpieszenia przeszukowania. W tej sytuacji zostaną dostarczone mechanizmy przebudowy
indeksu. 

\item[Repozytorium piosenek] -- w postaci repozytorium Subversion o odpowiedniej strukturze. Przechowuje
wszystkie wersje piosenek (zarówno historię, jak i poszczególne gałęzie - także prywatne).

\item[Moduł przygotowywania wydruków] -- składający się z systemu LaTex wraz z odpowiednimi pakietami naszego autorstwa
(umożliwiającymi skład piosenek i opcjonalnie śpiewników). Moduł ten będzie prawdopodobnie postawiony na oddzielnej maszynie,
a wysyłanie plików w formacie TEX i odbiór wyników (PDF) będzie realizowany poprzez protokół HTTP (odpowiednie skrypty CGI). 

\item[Aplet edytora] -- wygodny aplet umożliwiający edycję piosenek. W szczególności: 
 	\begin{itemize}
		\item wprowadzenie tekstu piosenek,
		\item wyróżnianie zwrotek,
		\item jednorazowe wprowadzanie powtarzających się fragmentów,
		\item rozmieszczanie akordów nad tekstem,
		\item edycję metadanych (wspomaganie poprzez np. udostępnianie list wcześniej wprowadzonych twórców),
		\item wygodne wpisywanie piosenek dostępnych gdzie indziej (wspomaganie procesu Copy-Paste),
		\item wielojęzykowść (UTF-8),
		\item dostęp bezpośrednio do źródła XML.
	\end{itemize}
	Aplet będzie pilnował zachowania odpowiedniego formatu piosenek. 
	Opcjonalnie aplet będzie umożliwiał pracę offline. 

\item[Strony JSP]
	Zarówno publiczne, jak i prywatne strony umożliwiające
	przeszukiwanie piosenek i pracę ze swoim profilem. 

	Opcjonalnie udostępnią też możliwość dyskutowania nad piosenką. 
\end{description}

\subsection{Licencjonowanie i wdro\.zenie}
System zostanie zainstalowany na serwerze lub zestawie serwerów Unix.
Elementy systemu mogą zostać umieszczone na 3 różnych maszynach (ale nie muszą):
\begin{itemize}
\item[]serwer webowy obsługujący JSP na pierwszej,
\item[]repozytorium Subversion na drugiej,
\item[]moduł texujący na trzeciej,
\end{itemize}

W\l{}a\'{s}cicielem wszystkich praw autorskich pozostaje zespół przygotowujący projekt. 
%Aj: Eeee...? A nie wydział przypadkiem?
Kody źródłowe projektu zostaną udostępnione na licencji GPL. 

\newpage
\section{Cechy produktu}

Poniżej przedstawione są podstawowe cechy produktu, podzielone na kategorie zgodnie z tym jacy użetkownicy będą z nich korzystać.

\newcommand{\cecha}[2]{\subsubsection{#1}\par #2\par}

\subsection{Z punktu widzenia użytkownika}

\cecha{Przeszukanie dostępnych piosenek}{Użytkownik powinien mieć możliwość wprowadzenia
kryteriów przeszukiwania zbioru piosenek conajmniej pod kątem:
	\begin{itemize}
		\item tytułu,
		\item twórców: autor tekstu, autor muzyki, wykonawca,
		\item albumu.
	\end{itemize}
	}
	
\cecha{Wyświetlenie piosenki w przeglądarce}{System umożliwia wyświetlenie wybranej piosenki (z akordami nad tekstem, obok tekstu lub bez akordów)}

\cecha{Dokonanie transpozycji akordów w wyświetlanej piosence}{(opcja) Można będzie zobaczyć przetransponowane akordy.}

\cecha{Otrzymanie pliku w formacie PDF z wybraną piosenką}{System umożliwia wygenerowanie pliku w formacie PDF z wybraną piosenką na stronie w formacie A4 lub A5 z akordami nad tekstem, obok tekstu lub bez akordów.}

\cecha{Zarejestrowanie się do systemu}{(opcja) System umożliwia samodzielne założenie konta w systemie.}

\cecha{Obejrzenie dyskusji}{(opcja) Użytkownik może przeczytać dyskusję związaną z daną piosenką. Dyskusja jest wspólna dla wszystkich wersji (gałęzi) piosenki (do przemyślenia). Użytkownik może zawęzić wyświetlane komentarze do interesującego go zbioru: wszystkie, dla edytora, dla grajka.}

\cecha{Wzięcie czynnego udziału w dyskusji}{(opcja) Użytkownik może dodać komentarz do piosenki (i musi określić jaki ten komentarz ma charakter: ogólny, dla edytora, dla grajka).}


\subsubsection{Z punktu widzenia użytkownika zarejestrowanego (opcja)}

\cecha{Zalogowanie do systemu}{Użytkownik może zalogować się do systemu podając login (e-mail) i hasło.}
\cecha{Wylogowanie się z systemu}{Użytkownik może wylogować się z systemu.}
\cecha{Zmiana danych konta}{Użytkownik może zmienić nazwę użytkownika (opcjonalnie), adres e-mail, hasło.}
%AJ: Założyłam, że login i nazwa użytkownika to to samo. Wcześniej było: "Może nie móc zmienić loginu.":) 
\cecha{Utworzenie śpiewnika}{Użytkownik może utworzyć śpiewnik i nadać mu jakiś status: prywatny, publiczny, chroniony (tylko dla niższych w hierarchi).}
\cecha{Zmiana parametrów śpiewnika}{Użytkownik może zmienić nazwę śpiewnika i jego status, a także domyślne parametry prezentacji śpiewnika.}
\cecha{Dodanie i usunięcie piosenek z własnego śpiewnika}{Użytkownik może włączać i wyłączać piosenki ze śpiewnika. Włączając piosenkę, użytkownik może wskazać porządaną transpozycję piosenki.}
\cecha{Lokalne piosenki}{Użytkownik może dodawać nowe piosenki związane z jego kontem. Mają one swój status. Status śpiewnika zawierającego lokalną piosenkę nie może być mniej restrykcyjny niż status piosenki. Piosenki mogą być dodawane na bazie już istniejących piosenek dostępnych użytkownikowi.}
\cecha{Dostęp do piosenek}{Użytkownik ma dostęp do piosenek publicznych, lokalnych oraz chronionych w obrębie kont, do których należy (bezpośrednio). }
\cecha{Dodawanie kont podległych}{Użytkownik może dodać do swojego konta podległe (niższe w hierarchi) -- czyli te, które będą miały dostęp do jego składowych chronionych}
\cecha{Włączenie wyników wyszukowania do śpiewnika}{Użytkownik może włączyć wyniki wyszukiwania do wybranego własnego śpiewnika. (opcja)}
\cecha{Udostępnianie śpiewnika na prywatną stronę}{Użytkownik może umieścić na swoim koncie plik CSS (do 10kb), a następnie uzyskać link do strony, która wyświetla tylko jego śpiewnik.}
\cecha{Wydrukowanie śpiewnika}{Użytkownik może poprosić system o przygotowanie pliku w formacie PDF zawierajego przygotowany do wydrukowania śpiewnik według zadanych parametrów. Przygotowanie wyniku może potrwać nawet kilka minut (kolejka). Wynik może być
dostępny przez pewien czas poprzez stronę, bądź być wysłany na adres e-mail.}
\cecha{Powiadomienia}{Użytkownik może poprosić system o wysyłanie e-maila, jak jakaś piosenka we wskazanym śpiewniku się zmieniła.}

\subsection{Z punktu widzenia edytora}

\cecha{Ściągnięcie apletu umożliwiającego edycję}{Każdy edytor może ściągnąć aplet do edycji piosenek.}
%AJ: Przezroczysty??? Dla mnie to nie jasne...
%MK Dla mnie też nie jest, więc wywaliłem...
\cecha{Praca offline}{(opcja) Aplet umożliwi pracę z piosenką bez połączenia z internetem.}
\cecha{Modyfikacja istniejącej piosenki}{Edytor może zmienić istniejącą piosenkę.}
\cecha{Dodanie nowej piosenki}{Edytor może utworzyć zupełnie nową piosenkę.}
\cecha{Utworzenie nowej gałęzi wybranej piosenki}{Edytor może utworzyć nową gałęź piosenki.}
\cecha{Weryfikacja}{System nie pozwoli zapisać piosenki semantycznie niezgodnej z formatem piosenki (XSchema).}
\cecha{Synchronizacja przy próbie pracy kilku osób nad tą samą piosenką}{Proste złączanie zmian zapewni Subversion. Przy bardziej skomplikowanych zmianach
zostanie wprowadzona ostatnia zmiana oraz edytor dostanie ostrzeżenie o zaistnieniu konfliktu (opcja)}
\cecha{Rozpoznawanie akordów nie będących w standardzie}{Zostanie zaimplementowane w edytorze (opcja)} 

\subsection{Z punktu widzenia opiekuna (opcja)}

\cecha{Wycofanie zmian}{Gdy zmiany nie polepszają piosenki.}
\cecha{Poznanie adresu e-mail zmieniającego}{Adresy e-mail nie są publiczne, ale opiekun może je poznać -- by wysłać pouczenie.}
\cecha{Przeniesienie zmian do oddzielnej gałęzi piosenki}{W sytuacji gdy zmiany są cenne, ale stanowią tylko alternatywną wizję.}

\subsection{Inne cechy}
\cecha{Dokumentacja formatu piosenki}{Zostanie przygotowana.}
\cecha{Bezpośredni dostęp do repozytorium do odczytu}{Dla innych zewnętrznych narzędzi zostanie udostępniony.}

\newpage
\section{Wymagania dotycz\k{a}ce jako\'{s}ci}

Wszystkie elementy sk\l{}adowe produktu powinny pracowa\'c
stabilnie i zgodnie z dokumentacj\k{a}.

Zespół nie bierze odpowiadzialności za atrakcyjność wyglądu przygotowanych stron JSP.

\subsection{Odporno\'{s}\'{c} na awarie}
    W interesie  administratora le\.{z}y zapewnienie infrastruktury
    umo\.{z}liwiaj\k{a}cej stabilne wykonywanie proces\.{o}w (np. UPS'y).

    Zespół w ramach zmniejszania skutk\'{o}w ewentualnych awarii
    zastosuje nast\k{e}puj\k{a}ce rozwi\k{a}zania:
    \begin{description}
        \item{Centralne magazynowanie danych} - wszystkie dane
        wykraczaj\k{a}ce poza lokaln\k{a} sesj\k{e} b\k{e}d\k{a}
        magazynowane w centralnej bazie danych lub w 
	repozytorium Subversion. Oba te narządzie umożliwiają 
	replikację. 

	\item{Java Servlet Pages} - dobre serwery webJava (jboss+tomcat)
	umożliwiają replikacje sesji pomiędzy wiele maszyn -
	co pozwoli znacząco zwiększyć niezawodność. 
    \end{description}

    Przewiduje się, że serwis będzie mógł być niedostępny dla użytkowników maksymalnie 2 godziny w ciągu tygodnia.

\newpage
\section{Pierwsze\'{n}stwo i priorytety}

Pierwsze\'{n}stwo jest oznaczane liczb\k{a} naturaln\k{a}. Im
mniejsza liczba tym wcze\'{s}niej cel powinien by\'{c}
zrealizowany.

\begin{center}
\begin{tabular}{|c|c|c|}
	\hline cel&amp; priorytet &amp; pierwsze\'{n}stwo \\ \hline 
	\hline przeszukiwanie bazy piosenek  &amp;niezbędny &amp; 0 \\ 
  \hline bardziej zaawansowane przeszukiwanie bazy piosenek &amp;średnie &amp; 6\\
	\hline wyświetlanie wybranej piosenki &amp; niezb\k{e}dny &amp; 0\\ 
	\hline spersonalizowane wyświetlanie wybranej piosenki &amp; średni &amp; 6\\ 
	\hline transponowanie piosenki &amp; średnie &amp; 6 \\ 
	\hline przygotowywanie wydruku piosenki &amp; niezbędny &amp; 2 \\ 
	\hline spersonalizowane przygotowywanie wydruku piosenki &amp; średni &amp; 6 \\ 
	\hline konta użytkowników &amp; du\.{z}y &amp; 5 \\ 
	\hline śpiewniki osobiste &amp; duży &amp; 5 \\ 
	\hline edytor piosenek &amp; niezbędny &amp; 1 \\
  \hline komentarze użytkowników &amp; średni &amp; 7 \\
  \hline komentarze edytorów &amp; duży &amp; 4 \\
	\hline możliwość drukowania całych śpiewników &amp; duży&amp;5 \\ 
	\hline wersjonowanie piosenki &amp; bardzo duży &amp; 1 \\
	\hline wiele gałęzi piosenki &amp; średni &amp; 7 \\ 
	\hline piosenki lokalne &amp;  średni &amp; 7 \\ 
	\hline hierarchia użytkowników &amp; niski  &amp; 8 \\
	\hline powiadomienia &amp; niski &amp; 9\\
	\hline przysyłanie wyników teXowania na email &amp; niski &amp; 9 \\
	\hline oprogramowanie nut i tabulatur &amp; niski &amp; 9 \\
	\hline rozpoznawanie akordów spoza standardu&amp; niski &amp; 9 \\
	\hline praca Edytora piosenek offline &amp; niski &amp; 8 \\
	\hline dokumentacja formatu XML i XSchema &amp; niezbędny &amp; 0 \\
	\hline interfejs dla funkcjonalność opiekuna &amp; niski &amp; 9 \\
	\hline statystyki najlepszych piosenek i najlepszych edytorów &amp; niski &amp; 9 \\
	\hline bezpośredni dostęp do repozytorium dla zewnętrznych projektów &amp; średni &amp; 7 \\
	\hline możliwość osadzenia lokalnego śpiewnika na zewnętrznej stronie internetowej &amp; średni &amp; 6  \\ \hline
\end{tabular}
\end{center}

\newpage

\section{Inne wymagania}

Poniżej wymienione są wymagania, standardy, przewidziane środki i
czas na realizację projektu.

\subsection{Konieczne standardy, wymagania i zewnętrzne projekty}

\begin{itemize}

\item XML. Wersja 1.0.

\item UTF/8 - jako standard kodowania znaków

\item JSP 3.0 + Tiles libs (Strutsy)

\item HTML 4.0.1 i JavaScript

\item Licencja GPL, na której udostępnione zostanie oprogramowanie

\item Opracowany przez zespół format piosenki w XML

\item XSLT, XSchema

\item TeX i LaTeX

\item baza danych zgodna JDBC

\item Subversion

\item CGI, HTTP

\item PDF (Portable Document Format)

\item Standard zapisu nutowego w XML

\end{itemize}



\subsection{Potrzebna infrastruktura i wymagania \'{s}rodowiskowe}

{\bf{Aplikacja serwera.}} Potrzebny jest:
	\begin{itemize}
		\item Komputer klasy conajmniej Pentium 500mhz, 512 mb ram z systemem Unix (Linux)
		\item Łącze internetowe
	\end{itemize}
	

\noindent {\bf{Aplikacje klienckie}}
potrzebują:

\begin{itemize}
\item Komputera z dostępem do Internetu; \item system operacyjny
Unix, Windows, MacOs; \item przeglądarkę internetową.

Użytkownik chcący edytować piosenki potrzebuje ponadto
Virtual Java Machine (zgodną z SUN Java Runtime Envirment 1.5.0.05).
\end{itemize}
\newpage
Zostanie przygotowana następująca dokumentacja
\section{Wymagana dokumentacja}
\begin{itemize}
\item standard piosenki w XML

\item (opcja) Standard tabulatury i nut w XML'u
\end{itemize}

\section{Przekazanie projektu}
    System zostanie zainstalowny na przekazanej maszynie.
    Dostępna będzie pełna wersja źródeł stworzonego systemu.

\newpage
\section{Dodatek: atrybuty cech projektu}

\renewcommand{\cecha}[8]{\item #1.\\
\emph{Status:} zaakceptowane.\\
\emph{Priorytet:} #3.\\
\emph{Oczekiwany czas potrzebny do realizacji w osobodniach:} #4.\\
\emph{Ryzyko:} #5.\\
\emph{Stabilność pomysłu:} #6.\\
\emph{Wdrażane z projektem czy później:} #7.\\
\emph{Wykonawca:} zespół.\\
\emph{Przyczyna zaakceptowania cechy:} jest to potrzeba #8.}

\begin{enumerate}
\cecha{Przeszukanie dostępnych piosenek}{Użytkownik powinien mieć możliwość wprowadzenia
kryteriów przeszukiwania zbioru piosenek conajmniej pod kątem:
	\begin{itemize}
		\item tytułu
		\item twórców: autor tekstu, autor muzyki, wykonawca
		\item albumu
	\end{itemize}
	}{niezbędne, bardziej zaawansowane wyszukiwanie: średnie}{2 (4)}{średnie}{pewne}{z projektem (zaawansowane ew. później)}{każdego użytkownika}
%AJ: To już raz było!!
	
\cecha{Wyświetlenie piosenki w przeglądarce}{System umożliwia wyświetlenie wybranej piosenki (z akordami nad tekstem, obok tekstu lub bez akordów)}{niezbędne, spersonalizowane: średnie}{1 (2)}{niskie}{pewne}{z projektem (spersonalizowane ew. później)}{każdego użytkownika}

\cecha{Dokonanie transpozycji akordów w wyświetlanej piosence}{(opcja) Można będzie zobaczyć przetransponowane akordy}{średnie}{$\frac{1}{2}$}{niskie}{pewne}{z projektem, ew. później}{każdego użytkownika}

\cecha{Otrzymanie pdf'a z wybraną piosenką}{System umożliwia wygenerowanie PDF'a z wybraną piosenką w 
wybranym formacie A4 lub A5 z akordami nad tekstem, obok tekstu lub bez akordów}{niezbędne, spersonalizowane: średnie}{2 (4)}{wysokie}{pewne}{z projektem, spersonalizowane ew. później}{użytkownika oglądającego}

\cecha{Zarejestrowanie się do systemu}{(opcja) System umożliwia by użytkownik samodzielnie założył sobie konto w systemie}{duży}{$\frac{1}{3}$}{niskie}{pewne}{z projektem}{użytkownika zarejestrowanego}

\cecha{Obejrzenie dyskusji}{(opcja) Użytkownik może przeczytać dyskusje związaną z daną piosenką. Dyskusja jest wspólna dla wszystkich wersji (gałęzi) piosenki (przemyśleć to!). Użytkownik może zawęzić wyświetlane komentarze do interesującego go zbioru: Wszystkie, dla edytora, dla grajka}{średnie dla dyskusji użytkowników, duże dla edytorów}{1}{niskie}{pewne}{z projektem, ew. później}{każdego użytkownika bardziej zaangażowanego / edytora}

\cecha{Wzięcie czynnego udziału w dyskusji}{(opcja) Użytkownik może dodać komentarz do piosenki (i musi określić jaki ten komentarz ma charakter (Ogólny, dla edytora, dla grajka))}{średnie dla dyskusji użytkowników, duże dla edytorów}{1}{niskie}{pewne}{z projektem, ew. później}{każdego użytkownika bardziej zaangażowanego / edytora}

\cecha{Zalogowanie do systemu}{Użytkownik może zalogować się do systemu podając login (email) i hasło}{duże}{$\frac{1}{3}$}{niskie}{pewne}{z projektem}{użytkownika zarejestrowanego}

\cecha{Wylogowanie się z systemu}{Użytkownik może wylogować się z systemu}{duże}{$\frac{1}{3}$}{niskie}{pewne}{z projektem}{użytkownika zarejestrowanego}

\cecha{Zmiana danych konta}{Użytkownik może zmienić nazwę użytkownika, adres e-mail, hasło. Może nie móc zmienić loginu.}{duże}{$\frac{1}{3}$}{niskie}{pewne}{z projektem}{użytkownika zarejestrowanego}
\cecha{Utworzenie śpiewnika}{Użytkownik może utworzyć śpiewnik i nadać mu jakiś status: prywatny, publiczny, chroniony (tylko dla niższych w hierarchi)}{duże}{2}{średnie}{pewne}{z projektem}{użytkownika zarejestrowanego}
\cecha{Zmiana parametrów śpiewnika}{Użytkownik może zmienić nazwę śpiewnika i jego status, a także domyślne parametry prezentacji śpiewnika}{duże}{1}{średnie}{pewne}{z projektem}{użytkownika zarejestrowanego}
\cecha{Dodanie i usunięcie piosenek z własnego śpiewnika} {Użytkownik może włączać i wyłączać piosenki ze śpiewnika. Włączając piosenkę, użytkownik może wskazać porządaną transpozycję piosenki.}{duże}{$\frac{1}{2}$}{niskie}{pewne}{z projektem}{użytkownika zarejestrowanego}
\cecha{Lokalne piosenki}{Użytkownik może dodawać nowe piosenki związane z jego kontem. Mają one swój status. Status śpiewnika zawierającego lokalną piosenkę nie może być mniej restrykcyjny niż status piosenki. Piosenki mogą być dodawane na bazie już istniejących piosenek dostępnych użytkownikowi}{średni}{1}{niskie}{pewne}{z projektem lub później}{użytkownika zarejestrowanego}
\cecha{Dostęp do piosenek prywatnych i chronionych}{Użytkownik ma dostęp do piosenek publicznych, lokalnych oraz chronionych w obrębie kont do których należy (bezpośrednio!) }{duże}{1}{średnie}{pewne}{z projektem}{użytkownika zarejestrowanego}
\cecha{Dodawanie kont podległych}{Użytkownik może dodać do swojego konta podległe (niższe w hierarchi)- czyli te, które będą miały dostęp do jego składowych chronionych}{niskie}{2}{wysokie}{pewne}{z projektem lub później}{użytkownika zarejestrowanego}
\cecha{Włączenie wyników wyszukowania do śpiewnika}{Użytkownik może włączyć wyniki wyszukiwania do wybranego własnego śpiewnika}{duże}{1}{średnie}{średnie}{z projektem ew. później}{użytkownika zarejestrowanego}

\cecha{Udostępnianie śpiewnika na prywatną stronę} {Użytkownik może wgrać na swoje konto plik .css (do 10kb), a następnie uzyskać link do śpiewnika, który wyświetla tylko jego śpiewnik. }{średnie}{3}{wysokie}{pewne}{z projektem, ew. później}{użytkownika zarejestrowanego}

\cecha{Wydrukowanie śpiewnika}{Użytkownik może poprosić system o przygotowanie pliku pdf zawierający przygotowany do wydrukowania śpiewnika według zadanych parametrów. Przygotowanie wyniku może potrwać nawet kilka minut (kolejka). Wynik może być
dostępny przez pewien czas poprzez stronę, bądź być wysłany na adres e-mail}{duże}{2}{wysokie}{pewne}{z projektem}{każdego użytkownika, w szczególności zarejestrowanego, właściciela śpiewnika}

\cecha{Powiadomienia}{Użytkownik może poprosić system o wysyłanie e-maila, jak jakaś piosenka we wskazanym śpiewniku się zmieniła}{niskie}{$\frac{1}{4}$}{średnie}{pewne}{z projektem lub później}{użytkownika zarejestrowanego}


\cecha{Ściągnięcie apletu umożliwiającego edycję}{Każdy edytor może w niemal przezroczysty sposób ściągnąć aplet do edycji piosenek}{niezbędne}{$\frac{1}{4}$}{niskie}{pewne}{z projektem}{edytora}

\cecha{Praca offline}{(opcja) Aplet umożliwi pracę z piosenką bez połączenia z internetem}{niski}{2}{wysokie}{pewne}{z projektem lub później}{edytora}

\cecha{Modyfikacja istniejącej piosenki}{Edytor może zmienić istniejącą piosenkę}{niezbędne}{2}{wysokie}{pewne}{z projektem}{edytora}
\cecha{Dodanie nowej piosenki}{Edytor może utworzyć zupełnie nową piosenkę}{niezbędne}{1}{wysokie}{pewne}{z projektem}{edytora}
\cecha{Utworzenie nowej gałęzi wybranej piosenki}{Edytor może utworzyć nową gałęź piosenki}{średni}{1}{wysokie}{pewne}{z projektem}{edytora}
\cecha{Weryfikacja}{System nie pozwoli zapisać piosenki symantycznie niezgodnej z formatem piosenki (XSchema)}{niezbędne}{2}{wysokie}{pewne}{z projektem}{edytora}


\cecha{Synchronizacja przy próbie pracy kilku osób nad tą samą piosenką}{Proste złączanie zmian zapewni Subversion. Przy barszij skomplikowanych zmianach zostanie wcheckinowana ostatnia zmiana oraz edytor dostanie ostrzeżenie o zaistnieniu konfliktu(opcja)}{w wersji podstawowej (ostatni nadpisuje): niezbędne, mądrzejsza synchronizacja: niski}{$\frac{1}{4}$ (2)}{niski (wysoki)}{pewne}{z projektem, mądrzejsza synchronizacja ew. później}{edytora}


\cecha{Wycofanie zmian}{Gdy zmiany nie polepszają piosenki}{niski}{1}{średnie}{pewne}{z projektem lub później}{opiekuna}

\cecha{Poznanie adresu email zmieniającego}{Adresy e-mail nie są publiczne, ale opiekun może je poznać - by wysłać pouczenie}{niski}{$\frac{1}{3}$}{niskie}{pewne}{z projektem lub później}{opiekuna}

\cecha{Przeniesienie zmian do oddzielnej gałęzi piosenki}{W sytuacji gdy zmiany, są cenne, ale stanowią tylko alternatywną wizję}{niski}{1}{średnie}{pewne}{z projektem lub później}{opiekuna}

\cecha{Dokumentacja formatu piosenki}{Zostanie przygotowana}{niezbędne}{3}{wysokie}{pewne}{z projektem}{developera i bardziej zaawansowanego edytora}
\cecha{Bezpośredni dostęp do repozytorium do odczytu}{Dla innych zewnętrznych narzędzi zostanie udostępniony}{średni}{2}{wysokie}{pewne}{z projektem lub później}{developera}

\end{enumerate}

\end{document}
</pre></body></html>