Informační systém pro Lukostřelecký klub 1. LK Plzeň 1935
DOKUMENT SPECIFIKACE POŽADAVKŮ Verze 1.0
Historie dokumentu: Datum 3/6/13 13.3.2013 16.3.2013
Verze 1/1/00 1/1/01 1/1/02
17.3.2013
1/1/03
Popis prvotní specifikace doplnění specifikace Doplňující formátování textu,odstranění nespecifikovaných kapitol ze vzorové šablony, drobné doplnění a úpravy textu. Oprava formátování a chyb
Autor Jakub Krauz Zbyněk Růžička Zbyněk Růžička
Jan Strejc
Obsah 1. Úvod 1 1.1. Účel projektu ............................................................................................................................... 1 1.2. Rozsah projektu ........................................................................................................................... 1 1.3. Definice, zkratky a akronymy ..................................................................................................... 1 1.4. Odkazy ......................................................................................................................................... 1 2. Obecný popis 2 2.1. Základní přehled funkcí ............................................................................................................... 2 2.2. Role uživatelů .............................................................................................................................. 2 2.3. Přehled omezujících podmínek ................................................................................................... 2 2.4. Předpoklady a závislosti .............................................................................................................. 3 3. Specifikace požadavků 4 3.1. Uživatelské rozhraní .................................................................................................................... 4 3.1.1. Home .................................................................................................................................... 5 3.1.2. O klubu ................................................................................................................................ 5 3.1.3. Osazenstvo ........................................................................................................................... 5 3.1.4. Info pro členy ....................................................................................................................... 6 3.1.5. Foto & Video ....................................................................................................................... 6 3.1.6. Download ............................................................................................................................. 6 3.1.7. Odkazy ................................................................................................................................. 6 3.1.8. Kontakt ................................................................................................................................. 7 3.1.9. Sponzoring ........................................................................................................................... 7 3.1.10. Uživatelská navigace ......................................................................................................... 7 3.2. Požadavky na výkonnost ............................................................................................................. 7 3.3. Vlastnosti ..................................................................................................................................... 7 4. Ověřovací kritéria 8 4.1. Druhy testů .................................................................................................................................. 8 5. Analýza rizik při vývoji aplikace
9
6. Přílohy 10 6.1. Příloha 1 – střelecké kategorie .................................................................................................. 10 6.2. Příloha 2 - Typy střeleckých závodů z pohledu aplikace .......................................................... 10 6.3. Příloha 3 - Kontakty na zadavatele a vývojáře .......................................................................... 10
1. Úvod 1.1. Účel projektu Cílem projektu je vytvoření moderních dynamických webových stránek pro prezentaci Lukostřeleckého klubu 1. LK Plzeň 1935 v síti Internet. Tento produkt nahradí současné zastaralé stránky klubu. Stránky budou využívány vedením a členy klubu, budou sloužit k prezentaci činnosti klubu a výsledků jednotlivých členů. Důležitým přínosem, který je od nové podoby stránek očekáván, je udělat dobrý dojem na případné sponzory. Tento dokument slouží pro formulování požadavků lukostřeleckého klubu na straně jedné a jako závazný popis vytvářeného produktu pro vývojáře na straně druhé. Bude průběžně aktualizován podle požadavků zadavatele během jednotlivých iterací. Může též sloužit případným budoucím vývojářům, kteří na projektu budou někdy pokračovat.
1.2. Rozsah projektu Cílem projektu je dokončení nových webových stránek a jejich nasazení do ostrého provozu. Projekt byl již v minulosti rozpracován, hotový je především grafický návrh stránek, který byl zpracován profesionálním grafikem. Tento návrh bude při implementaci dodržen. Zadavatel dále předal zdrojové soubory, které vytváří spustitelnou kostru aplikace. Tuto kostru je možné využít podle potřeby. Výsledkem projektu budou fungující dynamické stránky, které budou nasazeny do ostrého provozu. Není nutné implementovat všechny jednotlivé požadavky, důležité je předat produkt, který bude fungovat bez chyb a bude obsahovat všechny důležité funkce. Jednotlivé detaily, které nejsou pro funkci systému důležité, je možné doimplementovat až během ostrého provozu. Pro zadavatele je důležité mít celkově reprezentativní web, který může použít jako opěrný bod při jednání s potenciálními sponzory sportovního klubu. Zásadní je proto funkcionalita bez chyb v kombinaci s příjemným designem, který již byl navrhnut.
1.3. Definice, zkratky a akronymy aktivní střelec = Aktivně střílí a také má možnost zasahovat do obsahu stránek povolených střeleckých kategorií. neaktivní střelec = Patří mezi přátele klubu, ale nestřílí, a proto se od něho neočekává možnost zasahovat do obsahu stránek vybraných střeleckých kategorií. úkol "montování"
= Montáž a údržba střeleckých terčů. Úkoly se rozdělují mezi členy klubu.
úkol "sekání"
= Sekání trávy v prostorách střelnice a klubu.
1.4. Odkazy Stávající stránky klubu: http://www.lkplzen.com
1
2. Obecný popis 2.1. Základní přehled funkcí Webové stránky budou plnit především následující funkce: •
prezentace klubu (např. historie, osobnosti, úspěchy apod.)
•
prezentace jednotlivých členů a jejich úspěchů
•
informace pro členy a veřejnost (tréninky, závody, rozdělení úkolů, finanční náročnost,...)
•
prezentace fotografií a videa ze závodů a dalších akcí
Systém bude umožňovat: •
anonymní prohlížení
•
registrace uživatelů
•
vytváření a editace článků
•
vytváření a editace novinek
•
příspěvky do jednoduché diskuze
•
prohlížení profilu uživatelů
•
přihlášený uživatel má možnost editovat svůj profil a střelecké výsledky
•
zasílání zpráv mezi přihlášenými uživateli
•
nahrávání fotografií a videa
2.2. Role uživatelů Systém předpokládá 4 základní kategorie uživatelů: 1. Nepřihlášený uživatel, který si stránky anonymně prohlíží. Nemá přístup k profilům uživatelů. Nemá možnost vkládat a editovat obsah. 2. Neaktivní střelec (viz seznam pojmů). Je to registrovaný uživatel. Role vyžaduje přihlášení. Nemůže upravovat vybrané střelecké kategorie. Oproti nepřihlášenému uživateli může zobrazovat profily všech uživatelů, upravovat svůj profil. (TBD zjistit v dalších iteracích více o rozdílech aktivní vs. neaktivní střelec.) 3. Aktivní střelec (viz seznam pojmů). Role vyžaduje přihlášení. Disponuje vyššími právy editace obsahu stránek než neaktivní střelec. Má možnost přidávat a editovat své články, spravovat své střelecké výsledky atd. 4. Správce obsahu. Role vyžaduje přihlášení. Má možnost vytvářet, editovat a mazat všechny články nebo aktuality a spravovat celkový informační obsah. (TBD Zjistit, zda má práva k celkové správě uživatelských profilů. Asi ne.) 5. Administrátor je speciální případ registrovaného uživatele, který může navíc editovat či mazat všechny uživatelské profily, články a aktuality. Dále může například nahrávat fotografie a videa.
2.3. Přehled omezujících podmínek a) dodržení hotového grafického návrhu 2
b) použití databáze MySQL pro uložení dat c) technologie Java EE (aplikační server Tomcat) d) Stávající kostra view je navržena s použitím frameworku Wicket. Předpokládá se i nadále dodržení tohoto frameworku, neboť kompletní refaktorizace stávající kostry by byla nad naše současné časové možnosti.
2.4. Předpoklady a závislosti Předpokladem pro nasazení stránek do ostrého provozu je zajištěný webhosting, který poskytuje výše zmíněné technologie (Java EE, MySQL). Hosting si zajišťuje lukostřelecký klub sám.
3
3. Specifikace požadavků 3.1. Uživatelské rozhraní Hlavní menu Hlavní menu bude umístěné horizontálně nad obsahem stránky, pod logem klubu a uživatelskou navigací (viz přiložený grafický návrh). Položky menu: 1. Home 2. O klubu 2.1.Dnes 2.2.Historie 2.3.Osobnosti 2.4.Předsednictvo 2.5.Úspěchy 2.6.Soustředění 2.7.Média o nás 3. Osazenstvo 4. Info pro členy 4.1.Tréninky 4.2.Brigády 4.3.Akce 4.4.Závody 4.5.Soustředění 4.6.Archiv novinek 4.7.Výsledky 5. Foto & Video 6. Download 7. Odkazy 8. Kontakt 9. Sponzoring Uživatelská navigace V pravé části stránky pod hlavním menu. Položky: 10. Přihlásit / Odhlásit 11. Jméno 12. Můj profil 13. Nastavení 14. Pošta (1..* nepřečtených) Po kliknutí na odkaz se zobrazí stránka s odkazy Nová zpráva, Doručené, Odeslané.
15. Přidat novinku 16. Administrace
4
3.1.1. Home •
Aktualitka - ihned viditelná, výrazná (do očí bijící); pár stručných slov, případné detaily po rozkliku.
•
G - Calendar - seznam nejbližších akcí, viz. současné stránky.
•
Novinky - po přihlášení volba delete, edit v chlívku novinky (závislá na právech); 5 novinek, pak odkaz na archiv.
•
Diskuze - předvyplněné jméno přes cookies.
•
Po přihlášení jsou vidět úkoly členů - ihned je vidět kdo seká, kdo montuje atd.
3.1.2. O klubu Všechny části této sekce krom poslední tvoří statický informativní text. Média o nás •
Článek, přepsaný text z novin
•
Fotka novinového útržku
•
Odkaz na video jedná-li se o video reportáž
3.1.3. Osazenstvo Obsahuje seznam (tabulku) registrovaných členů klubu. Seznam zobrazuje jména členů, jejich střelecké kategorie a největší úspěch (vybírá si uživatel sám v nastavení svého profilu). Úvodní řazení je střelců podle kategorií, poté podle abecedy. Neaktivní střelci jsou řazeni pod všemi kategoriemi. Pro přihlášeného uživatele jsou jména střelců prokliknutelná na jejich osobní profil. Nad touto tabulkou je umístěn filtr, umožňující filtrování podle pohlaví, kategorie, jména, věku atd. Profil Osobní profil střelce může zobrazovat pouze přihlášený uživatel. Profil obsahuje následující položky: •
fotka
•
věk (vypočítáno automaticky z data narození)
•
kategorie (automaticky z data narození - viz Příloha 1 – střelecké kategorie, automatické přepočtení kategorií u všech profilů vždy 20. října)
•
přezdívka
•
vlastní komentář člena
•
střelecké fotky
•
kontakt
•
možnost poslat soukromou zprávu hned z profilu
5
•
statut člena v rámci klubu (nastavuje administrátor) - střelec, člen předsednictva, rozhodčí, trenér, neaktivní člen - jeden člen může mít více statutů najednou
•
osobní rekordy - výsledek, osobák za co, čas a místo, kategorie, sestava, komentář - může je upravovat uživatel i administrátor - vždy může být přidán rekord za různé kategorie - zobrazovat by se měly vždy jako první rekordy z aktuální kategorie střelce = jsou členěny/seskupovány podle věkových kategorií - možnost zatrhávat osobní rekordy za danou kategorii
•
seznam odstřílených závodů - datum, místo, výsledek, komentář - odkaz na oficiální výsledkovou listinu - závody MČR opticky zvýrazněné + malý obrázek medaile - proběhlé závody (včetně základních informací jako datum a místo) zadává do systému administrátor, uživatelé si při editaci profilu pouze vybírají závod ze seznamu a přidávají k němu své info (umístění, komentář, atd.)
3.1.4. Info pro členy Obsahuje rozpis tréninků, informace týkající se financí, kalendář akcí, seznam úkolů (sekání, opravy terčovnic, úklid), výsledky. Část těchto informací je přístupná i nepřihlášenému uživateli – obecné informace o časech a místech konání tréninků, finance. Ostatní informace přístupné pouze přihlášenému uživateli. Tabulky a texty může upravovat pouze administrátor. První obsah po rozkliku - podrobný g-calendar + filtrování (závody, akce atd.). Výsledky budou jako odkazy na oficiální výsledkové listiny svazu. Předtím výběr závodu + filtr.
3.1.5. Foto & Video Výběr obrázky nebo videa ještě před výběrem galerie. Seznam galerií možno filtrovat. Galerie - text + obrázek, po rozkliku seznam fotek / videí s číslem (viz. současný stav). Galerie může upravovat pouze administrátor. Důležité je snadné nahrávání většího množství fotek/videí najednou (např. všechny fotky z daného závodu).
3.1.6. Download Seznam souborů s popiskem. Soubory může přidávat jen admin. Zobrazení daného souboru rozděleno na anonymní / přihlášený uživatel.
3.1.7. Odkazy Odkazy na ČLS, obchod, sponzory, fórum atd. 6
3.1.8. Kontakt •
Obecný kontakt na klub, jasně viditelný a zřejmý. (
[email protected])
•
Kontakty na jednotlivé členy předsednictva.
•
Mapy, která se bude automaticky měnit podle sezóny (na Štruncovy sady / na tělocvičnu).
•
Walkthrough na střelnici v podobě zrychleného videa.
3.1.9. Sponzoring Seznam sponzorů. Možnost umístit též reklamu vývojářů.
3.1.10.Uživatelská navigace •
Automatické přihlášení přes cookies.
•
Přihlašovací formulář součástí každé stránky.
•
Jméno přihlášeného uživatele prokliknutelné na vlastní profil.
•
Nastavení povede na úpravu vlastního profilu, změna hesla, nahrání vlastních střeleckých fotografií, vkládání závodů.
•
Pošta povede na seznam doručené pošty, tam dále možnost přepnout na odeslanou, napsat novou. Odkaz zobrazuje počet nových nepřečtených zpráv.
•
Přidat novinku je rychlý odkaz na přidání novinky jinak existující pod administrací.
•
Administrace umožní přidávat novinky, vkládat / rušit aktualitu, upravovat články v sekci o klubu, přidávat média, galerie, soubory atd.
3.2. Požadavky na výkonnost •
Stabilní běh v běžném provozu.
•
Nepředpokládá se větší zatížení aplikace mnoha současnými requesty.
•
Počet celkově registrovaných profilů v DB se očekává až pár set, ale nikoliv tisíců.
3.3. Vlastnosti •
Většina funkcionalit pro přihlášené uživatele by měla být dostupná na 2 – 3 kliky.
•
Požadavek na lokalizaci stránek nebyl specifikován.
•
Z důvodu ochrany osobních údajů bude osobní profil střelce zobrazen až po přihlášení viz kapitola Obsazenstvo.
•
Při návrhu a implementaci funkcionalit bude kladen důraz na snadnou udržovatelnost kódu a čitelnost navrženého řešení, protože lze očekávat, že v budoucnu bude implementované řešení rozšiřovat jiná skupina programátorů.
7
4. Ověřovací kritéria Dílčí release aplikace bude po každém sprintu nasazen do testovacího prostředí, kde bude moci zadavatel testovat průběžné výsledky práce. Protože aplikace má především prezentační charakter, nepředpokládáme hojné zastoupení unit testů. Testování jednotkovými testy bude pravděpodobně podrobena pouze logika klíčových funkcionalit aplikace. Rozhodování o implementaci testů k vybrané funkcionalitě bude věcí debaty na počátku každého sprintu. Pro jednotkové testování se nabízí použití frameworku Mockito. Automatické spouštění testů při buildu zajišťuje Maven.
4.1. Druhy testů •
Uživatelské testování
•
Jednotkové automatické testy.
8
5. Analýza rizik při vývoji aplikace Identifikovaná hrozba Nedostatečná specifikace požadavků
Pravděpodobnost hrozby nízká
Dopad hrozby
Prevence
Implementace a požadavky jsou v rozporu.
Komunikace se zadavatelem pravidelná a též v případě nejasností.
Neporozumění používáným technologiím
nízká
Vysoký - hrozí nestabilita a nevhodný návrh i implementace.
Studium (+ sdílení) online materiálů + stávajícího kódu prototypu aplikace.
Odstoupení člena týmu
nízká
Nutnost přerozdělit práci, omezit počet implementovaných vlastností aplikace.
Být s týmem v pravidelném konatku a včas informovat o komplikacích, u kterých je žádoucí asistence/spoluúčast dalších členů.
Nedostatek času pro implementaci všech navrhovaných vlastností aplikace
velmi reálná Nedodělané až zcela funkcionality, jistá testování, nedokončený use-case.
Rozdělit požadavky podle priorit, zabývat se časovou estimací požadavků na začátku každého sprintu, jednotlivé release verze by měly obsahovat ucelené funkcionality z pohledu ovladatelnosti a případů užití.
Přebujelá dokumentace na úkor implementace, dokumentační a režijní overkill.
reálná
Zaznamenávat hlavně opravdu klíčové a vyžadované změny a události, používat jednoduché nástroje pro project management a týmovou komunikaci.
Mnoho dokumentačních a režijních artefaktů na úkor implementace.
9
6. Přílohy 6.1. Příloha 1 – střelecké kategorie Příslušnost střelce ke střelecké kategorii se určuje vždy na začátku sezóny (20. října) a zůstává v platnosti po celou sezónu. Pro zařazení do kategorií se bere v úvahu pouze rok narození. Název kategorie
Rozdíl (aktuální rok – rok narození)
do 8 let
<8
do 10 let
8-9
mladší žáci
10 - 11
starší žáci
12 - 13
kadeti
14 - 16
junioři
17 - 19
muži / ženy
20 - 50
senioři
> 50
6.2. Příloha 2 - Typy střeleckých závodů z pohledu aplikace (TBD bude aktualizováno na základě informací od zadavatele) •
Běžný
•
MČR
•
Mezinárodní
6.3. Příloha 3 - Kontakty na zadavatele a vývojáře Zadavatelé: Václav Papež Jan Šípek
[email protected] [email protected]
Členové vývojového týmu: Jan Strejc Vít Bábel Jakub Krauz Zbyněk Růžička
[email protected] [email protected] [email protected] [email protected]
10