Komora veterinárních lékařů České republiky Specifikace požadavků na softwarový produkt Portál www.vetkom.cz 15. ledna 2016
Obsah 1 Úvod...4 1.1 Účel dokumentu...4 1.2 Profil zadavatele...4 1.3 Definice základních pojmů...4 1.3.1 Uživatel...4 1.3.2 Neregistrovaný návštěvník...4 1.3.3 Návštěvník...4 2 Celkový popis...5 2.1 Popis aplikace vetkom.cz...5 2.2 Kooperace se stávajícími informačními systémy...5 2.3 Uživatelé...6 2.3.1 Uživatel...6 2.3.2 Neregistrovaný návštěvník...6 2.3.3 Návštěvník...6 2.4 Základní popis funkcí...6 2.5 Předpokládaná další rozšíření...6 2.6 Běhové prostředí...6 2.7 Požadavky na rozhraní...7 2.8 Dokumentace...7 3 Funkce webové aplikace...8 3.1 Funkce frontendu...8 3.1.1 Obsahový web...8 3.1.2 Fotografie týdne...8 3.1.3 Kalendář akcí...8 3.1.4 Veterináři...8 3.1.5 Autentizace...8 3.1.6 Diskuze...8 3.1.7 Ankety...8 3.1.8 Poradna...8 3.1.9 Inzerce...9 3.1.10 Napište nám...9 3.1.11 Zasílání novinek...9 3.2 Funkce frontendu pro nepřihlášené uživatele...9 3.3 Funkce backendu pro administrátory...9 3.3.1 Uživatelé a oprávnění...9 3.3.2 Logy...9 3.3.3 Správce souborů...9 3.3.4 Stránky...9 3.3.5 Foto týdne...10 3.3.6 Kalendář...10 3.3.7 Veterináři...10 3.3.8 Články...10 3.3.9 Návštěvníci...10 3.3.10 Diskuze...10 3.3.11 Ankety...10 3.3.12 Poradna...11 Strana 2 z 11
3.3.13 Boxy...11 3.3.14 Inzerce...11 3.3.15 Bannerová reklama...11 3.3.16 Menu...11 3.3.17 Kontakty...11 3.3.18 Zasílání novinek...11 3.3.19 Statistiky...11 3.4 Funkce backendu pro administrátory...12 3.4.1 Synchronizace s newslettery (list.vetkom.cz)...12 3.4.2 Synchronizace se systémem webinářů (penezenka.vetkom.cz) - vytváření návštěvníků12 3.4.3 Synchronizace se systémem webinářů (penezenka.vetkom.cz) - přiřazování skupin...13 3.4.4 Synchronizace s Petpasy (petpas.vetkom.cz)...13 3.4.5 Komunikace s aplikací pro centrální správu a autentizaci uživatelů...14 4 Nefunkční požadavky...15 4.1 Lokalizace...15 4.2 Požadavky na zabezpečení...15 4.3 Instalace...15 4.4 Licenční ujednání...15 1 Úvod 1.1 Účel dokumentu Smyslem tohoto dokumentu je specifikovat požadavky na portál za účelem odhadu pracnosti a časové náročnosti realizace této webové aplikace. V průběhu dalších etap procesu vývoje bude tato specifikace požadavků sloužit jako základ pro podrobnější analýzu a návrh aplikace. 1.2 Profil zadavatele byla založena zákonem 381 České národní rady ze dne 11. září 1991 o Komoře veterinárních lékařů ČR, ve znění pozdějších předpisů. Činnost Komory je určena Organizačním a jednacím řádem, Volebním řádem, Profesním řádem, Řádem pro udělování osvědčení o splnění podmínek pro výkon veterinární léčebné a preventivní činnosti, Příspěvkovým a poplatkovým řádem, Disciplinárním řádem, Disciplinárním právem, Řádem o vzdělávání veterinárních lékařů, Vnitřním předpisem o provádění identifikace zvířat, Vnitřním předpisem o využívání sociálního fondu a Vnitřním předpisem o platovém zařazení pracovníků v pracovním či obdobném poměru s. Komora veterinárních lékařů je členem Unie evropských veterinárních praktiků (UEVP), který je součástí Evropské veterinární federace (FVE), kde má statut pozorovatele. 1.3 Definice základních pojmů Tato kapitola specifikuje a pojmenovává základní aktéry a pojmy použité dále v dokumentu. 1.3.1 Uživatel Uživatelem aplikace se rozumí osoba oprávněná k přístupu do administrační části webové aplikace. 1.3.2 Neregistrovaný návštěvník Neregistrovaný (nepřihlášený) návštěvník je anonymní návštěvník webové aplikace, využívající Strana 3 z 11
pouze veřejně dostupné funkce (typicky prohlížení veřejně dostupných informací). 1.3.3 Návštěvník Návštěvníkem se rozumí osoba oprávněná k přihlášení do frontendové části webové aplikace a využívání jejích služeb. 2 Celkový popis 2.1 Popis aplikace vetkom.cz Aplikace vetkom.cz bude nová webová aplikace pro agendu, která bude propojena se stávajícími informačními systémy petpas.vetkom.cz a pomocnými webovými aplikacemi používanými v rámci. Administrací aplikace budou zajišťovat zaměstnanci. 2.2 Kooperace se stávajícími informačními systémy Webová aplikace vetkom.cz musí zachovat stávající provázaní s existujícím informačním systémem petpas.vetkom.cz Správa Pasů zvířat v zájmovém chovu a Pasů cirkusových zvířat (dále jen Petpasů) a s dalšími stávajícími aplikacemi používanými v rámci : matrika veterinářů program celoživotního vzdělávání cpd.vetkom.cz nástroj pro správu newsletterových kampaní list.vetkom.cz aplikací pro objednávání a placení webinářů penezenka.vetkom.cz aplikací pro centrální správu a autentizaci uživatelů 2.3 Uživatelé Aplikace bude rozlišovat tři skupiny uživatelů, kteří k ní budou přistupovat prostřednictvím dvou samostatných uživatelských rozhraní (frontend a backend): 2.3.1 Uživatel Uživatelem aplikace se rozumí osoba oprávněná k přístupu do administrační části webové aplikace. Uživatelé jsou rozděleni do skupin uživatelů, přičemž pro každou skupinu uživatelů mohou být nastavena specifická oprávnění k jednotlivým administračním operacím. Aplikace umožní nastavit tato oprávnění na úrovni jednotlivých akcí (prohlížet, vytvořit, upravovat, mazat) a pro každou v administraci spravovanou entitu zvlášť. Každý uživatel patří do právě jedné uživatelské skupiny, počet nastavitelných uživatelských skupin není omezen. 2.3.2 Neregistrovaný návštěvník Neregistrovaný (nepřihlášený) návštěvník je anonymní návštěvník webové aplikace, využívající pouze veřejně dostupné funkce (typicky prohlížení veřejně dostupných informací). Strana 4 z 11
2.3.3 Návštěvník Návštěvníkem se rozumí osoba oprávněná k přihlášení do frontendové části webové aplikace a využívání jejích služeb. Návštěvnické účty jsou přidělovány v příslušné části administrační části aplikace, veřejnosti není zakládání vlastních návštěvnických účtů povoleno. Návštěvníci jsou přiřazeni do návštěvnických skupin, přičemž jeden návštěvník může být přiřazen do více skupin. Aplikace umožní určit části obsahu webu, které jsou přístupné pouze pro určité skupiny návštěvníků. Pro ostatní návštěvníky nejsou tyto části webu ani informace o jejich existenci dostupné. 2.4 Základní popis funkcí Základními funkcemi webové aplikace je poskytování různých informací níže popsaného charakteru a struktury pro veřejnost a autorizované návštěvníky. Přitom je třeba respektovat požadavky na autorizaci při zobrazování vyhrazených informací. 2.5 Předpokládaná další rozšíření Budoucí rozšíření nejsou součástí aktuální poptávky. 2.6 Běhové prostředí Webová aplikace bude implementována v jazyce PHP a bude využívat vlastní SQL databázi. 2.7 Požadavky na rozhraní Pro součinnost se stávajícími systémy je třeba zachovat všechna stávající rozhraní, aby nebylo do ostatních aplikací využívaných zasahovat a tyto modifikovat. 2.8 Dokumentace Zadavatel obdrží spolu s softwarovým produktem následující dokumentaci: Návod k obsluze administračního rozhraní. Dokumenty popisující analýzu a design aplikace. Programátorskou dokumentaci. Dále objednavatel obdrží kompletní zdrojové kódy. 3 Funkce webové aplikace 3.1 Funkce frontendu 3.1.1 Obsahový web Cílem projektu je vytvořit webovou aplikaci, a to včetně responzivního zobrazení (webdesignu mobilní verze), inovativních prvků a propracovaného menu s vlastními položkami. Zobrazování obsahových stránek ve stromové struktuře s možností zobrazení vybraných stránek pouze určeným skupinám návštěvníků. Zobrazování článků přiřazených k jednotlivým stránkám. Strana 5 z 11
3.1.2 Fotografie týdne Zobrazování náhodné fotografie (z množiny přednastavených) na homepage. Možnost pro návštěvníky i neregistrované návštěvníky uploadovat svoje fotografie, s uvedením souboru, popisu, autora, požadavku na zveřejnění autora a emailu. Velikost souboru je omezena na 1 MB. 3.1.3 Kalendář akcí Správa kalendář akcí s možností filtrování podle typu akce s tabulkovým zobrazením měsíce, lineárním výpisem připravovaných akcí a dynamickým AJAXovým zobrazením na homepage. 3.1.4 Veterináři Zobrazování informací z databáze veterinárních ordinací s možností výběru na grafické mapě s jednotlivými (býv.) okresy. Zobrazování obsazení orgánů KVL podle informací z této databáze. Po přihlášení návštěvníka - veterináře možnost editovat vlastní informace a povolení k zobrazení těchto informací (jednotlivě po položkách). 3.1.5 Autentizace Možnost přihlášení pro návštěvníky pomocí jména a hesla, bez možnosti pro neregistrované návštěvníky vytvořit si nový návštěvnický účet. Autentizace se bude provádět prostřednictvím API v centrální aplikaci pro správu identit a autentizaci uživatelů. 3.1.6 Diskuze Jednotlivé diskuze (bez stromové hierarchie) na samostatné stránce a diskuze pod článkem. 3.1.7 Ankety Možnost hlasovat v anketách na webu. 3.1.8 Poradna Možnost položení dotazu do poradny, k dispozici i pro neregistrované uživatele. 3.1.9 Inzerce Prohlížení inzerátů podle kategorií (komerční, jednotlivé kategorie soukromé) a možnost vložení inzerátu. Inzerce se dělí na placenou komerční a soukromou, jenž se dále dělí na soukromou zdarma a soukromou placenou zvýrazněnou. Placení odesláním Premium SMS a zadáním přes odpovědní SMS doručeného kódu do formuláře na vložení inzerátu. 3.1.10 Napište nám Kontaktní formulář s možností výběru příjemce z přednastavených možností. 3.1.11 Zasílání novinek Možnost zaregistrovat svou emailové adresu k příjmu emailových novinek. 3.2 Funkce frontendu pro nepřihlášené uživatele Nepřihlášený uživatel má k dispozici ty funkce z části 3.1, které nejsou podmíněny přihlášením nebo nejsou pro nepřihlášeného uživatele zakázány. Strana 6 z 11
3.3 Funkce backendu pro administrátory 3.3.1 Uživatelé a oprávnění Správa administrátorů systému, jejich skupin a oprávnění. Oprávnění jsou typicky nastavitelná pro jednotlivé skupiny a jednotlivé CRUD operace v každém modulu jednotlivě. Administrátoři jsou přiřazeni ke skupině, libovolné množství vlastních skupin. 3.3.2 Logy Všechny v backendu provedené operace jsou logovány, oprávnění uživatelé mohou prohlížet log a vyhledávat v něm. 3.3.3 Správce souborů Správce uploadovaných souborů se simulací stromové adresářové struktury. U souborů je možno omezit přístup z frontendu na pouze přihlášené uživatele. 3.3.4 Stránky Content management system se stromovou strukuturou stránek. Disponuje možností povolit zobrazení některých stránek pouze určeným skupinám návštěvníků, je-li pro stránku určeno více skupin, je zobrazena tehdy, je-li návštěvník v kterékoliv z nich. možnost zcela vypnout zobrazování stránky, volitelně automatické vložení stránky do menu, možnost externího URL namísto stránky, možnost otevírání stránky v novém okně 3.3.5 Foto týdne Vkládání fotografií s uvedením týdne pro jejich zobrazování na homepage na frontendu. 3.3.6 Kalendář Správa kalendář akcí s těmito možnostmi: různé typy akcí schvalování a rušení schválení zobrazení nastavení termínu od a termínu do možnosti přiložení souborů k jednotlivým akcím 3.3.7 Veterináři Správa databáze veterinárních ordinací na základě importu z matriky veterinářů. Možnost opakovaného importu z matriky (načtením souboru) Správa odborností Správa otevírací doby ordinací a dalších informací Správa možnosti praxí Správa informací o členství veterináře v komisích KVL Správa seznamu plemen pro danou ordinaci Strana 7 z 11
3.3.8 Články Content management system pro články, jenž jsou přiřazené k jednotlivým stránkám. Možnost přiřazení souborů k článku Schvalování a rušení schválení zobrazení Doba publikování od... do... Možnost povolení diskuze 3.3.9 Návštěvníci Správa uživatelů frontendu Evidence registračního čísla u veterinářů Možnost přiřazení ke skupinám návštěvníků (jeden návštěvník může být ve více skupinách) Možnost vytváření libovolného množství vlastních skupin 3.3.10 Diskuze Možnost samostatné diskuze (v ploché struktuře) a diskuze pod článkem. V administraci možnost odstranění nevhodných příspěvků. 3.3.11 Ankety Možnost vytváření anket s termínem hlasování od... do... se seznamem možných odpovědí u každé ankety. 3.3.12 Poradna Administrace poradny se stromovou strukturou (dotazy v sekcích ), v administraci možnost též plochého zobrazení. Schvalování a přiřazování dotazů k odpovědi jednotlivým veterinářům, schvalování odpovědí ke zveřejnění. 3.3.13 Boxy Administrace boxů - obsahových bloků umístěných na stránkách: editace obsahu, přiřazování k jednotlivým stránkám (jednotlivě nebo k celým podstromům webu) a nastavování pozice boxu na stránce (výběr z předpřipravených slotů). 3.3.14 Inzerce Správa inzerátů, jenž se dělí na inzerce placenou komerční a soukromou, jenž se dále dělí na soukromou zdarma a soukromou placenou zvýrazněnou. (Placení na frontendu přes Premium SMS zadáním kódu přes tuto SMS doručeného.) V administraci možnost ručního schvalování inzerátů a ručního nastavování zvýhodnění. 3.3.15 Bannerová reklama Správa interního systém pro bannerovou reklamu na webu. Možnost omezení počtu zobrazení, počtu kliknutí a (nebo) času zobrazování. Možnost nastavení dotčených stránek nebo podstromu webu, kde se banner bude zobrazovat. 3.3.16 Menu Nastavování položek v pěti navigačních menu na stránkách frontendu. Strana 8 z 11
3.3.17 Kontakty Administrace kontaktů použitých na fronendu ve formuláři Napište nám. 3.3.18 Zasílání novinek Možnost odeslání novinky na kontakty (zaregistrované emailové adresy potenciálně též neuživatelů a zároveň nenávštěvníků) přímo z administrace. 3.3.19 Statistiky Log všech přihlášení na frontendu vč. statistik přihlášení v zadaném období. 3.4 Funkce backendu pro administrátory 3.4.1 Synchronizace s newslettery (list.vetkom.cz) Synchronizace s externím systémem pro rozesílání emailových newsletterů s následujícími pravidly: 1. Všichni veterináři z databáze mají být v distribučním seznamu novinky kvl 2. Všichni návštěvníci mají být v distribučním seznamu členové 3. Návštěvníci se po přihlášení mohou přihlašovat k následujícím distribučním seznamům. Neregistrovaní návštěvníci se mohou přihlásit k jednomu z následujících distribučních seznamů: newsletter vše newsletter veřejná část newsletter KVL 4. Podle externí databáze, tabulky veterinary, sloupce typsouhlasu se mají veterináři vkládat (a periodicky synchronizovat) k tomuto účelu vytvořených listů podle následující tabulky: Typ souhlasu 1 - WWW vše www vše Distribuční seznam 2 - WWW vybrané údaje www výběr 3 - WWW + databáze vše www + DB vše 4 - WWW + databáze vybrané údaj www + DB výběr Externí systém pro direct mailing je open source aplikace phplist. Synchronizace dat je realizována prostřednictvím sdílení databázových tabulek. 3.4.2 Synchronizace se systémem webinářů (penezenka.vetkom.cz) - vytváření návštěvníků Pro vytváření nových návštěvníků bude poskytovat specifikovaná webová aplikace knihovnu s následujícími funkcemi, kterou potřebuje aplikace cpd.vetkom.cz k zakládání nových návštěníků v aplikaci www.vetkom.cz (aby měli přístup k zaplacenému obsahu z webinářů, přestože nejsou veterináři). Strana 9 z 11
/** Rozhraní pro bezpečnou komunikaci mezi systémem CPD a www.vetkom.cz */ interface cpdapi { /** Vytvoří návštěvníka v databázi vetkom.cz * @param $login Přihlašovací jméno * @param $password Heslo * @param $titul Titul před jménem * @param $jmeno Křestní jméno * @param $prijmeni Příjmení * @param $mail Emailová adresa * @param $activeint Nastavení, zda je visitor aktivní (1=ano, 2=ne) * @return Vrací vytvořeného ID visitora nebo null při neúspěchu. */ public function insertvisitorext($login, $password, $titul, $jmeno, $prijmeni, $mail, $activeint); /** Nastaví atribut active pro daného návštěvníka * @param $id Id visitora * @param $active Nastavení, zda je visitor aktivní (true=ano, false=ne) */ public function setvisitoractiveattribute($id, $active); } /** Zapíše návštěvníka na seminář * @param $visitor_id id návštěvníka v systému www.vetkom.cz * @param $group_external_id id semináře v seminare_prehled */ public function assignvisitortoseminar($visitor_id, $group_external_id); 3.4.3 Synchronizace se systémem webinářů (penezenka.vetkom.cz) - přiřazování skupin Periodická synchronizace zaplacených seminářů a náležení k návštěvnickým skupinám, které určují stránky, které mají být návštěvníkovi přístupné, včetně automatického zakládání neexistujících skupin. Synchronizace dat je realizována prostřednictvím read-only nasdílení databázových tabulek. (Řeší případné nezavolání funkce assignvisitortoseminar() z bodu 3.4.3 úplnou synchronizací 1x za 24 hodin.) 3.4.4 Synchronizace s Petpasy (petpas.vetkom.cz) Obousměrná synchronizace s aplikací petpas.vetkom.cz pro následující případy. Synchronizace dat je realizována prostřednictvím zápisu do sdílených tabulek v databázi druhé aplikace. Uživatel vytvořený v aplikaci petpas.vetkom.cz je automaticky vytvořen jako návštěvník i v této specifikované webové aplikaci, informace o něm mohou být z petpasů též aktualizovány. V komunikaci předpokládaná struktura tabulky pro ukládání návštěvníků v databázi specifikované aplikace je následující: CREATE TABLE `visitor` ( `id` int(11) NOT NULL auto_increment, `reg_cislo` int(11) default NULL, `login` varchar(255) collate utf8_czech_ci NOT NULL, `password` char(32) collate utf8_czech_ci NOT NULL, `active` int(11) NOT NULL COMMENT 'Smi se uzivatel prihlasit?', `nickname` varchar(255) collate utf8_czech_ci NOT NULL, `degree_front` varchar(255) collate utf8_czech_ci NOT NULL, `name` varchar(255) collate utf8_czech_ci NOT NULL, `surname` varchar(255) collate utf8_czech_ci NOT NULL, Strana 10 z 11
`degree_behind` varchar(255) collate utf8_czech_ci NOT NULL, `greetings` varchar(255) collate utf8_czech_ci NOT NULL, `vocative` varchar(255) collate utf8_czech_ci NOT NULL, `email` varchar(255) collate utf8_czech_ci NOT NULL, `session_id` varchar(255) collate utf8_czech_ci default NULL, `time_synchronized` datetime default NULL, `time_created` datetime NOT NULL, `time_deleted` datetime default NULL, `password_old` char(32) collate utf8_czech_ci default NULL, PRIMARY KEY (`id`), UNIQUE KEY `visitor_u_1` (`login`), KEY `reg_cislo` (`reg_cislo`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; Změna hesla návštěvníka provedená přes frontend specifikované aplikace se projeví též změnou hesla v aplikaci pro centrální správu a autentizaci uživatelů. 3.4.5 Komunikace s aplikací pro centrální správu a autentizaci uživatelů Systém bude využívat externí aplikaci pro centrální správu a autentizaci uživatelů na základě poskytnutého uživatelského jména a otisku hesla. Tato centrální aplikace je/bude využívána i ostatními aplikacemi tak, aby návštěvníci mohli využívat napříč různými systémy pouze jedny přihlašovací údaje. Komunikace s aplikaci pro centrální autentizaci uživatelů je založena na protokolu OAuth 1.0 Rev. A. 4 Nefunkční požadavky 4.1 Lokalizace Aplikace bude k dispozici pouze v českém jazyce. 4.2 Požadavky na zabezpečení Přihlášení do aplikace (frontend i backend) bude podmíněno zadáním uživatelského jména a hesla. Zadavatel může stanovit podmínky na složitost hesla. 4.3 Instalace Aplikace bude dodána nainstalovaná a nakonfigurovaná. Objednatel obdrží také dokumentaci k instalaci a konfiguraci aplikace. 4.4 Licenční ujednání Licenční ujednání stanoví smlouva mezi dodavatelem a objednavatelem. Strana 11 z 11