Technická specifikace Databáze pro nový web ŠSČR Číslo projektu: ŠSČR-01
Dodavatel: Baader Computer, spol. s r. o., Pavel Petrlík Odběratel: Šachový svaz České republiky, Jiří Havlíček
Autoři dokumentu: Pavel Petrlík
Stav: 16-11-2015 1
Obsah Historie dokumentu ................................................................................................................................ 3 Cíle projektu ............................................................................................................................................ 4 Cíl projektu .......................................................................................................................................... 4 Aktuální stav ........................................................................................................................................ 4 Cílový stav ............................................................................................................................................ 4 Harmonogram ..................................................................................................................................... 4 Business model ........................................................................................................................................ 5 Kontextový model ............................................................................................................................... 5 Procesní integrace ............................................................................................................................... 5 Základní funkce, případy užití.................................................................................................................. 6 Databáze .............................................................................................................................................. 6 Back-end aplikace pro administraci dat .............................................................................................. 8 Přihlášení do modulu....................................................................................................................... 8 Správa uživatelů .............................................................................................................................. 8 Importní modul................................................................................................................................ 8 Vkládání a editace dat prostřednictvím formulářů ....................................................................... 10 Exportní modul .............................................................................................................................. 10 Vývoj aplikace, software, hardware ...................................................................................................... 11 Použité technologie při vývoji ........................................................................................................... 11 Back-end administrátorská aplikace.............................................................................................. 11 Minimální konfigurace hardware ...................................................................................................... 11 Reporting ........................................................................................................................................... 11 Model nasazení ..................................................................................................................................... 11 Logická struktura komponent řešení................................................................................................. 11 Bezpečnost ............................................................................................................................................ 12 Základní bezpečností a legislativní požadavky .................................................................................. 12 Práce s klasifikovanými daty.............................................................................................................. 12 Požadavky na logování/ audit ........................................................................................................... 12 Uživatelské oprávnění ....................................................................................................................... 12 Datový model ........................................................................................................................................ 13 Zálohování dat ....................................................................................................................................... 14 Provoz a servis ....................................................................................................................................... 14 Nasazení řešení...................................................................................................................................... 14 Pilotní provoz..................................................................................................................................... 14 Předání aplikace do ostrého provozu ................................................................................................ 14 2
Historie dokumentu Verze Změnu provedl dokumentu 1.0 Pavel Petrlík 1.1. Pavel Petrlík 1.2.
Pavel Petrlík, Vít Kolařík
Typ změny
Stav
Datum
Startovní verze Upřesnění požadavků ze strany zadavatele Doplnění požadavků po schůzce s panem Šmajzrem
Návrh Návrh
18-09-2015 08-10-2015
Před schválením
16-11-2015
3
Cíle projektu Cíl projektu Cílem projektu je vytvořit databázi pro nové webové stránky od firmy Litea Solution, která nahradí aktuální databázi stávajícího webu www.chess.cz. Nová databáze by měla až na výjimky obsahovat všechny informace ze stávající databáze, ovšem v dokonalejší, přehlednější a hlavně rychlejší datové struktuře. Navíc do databáze budou přidány některé nové informace, objekty na základě nových skutečností a požadavků. K databázi bude rovněž vyvinuto administrátorské rozhraní pro správu dat.
Aktuální stav Aktuální stav je takový, že databáze napojená na web www.chess.cz je nevyhovující a pomalá pro nové webové stránky a pro poměrně frekventovaný provoz v době aktualizace dat, nahrávání výsledků. Nové webové stránky nemají připravené žádné rozhraní pro administraci databáze, proto je potřeba pro administrátory a vedoucí soutěží vyvinout i back-end modul pro administraci (dále jen adminmodul) této databáze.
Cílový stav Cílového stavu bude dosaženo vyvinutím databáze a aplikace pro její administraci, napojením databáze na nový web od firmy Litea Solution a naplněním databáze daty ze stávající databáze.
Harmonogram Vzhledem k definovaným požadavkům na databázi a aplikaci pro její administraci byly definovány konkrétní milníky, které zaručí jejich včasné dokončení. Pro řádné dokončení projektu je nutná součinnost objednatele pro dokončení jednotlivých milníků. Milník Dokončení vstupní analýzy (aktuální databáze a importní soubory)
Začátek 30-11-2015
Konec 04-12-2015
Návrh a vývoj databáze
04-12-2015
11-12-2015
Vývoj administrační části (admin-modulu) Interní testování Externí testování Zapracování připomínek Nasazení databáze a adminmodulu do produkčního prostředí
07-12-2015
22-01-2016
25-01-2016 01-02-2016 10-02-2016 21-02-2016
31-01-2016 10-02-2016 20-02-2016 04-03-2016
4
Komentáře Z části připravena, předpokladem k dokončení jsou schůzky se zadavatelem, správcem partnerských databází příp. webmasterem Předpokladem jsou schůzky s tvůrci nového webu
Baader Computer ŠSČR Uvedení do produkce, paralelní běh se současnou databází, převzetí aktuálních dat
Business model Kontextový model Celá struktura nového webu se bude dělit na front-endovou prezentační část pro veřejnost (toto je na straně Litea Solution), back-endovou administrační část pro správu databáze a vlastní SQL-databázi. Back-endová část je určena pouze pro roli administrátor s tím, že do aplikace může mít přístup více uživatelů.
Procesní integrace Databáze bude poskytovat data o hráčích, dlouhodobých soutěžích a jednorázových turnajích webu www.chess.cz. Back-end aplikace bude vyvinuta jako nástroj pro správu této databáze ze strany administrátora webu a jednotlivých vedoucích soutěží. Aplikace (back-end část) bude nasazena u poskytovatele hostingu (třetí strana) a spravována bude pověřenými zaměstnanci Baader Computer. 5
Základní funkce, případy užití Databáze Databáze bude navržena a poběží na serveru MySQL (příp. PostgreSQL). Webové stránky budou do databáze přistupovat (číst z databáze) prostřednictvím databázových pohledů (view) a uložených procedur s konfigurovatelnými parametry. Návrh těchto pohledů a procedur proběhne na schůzkách s autory webu Litea Solution, kde budou přesně definovány, jaká data na jakých místech web od databáze očekává (seznam všech míst, kde získávají data z databáze). Databáze bude obsahovat jednak členská data (soutěž, tým, oddíl, hráči) a jednak soutěžní data (soutěž, kolo, soupiska, zápas, hra). K tomuto budou postupně provedeny následující kroky:
analýza stávající databáze db.chess.cz analýza nových požadavků ze strany zadavatele návrh nové struktury databáze, vytvoření datového modelu vygenerování databáze (MySQL) ve vývojovém, testovacím i produktivním prostředí komunikace s firmou Litea Solution, příprava SQL dotazů/pohledů/uložených procedur pro zobrazování dat na webu import dat ze stávající databáze do nové (kompletní historie)
Nové požadavky na databázi:
evidence přestupů, cizinců – uchovávání historie (možno získat z LOK - listina osobních koeficientů?) řešení písmenných příznaků hráčů (host, cizinec…) řešit dvojí výsledek partie při utkání družstev – při kontumaci mohou být dva různé výsledky jedné partie – u výsledku družstva se počítá kontumace, ale pro zápočet na Elo listinu se posílá skutečný výsledek dosažený na šachovnici. uchovávat složení sestav družstev i jejich historii u dlouhodobých soutěží družstev přidat příznak, zda se jedná o soutěž mládeže nebo dospělých implementovat vazbu družstev na klub a hráče na členskou databázi u každého člena zavést příznak, kde by se evidoval výskyt jeho jména na soupiskách dlouhodobých soutěží družstev, který nesmí u dospělých být větší než 2, u mládeže větší než 3 dle nařízení MŠMT bude potřeba sledovat aktivitu jednotlivých hráčů (za aktivního hráče bude uznán ten, kdo se zúčastní minimálně 4 mistrovských akcí) podpora fakturace členských příspěvků jednotlivým klubům na základě jejich členské základny (potřeba definovat mechanismus) zaznamenávání historie ratingů hráčů (3x mezinárodní a 2x národní ELO) o návrh nového importního XML rozhraní z databáze p. Šmajzra zaznamenávající dobu platnosti jednotlivých typů ELO postupové klíče – vždy ke konkrétnímu datu v roce (k 30.6., případně k 30.9. v závislosti na typu soutěže) je zapotřebí evidovat počty registrované mládeže v jednotlivých kategoriích v jednotlivých krajích – určují se podle toho postupové klíče pro mistrovské soutěže jednotlivců podpora projektu Šachy do škol o eviduje se název školy, její adresa a kontaktní osoba, příslušnost ke kraji 6
o
jméno lektora a jeho kvalifikace, počet žáků, forma zapojení (povinný předmět, nepovinný předmět, šachový kroužek) o evidence učeben, den a čas výuky, poskytnuté materiály o evidence dětí, které do projektu vstoupily (kvůli sledování „úspěšnosti“ tohoto projektu) uchování historie o jednotlivých oddílech uchovávat historii stavu členské základny v jednotlivých věkových kategoriích (vč. roku narození, výkonnostní třídy, typu registrace) u každého člena se musí sledovat pro potřeby MŠMT následující ukazatele (jeden může mít více rolí): o Sportovec v soutěžích o Aktivní sportovec – individuální sportovec účastnící se 4 otevřených soutěží o Trenér o Rozhodčí o Organizační pracovník o Funkcionář o Ostatní u klubů a členské základny zajistit třídění i podle okresů zavedení číselníku soutěží u soutěže příznak, jaké ELO se používá, zda se výsledky posílají na FIDE u každé dlouhodobé soutěže evidovat startovné implementace pravidel, které bude potřeba hlídat: o u hráčů družstev se budou sledovat písmenkové příznaky: a. U soutěží dospělých: Z – hráč základní sestavy H – host V – volný hráč C – cizinec (import cizinců možný XML souborem z databáze p. Šmajzra) b. U soutěží mládeže: Z – hráč základní sestavy H – host V – volný hráč C – cizinec D – dívka nebo super mladý hráč M – mladý hráč o hráč základní sestavy (Z) musí nastoupit v sezóně k minimálně dvěma zápasům. o k zápasu smí nastoupit méně než 50% písmenkových hráčů (H, V, C), tj. maximálně 3 písmenkoví hráči při zápasech hraných na 8 šachovnicích (prakticky všechny soutěže) a 2 písmenkoví hráči při zápasech hraných na 5 šachovnicích (nejnižší krajské soutěže a některé okresní soutěže). U soutěží mládeže musí navíc nastoupit jeden mladý hráč a jedna dívka nebo super mladý hráč a pouze jediný písmenkový hráč (H, V, C) o ještě se označují K – kapitán a ZK – zástupce kapitána, to jsou ale jen administrativní označení (možnost rozšíření importního XML rozhraní od Swiss-Managera)
7
Back-end aplikace pro administraci dat Přihlášení do modulu Přihlášení do aplikace je zabezpečeno přihlašovacím jménem a heslem (včetně šifrování hesel). Vstup do zabezpečeného admin-modulu bude přímo z nového webu.
Správa uživatelů Budou existovat dvě úrovně uživatelů – webmaster a vedoucí soutěží. Modul pro správu uživatelů umožnuje webmaster přidat nového uživatele, editovat uživatele nebo ho deaktivovat. Webmaster i vedoucí soutěží mají pravomoc přihlásit se do admin-modulu, importovat či editovat data vybrané soutěže popsaná v následujících odstavcích. Důležitá podmínka je, že jeden vedoucí soutěže může řídit a tedy datově spravovat více soutěží.
Importní modul Importní modul slouží k hromadné aktualizaci záznamů dlouhodobých soutěží družstev, jednotlivých zápasů i jednotlivých hráčů (analýza bude provedena na základě ukázkových souborů 1401.XML a 1444.XML). Uživatel nejprve vybere soutěž, kterou chce upravovat. Při volbě „Import dat“ vybere XML soubor, který chce nahrát do aplikace. XML soubory budou mít pevnou předdefinovanou strukturu, která bude vždy při importu aplikací zkontrolována. Bude prověřen požadavek na rozšíření XML importu o další údaje – rozhodčí, začátek utkání… Tagy XML souborů:
- identifikace soutěže, v té je ovšem minimum údajů, další (třeba adresy hracích místností) se dopisují ručně na web. - tým, opět jen základní údaje o týmech, tabulkové údaje, přestože jsou tam na ně tagy, v souborech nejsou. - kolo soutěže, rozpis zápasů je v tagu schedule <list> - soupisky. Dost důležitý je tag <memo>, ve kterém je klasifikace hráčů, bohužel jen formou textové poznánky, takže je to nejednotné. Standardně se používá Z - člen základní sestavy, V - volný hráč, H - host, C - cizinec, K - kapitán a v soutěžích mládeže (1444.xml) ještě D - dívka, M - mladší hráč. Je tedy možný i zápis třeba ZDMHC. Bohužel ale nikde není psáno, že to všichni vedoucí soutěží zapíší stejně, takže nezbývá, než tyto údaje prostě převzít tak jak jsou i když se jedná o klíčové informace. - výsledky zápasů. Tady sumy spočítány jsou (to by šlo snadno automaticky z výsledků partií). <no> - číslo kola - číslo prvního týmu - číslo druhého týmu <scr1> - bodový zisk prvního týmu <scr2> - bodový zisk druhého týmu <note> - poznámka - identifikace týmů párem čísel ze seznamu družstev <no> - patrně číslo kola. Mírně redundantní, šlo by odvodit ze <schedule>, ale může se velice hodit. 8
- číslo prvního hráče ze soupisky jeho družstva - dtto pro druhého hráče tady je nutno zdůraznit, že pořadí hráčů v partii není dáno tím, kdo má bílé a kdo černé, jako první se vždy uvádějí hráči domácího družstva a beze zbytku platí, že na lichých šachovnicích mají bílé domácí a na sudých hosté. <scr1> - bodový zisk prvního hráče <scr2> - bodový zisk druhého hráče Další funkcí importního modulu bude pravidelný XML-import dat (kompletní nebo rozdílový) z databáze p. Šmajzra – budou importována data o oddílech, jejich členech a ELO bodech. Tagy oddílového XML (příklad): 20302 TJ Jiskra Třeboň 26 13 B 102 T 16180 true <www/> 13102
<email>[email protected] Tagy členského XML (příklad): 37404 <jmeno>Zindulka Mikuláš 960526 1996 4 1097 0 0 30505 <mobil/> <email/> - <stav>N - <rplatnost/> 9
- <tplatnost/> <poznamka/> 2015-03-10 08:09:45 15 1996-05-26 00:00:00 <pohlavi>false 2015-03-10 00:00:00 0 0 0 1100
Vkládání a editace dat prostřednictvím formulářů Ne všechna data jsou obsažena v importních XML-souborech, proto je potřeba přihlášeným uživatelům umožnit manuální editaci dat přes zadávací formuláře. V následujícím seznamu, který bude potřeba verifikovat zadavatelem, jsou uvedeny údaje, které bude potřeba editovat uživatelem:
základní data a detaily o jednotlivých soutěžích (kontakty na vedoucího soutěže, vlastnosti soutěže a také odkaz na chess-results) seznam oddílů a družstev – základ je možné nahrávat i z XML souborů seznam hráčů a detaily daného družstva (soupiska, kapitán, zástupce kapitána, hrací místnosti) aktuální rozlosování soutěže (kdo s kým v jakém kole) - toto je možné nahrávat i z XML souborů termíny zápasů (toto je možné nahrávat i z XML souborů) vkládání dat o nově registrovaných členech, o přestupech šachistů, změny údajů o klubech detailní informace o členech oddílu, hráčích o kontakt na člena (telefon, email) o evidence státu narození u člena (požadavek FIDE) o evidovat datum registrace a pozastavení registrace u každého člena a na konci kalendářního roku poskytnout odpovědnému pracovníkovi KM ŠSČR údaje přírústku a úbytku členů v každé věkové kategorii o evidence celé historie kvůli sledování vývoje v jednotlivých kategoriích v průběhu let nahrávání dokumentů k soutěžím nahrávání zápisů partií ve formátu PGN
Exportní modul Exportní modul slouží k předávání dat dalším systémům, institucím či organizacím.
export pro ministerstvo školství (nutno definovat strukturu, obsah, formát, způsob a frekvenci přenosu dat) generování podkladů pro FIDE (také nutno definovat) podklady pro vybírání členských příspěvků export seznamu jubilantů (50, 55, 60 let, … měsíčně)
10
hlášení pro organizací ČUS (Česká unie sportu) a to jak za celý ŠSČR, tak pro jednotlivé kluby (závisí na tom lokální dotace pro kluby) - ČUS v současné době předělává svůj IS, nutno zjistit podrobnosti
Vývoj aplikace, software, hardware Použité technologie při vývoji Back-end administrátorská aplikace Aplikace bude vyvinuta na technologiích ASP MVC, WebAPI s použitím na Microsoft .NET Framework 4.5 a databázi MySQL, příp. PostgreSQL.
Minimální konfigurace hardware Minimální požadavky na aplikační server -
2 GHz dvoujádrový procesor, 64 bitový (x64) 4 GB RAM 60 GB diskový prostor nainstalován Microsoft .NET Framework 4.5 100 Mbit síťová karta a připojení na internet fyzický nebo virtuální stroj (VMware, Hyper-V) Microsoft Windows 2008 64 Bit Není třeba zvláštní konfigurace serveru.
Minimální požadavky na databázový server -
2 GHz dvoujádrový procesor, 64 bitový (x64) 4 GB RAM 60 GB diskový prostor 100 Mbit síťová karta a připojení na internet MySQL, příp. PostgreSQL server
Reporting Admin-modul nepočítá s reportingem, maximálně může poskytnout exportní soubor se zaznamenanými údaji v logovacím souboru – informace o tom, kdo jaké údaje v daném časovém intervalu zadal / změnil.
Model nasazení Logická struktura komponent řešení V rámci vývoje aplikace pro administraci databáze budou použity nebo vytvořeny komponenty:
Telerik Web UI komponenty pro zpracování dat do grafické podoby na webu (administrátorská část). Pro přihlášení uživatelů bude využito standardního autorizačního procesu. Administrátorská aplikace bude běžet ve dvou prostředích: A) Produkční – http://www.chess.cz/admin 11
B) Testovací – http://chesscz.vyzkousej-hosting.cz/admin
Bezpečnost Základní bezpečností a legislativní požadavky Legislativní požadavky na Aplikaci Na aplikaci se vztahují zákonná nebo jiné externí nařízení a předpisy Na aplikaci se vztahují interní předpisy
Ne Ne
Práce s klasifikovanými daty Data v administrativní aplikaci jsou klasifikovaná jako „veřejná“. Všichni uživatelé / návštěvníci webu mají read-only přistup ke stejným informacím. Spravovat tato data, ať již formou importu dat z XMLsouboru nebo manuálním zadáváním prostřednictvím formulářů, mohou pouze určení uživatelé – správce webu, vedoucí soutěží. Legislativní požadavky na data Na data se vztahují zákonná nebo jiné externí nařízení a předpisy Na data se vztahují interní předpisy
Ano, Zákon č. č. 101/2000 Sb. Ne
Požadavky na logování/ audit Na aplikační úrovni budou logovány veškeré změny dat formou exception logu. Uvnitř logu budou zaznamenávány jednotlivé akce s datem, časem, případem užití a konkrétním uživatelem.
Uživatelské oprávnění Správa uživatelů, uživatelských rolí a oprávnění bude součástí admin-modulu a bude ji moci provádět uživatel s rolí „Webmaster“.
12
Datový model Datový model vychází po obsahové stránce z MySQL databáze stávajícího webu. Avšak struktura nové databáze bude optimalizována pro lepší výkon, jednodušší dotazy do databáze a bude navržena tak, aby se v průběhu životního cyklu nemusela měnit (v závislosti na kalendářním roce – jak je tomu u stávající databáze). Struktura databáze bude reflektovat také strukturu a obsah importních XMLsouborů. Tabulky uživatelů a jejich rolí nejsou součástí znázorněného modelu.
13
Zálohování dat Vzhledem k nekritické povaze dat obsažených v databázi není zálohování nutné. V případě kolapsu back-endové části je možné provést novou instalaci bez omezení práce uživatelů s mobilní částí aplikace.
Provoz a servis Následný provoz a servis aplikace bude zajištovat společnost Baader Computer u provozovatele třetí strany (určený hosting).
Nasazení řešení Nasazení databáze a serverové aplikace pro její administraci bude zajištěno společností Baader Computer.
Pilotní provoz Pilotní provoz proběhne ve druhé polovině listopadu 2015.
Předání aplikace do ostrého provozu Po interním a externím testování, proběhne pilotní provoz paralelně se stávajícím webem a po vzájemném odsouhlasení bude databáze a aplikace pro její administraci kompletně nasazena do produktivního prostředí na známé adrese www.chess.cz a původní web bude vypnut.
14