Nabídka a popis IT řešení webového portálu Šachového svazu České republiky chess.cz Zadavatel:
Šachový svaz České republiky o. s., Zátopkova 100/2, 160 17 Praha 6-Strahov, tel.: +420 220 512 586, fax: +420 257 210 981, http://www.chess.cz/, e-mail:
[email protected] IČ: 48548464, DIČ: CZ48548464, bankovní spojení: GEMB, a.s. Praha, č. ú. 1721907504/0600
Vypracoval:
Atelier Dokument s.r.o., David Krumphanzl, sídlo: Jasná II 1338/1, Braník, 147 00 Praha 4 kanceláře: Na Poříčí 17, 110 00 Praha 1, tel. 602 844 779, http://www.atelier-dokument.cz, mail:
[email protected], IČ: 28992113, DIČ: CZ 28992113, bankovní spojení: FIO banka, 2800430593/2010
Programátorská realizace ve spolupráci s Trilogic s.r.o., V Křovinách 22, 140 00 Praha 4, www.trilogic.cz
Obsah Technický popis řešení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1. Specifika a specifikace implementace nového chess.cz . . . . . . . . . . . 2 1.1. Řešení a zabezpečení spojení na db.chess.cz . . . . . . . . . . . . . 2 1.2. Konzistentní vzhled, verifikace W3C . . . . . . . . . . . . . . . . . . 2 1.3. Migrace stávajících dat . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4. Přístupová práva, SEO, sitemap, captcha, roboti atd. . . . . . . . . . 3 1.5. Statistiky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.6. Implementace případného reklamního subsystému . . . . . . . . . . 3 1.7. Testování a ladění, připomínky zadavatele . . . . . . . . . . . . . . . 3 2. Co je Joomla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Popis CMS, možnosti rozšíření a výhody řešení . . . . . . . . . . . . 3 2.2. Joomla – Správa uživatelů a přístupových práv (ACL) . . . . . . . . . 4 Technická podpora ze strany tvůrce webu . . . . . . . . . . . . . . . . . . . . . 5 1. Reakční doby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Hosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Návrh a podmínky údržby portálu . . . . . . . . . . . . . . . . . . . . . . 6 Grafické pojetí (2 varianty), popis . . . . . . . . . . . . . . . . . . . . . . . . . 7 Cena za implementaci a správu portálu . . . . . . . . . . . . . . . . . . . . . . 17 Realizace, reference, popis zpracovatele . . . . . . . . . . . . . . . . . . . . . 17
Technický popis řešení Webový portál je nabízen jako implementace na platformě Joomla, který je jeden z globálně nejrozšířenějších redakčních systemů (Content Management System). Jeho výhoda je, že se nejedná o proprietární řešení, ale otevřený systém s obrovskou vývojářskou základnou. Systém je propojen s db.chess.cz, splňuje specifikace zadání z hlediska bezpečnosti i dalších. Vzhled grafiky je přiměřený obsahu, tj. kromě toho, že je na první pohled šachový, zároveň působí seriozně, bez samoúčelných grafických zbytečností. Preferována je jednoduchá orientace a snadná čitelnost.
–1–
1. Specifika a specifikace implementace nového chess.cz 1.1. Řešení a zabezpečení spojení na db.chess.cz Z důvodu požadavku funkčnosti portálu nad daty již existujících v samostatné databázi db.chess.cz a zajištění bezpečnosti se po zjištění informací a konzultaci s webmasterem (Pavel Šimáček) jeví jako vhodné využít následujícího principu: • portál bude vytvářet směrem k db.chess.cz samostatné zabezpečené/šifrované SSL spojení pozn. v případě, že databáze portálu a db.chess.cz budou hostovány společně v zabezpečené síti dodavatele web portálu, lze ustoupit od SSL spojení a použít standardní stejně jako přizpůsobit aplikaci firewallu • spojení bude z konkrétní IP resp. sítě malého rozsahu, na které se bude portál nacházet, a tato IP či síť bude povolena na straně db.chess.cz jako jediný akceptovatelný zdroj pro spojení • spojení se bude tvořit pod MySQL účtem, jenž bude mít pouze práva pro čtení (read only), a to jen na taxativně specifikované objekty databáze (pohledy/view) tj. denormalizované objekty dat vzniklé selekcí, projekcí, spojením atd. tabulek a jiných pohledů či výstupů z procedůr na straně MySQL serveru (výhodou je vytvoření mezivrstvy, jenž nebude mít z technického principu za žádných okolností možnost zápisu či poškození zdrojových dat) pozn. na takto vytvořeném spojení by se dále využilo technologie memcache pro úsporu zátěže přenosu, databázového serveru a vyšší výkon celého portálu
1.2. Konzistentní vzhled, verifikace W3C • Web portál bude dodán se splněným výsledkem testu W3C pro XHTML, CSS (tj. bez chyb). Pro tyto verifikační potřeby bude web portál vybaven prostředím přístupném webmasterovi pro testovaní a verifikaci W3C testů přímo z samotného portálu z prostředí po přihlášení Admina web portálu. • Web portál bude na straně klientů tj. nejrozšířenějších internetových prohlížečů kompatibilní a zobrazovat identicky obsah a to zejména pro stále využívané verze Safari, FireFox, Chrome, Opera, MS Internet Explorer (verze 9, 10, 11) a to ve verzích pro zamýšlená zařízení uživatelů (standard pc, tablety, smart telefony). • Stránky web portálu responsivní tj. budou uživatelsky přívětivé pro uživatele/návštěvníky webu pomocí menších zobrazovacích prostředků jako jsou např. netbooky, tablety a smart telefony. • Stránky web portálu budou vyžívat moderních prvků a všech efektivních technik v rámci HTML a CSS technologii a kódování pro efektivní zobrazení web portálu i na zařízeních využívajících i na pomalejších datových tarifech, stejně jako technika gzip komprese stránek, jenž snižuje traffic dat v přenosu bez ztráty obsahu a které jsou v internetových prohlížečích standardně funkční.
1.3. Migrace stávajících dat • Migrace dat z stávajícího systému MODX 1.0.4 bude realizovaná pomocí ETL skriptu (datové pumpy) na míru, která toto bude řešit inkrementálně tj. kromě prvního běhu bude každý další přenášet již významně menší část (od poslední migrace jen nová data). Inkrementální přístup umožní testovat připravovaný systém s většinou stávajících dat a současně se minimalizuje čas, kdy bude na straně MODX zastaveno vkládaní a aktualizace dat těsně před přechodem na nový web portál (tj. poslední dorovnání MODX vůči Joomla bude zaviset jen na migraci malého množství dat) Skript bude: • data čerpat z databáze MODX • pomocí identifikace objektu (ze strany MODX: databáze + tabuka/pohled + id záznamu + hash hodnoty stringové reprezentace řádku dat) si porovná, jestli byl záznam již dříve v této verzi importován (vůči vlastní databázi pro potřeby transportu dat) a dle toho akce vložení dat nebo aktualizace, ignorování pokud již k importu došlo dříve (případně rušení dat). • vložení a aktualizace (rušení) dat bude probíhat vůči Joomla API
–2–
1.4. Přístupová práva, SEO, sitemap, captcha, roboti atd. • Rozdělení přístupů práv uživatelům podle sekcí je řešeno plně za využití možností Joomla – vestavěného User Management modulu, který je k tomu uzpůsoben standardně (PODROBNĚJI V ODSTAVCI 2.2.) • SEO, sitemap, robots.txt atd. – portál bude vybaven SEO podporou pro tvorbu hezkých odkazů, pro automatické generovaných prvků SEO jako jsou robots.txt, sitemap.xml, SEO odkazy na stránkách, meta tagy description, keywords atd. • Formuláře - budou kontrolovat správnost zadávaných údajů, povinné položky, budou vybaveny ovládacími prvky založených na moderních standardech a technologiích jako je např. jQuery, AJAX apod. Formuláře budou dodány s prvky pro kontrolu proti automatům (captcha). • Veškeré prvky použité na portále (redakční systém, rozšíření, konfigurace šablony, grafické podklady, …) jsou a budou součástí dodávky web portálu.
1.5. Statistiky Implementace portálu Joomla bude vybavena interním subsystémem postaveném na samostatné komponetě pro sběr a prezentaci statistik návštěvnosti a chování návštěvníků (joomlathat.com/content-statistics ve verzi Extended). Na webu budou dále nasazeny nástroje na sledování návštěvnosti webového portálu Google Analytics. Pomocí statistik z takto nasbíraných dat bude možné sledovat návštěvnost, chování uživatelů na stránkách i případnou reklamu.
1.6. Implementace případného reklamního subsystému Ve stávajícím webu se zobrazují výměnné bannery, technická řešení pro nasazení reklam se nabízejí: • Banery • různé rozměry / pozice (top banner, sloupcové bannery) • rotovaní baneru (nadefinované skupina, ale zobrazuje se vždy jen X současně) – vhodné pro top pozici • platnost baneru (počet zobrazeni / prokliku / časová) • statistiky zobrazení/clicks • Kontextová textová reklama: existují extension do Joomla. Systém lze takto rozšířit o funkci, kdy script nahradí vhodné slovo linkem na předem nadefinované URL • Google ads a pod., řešení podobného stylu nekolidují s funkčností CMS Joomla a lze je nasadit
1.7. Testování a ladění, připomínky zadavatele Zadavatelem stanovení pracovníci budou mít po celou dobu vývoje a provozu web portálu přístup do vývojové verze portálu a to pře i po uvedení do provozu z důvodu případných změn, testování komponent, testovaní update a upgdare díla apod. Toto vývojové prostředí bude pod jiným URL např. https://webtest.chess.cz a přihlášením kvůli nedostupnosti veřejnosti provozované na dedikovaném virtuálním serveru spolu s produkční verzí.
2. Co je Joomla 2.1. Popis CMS, možnosti rozšíření a výhody řešení Webový portál je nabízen jako implementace na platformě Joomla, který je jeden z globálně nejrozšířenějších redakčních systemů (Content Management System) tj. system pro účely redakční tvorby a publikování informací na internetu a intranetu. (en.wikipedia.org/wiki/Joomla, joomla.org) Redakční systém je program, kterým zajistíme správu dokumentů, nejčastěji webového obsahu. Někdy se také můžete setkat s překladem Systém pro správu obsahu (z anglického CMS – Content management system). V dnešní době je tímto pojmem obvykle myšlen systém, který je dostupný skrz web rozhraní a umožní jednoduše spravovat články, fotografie, hudbu nebo video a další multimediální obsah beztoho, aby méně pokročilý uživatel musel znát nějaký skriptovací jazyk typu PHP, Python, Perl apod.
–3–
Systém má obvykle dvě části, které nazýváme uživatelská (frontend) a správcovská (backend). Podle odbornosti uživatele můžeme zajistit přístup k jedné nebo druhé části rozhraní a umožnit tak správu a úpravu obsahu webových stránek. Jedná se o open source software distribuovaný pod licencí GNU General Public License/GNU GPL (česky ”všeobecná veřejná licence GNU”). Open Source neboli software s otevřeným zdrojovým kódem (“neboli otevřený software” / “svobodný software”). Otevřenost zde znamená jak technickou dostupnost kódu, tak legální dostupnost – licenci software, která umožňuje, při dodržení jistých podmínek, uživatelům zdrojový kód využívat, například prohlížet a upravovat. Software pod touto licencí je možno dále šířit. Joomla je ověřená platforma s vysokým počet implementací globálně i v ČR s rozsáhlou možností podpory (obsáhlá a detailní oficiální dokumentace, řada publikací, silná a aktivní komunita, např.stackoverflow vrací na tag Joomla cca. 37tis. dotazů/diskuzních otevření s viceméně okamžitou reakcí). Díky rozšířenosti je zajištěna praktická nezávislost na implementačním subjektu. Existuje velké množství dodavatelů zajišťující celý životní cyklus systému tj. podporujících jak vývoj, rozšíření a nasazení Joomla webů, tak i následného provozu/hostingu Joomla systémů. Aktivní komunita je také prakticky zárukou dalšího rozvoje a pokračování podpory produktu Joomla. Jedná se o strategické výhody, které eliminují technické, organizační a finanční zátěž plynoucí zejména z potřeby rošiřování produktu, jeho integrace s okolím v průběhu provozu systému, update a upgrade na nové verze apod. tj. náklady dlouhodobého vlastnictví/provozování Joomla systému tj. Total cost of ownership (TCO) jsou nižší, než u proprietálního či méně rozšířeného software. Joomla je napsán v jazyce PHP a využívá databázi MySQL (volně dostupné a open source systém). Systém Joomla a jeho komponenty jsou kompatibiliní a běžně provozované na většině dnešních produkčně nasazovaných kombinacích operačního systémy Windows, Linux, Mac OS a běžně dostupného hardware (commodity hw). Drtivá vetšina web hostingových firem podporuje Joomla a její subsystemy a nebývá výjimkou i vyzbrojení poskytovaného prostředí s „jednotlačítkovou instalací“ systému Joomla. Joomla! podporuje caching, indexaci stránek, RSS, tisknutelné verze stránek, zobrazování novinek, blogy, diskusní fóra, hlasování, kalendář, vyhledávání v rámci webserveru, lepší podpora lokalizace a vícejazyčné verze, fulltextové vyhledávání, sofistikovaný WYSIWYG editor webových stránek umožňující rychlejší tvorbu částí webu a editaci z frontendu, aniž by vyžadovaly hlubší znalost jazyka HTML, User management tj. pokročilá správa uživatelů a přístupových práv ACL, Media manager – nástroj pro správu mediálních souborů a umístnění, Banner management, podpora web services (webové služby), atd. Výhodou Joomla CMS je existence celé řady komponent, jimž lze system rozšiřovat o novou funkčnost a to zdarma či komerční či vlastní vývoj. Samotná Joomla je rozšiřitelná pomoci řady extensions (rozšíření), jenž jsou buď zdarma či komerční dostupné na např. extensions.joomla.org nebo storejoomla.org a další. Jinou formou rozšiřitelnosti je např. možnost nastavit pro sledování návštěvnosti Joomla CMS webu sledování statistik návštěvnosti na systém Google analytics.
2.2. Joomla – Správa uživatelů a přístupových práv (ACL)
Standardní User management modul redakčního systému Joomla splňuje moderní podmínky pro přehlednou a hierarchickou administraci všech úrovní webu. Nastavení skupin, uživatelů a práv se řeší na několika urovních. Základní je nastavení práva na funkční moduly Joomly (Banners, Articles, Newsfeed...), na nižší úrovni na jednotlivé sekce modulů např v případě Articles-články (Kalendář akcí, Aktuality) až na nejnižší tj. na jednotlivé články (nedostupný, čtení, editace, editace vlastních objektů apod.). Hierarchie práv odpovídá modernímu redakčnímu pokrytí procesu publikování tj. přednastavené role pro akce jsou AUTOR (tvoří primární základ článku), EDITOR (provádí kontrolu článku/objektu a buď vrací AUTOR nebo postupuje dál), VYDAVATEL poslední autorita, jenž odmítá či provádí okamžité či časově naplánované publikování článku v daný čas a v příslušné části webu). Uživatel může být členem jedné nebo více těchto rolí pro různé sekce celého portálu.
–4–
Více a detailní informace k User Management modulu na http://docs.joomla.org/J3.x:Access_Control_List_Tutorial
Technická podpora ze strany tvůrce webu • • • •
zaškolení a help desk udržování dokumentace (instalační , administrátorské a uživatelské) rozšiřování a vývoj dle požadavků update a upgrade jednotlivých částí díla i souvisejících komponent systému a souvisejících služeb včetně operačního systému (na nové verze použitých subsystémů, bezpečnostní update apod.) • konzultace
1. Reakční doby • reakční doby v rámci dodání díla po dobu záruky 24 měsíců a z důvodu problému na vyhotovení díla: • v pracovní dobu —— v případě významné chyby systému do 2 hodin —— v ostatních případech do 4 hodin • v mimopracovní dobu (noc, víkendy, svátky) —— v případě významné chyby systému do 12 hodin —— v ostatních případech do 48 hodin • reakční doby v rámci hostování díla (po dobu trvání hostingu) a z důvodu provozního problému: • v pracovní dobu —— v případě významné chyby systému bude do 1 hodiny —— v ostatních případech 2 hodiny • v mimopracovní dobu (noc, víkendy, svátky) —— v případě významné chyby systému bude do 6 hodin —— v ostatních případech 24 hodin
–5–
2. Hosting Hosting bude poskytován na hostingové cloud/cluster platformě s velkým množstvím sdílených zdrojů na serveru v architektuře LAMP (Linux, Apache, MySQL, PHP) umožňující plnou cache databáze a web portálu. V případě dlouhodobé potřeby specifického výkonového řešení jako je nasazeni memcache vůči db.chess.cz, dedikování provozní paměti pro plnou cache MySQL databáze web portálu apod. může být forma hostingu změněna na managovaný virtuální server s dedikovaným/nesdíleným množstvím prostředků. • Řešení a opatření díla a provozu (hosting) na změny zátěže portálu (např. nárazové akce při online přenosech) • Systém Joomla je interně vybaven třemi cache subsystémy… celých stránek, pohledů a modulů, které zabezpěčují cache části stránek dle možnosti v konkrétní části architektury platformy. Cache je primárně rušena a nahrazována nejaktuálnější verzi např. těch částí portálu, jenž se tvoří z dat databáze dle nastavení času životnosti cache. Tento čas životnosti cache bude automaticky, dynamicky prodlužována při rostoucí zátěži web portálu. • Spojení do db.chess.cz by v případě nutnosti využilo systém memcache pro snížení zátěže přenosu dat a celého prostředí které db.chess.cz využívá. Zde by docházelo tak jako výše uvedeno k automatické dynamické změně dle zátěže. • V případě hostování na samostatném virtuálním serveru na platformě Xen, která umožňuje automatické dynamické alokování prostředků, které by na zátěž celého severu reagovalo progresivně alokací zejména prostředků CPU a operační paměti RAM.
3. Návrh a podmínky údržby portálu Hosting web portálu společně s plným hostingem domény a služeb web hostingu tj. DNS, provozem elektronické pošty, FTP a dalšího bude zajišťován na managovaném virtuálním serveru (Linux) umístněném na páteřní síti internetu v housing centru zajišťující obvyklé služby takového centra za vysoké dostupnosti a propustnosti tj. nepřerušitelný zálohovaný zdroj elektrického napětí, vícenásobná konektivita do internetu, dohledová služba a další obvyklé služby housing centra. Server bude po celou dobu provozu spravován, aby byl zajištěn jeho bezpečný dlouhodobý bezproblémový provoz. Zálohování databází bude prováděno (a) denně ve formě plné zálohy a (b) kontinuální zálohou transakčního logu v binární podobě pro možnost obnovz stavu databáze do libovolného časového bodu (tkzv PITR Point In Time Recovery) . Zálohování aplikace vždy po změně stejně jako celý virtuální server včetně všech konfigurací nejméně však jednou mesíčně. Virtuální server a služby a stav významný pro provoz web portálu bude monitorován nepřetržitě pomocí vlastní infrastruktury a monitorovacího systému Zabbix, jenž případně události (vysoká zátež, nedostupnost některé části portálu apod.) bude okamžitě eskalovat na technickou podporu mailem a alert sms zprávou či spuštět nastavené joby pro řešení obnovy plnohodnotného provozu a podporu systému. Součástí správy bude i průběžná kontrola logů systému a služeb. V případě potřeby odstávky bude toto realizováno po dohodě s vlastníkem web portálu, domény resp. stanoveným zástupcem. Bezpečnostní update/upgrade budou realizovány s odbornou péčí a bezodkladně tak, aby nebyl narušen provoz.
–6–
Grafické pojetí Pro posouzení nabídky jsou předloženy dva grafické návrhy, včetně okótování prvků, a včetně rozpracování responzivního designu pro přenosná zařízení (teblety, mobilní telefony...). V případě připomínkování ze strany zadavatele lze velkou část prvků upravit dle přání do definitivní podoby. Aplikace grafických prvků bude v souladu se zadáním pomocí kaskádových (css) stylů, přehledně a okomentovaně. Tyto styly a grafika budou navázány na CMS Joomla, viz technické řešení. Administrátorská část CMS nebude graficky upravována, bude použito standardní rozhraní (z praktických důvodů, kromě ceny např. i z důvodu jednoduchosti školení administrátorů).
Návrh č. 1:
–7–
Rozbalená submenu (samozřejmě nebudou obě najednou, toto je ukázka funkčnosti na různých pozicích):
–8–
Okótované rozměry:
–9–
Mobilní verze:
– 10 –
Okôtovaná mobilní verze
– 11 –
Návrh č. 1:
– 12 –
Rozbalené submenu:
– 13 –
Okótované rozměry:
– 14 –
Mobilní verze:
– 15 –
Okótovaná mobilní verze
– 16 –
Cena za implementaci a správu portálu Vytvoření portálu v rámci výše uvedeného řešení, včetně migrace stávajících dat, grafiky včetně responzivního designu je 290 tisíc Kč. Hosting: • v případě sdíleného hostingu s standardním limitem 2tis. Kč ročně • v případě managovaného virtuálního serveru od 3tis. Kč měsíčně dle množství dedikovaných zdrojů a jiných podmínek Dle našich poznatků o náročnosti provozu tohoto portálu by měl stačit provoz sdíleného hostingu.
Realizace, reference, popis zpracovatele Realizujeme weby v systému Joomla a WordPress již více než 5 let. Počet IT pracovníků pracujících na Joomla CMS a WordPress CMS systémech je aktuálně v počtu 8 zaměstnanců, plus 3 vlastní a 3 externě spolupracující grafici. Z realizací z poslední doby: ckrubikon.cz salsaportal.cz spei.cz mrparkit.com filmzone.eu aquatrade.cz flirteeast.com ceskychrest.cz intranet – ezu.cz
Dne 16.6.2014 David Krumphanzl
– 17 –