ˇ e vysok´e uˇcen´ı technick´e v Praze Cesk´ Fakulta elektrotechnick´a
Bakal´aˇrsk´a pr´ace
Syst´ em pro decentralizovanou spr´ avu ˇ clen˚ u politick´ e strany Matouˇs Kuˇcera
Vedouc´ı pr´ace: Ing. Martin Kom´arek Studijn´ı program: Elektronika a informatika strukturovan´ y bakal´aˇrsk´ y Obor: V´ ypoˇcetn´ı technika Kvˇeten 2008 1
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem svou bakal´aˇrskou pr´aci vypracoval samostatnˇe a pouˇzil jsem pouze podklady uveden´e v pˇriloˇzen´em seznamu. Nem´am z´avaˇzn´ y d˚ uvod proti uˇzit´ı tohoto ˇskoln´ıho d´ıla ve smyslu §60 Z´akona ˇc. 121/2000 Sb., o pr´avu autorsk´em , o pr´avech souvisej´ıc´ıch s pr´avem autorsk´ ym a o zmˇenˇe nˇekter´ ych z´akon˚ u (autorsk´ y z´akon).
The distributed system for the administration of party membership Matouˇs Kuˇcera Czech Technical University in Prague Faculty of Electrical Engineering Department of Computers Ing. Martin Kom´arek
Abstract: The Bachelor theses is based on open source information system of Grean Party (Strana zelen´ ych in Czech) which was developed in Czech Technical University in Prague at Department of Computer Science and Engineering within the framework of X36SI3 subject (Software Engineering 3). The goal of the work is launching this system, fault detection and program installation, design of a resolution and final implementation. Closing step is implementation of new option in this system, for example possibility to insert minutes of the proceedings, atc. Abstrakt N´azev pr´ace: Autor: Univerzita: Fakulta: Katedra: Vedouc´ı pr´ace:
Syst´em pro decentralizovanou spr´avu ˇclen˚ u politick´e strany Matouˇs Kuˇcera ˇ e vysok´e uˇcen´ı technick´e v Praze Cesk´ Fakulta elektrotechnick´a Katedra poˇc´ıtaˇc˚ u Ing. Martin Kom´arek
Abstrakt: Pr´ace je zaloˇzen´a na jiˇz st´avaj´ıc´ım open source informaˇcn´ım syst´emu Strany zelen´ ych, kter´ y byl vyv´ıjen na Katedˇre poˇc´ıtaˇc˚ u v r´amci pˇredmˇetu X36SI3. C´ılem je jeho zprovoznˇen´ı, zjiˇstˇen´ı nedostatk˚ u samotn´e instalace, ale i programu, n´avrh ˇreˇsen´ı a jeho implementace. Z´avˇereˇcn´ ym krokem je implementace nov´ ych moˇznost´ı, jako vkl´ad´an´ı z´apis˚ u ze sch˚ uz´ı jednotliv´ ych organizaˇcn´ıch jednotek, pˇrevod p˚ uvodn´ıch tabulkov´ ych dat do datab´azov´ ych pˇr´ıkaz˚ u, apod.
Tabulka nedostatk˚ u instalace . . . . . . Uˇzivatelsk´e u ´rovnˇe syst´emu . . . . . . . Akce uˇzivatel˚ u typu MEM . . . . . . . . Akce administr´ator˚ u typu ZOA . . . . . Akce administr´ator˚ u typu MOA . . . . . Akce administr´ator˚ u typu KOA . . . . . Akce administr´ator˚ u typu HKA . . . . . Funkˇcn´ı nedostatky syst´emu . . . . . . . Tabulka sledovan´ ych atribut˚ u u elementu
Struktura Strany zelen´ ych . . . . . . . . . . . . . E-R model datab´aze . . . . . . . . . . . . . . . . V´ yvojov´ y diagram algoritmu pro zpracov´an´ı textu Hlavn´ı menu aplikace . . . . . . . . . . . . . . . . Moˇznost pr´ace s organizacemi . . . . . . . . . . . ˇ ast formul´aˇre s osobn´ımi u C´ ´daji uˇzivatele . . . . . Nov´a podoba hlavn´ıho menu . . . . . . . . . . . . Zobrazen´ı vnoˇren´e tabulky v tabulce . . . . . . . Naˇcten´a data v programu CQTranslator . . . . . E-R model p˚ uvodn´ı aplikace . . . . . . . . . . . . E-R model nov´e aplikace . . . . . . . . . . . . . .
8
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
10 27 31 37 37 38 38 38 39 40 41
1
´ Uvod
Samotn´a pr´ace je zaloˇzen´a na jiˇz st´avaj´ıc´ım informaˇcn´ım syst´emu, kter´ y byl vyv´ıjen na katedˇre poˇc´ıtaˇc˚ u v r´amci pˇredmˇetu X36SI3 (Realizace programov´ ych syst´em˚ u) pod veden´ım Ing. Martina Kom´arka. Informaˇcn´ı syst´em byl koncipov´an pro potˇreby evidence ˇclen˚ u Strany zelen´ ych, nikdy ale nebyl nasazen do pˇr´ım´eho provozu. Prim´arn´ım c´ılem t´eto pr´ace je tedy zprovoznit tento syst´em a odstranit veˇsker´e nedostatky, kter´e nebyly zjiˇstˇeny pˇri v´ yvoji. Dalˇs´ı ˇc´ast´ı pr´ace bude zaveden´ı nov´ ych funkc´ı: vkl´ad´an´ı z´apis˚ u ze sch˚ uz´ı jednotliv´ ych organizaˇcn´ıch jednotek, vytvoˇren´ı pˇrevodov´eho skriptu, kter´ y pˇrevede tabulkov´a data do SQL pˇr´ıkaz˚ u datab´aze, apod. Samotn´e zad´an´ı pˇrin´aˇs´ı netrivi´aln´ı ˇreˇsen´ı pomoc´ı zpˇetn´e vazby na p˚ uvodn´ı syst´em, narozd´ıl od v´ yvoje softwaru stavˇen´eho na zelen´e louce“. Velmi d˚ uleˇzit´e je proto pochopen´ı n´avrhu, ” struktury, ale i implementace p˚ uvodn´ıho syst´emu. Pro dobrou orientaci v textu je pr´ace ˇclenˇena do jednotliv´ ych logick´ ych blok˚ u, kter´e reprezentuj´ı chronologickou posloupnost v´ yvoje. Jedn´a se o tyto stupnˇe: popis struktury Strany zelen´ ych, zprovoznˇen´ı na z´akladˇe pˇriloˇzen´e dokumentace, zajiˇstˇen´ı instalaˇcn´ıch nedostatk˚ u, testov´an´ı funkˇcnosti a n´avrh ˇreˇsen´ı chyb syst´emu, z´avˇereˇcn´ y n´avrh a implementace nov´ ych funkc´ı. Po dokonˇcen´ı v´ yvoje se poˇc´ıt´a s nasazen´ım do provozu, proto projekt jako celek mus´ı splˇ novat veˇsker´e poˇzadavky na modern´ı v´ yvoj softwaru, samozˇrejmost´ı je podrobn´a instalaˇcn´ı a uˇzivatelsk´a pˇr´ıruˇcka. Dalˇs´ım specifick´ ym poˇzadavkem zadavatele je open source projektu. V re´aln´em provozu se syst´em setk´a s velk´ ym mnoˇzstv´ım dat, je tedy nutn´e ho otestovat s ohledem na tuto skuteˇcnost. P˚ uvodn´ı projekt byl pˇred´an jako kompletn´ı bal´ıˇcek obsahuj´ıc´ı instalaˇcn´ı, dokumentaˇcn´ı a datov´e soubory, jenˇz byly hlavn´ımi pil´ıˇri m´e pr´ace, na kter´ ych jsem byl nucen stavˇet. V textu se tedy budu odkazovat na strukturu adres´aˇrov´eho syst´emu a v nˇem uloˇzen´e jednotliv´e soubory. Pokud nebude uvedeno jinak, za koˇrenov´ y adres´aˇr se povaˇzuje adres´aˇr p˚ uvodn´ıho projektov´eho bal´ıˇcku uloˇzen´eho jako pˇr´ıloha na CD [dbsz 1 0/]. Nov´ y syst´em se vˇsemi u ´pravami je uloˇzen jako pˇr´ıloha na CD ve sloˇzce [dbsz 2 0/]. Tato sloˇzka obsahuje jednotliv´e instalaˇcn´ı, datov´e a dokumentaˇcn´ı sloˇzky. Zde uˇz nalezneme vˇsechny d´ale popisovan´e u ´pravy a novˇe implementovan´e funkce syst´emu.
9
2
Struktura Strany zelen´ ych
Informaˇcn´ı syst´em decentralizovan´e zpr´avy ˇclen˚ u politick´e strany je v z´akladu koncipov´an pro Stranu zelen´ ych, pro jeho pochopen´ı je tedy nutn´e zn´at samotnou strukturu Strany zelen´ ych. Ta byla zpracov´ana i v p˚ uvodn´ım projektu [/1doc/analyza.sxw], nicm´enˇe povaˇzuji za d˚ uleˇzit´e jej pˇrepracovat a uv´est. Strana zelen´ ych m´a hierarchick´e uspoˇr´ad´an´ı, kter´e sdruˇzuje jak jednotliv´e funkˇcn´ı celky, tak i spr´avn´ı org´any. Na obr´azku 1 jsou funkˇcn´ı celky zobrazeny vˇetˇs´ım fontem (tj. Hlavn´ı Kancel´aˇr, KO, MO, ZO, MEM), ostatn´ı celky jsou r˚ uzn´e spr´avn´ı org´any strany, zobrazeny fontem menˇs´ım. MO (Mˇestsk´a organizace) jsou uzavˇreny do z´avorek, protoˇze jsou nepovinn´e, ZO (Z´akladn´ı organizace) m˚ uˇze tedy pˇr´ımo spadat rovnou pod spr´avu KO (Krajsk´a organizaci). Doplˇ nuj´ıc´ı informace ke struktuˇre naleznete na str´ank´ach Strany zelen´ ych [1].
Hlavn´ı kancel´aˇr PZS: ´ URK: RR: Sjezd KO KK KRK RKO MO RMO MK ZO ˇ CSZO RZO MEM
Nejvyˇsˇs´ı funkˇcn´ı jednotka Pˇredsednictvo ´ redn´ı revizn´ı komise Ustˇ Republikov´a rada Celorepublikov´ y sjezd strany Krajsk´a organizace Krajsk´a konference Krajsk´a revizn´ı komise Rada krajsk´e organizace Mˇestsk´a organizace Rada mˇestsk´e organizace Mˇestsk´a konference Z´akladn´ı organizace ˇ Clensk´ a sch˚ uze z´akladn´ı organizace Rada z´akladn´ı organizace ˇ Clen
Obr´azek 1: Struktura Strany zelen´ ych Dalˇs´ı informace o struktuˇre, ˇclenstv´ı, funkc´ı ˇclen˚ u, apod. najdete ve v´ yˇse zm´ınˇen´em textu p˚ uvodn´ıho projektu [/1doc/analyza.sxw].
10
3
St´ avaj´ıc´ı syst´ em
V t´eto kapitole se budu vˇenovat jiˇz nˇekolikr´at zm´ınˇen´emu syst´emu, kter´ y dostal n´azev DBSZ ˇ em vysok´em uˇcen´ı technick´em v Praze fakulty (Datab´aze Strany zelen´ ych). Byl vyv´ıjen na Cesk´ elektrotechnick´e na Katedˇre poˇc´ıtaˇc˚ u v pˇredmˇetu Realizace programov´ ych syst´em˚ u (X36SI3) pod veden´ım Ing. Martina Kom´arka. Fin´aln´ı verze programu byla dokonˇcen´a v u ´noru roku 2006. P˚ uvodnˇe se poˇc´ıtalo s re´aln´ ym nasazen´ım, nicm´enˇe k nˇemu nikdy nedoˇslo. Nejdˇr´ıve uvedu nˇekter´e informace k samotn´emu programu (ˇreˇsitel´e, syst´emov´e poˇzadavky, apod.). Veˇsker´e podklady byly z´ısk´any z dokumentace [/1doc], proto na ni odkazuji, nebot’ obsahuje kompletn´ı informace o v´ yvoji a implementaci p˚ uvodn´ıho syst´emu.
Jiˇz pˇri zhotovov´an´ı p˚ uvodn´ıho zad´an´ı se poˇc´ıtalo s budouc´ım rozˇs´ıˇren´ım (viz. kapitola Pˇredmˇet smlouvy v [/1doc/smlouva.sxw]). Jedn´a se pˇredevˇs´ım o tyto rozˇs´ıˇren´ı: automatizovan´a tvorba kandid´atn´ıch listin, n´astroje pro vyhodnocov´an´ı vnitrostranick´eho referenda a prim´arn´ıch voleb. D´ale se v p˚ uvodn´ım syst´emu poˇc´ıtalo se zaveden´ım nˇekolika funkc´ı, kter´e ale nakonec implementov´any nebyly, napˇr. u ´prava osobn´ıho profilu, vkl´ad´an´ı z´aznam˚ u z jedn´an´ı apod. Jedn´ım z c´ıl˚ u t´eto pr´ace je nˇekter´e tyto funkce do syst´emu implementovat. 3.1.3
Zabezpeˇ cen´ı
• ˇsifrovan´a hesla MD5, pˇrenos dat pˇres SSL (s podporou http serveru) • pˇr´ım´ y pˇr´ıstup k datab´azi serveru: pouze povˇeˇren´a osoba (super administr´ator) pro u ´ˇcely z´alohov´an´ı/obnovy dat • pˇr´ıstup k datab´azi/dat˚ um: pˇrihl´aˇsen´ı navrˇzenou aplikac´ı (s uˇzivatelsk´ ym jm´enem a heslem) • moˇznost kontroly cel´e aplikace (vˇc. zdrojov´ ych k´od˚ u) • logov´an´ı vybran´ ych akc´ı
11
3.1.4
E-R model
E-R model datab´aze je pops´ana v dokumentaci. Jelikoˇz ale samotn´a struktura datab´aze nynˇejˇs´ıho syst´emu bude z´akladem syst´emu nov´eho a v pr˚ ubˇehu anal´ yzy na jednotliv´e tabulky budu odkazovat, uv´ad´ım E-R model na obr´azku 10 v pˇr´ıloze C. 3.1.5
Ostatn´ı
Dokument [/1doc/analyza.sxv] obsahuje i dalˇs´ı potˇrebnou dokumentaci projektu, tj. uˇzivatelsk´e role, pˇr´ıpady uˇzit´ı a datovou anal´ yzu. Pro pochopen´ı funkˇcnosti aplikace je nutn´e se s n´ı sezn´amit. V tomto p˚ uvodn´ım dokumentu se odkazuje v kapitole 4.2 na datov´ y slovn´ık db.html, ten je uloˇzen zde: [/1doc/export/html/db.html]. Datov´ y slovn´ık obsahuje kompletn´ı popis struktury datab´aze aplikace.
12
4
Instalace aplikace DBSZ
Po hrub´em sezn´amen´ı se ze strukturou Strany zelen´ ych a informaˇcn´ım syst´emem samotn´ ym bych se r´ad vˇenoval zaveden´ı syst´emu do provozu. V t´eto a n´asleduj´ıc´ı kapitole se budu snaˇzit upozornit na jednotliv´e chyby a nedostatky instalace i syst´emu, aby mohly b´ yt odstranˇeny a v´ ystupn´ı aplikace uˇz byla bez nich. Z d˚ uvod˚ u konzistence textu a pochopitelnosti probl´emu, budu ˇreˇsen´ı rovnou navrhovat, i kdyˇz v z´avˇereˇcn´e podkapitole 4.4 bude vˇse shrnuto. Instalace v´ ysledn´eho produktu jako takov´a je ned´ılnou souˇc´ast chronologick´eho postupu pˇri v´ yvoji a zprovoznˇen´ı aplikace, ke kter´e je potˇreba pˇristupovat komplexnˇe. Program´ator, popˇr. cel´ y realizaˇcn´ı t´ ym nem˚ uˇze spol´ehat na to, ˇze instalace aplikace bude prov´adˇena jimi samotn´ ymi, nebo dokonce jen jednou. Je tedy vhodn´e samotnou instalaci pomoc´ı instalaˇcn´ı pˇr´ıruˇcky koncipovat tak, aby byla snadno pochopiteln´a i pro m´enˇe zkuˇsen´eho administr´atora. K instalaci byl pouˇzit instalaˇcn´ı adres´aˇr pˇredan´ y zadavatelem (viz. pˇr´ıloha [/dbsz 1 0]). Cel´ y bal´ıˇcek obsahuje kompletn´ı dokumentaci [/1doc], instalaˇcn´ı soubory [/dbsz] a SQL d´avkov´e soubory [/sql]. Zde se projevil prvn´ı nedostatek, struktura adres´aˇr˚ u nikde nebyla pops´ana a z´aroveˇ n nebyly jasnˇe odliˇseny instalaˇcn´ı soubory a soubory dokumentace projektu. ˇ sen´ım by bylo jasnˇe oddˇelit instalaˇcn´ı a dokumentaˇcn´ı ˇc´ast projektu a pˇr´ımo do adres´aˇre Reˇ instalace um´ıstit instalaˇcn´ı pˇr´ıruˇcku. T´ım by odpadlo proklik´av´an´ı se hlubokou strukturou adres´aˇr˚ u a hled´an´ı instalaˇcn´ıch, popˇr. dokumentaˇcn´ıch soubor˚ u lidem, kteˇr´ı na projektu nepracovali.
4.1
Instalaˇ cn´ı pˇ r´ıruˇ cka
Kompletn´ı instalaˇcn´ı pˇr´ıruˇcka je um´ıstˇena v adres´aˇri [/1doc/install.sxw]. Vˇetˇsina faktografick´e ˇc´asti manu´alu je dostaˇcuj´ıc´ı, nicm´enˇe form´at souboru a samotn´ y vzhled textu je nevyhovuj´ıc´ı. Z d˚ uvod˚ u platformn´ı nez´avislosti by bylo vhodn´e veˇsker´e textov´e soubory generovat do form´at˚ u pˇrenositeln´ ych dokument˚ u (nejl´epe PDF - Portable document format). Takt´eˇz grafick´a u ´prava dokument˚ u by mˇela odpov´ıdat jist´ ym standard˚ um.
4.2
Instalace webov´ eho rozhran´ı
Prvn´ım krokem uveden´ ym v instalaˇcn´ı pˇr´ıruˇcce je um´ıstˇen´ı soubor˚ u syst´emu na server, tedy zprovoznˇen´ı webov´eho rozhran´ı aplikace. Zde nen´ı uveden pˇr´ım´ y adres´aˇr, jehoˇz obsah by se na server mˇel zkop´ırovat. Tento probl´em by mˇel b´ yt vyˇreˇsen z´aroveˇ n s pˇredˇel´an´ım samotn´e struktury souborov´eho syst´emu (viz. v´ yˇse). V ostatn´ıch ohledech byl pˇrevod dat na testovac´ı server bez komplikac´ı.
4.3
Instalace datab´ aze
Samotn´e vytvoˇren´ı datab´aze na serveru a spuˇstˇen´ı skriptu pro vytvoˇren´ı vˇsech tabulek je ot´azkou dovednosti administr´atora, proto v manu´alu postup nen´ı do hloubky vysvˇetlen. V nov´em syst´emu by bylo moˇzn´e uv´est odkaz na nˇekter´ y on-line n´avod. Daleko prozaiˇctˇejˇs´ım probl´emem je samotn´e naplnˇen´ı datab´aze daty, tedy nahr´an´ı vˇsech organizaˇcn´ıch jednotek Strany zelen´ ych, ˇclen˚ u atp. V instalaˇcn´ım manu´alu je odkaz na soubor SQL d´avkov´ ych pˇr´ıkaz˚ u, kter´ y vytvoˇr´ı samotn´e tabulky a napln´ı je daty. Jedn´a se sice o testovac´ı data, kter´a pravdˇepodobnˇe jsou zaloˇzena na datech re´aln´ ych, nicm´enˇe toto je pro praxi zcela nepouˇziteln´e. Strana zelen´ ych m´a velk´ y poˇcet ˇclen˚ u r˚ uzn´eho zaˇrazen´ı do organizac´ı, ale pˇredevˇs´ım r˚ uzn´ ych dat sledovan´ ych v syst´emu. Jedn´ım moˇzn´ ym ˇreˇsen´ım je oprostit SQL soubor o zm´ınˇen´a data a nechat jejich naplnˇen´ı na administr´atorech jednotliv´ ych z´akladn´ıch organizac´ı, l´epe ale vytvoˇrit skript, kter´ y by pˇrevedl z tabulky ˇclen˚ u veˇsker´a data do SQL pˇr´ıkaz˚ u. Toto posledn´ı ˇreˇsen´ı by mˇelo za 13
n´asledek operativn´ı spr´avu datab´aze ve velmi kr´atk´em ˇcase. V p˚ uvodn´ım syst´emu jsem nalezl pˇrevodov´e skripty v jazyce AWK (univerz´aln´ı poˇc´ıtaˇcov´ y jazyk pro zpracov´an´ı textu) ve sloˇzce [/sql/orig], kter´ y pˇrev´adˇel data poskytnut´a zadavatelem na strukturovanou formu SQL pˇr´ıkaz˚ u, nicm´enˇe jak´ ykoli popis tohoto skriptu chybˇel. Po prostudov´an´ı skriptu jsem usoudil, ˇze skript je nepouˇziteln´ y z d˚ uvod˚ u nutn´e u ´pravy v´ ystupn´ıch dat, nepˇrehlednosti a platformn´ı z´avislosti.
4.4
Pˇ rehled chyb a ˇ reˇ sen´ı
Jak jiˇz bylo zm´ınˇeno, na z´avˇer kapitoly uvedu kompletn´ı pˇrehled nedostatk˚ u instalace st´avaj´ıc´ıho syst´emu a navrˇzen´e ˇreˇsen´ı. Zjiˇ stˇ en´ e nedostatky Struktura instalaˇcn´ıho a dokumentaˇcn´ıho bal´ıˇcku je nejasn´a.
ˇ sen´ı nedostatku Reˇ Oddˇelit instalaˇcn´ı a dokumentaˇcn´ı ˇc´ast syst´emu, popsat strukturu v dokumentaci.
2
Veˇsker´e dokumenty jsou platformˇe z´avisl´e.
Generovat v´ ystupn´ı dokumenty do PDF dokument˚ u.
3
SQL soubor pro vytvoˇren´ı struktury datab´aze obsahuje testovac´ı data.
Vytvoˇrit skript pro pˇrevod aktu´aln´ıch dat na SQL pˇr´ıkazy, popˇr. oprostit tento skript o testovac´ı data.
ˇ c. 1
Tabulka 1: Tabulka nedostatk˚ u instalace
14
5
Testov´ an´ı funkˇ cnosti syst´ emu
Po nainstalov´an´ı a zprovoznˇen´ı informaˇcn´ıho syst´emu bylo dalˇs´ım krokem otestov´an´ı funkˇcnosti v´ ysledn´e aplikace. V r´amci projektu probˇehl akceptaˇcn´ı test [/dbsz/1doc/akcept.sxw], jehoˇz v´ ystupem byl dokument poˇzadovan´ ych akc´ı syst´emu v r´amci jednotliv´ ych uˇzivatelsk´ ych rol´ı. I kdyˇz z´aklady modern´ıho testov´an´ı softwaru jsou ponˇekud ˇsirˇs´ı, budu vych´azet z p˚ uvodn´ıho akceptaˇcn´ıho testu, kter´ y v pˇr´ıpadˇe nutnosti dopln´ım o poˇzadovan´e akce. V´ ysledkem t´eto kapitoly je odhalen´ı co nejvˇetˇs´ıho poˇctu chyb a nedostatk˚ u aplikace a struˇcn´ y n´avrh ˇreˇsen´ı. Jednotliv´e podkapitoly obsahuj´ı tabulky poˇzadovan´ ych akc´ı, popˇr. popis chyb, kter´e jsou oˇc´ıslov´any, aby se na nˇe v kapitole 5.4 mohlo odkazovat. Tato kapitola obsahuje kompletn´ı popis ˇreˇsen´ı vˇsech zjiˇstˇen´ ych chyb a nedostatk˚ u. V pr˚ ubˇehu t´eto kapitoly se pˇrev´aˇznˇe odkazuje na p˚ uvodn´ı soubory obsahuj´ıc´ı k´od programu uvodn´ıho prouloˇzen´e na pˇr´ıloze CD v adres´aˇri [dbsz 1 0/dbsz]. Tato sloˇzka je ale souˇc´ast´ı p˚ gramov´eho bal´ıˇcku, proto jsem do samotn´eho k´odu nezasahoval. Veˇsker´e u ´pravy jsou tedy uloˇzen´e v instalaˇcn´ı sloˇzce nov´eho syst´emu uloˇzen´em jako pˇr´ıloha na cd v adres´aˇri [dbsz 2 0/ main]. Na obr´azku 10 v pˇr´ıloze C je zobrazen E-R model datab´aze p˚ uvodn´ı aplikace, na kter´em jsou zobrazen´e n´azvy a relece jednotliv´ ych MySQL tabulek. Pokud v t´eto kapitole bude zm´ınˇen n´azev urˇcit´e datab´azov´e tabulky je j´ım m´ınˇena tabulka p˚ uvodn´ıho syst´emu popsan´a v´ yˇse zm´ınˇen´ ym modelem.
5.1
Hardwarov´ a a softwarov´ a konfigurace prostˇ red´ı
Pro otestov´an´ı aplikace byl vybr´an komerˇcn´ı projekt webzdrama.cz firmy AYA CZ, spol. s r.o. A to nejen z d˚ uvod˚ u bezplatn´eho poskytov´an´ı serverov´eho prostoru, ale tak´e kv˚ uli vyhovuj´ıc´ım technick´ ym parametr˚ um a prostˇredk˚ um. 5.1.1
Server
• Apache 2.0.63 • MySQL 5.0.27 • PHP 4.3.10 5.1.2
Prohl´ıˇ zeˇ c
• Mozilla Firefox 2.0.0.12
5.2
Poˇ zadovan´ e akce
Ve zkuˇsebn´ıch datech, kter´e jsou souˇc´ast´ı instalaˇcn´ıho bal´ıku je tak´e vytvoˇren u ´ˇcet pro administr´atora. Po spr´avn´e instalaci syst´emu a spuˇstˇen´ı se lze pˇrihl´asit pod u ´ˇctem administr´atora bez nutnosti zasahovat do samotn´e datab´aze. Dalˇs´ı potˇrebn´e u ´ˇcty m˚ uˇze administr´ator vytvoˇrit skrze aplikaci. Poˇzadovan´e akce, jak bylo ˇreˇceno, vych´azej´ı z p˚ uvodn´ıho akceptaˇcn´ıho testu, i tak byly doplnˇeny o nˇekter´e akce, o kter´ ych se p˚ uvodn´ı studie nezmiˇ nuje. Jednotliv´a uˇzivatelsk´a pr´ava jsou hierarchicky vrstvena (v tabulce 2 jsou vzestupnˇe srovn´ana), to znamen´a, ˇze vˇsechny poˇzadovan´e akce a moˇznosti u ´prav ˇclena s niˇzˇs´ım uˇzivatelsk´ ym pr´avem jsou vˇzdy podmnoˇzinou poˇzadovan´ ych akc´ı a moˇznost´ı u ´prav ˇclena s vyˇsˇs´ım uˇzivatelsk´ ym pr´avem. Pˇri testov´an´ı je nutnost´ı k tomu pˇrihl´ednout.
15
5.2.1
Moˇ znost pˇ rihl´ asit se do datab´ aze jednotliv´ ymi u ´ rovnˇ emi uˇ zivatelsk´ ych pr´ av
V datab´azi jsou jednotliv´a uˇzivatelsk´a pr´ava omezen´a v tabulce ker member pomoc´ı hodnoty mem type. Jednotliv´e hodnoty nab´ yvaj´ı cel´ ych ˇc´ısel od 1 do 4 podle uˇzivatelsk´ ych pr´av (viz. n´ıˇze). Chyby jednotliv´ ych akc´ı jsou vyps´any ve zvl´aˇstn´ım sloupci a kv˚ uli pˇrehlednosti jsou 1 oˇc´ıslov´any . Uˇ zivatelsk´ eu ´ rovnˇ e
mem type
Chyba
ˇ c.
ˇ Radov´ y ˇclen (MEM)
1
-
-
Administr´ator z´akladn´ı organizace (ZOA)
2
-
-
Administr´ator mˇestsk´e organizace (MOA)
?
V syst´emu tento druh uˇzivatelsk´e u ´rovnˇe nen´ı v˚ ubec zahrnut
1
Administr´ator krajsk´e organizace (KOA)
3
-
-
Administr´ator (HKA)
4
-
-
hlavn´ı
kancel´aˇre
Tabulka 2: Uˇzivatelsk´e u ´rovnˇe syst´emu
5.2.2
Akce jednotliv´ ych uˇ zivatelsk´ ych rol´ı
V p˚ uvodn´ı implementaci syst´emu uˇzivatelsk´a role typu MOA nebyla zahrnuta, proto by teoreticky nemˇelo smysl vypisovat jednotliv´e akce t´eto uˇzivatelsk´e role. Nicm´enˇe z d˚ uvodu pˇrehlednosti byly tyto akce zahrnuty do t´eto kapitoly. Samotn´e testov´an´ı bylo provedeno aˇz po t´e, co do syst´emu byla tato role zaˇrazena a zpˇetnˇe zde byl v´ ysledek test˚ u zohlednˇen. I kdyˇz moˇznosti uˇzivatel˚ u vyˇsˇs´ı u ´rovnˇe maj´ı veˇsker´a pr´ava niˇzˇs´ıch u ´rovn´ı, u u ´rovnˇe MOA a KOA jsou jednotliv´e moˇznosti zde vyps´any zd´anlivˇe duplicitnˇe. Je to proto, ˇze role administr´atora mˇestsk´e organizace byla zaˇrazena pozdˇeji a z´aroveˇ n mˇestsk´e organizace jsou nepovinnou ˇc´ast´ı v hierarchick´e organizaˇcn´ı struktuˇre Strany zelen´ ych (viz obr´azek 1). ˇ Radov´ y ˇclen (MEM) Akce
Chyba
ˇ c.
Prohl´ıˇzet datab´aze
-
-
Mˇenit osobn´ı u ´daje
-
Tabulka 3: Akce uˇzivatel˚ u typu MEM
1
Znam´enko ’-’ ve sloupci chyb a ˇc´ısel v tabulk´ach t´eto kapitoly oznaˇcuj´ı to, ˇze u dan´e akce ˇz´adn´a chyba nevznikla, t´ım p´adem nem´ a ani pˇriˇrazen´e ˇc´ıslo chyby.
16
Administr´ator z´akladn´ı organizace (ZOA) Akce Vloˇzit nov´eho ˇclena
Chyba -
ˇ c. -
Zmˇenit pˇr´ısluˇsnost ˇclena dan´e ZO na jinou (ne naopak)
Zmˇena pˇr´ısluˇsnosti probˇehne v poˇr´adku i pˇres zvl´aˇstn´ı hl´aˇsku o proveden´ı: Uˇzivatel aktualizov´ an Nem´ ate pr´ ava k proveden´ı t´eto akce! (99).
2
Mˇenit u ´daje ˇclena
-
-
Editovat pokladn´ı den´ık ZO
-
-
Tabulka 4: Akce administr´ator˚ u typu ZOA
Administr´ator mˇestsk´e organizace (MOA) Akce Pˇriˇrazovat MEM pr´ava ZOA
Chyba Tato moˇznost v syst´emu nen´ı.
ˇ c. 3
Pˇriˇrazovat MEM k jednotliv´ ym org´an˚ um mˇestsk´e organizace(RMO, MK)
-
-
Editovat pokladn´ı den´ık MO
-
-
Tabulka 5: Akce administr´ator˚ u typu MOA
Administr´ator krajsk´e organizace (KOA) Akce Pˇriˇrazovat MEM pr´ava ZOA
Chyba -
ˇ c. -
Pˇriˇrazovat MEM k jednotliv´ ym org´an˚ um kraje (RKO, KRK)
-
-
Editovat pokladn´ı den´ık KO
-
-
Tabulka 6: Akce administr´ator˚ u typu KOA
17
Hlavn´ı administr´ator kancel´aˇre (HKA) Akce Zaloˇzit/zruˇsit ZO, MO, KO
Chyba -
ˇ c. -
´ Pˇriˇrazovat k PZS, URK, RR, KRK, RKO konkr´etn´ı MEM
-
-
Pˇriˇrazovat MEM pr´ava KOA a HKA
-
-
Editovat tabulku konstant
-
-
Editovat tabulku uˇzivatelsk´ ych funkc´ı
Uˇzivatelsk´e funkce jdou snadno editovat, nicm´enˇe po provedeni akce se opˇet vyp´ıˇse nesmysln´a hl´aˇska: Chyba pˇri ukl´ ad´ an´ı funkce (1)
4
Tabulka 7: Akce administr´ator˚ u typu HKA
5.3
Funkˇ cn´ı nedostatky syst´ emu
Mezi funkˇcn´ı nedostatky lze zaˇradit vˇsechny probl´emy, kter´e neovlivˇ nuj´ı pˇr´ımo konzistentn´ı chov´an´ı syst´emu, probl´emem je, ˇze zpomaluj´ı a znepˇrehledˇ nuj´ı pr´aci se samotn´ ym programem, popˇr. umoˇzn ˇuj´ı uˇzivatel˚ um akce, kter´e naruˇsuj´ı spr´avnou spr´avu syst´emu. Pr´ace se vˇsemi daty a jednotliv´ ymi poloˇzkami webov´eho rozhran´ı by mˇely b´ yt vysoce intuitivn´ı a pochopiteln´e i m´enˇe zkuˇsen´emu uˇzivateli poˇc´ıtaˇce. Tyto poˇzadavky by se mohly zd´at nepodstatn´ ymi, zvl´aˇstˇe po dlouh´e dobˇe v´ yvoje, kdy v´ yvoj´aˇr prostˇred´ı aplikace do hloubky zn´a. Opak je ale pravdou, samotn´e grafick´e prostˇred´ı je jedinou ˇc´ast´ı syst´emu se kterou doch´az´ı uˇzivatel ke konfrontaci, a proto tvoˇr´ı ned´ılnou ˇc´ast celkov´eho dojmu aplikace. V aplikaci DBSZ bylo bˇehem testov´an´ı odhaleno nˇekolik funkˇcn´ıch nedostatk˚ u, jejichˇz v´ yˇcet bude pro pˇrehlednost a moˇznost zpˇetn´eho odkazu seˇrazen v tabulce 8. V t´eto tabulce se odkazuje na hlavn´ı menu syst´emu, jeho podobu naleznete v pˇr´ıloze A na obr´azku 4.
18
Chyba
ˇ c.
Uˇzivatel s pr´avy MEM si s´am m˚ uˇze zad´avat r˚ uzn´e uˇzivatelsk´e funkce, napˇr.: Hejtman, poslanec, ministr, apod.
5
Uˇzivatel s pr´avy ZOA a vyˇsˇs´ı m˚ uˇze mˇenit jednotliv´e z´aznamy pokladn´ıch den´ık˚ u jak´ekoli ZO.
6
ˇ V poloˇzce menu Clenov´ e lze zobrazovat veˇsker´e ˇcleny, podle r˚ uzn´ ych filtr˚ u. Kdyˇz ˇz´adn´ y filtr ale zvolen nen´ı, tak na m´ısto v´ ypisu vˇsech ˇclen˚ u se nezobraz´ı nic.
7
Pˇri u ´pravˇe osobn´ıch u ´daj˚ u, jak samotn´ ym uˇzivatelem, tak i nadˇrazen´ ym administr´atorem, je moˇznost zmˇenit heslo k dan´emu u ´ˇctu. To bez probl´emu zmˇenit jde, aˇz do t´e doby, co uˇzivatel mˇen´ı heslo na to sam´e.
8
Pˇr´ıspˇevek na urˇcit´ y rok jednomu uˇzivateli by mˇelo j´ıt zadat pouze jednou, v syst´emu tak ale lze uˇcinit opakovanˇe.
9
Kaˇzd´emu pˇr´ıspˇevku je generov´an variabiln´ı symbol pˇres kter´ y lze danou platbu zpˇetnˇe potvrdit. Pˇri potvrzen´ı jedn´e platby se ale automaticky potvrd´ı vˇsechny ostatn´ı 10 nepotvrzen´e. Tabulka 8: Funkˇcn´ı nedostatky syst´emu
Popis V syst´emu nen´ı zohlednˇena uˇzivatelsk´a role typu administr´ator mˇestsk´e organizace (MOA). ˇ sen´ı Mˇestsk´a organizace je nepovinn´ Reˇ ym ˇcl´ankem mezi krajskou a z´akladn´ı organizac´ı. Tj. z´akladn´ı organizace m˚ uˇze spadat pˇr´ımo pod spr´avu nadˇrazen´e krajsk´e organizace, nebo mˇestsk´e organizace, kter´a je pak na organizaci krajskou nav´az´ana. Tato struktura odpov´ıd´a p˚ uvodn´ımu stavu syst´emu, jak na u ´rovni datab´azov´e, tak na u ´rovni aplikace. Jedin´ ym nedostatkem je absence uˇzivatelsk´e role, kter´a by reprezentovala administr´atora mˇestsk´e organizace s pˇr´ısluˇsn´ ymi pr´avy v syst´emu. Nov´a uˇzivatelsk´a role m´a obraz v datab´azi v tabulce ker member ve sloupci mem type.Na t´eto u ´rovni tedy nebylo potˇreba nic mˇenit, protoˇze tento sloupec nem´a ˇz´adn´e maxim´aln´ı omezen´ı (z datab´azov´eho hlediska tedy lze vytv´aˇret nekoneˇcnˇe mnoho uˇzivatelsk´ ych rol´ı). V syst´emu bylo pouˇzito ˇc´ıseln´e vyj´adˇren´ı pro jednotliv´e role: 1 - MEM 2 - ZOA 3 - KOA 4 - HKA 5 - ˇclen pˇridruˇzen´e organizaˇcn´ı jednotky 6 - MOA2 2
Tato role byla do syst´emu pˇrid´ ana pro rozliˇsen´ı administr´ator˚ u mˇestsk´ ych organizac´ı
19
To je definov´ano v konfiguraˇcn´ım souboru [/dbsz/kernel/users.ini]. Zde tedy pˇribyl nov´ y z´aznam: [moa] id=6 name="Administr´ ator MO" Posledn´ım z´asahem do k´odu byla u ´prava funkce isAdmin($id user,$id group,$admin type), kter´a se pouˇz´ıv´a pˇri u ´pravˇe organizaˇcn´ıch jednotek a uˇzivatel˚ u pro zjiˇstˇen´ı opr´avnˇen´ı v konkr´etn´ım pˇr´ıpadˇe. Tato funkce se nach´az´ı ve skriptu /dbsz/kernel/lib/user.php. Do funkce bylo pˇrid´ano otestov´an´ı uˇzivatele na pr´ava MOA a pˇr´ıpadn´e nalezen´ı vˇsech organizaˇcn´ıch jednotek a uˇzivatel˚ u, kteˇr´ı spadaj´ı do jeho spr´avy. 5.4.2
Chyba ˇ c´ıslo 2
Popis Pˇri zmˇenˇe ˇclenstv´ı uˇzivatele v z´akladn´ı organizaci na jinou doˇslo k chybov´e hl´aˇsce, i kdyˇz v syst´emu zmˇena probˇehla korektnˇe. ˇ sen´ı spoˇc´ıvalo akor´at v u ˇ sen´ı Reˇ Reˇ ´pravˇe chybov´ ych hl´aˇsek ve skriptech: [dbsz/kernel/admin/user edit.php] a [dbsz/kernel/lib/user.php]. 5.4.3
Chyba ˇ c´ıslo 3
Popis Po pˇrid´an´ı uˇzivatelsk´e role typu MOA nebylo moˇzn´e touto rol´ı administrovat z´akladn´ı organizace pod danou mˇestskou organizac´ı. Stejnˇe tak webov´e rozhran´ı nebylo pˇripraven´e na administraci mˇestsk´ ych organizac´ı spadaj´ıc´ıch pod danou organizaci krajskou. ˇ sen´ım bylo upravit dan´ ˇ sen´ı Reˇ Reˇ y tamplate3 [/dbsz/kernel/templates/admin/default/ group edit.tlp], kter´ y zobrazuje jednotliv´e administraˇcn´ı str´anky. Pˇri zad´an´ı zmˇeny organizaˇcn´ı jednotky (pokud uˇzivatel m´a v˚ ubec pr´ava na nˇekter´e zmˇeny v organizaˇcn´ı jednotce), se podle uˇzivatelsk´e u ´rovnˇe zobrazuj´ı r˚ uzn´e moˇznosti u ´prav. Do zm´ınˇen´eho tamplateu do sekce, kter´a zobrazuje pr´aci s administr´atory dan´e organizaˇcn´ı jednotky bylo tedy pˇrid´ano povolen´ı pro administr´atora mˇestsk´e organizace. (ˇr´adek 56) ({config/id}=={php}Group::getGroupTypeID(’mo’){/php} && {php}User::isAdmin( {//login}id user,{id group},’koa’){/php}) Pro to, aby mˇestsk´a organizace mohla b´ yt spravov´ana vyˇsˇs´ımi u ´rovnˇemi musela b´ yt do t´ehoˇz tamplateu zaˇrazena podm´ınka pro povolen´ı u ´prav mˇestsk´ ych organizac´ı administr´atory nadˇrazen´ ych organizaˇcn´ıch jednotek. (ˇr´adek 2) {config/id}=={php}Group::getGroupTypeID(’mo’){/php} && {php}User::isAdmin( {//login/id user},{id group},’koa’){/php}) 3
Syst´em m´a implementovan´ y tamplate (ETS - easy tamplate system) pro jednoduch´e zobrazov´an´ı str´anek. Viz. pˇr´ıloha na CD [ets/ets.pdf].
20
5.4.4
Chyba ˇ c´ıslo 4
Popis Pˇri pˇrid´av´an´ı nov´ ych uˇzivatelsk´ ych funkc´ı se funkce sice do datab´aze pˇrid´a, ale vyp´ıˇse se chybov´a hl´aˇska o nepˇrid´an´ı funkce do syst´emu. ˇ sen´ı spoˇc´ıvalo v prohozen´ı dvou, ˇspatnˇe um´ıstˇen´ ˇ sen´ı Reˇ Reˇ ych chybov´ ych hl´aˇsek v souboru [/dbsz/kernel/lib/user.php] ve funkci addUserFunction($data). (ˇr´adky 355 a 359) 5.4.5
Chyba ˇ c´ıslo 5
Popis Kaˇzd´ y uˇzivatel syst´emu si ve sv´em profilu m˚ uˇze zad´avat funkce, kter´e jsou uloˇzen´e v syst´emu (napˇr. hejtman, poslanec, pˇredseda KO, apod.). Tyto pr´ava by mˇely n´aleˇzet minim´alnˇe na uˇzivatelsk´e u ´rovni o jednu pozici vyˇsˇs´ı, tj. na spr´avc´ıch ZO. ˇ sen´ı Pro to, aby poˇzadovan´e pˇriˇrazen´ı jednotliv´ Reˇ ych funkc´ı se zobrazovalo jen administr´ator˚ um typu ZOA a vyˇsˇs´ım, je zapotˇreb´ı zmˇenit tamplate [/dbsz/kernel/tamplates/admin/ ˇ ast HTML k´odu, kter´a zobrazuje formul´aˇr pro pˇriˇrazen´ı, bylo default/user edit.tpl]. C´ nutn´e obalit podm´ınkou administr´atorsk´e u ´rovnˇe ZOA. Pro obyˇcejn´eho uˇzivatele se jednotliv´e, jemu pˇriˇrazen´e, funkce akor´at vyp´ıˇs´ı. Podm´ınku pˇridanou do k´odu m˚ uˇzeme vidˇet n´ıˇze: {choose} {when:{php}User::isAdmin({//login/id user},{id group},’zoa’){/php}} ... HTML k´ od, kter´ y se vyp´ ıˇ se, kdyˇ z uˇ zivatel je typu ZOA a vyˇ sˇ s´ ı)... {/when} {else} ... HTML k´ od, kter´ y se vyp´ ıˇ se, kdyˇ z uˇ zivatel je uˇ zivatel typu MEM)... {/else} {/choose} Nedostatkem tohoto ˇreˇsen´ı je to, ˇze nen´ı rozliˇsen´a administr´atorsk´a u ´roveˇ n pro zad´av´an´ı jednotliv´ ych funkc´ı. Tj. administr´ator z´akladn´ı organizace m˚ uˇze pˇriˇrazovat sobˇe i ˇclen˚ um sv´e ZO funkce jako: m´ıstopˇredseda KO, ministr, hejtman apod., coˇz jde samo proti logice struktury orˇ sen´ı se nal´ez´a v datech, kter´a vypisuje v´ ganizace. Reˇ yˇse zm´ınˇen´ y tamplate. Ta jsou nahr´av´ana ze souboru [/dbsz/kernel/admin/user edit.php] pomoc´ı struktury dat $kernel->page-> user->functions list. Tato struktura bude pomoc´ı podm´ınky vˇzdy obsahovat jin´a data pro r˚ uzn´e uˇzivatelsk´e u ´rovnˇe. 5.4.6
Chyba ˇ c´ıslo 6
Popis Uˇzivatel s pr´avy ZOA a vyˇsˇs´ı m˚ uˇze zad´avat jednotliv´e pˇr´ıjmy a v´ ydaje do pokladn´ıho den´ıku sobˇe podˇr´ızen´ ych organizaˇcn´ıch jednotek. Tato moˇznost by mˇela n´aleˇzet pouze pokladn´ık˚ um jednotliv´ ych spr´avn´ıch celk˚ u. Zprvu tato podm´ınka m˚ uˇze vypadat zbyteˇcnˇe, kdyˇz samotn´ y administr´ator m˚ uˇze uˇzivatel˚ um, ale i s´am sobˇe pˇrid´avat funkci pokladn´ıka podˇr´ızen´e organizace, ale domn´ıv´am se, ˇze pro spr´avn´e chov´an´ı syst´emu by mˇel b´ yt pokladn´ı den´ık editovateln´ y pouze pˇr´ısluˇsn´ ym pokladn´ıkem. ˇ sen´ı Pokladn´ı den´ık je editovateln´ Reˇ y z hlavn´ıho menu "Organizace->Upravit organizaˇ cn´ ı 4 jednotku" . Pˇri zvolen´ı u ´pravy organizaˇcn´ı jednotky se zobrazuje moˇznost u ´pravy pokladn´ıho 4ˇ
Sipka reprezentuje niˇzˇs´ı u ´roveˇ n ve struktuˇre menu
21
den´ıku dan´e jednotky. Toto um´ıstˇen´ı je nejen m´alo pˇrehledn´e, ale pˇredevˇs´ım systematicky nespr´avn´e, protoˇze upravovat jednotliv´e organizaˇcn´ı jednotky mohou pouze administr´atoˇri, pˇriˇcemˇz uˇzivatel s funkc´ı pokladn´ıka administr´ator v˚ ubec b´ yt nemus´ı. ˇ Reˇsen´ım tedy bylo vytvoˇrit novou poloˇzku menu, kter´a bude umoˇzn ˇovat spr´avu pokladn´ıch den´ık˚ u. Tato poloˇzka se bude zobrazovat tedy pouze ˇclen˚ um s funkc´ı pokladn´ık ZO a KO. Konzistence zobrazen´ı a editace zaruˇcena bude, protoˇze uˇzivatel m˚ uˇze b´ yt ˇclenem pouze jedn´e z´akladn´ı organizace, stejnˇe tak i krajsk´e. 5.4.7
Chyba ˇ c´ıslo 7
Popis Pˇri nezvolen´ı ˇz´adn´eho filtru pˇri zobrazov´an´ı uˇzivatel˚ u v menu "ˇ Clenov´ e" se nezobraz´ı ˇz´adn´ y z´aznam, i kdyˇz je oˇcek´av´an v´ ypis vˇsech ˇclen˚ u, kteˇr´ı jsou uloˇzeni v syst´emu. ˇ sen´ı Dan´ Reˇ y formul´aˇr, kter´ y je zas´ıl´an serveru pro vyps´an´ı uˇzivatel˚ u podle zadan´eho filtru je zpracov´av´an PHP skriptem [/dbsz/kernel/admin/user state.php]. Pr´avˇe v nˇem se data zpracovala jen tehdy, kdyˇz nˇejak´ y filtr byl zad´an. Pro zpracov´an´ı dat s nezvolen´ ym filtrem (tedy vyps´an´ı vˇsech uˇzivatel˚ u) staˇcilo pouze rozˇs´ıˇrit hned prvn´ı podm´ınku pro zpracov´an´ı skriptu tak, aby neignorovala tuto situaci. 5.4.8
Chyba ˇ c´ıslo 8
Popis Pˇri zmˇenˇe pˇr´ıstupov´eho hesla do syst´emu na heslo stejn´e se vyp´ıˇse chybov´a hl´aˇska, ˇze heslo zmˇenˇeno nebylo. To m˚ uˇze b´ yt dost matouc´ı nejen pro uˇzivatele, ale pˇredevˇs´ım pro administr´atora, kter´ y hesla m˚ uˇze mˇenit uˇzivatel˚ um spadaj´ıc´ım do jeho pravomoc´ı. ˇ sen´ı se nach´az´ı v oˇsetˇren´ı datab´azov´eho dotazu ve skriptu [/dbsz/kernel/lib/ ˇ sen´ı Reˇ Reˇ user.php] (ˇra´dek 86): $kernel->dbadmin->query("UPDATE ker user SET pwd=’".md5($data[’pwd’])."’ WHERE id user=’$id user’") Tento dotaz vr´at´ı hodnotu ”null”, pokud k ”updatu” nedojde, tj. pokud je heslo stejn´e jako bylo p˚ uvodn´ı. Proto tomuto dotazu mus´ı pˇredch´azet oˇsetˇren´ı, kter´e zachyt´ı tento pˇr´ıpad. 5.4.9
Chyba ˇ c´ıslo 9
Popis Z vnitˇrn´ıch stanov Strany zelen´ ych plyne povinnost kaˇzd´eho ˇclena odv´adˇet jednou roˇcnˇe ˇclensk´e pˇr´ıspˇevky. V informaˇcn´ım syst´emu pro spr´avu pˇr´ıspˇevk˚ u byl zˇr´ızen modul, kter´ y toto zajiˇst’uje (v hlavn´ım menu poloˇzka ”Pˇr´ıspˇevky”). Zadat pˇr´ıspˇevek na urˇcit´ y rok jednomu uˇzivateli lze ale opakovanˇe, i kdyˇz je oˇcek´av´ano, ˇze pˇr´ıspˇevek by mohlo j´ıt zadat pouze jednou. ˇ sen´ı Jednou z moˇznost´ı jak oˇsetˇrit duplicitn´ı zad´av´an´ı pˇr´ıspˇevk˚ Reˇ u je regulovat naˇc´ıtan´a data z datab´aze, kter´a jsou pouˇz´ıv´ana v tamplateu, kter´ y umoˇzn ˇuje spr´avu pˇr´ıspˇevk˚ u. Data jsou naˇc´ıt´ana ve skriptu [/dbsz/payment/admin/payment edit.php] (ˇr´adek 40), kde nen´ı br´an ohled na to, zda dan´ y uˇzivatel jiˇz pˇr´ıspˇevek na zadan´ y rok uˇz zaplatil. Navrˇzen´e ˇreˇsen´ı spoˇc´ıv´a v tom, ˇze pole uˇzivatel˚ u, kter´e se naˇcetlo z datab´aze pro pozdˇejˇs´ı ’ v´ ypis se proch´az´ı prvek po prvku a zjiˇst uje se, zda dan´ y uˇzivatel pro urˇcit´ y rok jiˇz zaplatil nebo ne. Podle toho mu je pˇriˇrazena logick´a hodnota true, nebo false, kter´a podmiˇ nuje pozdˇejˇs´ı v´ ypis v tamplateu [/dbsz/payment/tamplates/admin/default/payment edit.tpl], kter´ y se star´a o zad´av´an´ı pˇr´ıspˇevk˚ u. 22
5.4.10
Chyba ˇ c´ıslo 10
Popis Kaˇzd´emu pˇr´ıspˇevku je generov´an variabiln´ı symbol pˇres kter´ y lze danou platbu zpˇetnˇe potvrdit. Pˇri potvrzen´ı jedn´e platby se ale automaticky potvrd´ı vˇsechny ostatn´ı nepotvrzen´e. ˇ sen´ı Modul pro potvrzov´an´ı pˇr´ıspˇevk˚ Reˇ u nalezneme, stejnˇe jako pˇri ˇreˇsen´ı chyby ˇc. 9, ve sloˇzce [/dbsz/payment]. Pokud je v syst´emu zad´ano potvrzen´ı pˇr´ıspˇevku, vol´a se metoda payPayment($id payment, $data) ze skriptu payment.php, kter´a zprostˇredkov´av´a potvrzen´ı platby v datab´azi. Na u ´rovni datab´aze se pˇr´ıspˇevky uchov´avaj´ı v tabulce pay payment, zde ve sloupci paid hodnota 1 reprezentuje potvrzenou platbu a hodnota 0 platbu nepotvrzenou. V´ yˇse zm´ınˇen´a funkce, mimo jin´e, tuto hodnotu pˇri potvrzen´ı pˇr´ıspˇevku mˇen´ı na 1, tedy platbu potvrzuje na datab´azov´e u ´rovni. Chyba potvrzen´ı se nach´az´ı pr´avˇe v t´eto metodˇe (ˇr´adek 219 p˚ uvodn´ıho skriptu), kdy pravdˇepodobnˇe bylo zapomenuto na doplnˇen´ı klauzule ”WHERE” pˇri datab´azov´em dotazu, kter´a by nastavovala potvrzen´ı pouze pˇr´ıspˇevku s dan´ ym id payment (prim´arn´ı kl´ıˇc v tabulce pay payment). Jiˇz opraven´ y datab´azov´ y dotaz m˚ uˇzeme vidˇet n´ıˇze, pˇriˇcemˇz tuˇcnˇe je vyznaˇcena ˇc´ast k´odu, kter´a byla pˇrid´ana. $kernel->dbadmin->query ("UPDATE pay payment SET paid=’" . $data[’paid’] . "’, mark=’".$data[’mark’] . "’, end date=’".$kernel->sqlDate($data[’end date’])."’ WHERE id payment = $id payment")
23
6
N´ avrh nov´ ych funkc´ı
Jak jiˇz bylo nast´ınˇeno, n´avrh nov´ ych funkc´ı aplikace vych´azel pˇredevˇs´ım z kombinace poˇzadavk˚ u, kter´e byly navrˇzeny jiˇz pˇri prvotn´ım zad´an´ı, ale nebyly implementov´any. D´ale z poˇzadavk˚ u, kter´e byly zm´ınˇeny jako budouc´ı moˇzn´e rozˇs´ıˇren´ı a v neposledn´ı ˇradˇe z poˇzadavk˚ u, kter´e vyplynuly jako dobr´e rozˇs´ıˇren´ı pro budouc´ı nasazen´ı. P˚ uvodn´ı projekt DBSZ se ˇrad´ı mezi stˇrednˇe velk´e, a proto by se implementace jen stˇeˇz´ı obeˇsla bez dokumentace. Tu m˚ uˇzeme nal´ezt v souboru [/dbsz/doc/apidos.tar.gz/apidos/ index.HTML]. Jedn´a se o implementaˇcn´ı dokumentaci, kter´a byla automaticky generov´ana pomoc´ı programu phpDocumentor. Zde nalezneme struˇcn´ y popis vˇsech tˇr´ıd, ale i jejich promˇenn´ ych a metod. Pro pochopen´ı implementace a moˇznou n´aslednou u ´pravu syst´emu musela b´ yt tato dokumentace prostudov´ana. Tato kapitola je ˇclenˇena na jednotliv´e podkapitoly, kter´e reprezentuj´ı jednotliv´e u ´pravy a zaveden´ı nov´ ych funkc´ı do syst´emu. Stejnˇe jako pˇredeˇsl´e opravy syst´emu jsou uloˇzen´e v souboru y obsahuje skripty nov´eho syst´emu, takt´eˇz i nov´e funkce jsou implementov´any [dbsz 2 0], kter´ zde. Je to z toho d˚ uvodu, aby bylo viditeln´e srovn´an´ı p˚ uvodn´ıho syst´emu, nach´azej´ıc´ıho se v [dbsz 1 0], a syst´emu nov´eho. V pr˚ ubˇehu kapitoly budu odkazovat stˇr´ıdavˇe na obˇe dvˇe sloˇzky, proto jako aktu´aln´ı adres´aˇr, narozd´ıl od pˇredchoz´ıch kapitol, budu povaˇzovat koˇrenov´ y adres´aˇr pˇriloˇzen´eho CD. N´avrh nov´ ych funkc´ı vyˇzadoval ˇc´asteˇcnou zmˇenu struktury datab´aze. Nov´ y E-R model je zobrazen v pˇr´ıloze C na obr´azku 11. Pokud bude v t´eto kapitole zm´ınˇen n´azev datab´azov´e tabulky bude odkazovat pr´avˇe na tabulku datab´aze nov´eho syst´emu.
6.1
Grafick´ au ´ prava aplikace
Vylepˇsen´ı grafick´eho rozhran´ı aplikace jsem vˇenoval velkou pozornost z mnoha d˚ uvod˚ u. Nejen, ˇze p˚ uvodn´ı poˇzadavek byl ten, aby aplikace byla barevnˇe sladˇena s webov´ ym rozhran´ım Strany zelen´ ych, ale pˇredevˇs´ım proto, ˇze grafick´a str´anka aplikace, jak jiˇz bylo ˇreˇceno, paradoxnˇe patˇr´ı mezi nejd˚ uleˇzitˇejˇs´ı ˇc´asti syst´emu, se kter´ ymi se uˇzivatel dost´av´a do styku. Samotn´a struktura menu a filosofie jednotliv´ ych str´anek (viz. obr´azek 4 a 5 v pˇr´ıloze C) byla zachov´ana. To pˇredevˇs´ım z d˚ uvod˚ u pˇrehlednosti a moˇznosti rychl´e pr´ace se syst´emem. D´ıky netradiˇcn´ımu ˇreˇsen´ı, kdy druh´a u ´roveˇ n menu je, de facto, rozeps´ana v samotn´e str´ance a kaˇzd´a poloˇzka rovnou obsahuje formul´aˇrov´a data, kter´a jsou potˇrebn´a k vykon´an´ı urˇcit´e funkce, je syst´em celkovˇe pˇrehledn´ y a pr´ace je urychlena pr´avˇe o jednu u ´roveˇ n posunut´e zad´av´an´ı formul´aˇrov´ ych dat (potˇrebn´a data k proveden´ı urˇcit´e funkce mus´ı b´ yt zad´ana jiˇz pˇri v´ ybˇeru moˇznosti z menu). Z´asadn´ı u ´pravy dost´alo hlavn´ı menu a podoba HTML tabulek, kter´e jsou pouˇzity prakticky pro veˇsker´e vypisov´an´ı dat, formul´aˇr˚ u, ale i druhou u ´roveˇ n v´ yˇse zm´ınˇen´eho menu. Hlavn´ı menu Jiˇz v p˚ uvodn´ım zad´an´ı pro realizaci syst´emu byla poˇzadov´ana barevn´a sladˇenost s internetov´ ymi str´ankami Strany zelen´ ych. Dalˇs´ım poˇzadavkem bylo v´ yhradn´ı pouˇzit´ı loga Zelen´ ych. Oba dva poˇzadavky by pro nynˇejˇs´ı nasazen´ı nebyly splnˇeny. uvodn´ıho syst´emu m˚ uˇzeme nal´ezt jak Ve sloˇzce [dbsz 1 0/dbsz/design/admin/default] p˚ obr´azek loga, kter´ y je zobrazov´an v syst´emu, takt´eˇz konfiguraˇcn´ı CSS skript, kter´ y je implicitnˇe nahr´av´an na kaˇzdou str´anku a upravuje tak jednotliv´e elementy str´anky. Logo bylo nahrazeno ofici´aln´ım logem Strany zelen´ ych s barevn´ ym odst´ınem RGB(0,153,0). Barevn´e sch´ema hlaviˇcky webov´ ych str´anek a pozad´ı menu bylo sladˇeno s barevn´ ym odst´ınem nov´eho loga. Nov´e menu je zobrazeno na obr´azku 7 v pˇr´ıloze C.
24
Tabulky Jak jiˇz bylo ˇreˇceno, t´emˇeˇr veˇsker´e informace, formul´aˇre a data jsou na webovou str´anku um´ıst’ov´any pomoc´ı tabulek. U tabulek bylo upraveno barevn´e pozad´ı z´ahlav´ı a z´apat´ı (reprezentovan´em p´arov´ ym HTML tagem
), takt´eˇz narozd´ıl od p˚ uvodn´ı verze syst´emu, tabulky jsou zobrazov´any s r´ameˇckem. Or´amov´an´ı tabulek vedlo k tomu, ˇze vnoˇren´e tabulky a tabulky vnˇejˇs´ı bylo nutno diferencovat, pˇredevˇs´ım proto, ˇze vnitˇrn´ı or´amovan´e tabulky naruˇsovaly pˇrehlednost jednotliv´ ych ´ formul´aˇr˚ u. Upravou v´ yˇse zm´ınˇen´eho CSS skriptu a oznaˇcen´ım vnitˇrn´ıch tabulek pomoc´ı HTML atributu ”class” bylo doc´ıleno poˇzadovan´e diference. N´ahled tabulky s tabulkou vnoˇrenou naleznete v pˇr´ıloze C na obr´azku 8.
6.2
Zobrazov´ an´ı ˇ clensk´ ych pˇ r´ıspˇ evk˚ u
Celkov´a problematika vyb´ır´an´ı ˇclensk´ ych pˇr´ıspˇevk˚ u je v syst´emu ˇreˇsena trochu jin´ ym zp˚ usobem, neˇz jak je popisov´ano ve stanov´ach Strany zelen´ ych. Je to z toho d˚ uvodu, ˇze v praxi se pˇr´ıspˇevky nevyb´ıraj´ı pˇresnˇe tak, jak je zde uvedeno. Proto pravdˇepodobnˇe pˇri p˚ uvodn´ım zad´an´ı byl vznesen poˇzadavek na specifick´e zpracov´an´ı. Exaktn´ı postup pˇri zpracov´an´ı pˇr´ıspˇevk˚ u je uveden v yza.sxw] (kapitola 2.7), uvedu jej tedy jen anal´ yze p˚ uvodn´ıho syst´emu [dbsz 1 0/1doc/anal´ ve zkratce: 1. Pˇr´ıspˇevky do syst´emu m˚ uˇze zad´avat kaˇzd´ y uˇzivatel, pˇriˇcemˇz pˇr´ıspˇevky m˚ uˇze zad´avat sobˇe, ale i komukoli jin´emu. 2. Kaˇzd´ y pˇr´ıspˇevek je uloˇzen do datab´aze se specifick´ ym variabiln´ım symbolem. 3. Zadavatel pˇr´ıspˇevku pˇrevede poˇzadovan´e pen´ıze na hlavn´ı u ´ˇcet Strany zelen´ ych s vygenerovan´ ym variabiln´ım symbolem. 4. Administr´ator potvrd´ı danou platbu v syst´emu, pokud byla zaplacena, popˇr. ji v opaˇcn´em pˇr´ıpadˇe smaˇze. Tento postup byl v p˚ uvodn´ım syst´emu zachov´an. Jedin´ y probl´em ohlednˇe spr´avy pˇr´ıspˇevk˚ u ˇ vznikl pˇri prohl´ıˇzen´ı jednotliv´ ych z´aznam˚ u. Clen, kter´ y si chce prohl´ednout at’ uˇz sv˚ uj, ˇci ciz´ı pˇr´ıspˇevek a zjistit v jak´em st´adiu zpracov´an´ı se onen pˇr´ıspˇevek nach´az´ı, mus´ı zn´at pˇresn´ y variabiln´ı symbol hledan´e platby. 6.2.1
Anal´ yza vyhled´ av´ an´ı pˇ r´ıspˇ evk˚ u
Rozumn´ ym rozˇs´ıˇren´ım by tedy zajist´e byla moˇznost prohled´av´an´ı pˇr´ıspˇevk˚ u podle jin´eho kl´ıˇce neˇz je variabiln´ı symbol. Za moˇzn´ y kl´ıˇc, resp. kombinaci kl´ıˇc˚ u byl zvolen rok hledan´eho pˇr´ıspˇevku a organizaˇcn´ı jednotka pro kterou byl pˇr´ıspˇevek vyd´an. Moˇznost zvolit organizaˇcn´ı jednotku je, stejnˇe jako u zad´av´an´ı pˇr´ıspˇevk˚ u, omezen na krajsk´e a z´akladn´ı organizace. T´ımto je tedy vyhled´av´an´ı podle zadan´eho kl´ıˇce konzistentn´ı v˚ uˇci datab´azi, protoˇze vyhled´av´an´ı pomoc´ı kombinace kl´ıˇc˚ u roku a organizaˇcn´ı jednotky m´a pro urˇcit´eho uˇzivatele (popˇr. skupinu uˇzivatel) vˇzdy pouze jeden obraz v datab´azi. Nem˚ uˇze se tedy st´at, ˇze ˇc´ast uˇzivatel˚ u kteˇr´ı spadaj´ı do hledan´eho pˇr´ıspˇevku nejsou z vybran´e organizaˇcn´ı jednotky. 6.2.2
Implementace vyhled´ av´ an´ı pˇ r´ıspˇ evk˚ u
Vyhled´avac´ı formul´aˇr, samotn´e funkce pro vyhled´av´an´ı a tamplate pro zobrazen´ı v´ ysledk˚ u hled´an´ı bylo nutn´e um´ıstit do modulu pro spr´avu pˇr´ıspˇevk˚ u [dbsz 2 0/main/payment]. Samotn´a implementace spoˇc´ıvala ve dvou kroc´ıch a to pˇrid´an´ı formul´aˇre pro hled´an´ı do jiˇz existuj´ıc´ıho tamplateu a vytvoˇren´ı nov´eho tamplateu a PHP skriptu s logikou pro nov´ y tamplate na kter´ y by odkazoval vyhled´avac´ı formul´aˇr. 25
Vyhled´ avac´ı formul´ aˇ r Vyhled´avac´ı formul´aˇr byl um´ıstˇen do tamplateu [dbsz 2 0/main/ payment/templates/admin/default/payment.tpl], jeˇz je zobrazov´an jako u ´vodn´ı str´anka pro pr´aci s pˇr´ıspˇevky. Tato str´anka umoˇzn ˇuje vkl´adat, hledat a potvrzovat pˇr´ıspˇevky v z´avislosti na uˇzivatelsk´e u ´rovni. Nov´ y formul´aˇr (ˇr´adky 46-63 ve v´ yˇs zm´ınˇen´em tamplateu) pos´ıl´a data metodou ”post” zpracov´avaj´ıc´ımu skriptu, kter´ y posl´eze naˇc´ıt´a data pro moˇzn´e zobrazen´ı. Zobrazen´ı v´ ysledk˚ u hled´ an´ı Data poslan´a novˇe vytvoˇren´ ym formul´aˇrem jsou zpracov´av´ana skriptem [dbsz 2 0/main/payment/admin/payment view year.php]. Zdrojov´a data jsou rok pro kter´ y byl pˇr´ıspˇevek vystaven a organizaˇcn´ı jednotka pro kterou se m´a v´ ypis uˇcinit. V´ ystupn´ı data jsou seznamem jednotliv´ ych plateb se vˇsemi sledovan´ ymi hodnotami, kter´e jsou uloˇzeny ve stromov´e struktuˇre pro moˇzn´ y v´ ypis tamplatem. Samotn´ y skript m´a dvˇe odliˇsn´e moˇznosti zpracov´an´ı, ten z´avis´ı na typu organizace, kter´a byla zvolena jako kl´ıˇc. Pokud byla zvolena organizace typu ZO staˇc´ı pouze naˇc´ıst pˇr´ıspˇevky z datab´aze pro danou ZO. Pokud byla ale zvolena p˚ uvodnˇe organizace typu KO je nutn´e naˇc´ıst zvl´aˇst’ pˇr´ıspˇevky, kter´e byly zad´any skrze v´ ybˇer ˇclen˚ u pˇres KO a d´ale vˇsechny pˇr´ıspˇevky kter´e byly zad´any skrze podˇr´ızen´e organizace typu ZO. Adekv´atn´ı data naˇcten´a z datab´aze jsou po t´e vyps´ana tamplatem [dbsz 2 0/main/payment /templates/admin/default/payment view year.tpl]. Zde je vypisov´an variabiln´ı symbol platby, stav potvrzen´ı, datum zad´an´ı do syst´emu, datum potvrzen´ı, pozn´amky a samozˇrejmˇe seznam ˇclen˚ u a ˇc´astek, pro kter´e byla dan´a platba zad´ana. 6.2.3
Z´ avˇ er
Pˇrid´an´ım t´eto funkce odpadla nutnost archivace variabiln´ıch symbol˚ u mimo syst´em, t´ım p´adem je kaˇzd´a platba pomoc´ı t´eto funkce snadno dohledateln´a a zpˇetnˇe reportovateln´a.
6.3
Ukl´ ad´ an´ı z´ apis˚ u z jedn´ an´ı
Motivace pro ukl´ad´an´ı z´apis˚ u z jedn´an´ı plyne pˇredevˇs´ım z toho, ˇze nynˇejˇs´ı stav je takov´ y, ˇze veˇsker´e z´apisy jsou pˇr´ımo ukl´ad´any na webov´e str´anky Strany zelen´ ych, coˇz je z mnoha d˚ uvod˚ u velmi nevyhovuj´ıc´ı. Tuto kapitolu jsem rozdˇelil na ˇc´ast popisuj´ıc´ı anal´ yzu probl´emu a samotnou implementaci. 6.3.1
Anal´ yza z´ apis˚ u z jedn´ an´ı
Z´apisy z jedn´an´ı se eviduj´ı pro vˇsechny spr´avn´ı org´any strany (republikov´a rada, krajsk´a revizn´ı komise, mˇestsk´a konference, apod.). Tyto org´any maj´ı v syst´emu zastoupen´ı vyjma spr´avn´ıch org´an˚ u z´akladn´ıch organizac´ı, proto v syst´emu bude moˇznost ukl´adat z´apisy z jedn´an´ı nav´ıc i z´akladn´ım organizac´ım. Samotn´ y dokument po uveˇrejnˇen´ı m˚ uˇze b´ yt zmˇenˇen, nicm´enˇe mus´ı b´ yt zachov´ana historie zmˇen. V syst´emu t´ım p´adem vznikne moˇznost nahr´avat nov´e dokumenty pro nov´e jedn´an´ı. Dalˇs´ı moˇznost bude nahr´at upravuj´ıc´ı dokument, kter´ y nahrad´ı dokument p˚ uvodn´ı, a pˇritom ze syst´emu bude moˇzn´e stahovat vˇsechny dokumenty pro dan´e jedn´an´ı byt’ by byly neaktu´aln´ı. Poˇzadavek na zachov´an´ı historie zmˇen tedy bude zachov´an. Opr´avnˇen´ı ukl´adat dokumenty pro urˇcitou spr´avn´ı jednotku strany budou m´ıt vˇzdy administr´atoˇri nadˇrazen´e jednotky (viz. obr. 1), pˇr´ıstup k nahr´av´an´ı dokument˚ u ZO budou m´ıt samozˇrejmˇe uˇzivatel´e typu ZOA pˇr´ısluˇsn´e organizace. Opr´avnˇen´ı pro ˇcten´ı vˇsech z´apis˚ u z jedn´an´ı (i neaktu´aln´ıch verz´ı) bude m´ıt kaˇzd´ y uˇzivatel syst´emu.
26
E-R model E-R model na obr´azku 2 popisuje ˇc´ast datab´aze, kter´a shrnuje probl´em z´apis˚ u z jedn´an´ı. Novˇe pˇridan´e tabulky jsou doc discussion, kter´a uchov´av´a jednotliv´a jedn´an´ı a jejich atributy a tabulka doc discussion files, kter´a uchov´av´a jednotliv´e soubory pro kaˇzd´e jedn´an´ı. Ostatn´ı tabulky jsou zde uvedeny jen proto, ˇze na nˇe pˇr´ımo navazuj´ı novˇe vytvoˇren´e tabulky. Pouze novˇe pˇridan´e elementy maj´ı zobrazen´e veˇsker´e sledovan´e atributy, ostatn´ı pouze nˇekter´e. Tabulka ker user je v relaci s tabulkou doc discussion files, aby byla zachov´ana informace o tom, kdo dan´ y z´apis z jedn´an´ı nahr´al do syst´emu. Popis jednotliv´ ych atribut˚ u je vyps´an v tabulce 9.
Obr´azek 2: E-R model datab´aze N´ azev id doc discussion year place zapisovatel ovˇ eˇ rovatel memo discussion date id doc discussion upload date name size file
SQL datov´ y typ int(10) int(10) varchar(250) varchar(250) varchar(250) varchar(250) date int(10) datetime varchar(250) bigint(20) blob
Popis Prim´arn´ı kl´ıˇc z´aznam˚ u tabulky doc discussion. Rok ve kter´em byla sch˚ uze poˇr´ad´ana. M´ısto na kter´em byla poˇr´ad´ana sch˚ uze. ˇ Clen, kter´ y obstar´av´a z´apis z jedn´an´ı. ˇ Clen, kter´ y samotn´ y z´apis ovˇeˇruje. Pozn´amka k jedn´an´ı. Den, ve kter´em bylo jedn´an´ı poˇr´ad´ano. Prim´arn´ı kl´ıˇc tabulky doc discussion files. Datum a ˇcas ve kter´em byl dokument nahr´an. N´azev nahr´avan´eho dokumentu. Velikost souboru v bitech. Samotn´ y obsah nahran´eho souboru.
Tabulka 9: Tabulka sledovan´ ych atribut˚ u u elementu ”Z´apis z jedn´an´ı”
6.3.2
Implementace z´ apis˚ u z jedn´ an´ı
Protoˇze z´apisy z jedn´an´ı nebyly zpracov´any v p˚ uvodn´ım projektu, musel b´ yt vytvoˇren u ´plnˇe nov´ y modul, kter´ y by umoˇzn ˇoval komplexn´ı pr´aci se z´apisy. Nov´ y modul byl um´ıstˇen do sloˇzky 27
dbsz 2 0/main/documents, pˇriˇcemˇz jsem se snaˇzil zachovat strukturu nov´eho modulu tak, aby odpov´ıdal vˇsem ostatn´ım. V´ yˇse zm´ınˇen´ y adres´aˇr obsahuje sloˇzku s tamplatey templates, sloˇzku se skripty kter´e zajiˇst’uj´ı logiku pro zobrazovan´e str´anky admin, PHP skript obsahuj´ıc´ı potˇrebn´e funkce pro spr´avu dokument˚ u documents.php a inicializaˇcn´ı soubor, kter´ y nastavuje pr´aci se samotn´ ym modulem documents.ini. Diference uˇ zivatelsk´ ych rol´ı Z anal´ yzy plyne poˇzadavek na diferencovan´ y pˇr´ıstup k moˇznosti ukl´ad´an´ı dokument˚ u. Samotn´e omezen´ı m´a dvˇe u ´rovnˇe implementace. Prvn´ı rozliˇsuje zda uˇzivatel je typu MEM nebo m´a nˇejak´e administr´atorsk´e opr´avnˇen´ı. Pokud je typu MEM nen´ı zapotˇreb´ı v˚ ubec zobrazovat formul´aˇr pro ukl´ad´an´ı dokument˚ u v u ´vodn´ı str´ance pro spr´avu yˇse zm´ınˇen´eho z´apis˚ u z jedn´an´ı. Dan´e omezen´ı se nach´az´ı v tamplateu documents menu.tpl v´ modulu. Druhou u ´rovn´ı je diference jednotliv´ ych administr´atorsk´ ych rol´ı, ta se dˇeje jiˇz na u ´rovni naˇc´ıtan´ ych dat, kter´a jsou zobrazov´ana tamplatem. Pro administr´atora ZO bude tedy naˇctena pouze organizaˇcn´ı jednotka ZO, pro administr´atora KO budou naˇcteny organizaˇcn´ı jednotky spadaj´ıc´ı pod KO, kter´e mohou m´ıt uloˇzeno v datab´azi z´aznam o jedn´an´ı. Administr´ator hlavn´ı kancel´aˇre, kter´ y m˚ uˇze editovat dokumenty vˇsech organizaˇcn´ıch jednotek s pr´avem uloˇzen´ı z´apisu z jedn´an´ı. Omezen´ı duplicity z´ apis˚ u Aby v datab´azi, ale i pˇri zpˇetn´em zobrazen´ı jednotliv´ ych z´apis˚ u z jedn´an´ı nevznikaly kolize, bylo nutn´e omezit ukl´ad´an´ı z´apis˚ u pro danou organizaˇcn´ı jednotku. Omezen´ı se dˇeje pomoc´ı datumu kon´an´ı sch˚ uze, kter´e mus´ı b´ yt vyplnˇeno. Pokud se tedy uˇzivatel pokus´ı uloˇzit z´apis z jedn´an´ı pro danou organizaˇcn´ı jednotku s datem, kter´e jiˇz v datab´azi je, dostane chybovou hl´aˇsku o tom, ˇze z´apis z jedn´an´ı byl uˇz uloˇzen. Nahr´avat nov´e verze dokument˚ u lze pˇres prohl´ıˇzen´ı jednotliv´ ych z´apis˚ u, kde se uˇzivatel˚ um, kteˇr´ı maj´ı potˇrebn´a administr´atorsk´a pr´ava zobraz´ı moˇznost uloˇzen´ı nov´eho dokumentu. Zobrazen´ı z´ apis˚ u z jedn´ an´ı Zobrazovat z´apisy mohou vˇsichni uˇzivatel´e syst´emu bez omezen´ı. Kl´ıˇci pro zobrazen´ı z´apis˚ u jsou organizaˇcn´ı jednotka a rok z´apisu. Po vybr´an´ı ˇr´adn´ ych hodnot je zobrazen seznam jednotliv´ ych sch˚ uz´ı. Detail z´apisu, kter´ y lze z t´eto pozice zobrazit m˚ uˇzeme vidˇet na obr´azku 8 v pˇr´ıloze C.
6.4
Pˇ revod dat
Kdyˇz byl syst´em plnˇe zprovoznˇen a otestov´an vznikl probl´em s naplnˇen´ım datab´aze daty ˇclen˚ u Strany zelen´ ych. U vˇetˇsiny podobn´ ych syst´em˚ u se data ukl´adaj´ı postupnˇe tak jak se jednotliv´ı uˇzivatel´e registruj´ı, popˇr. poˇcet uˇzivatel˚ u nen´ı tak rozs´ahl´ y, takˇze se d´a vyplnit ”ruˇcnˇe”. Strana zelen´ ych m´a nˇekolik tis´ıc ˇclen˚ u, kteˇr´ı by tento syst´em mˇeli pouˇz´ıvat. Jednou moˇznost´ı bylo uˇzivatele do syst´emu uloˇzit ”ruˇcnˇe” pˇres webov´e rozhran´ı, coˇz je velmi neefektivn´ı. Z toho d˚ uvodu byl zvolen automatick´ y pˇrevod z dat, kter´e m´a Strana zelen´ ych uloˇzen´e v tabulk´ach program˚ u typu Microsoft Excel. D´ale bych r´ad zm´ınil, ˇze n´apad vytvoˇrit pˇrevodov´ y skript m˚ uˇzeme nal´ezt jiˇz v prim´arn´ıch f´az´ıch v´ yvoje p˚ uvodn´ıho syst´emu, ale k vytvoˇren´ı plnˇe funkˇcn´ıho skriptu nikdy nedoˇslo. 6.4.1
Datov´ a anal´ yza
Data se kter´ ymi nov´ y program bude pracovat m˚ uˇzeme rozdˇelit na vstupn´ı a v´ ystupn´ı.
28
Vstupn´ı data Vstupn´ı data budou naˇc´ıt´ana ve formˇe strukturovan´eho textu CSV. Soubor tohoto form´atu obsahuje tabulkov´a data, kter´a obsahuj´ı pouze znaky dat a znaky separuj´ıc´ı jednotliv´e buˇ nky a ˇr´adky tabulky. Jsou tedy snadno ˇciteln´e vˇsem textov´ ym editor˚ um. Export do tohoto form´atu z bˇeˇzn´ ych tabulkov´ ych procesor˚ u jako je napˇr. Microsoft Excel nebo Open Office je bezprobl´emov´ y. Vstupn´ı data, kter´a byla z´ısk´ana od zadavatele obsahuj´ı z´aznamy o kaˇzd´em ˇclenovi zvl´aˇst’. Kromˇe pˇr´ım´ ych dat, kter´a jsou sledov´ana u ˇclen˚ u SZ (jm´eno pˇr´ıjmen´ı, telefon, e-mail, apod.), data obsahuj´ı i informace o ZO a KO, do kter´e dan´ y ˇclen spad´a. D´ıky tomu pˇrevodov´ y skript m˚ uˇze rekonstruovat hierarchickou strukturu jednotliv´ ych organizaˇcn´ıch jednotek a t´ım p´adem vytvoˇrit SQL skript, kter´ y je uloˇz´ı do datab´aze. V´ ystupn´ı data V´ ystupn´ımi daty mus´ı b´ yt SQL skripty, kter´e zachov´avaj´ı strukturu samotn´e MySql datab´aze syst´emu. V´ ystupem tedy budou tˇri SQL skripty, kter´e napln´ı jednotliv´e tabulky popisuj´ıc´ı ˇclena a jeho ˇclenstv´ı v organizaˇcn´ı jednotce (ker user, ker member, ker group) a textov´ y soubor obsahuj´ıc´ı informace o vstupn´ıch datech, kter´e nemohly b´ yt zpracov´any d´ıky ˇspatn´ ym vstupn´ım dat˚ um. S vyuˇzit´ım pˇrevodov´eho programu se poˇc´ıt´a pouze pˇri zprovozˇ nov´an´ı cel´e webov´e aplikace. V´ ystupn´ı SQL skripty mohou b´ yt nefunkˇcn´ı, pokud plnˇen´a datab´aze obsahuje jiˇz nˇejak´a data. Je tedy nutn´e na toto omezen´ı pˇri zprovozˇ nov´an´ı pamatovat. Aby byla zaruˇcena maxim´aln´ı bezpeˇcnost aplikace, v´ ystupn´ı skript generuje do tabulky uˇzivatel˚ u pouze jeden moˇzn´ y pˇr´ıstup a to pro hlavn´ıho administr´atora (Login: Admin, Heslo: heslo). Ostatn´ım uˇzivatel˚ um je nastaveno pouze uˇzivatelsk´e jm´eno, pod kter´ ym se do syst´emu mohou pˇrihlaˇsovat, nicm´enˇe sloupce s heslem z˚ ust´av´a pr´azdn´ y, t´ım p´adem pˇr´ıstup do syst´emu je nemoˇzn´ y. Doporuˇcen´ y postup po pˇrevodu dat je zmˇena vlastn´ıho hesla administr´atora a nastaven´ı hesel pro administr´atory KO. Po t´e co administr´ator KO m´a pˇr´ıstup do syst´emu a bylo mu zdˇeleno heslo, m˚ uˇze podobnˇe zadat heslo administr´ator˚ um podˇr´ızen´ ych ZO, ti pak aktivuj´ı u ´ˇcty stejn´ ym zp˚ usobem jednotliv´ ym ˇclen˚ um. Jelikoˇz administr´ator syst´emu je do v´ ystupn´ıch dat zaˇcleˇ nov´an bez ohledu na vstupn´ı data je administr´ator implicitnˇe pˇriˇrazen posledn´ı z´ıskan´e ZO ze vstupn´ıch dat. Je tak uˇcinˇeno, aby byla zachov´ana konzistence webov´eho rozhran´ı a datab´aze (kaˇzd´ y uˇzivatel mus´ı b´ yt pˇriˇrazen pr´avˇe jedn´e z´akladn´ı organizaci). 6.4.2
Implementace
Pro implementaci tohoto programu byl vybr´an programovac´ı jazyk JAVA a to pˇredevˇs´ım z toho d˚ uvodu, ˇze v´ ysledn´a aplikace bude platformˇe nez´avisl´a. Aplikace dostala n´azev CQTranslator. Veˇsker´e ˇc´asti tohoto programu vˇcetnˇe zkuˇsebn´ıch dat nalezneme v pˇr´ıloze na CD v adres´aˇri [CQTranslator]. Program byl pˇreloˇzen do spustiteln´e formy, kter´a je uloˇzena v adres´aˇri [program/CQTranslator.jar]. Projekt je uloˇzen´e ve sloˇzce [CQTranslator/code], byl vygenerov´an programem NetBeans firmy Sun Microsystems, Inc. Projekt obsahuje spoustu konfiguraˇcn´ıch soubor˚ u, hlavn´ı ˇc´ast programu je ale uloˇzen´a ve sloˇzce [CQTranslator/src/cqtranslator] ve kter´e se nach´azej´ı hlavn´ı tˇr´ıdy a bal´ıˇcky kter´e maj´ı n´asledovnou strukturu: 1. Objekty datab´aze - adres´aˇr SQL. 2. Tˇr´ıdy s funkcemi pro zpracov´an´ı dat - adres´aˇr program. 3. Tˇr´ıdy pro grafick´e rozhran´ı aplikace. Objekty datab´aze reprezentuj´ı jednotliv´e tabulky a umoˇzn ˇuj´ı pr´aci s nahran´ ymi daty. Tˇr´ıdy pro zpracov´an´ı dat umoˇzn ˇuj´ı pr´aci se vstupn´ımi daty a jejich pˇreveden´ı na objekty datab´aze. Tˇr´ıdy 29
pro grafick´e rozhran´ı byly generov´any pomoc´ı vizualizaˇcn´ıho rozˇs´ıˇren´ı jiˇz zm´ınˇen´ ym programovac´ım IDE Netbeans. Podobu tohoto rozhran´ı zn´azorˇ nuje obr´azek 9 v pˇr´ıloze C. Poskytnut´a data zadavatelem maj´ı tedy jasnou strukturu, kdy na prvn´ım ˇr´adku jsou uloˇzeny popisy jednotliv´ ych sloupc˚ u, kaˇzd´ y dalˇs´ı ˇr´adek reprezentuje data jednoho ˇclena. Pokud by se ale data z jak´ehokoli d˚ uvodu zmˇenila, napˇr. doˇslo by k prohozen´ı sloupc˚ u, nebo by data uˇzivatel˚ u nezaˇc´ınala od 2. ˇr´adku. Program by si s nimi i tak poradil. Pˇri exportu dat m˚ uˇze b´ yt zvoleno poˇrad´ı jednotliv´ ych sloupc˚ u a z´aroveˇ n m˚ uˇze b´ yt nastaven ˇr´adek na kter´em jsou uloˇzena prvn´ı data. Program samotn´ y je tedy rezistentn´ı v˚ uˇci drobn´ ym zmˇen´am ve vstupn´ıch datech. Jelikoˇz poskytnut´a data zadavatelem podl´ehaj´ı z´akonu ˇc. 101/2000 Sb., o ochranˇe osobn´ıch u ´daj˚ u, nemohla zde b´ yt zveˇrejnˇena.Z tohoto d˚ uvodu byl vytvoˇren testovac´ı soubor, kter´ y strukturou odpov´ıd´a p˚ uvodn´ım dat˚ um, na pˇriloˇzen´e CD je uloˇzen v adres´aˇri [/CQTranslator/data/ datab´ aze p.csv] Algoritmus pˇ revodu dat Pro rychlou pˇredstavu pouˇzit´eho algoritmu, kter´ y text zpracov´av´a uvedu na dalˇs´ı str´ance jeho v´ yvojov´ y diagram v syntaxi UML 2.0.
30
Obr´azek 3: V´ yvojov´ y diagram algoritmu pro zpracov´an´ı textu
31
7
Z´ avˇ ereˇ cn´ e ladˇ en´ı aplikace
Posledn´ı f´az´ı tohoto projektu bylo koneˇcn´e doladˇen´ı cel´e aplikace a pˇr´ıprava pro pˇred´an´ı zadavateli. Potˇrebn´e ˇc´asti projektu, kter´e bylo tˇreba pˇred pˇred´an´ım dodˇelat jsou ˇclenˇeny do jednotliv´ ych podkapitol.
7.1
Datab´ azov´ e skripty
Vu ´vodu t´eto pr´ace byla vznesena pˇripom´ınka na podobu SQL skript˚ u, kter´e jsou potˇrebn´e pro zprovoznˇen´ı datab´aze. Nejz´asadnˇejˇs´ım poˇzadavkem bylo rozdˇelen´ı strukturn´ıch5 a datov´ ych6 skript˚ u. Dalˇs´ı poˇzadavek byl na jasn´e oddˇelen´ı k´odu syst´emu a datab´azov´ ych skript˚ u samotn´ ych. Vytvoˇren´ım pˇrevodov´eho programu ˇc´asteˇcnˇe problematika oddˇelen´ı datov´ ych a strukturn´ıch skript˚ u byla vyˇreˇsena. Jedin´a data, kter´a jsou do datab´aze pˇr´ımo nahr´av´ana (nepoˇc´ıtaje vygenerovan´a data) jsou uˇzivatelsk´e funkce uloˇzen´e v tabulce ker function. Aby byla splnˇena i podm´ınka pro oddˇelen´ı soubor˚ u syst´emu a datab´aze, jsou veˇsker´e SQL skripty uloˇzeny v souboru y vytvoˇr´ı [/dbsz 2 0/data] (na pˇriloˇzen´em CD). V t´eto sloˇzce je uloˇzen skript dbsz.sql, kter´ strukturu datab´aze a skript [dbsz data.sql], kter´ y pr´azdnou strukturu napln´ı statick´ ymi daty.
7.2
Instalaˇ cn´ı a uˇ zivatelsk´ a pˇ r´ıruˇ cka
Instalaˇcn´ı a uˇzivatelskou pˇr´ıruˇcku m˚ uˇzeme nal´ezt na pˇriloˇzen´em CD v adres´aˇri projektov´eho bal´ıˇcku DBSZ 2.0 [dbsz 2 0/doc]. Protoˇze tato dokumentace je vcelku dlouh´a nepˇrikl´ad´am j´ı jako pˇr´ılohu textu bakal´aˇrsk´e pr´ace. Dokument install.pdf(instalaˇcn´ı pˇr´ıruˇcka) a userguide.pdf(uˇzivatelsk´a pˇr´ıruˇcka) obsahuj´ı veˇsker´e instrukce, kter´e jsou potˇrebn´e pro spr´avn´e zaveden´ı syst´emu do provozu a jeho spr´avnou obsluhu. Uˇzivatelsk´e pˇr´ıruˇcka obsahuje velk´e mnoˇzstv´ı screanshot˚ u aplikace, aby text n´avodu byl co nejn´azornˇejˇs´ı.
V´ ysledkem cel´e pr´ace je funkˇcn´ı informaˇcn´ı syst´em s n´azvem DBSZ 2.0, kter´ y byl implementov´an na z´akladech jiˇz navrˇzen´e a implementovan´e aplikace (s p˚ uvodn´ım n´azvem DBSZ). P˚ uvodn´ı program byl navrˇzen tak systematicky, ˇze ho bylo moˇzn´e pouˇz´ıt jako z´akladn´ı k´amen, kter´ y urˇcoval samotnou programovou strukturu nov´e aplikace. V zaˇc´atc´ıch v´ yvoje se zd´alo, ˇze implementace nov´eho syst´emu by byla daleko snazˇs´ı a moˇzn´a i ˇcasovˇe m´enˇe n´aroˇcn´a, ale postupem ˇcasu se potvrdily nesporn´e v´ yhody. D´ıky tomu, ˇze informaˇcn´ı syst´em nevznikal ”na zelen´e louce” bylo odhaleno spousta chyb, kter´e by jinak odhaleny nebyly a musely by b´ yt ˇreˇseny aˇz pˇri bˇehu aplikace, coˇz je velmi obt´ıˇzn´e. T´ım p´adem nynˇejˇs´ı aplikaci zaruˇcuje bezpeˇcn´e vnitˇrn´ı chov´an´ı syst´emu, kter´e odr´aˇz´ı re´alnou situaci procesn´ıch postup˚ u ve Stranˇe zelen´ ych. V´ yvoj nov´e aplikace vedl od testov´an´ı p˚ uvodn´ıho syst´emu, pˇres u ´spˇeˇsn´e odstranˇen´ı chyb, aˇz po realizaci nov´ ych funkc´ı. Hlavn´ı novou funkc´ı syst´emu je celkov´a spr´ava dokument˚ u z jedn´an´ı organizaˇcn´ıch jednotek Strany zelen´ ych. Podaˇrilo se zachovat p˚ uvodn´ı poˇzadavek na zpˇetnou dohledatelnost starˇs´ıch verz´ı jednotliv´ ych dokument˚ u a uˇzivatel˚ u jeˇz je nahr´ali. Toto rozˇs´ıˇren´ı efektivn´ım zp˚ usobem ˇreˇs´ı nynˇejˇs´ı probl´em s prezentac´ı intern´ıch dokument˚ u. Aplikace je pˇripravena k nasazen´ı do testovac´ıho provozu, kter´ y by mˇel pˇrin´est nejen zpr´avu o moˇzn´ ych neodhalen´ ych chyb´ach, ale pˇredevˇs´ım n´avrhy na vylepˇsen´ı a doladˇen´ı syst´emu tak, aby intern´ı spr´ava organizace byla maxim´alnˇe efektivn´ı a bezprobl´emov´a. Jelikoˇz v pr˚ ubˇehu pr´ace Strana zelen´ ych odstoupila od projektu a zadala zpracov´an´ı komerˇcn´ı firmˇe, nemohla b´ yt v´ ysledn´a aplikace nasazena do re´aln´eho provozu. Nicm´enˇe i tak mi pr´ace pˇrinesla mnoh´e zkuˇsenosti, zejm´ena ucelen´ y pˇrehled o v´ yvoji softwaru stavˇen´em na jiˇz existuj´ıc´ı aplikaci.
33
Literatura [1] Dokumenty na serveru Strany zelen´ych. http://www.zeleni.cz [2] Wikipedia, the free encyklopedia. http://en.wikipedia.org [3] Herout, P.: Java - grafick´ e uˇ zivatelsk´ e prostˇ red´ı a ˇ ceˇ stina. ˇ Nakladatelstv´ı KOPP, Cesk´e Budˇejovice, 2004 [4] Br´ aza, J.: PHP - zaˇ c´ın´ ame programovat. Nakladatelstv´ı Grada Publishing, Praha, 2005 [5] Gutmans Andi, Bakken S. Stig, Rethans D.: Mistrovst´ı v PHP 5. Nakladatelstv´ı Computer Press, Brno, 2007 ˇ ızen´ı projekt˚ [6] Schwalbe, K.: R´ u v IT. Nakladatelstv´ı Computer Press, Brno, 2007
34
A
Seznam zkratek
AWK
Univerz´aln´ı programovac´ı jazyk pro zpracov´an´ı text˚ u (zkratka vznikla ze jmen tv˚ urc˚ u - Aho, Weinberger, Kernighan) CSS Cascading Style Sheets CSV Comma-separated values (Form´at souboru uchov´avaj´ıc´ı tabulkov´a data) ˇ ˇ CSZO Clensk´ a sch˚ uze z´akladn´ı organizace RZO Rada z´akladn´ı organizace DBSZ Datab´aze strany zelen´ ych (aplikace) HKA Administr´ator hlavn´ı kancel´aˇre HK Hlavn´ı kancel´aˇr HTML Hyper Text Markup Language HTML Integrated development environment KK Krajsk´a konference KOA Administr´ator krajsk´e organizace KO Krajsk´a organizace KRK Krajsk´a revizn´ı komise MD5 Message-Digest algorithm 5 (ˇsifrovac´ı algoritmus) ˇ MEM Radov´ y ˇclen MK Mˇestsk´a konference MOA Administr´ator mˇestsk´e organizace MO Mˇestsk´a organizace MySQL Multiuˇzivatelsk´ y datab´azov´ y syst´em PDF Portable Document format PHP Hypertext Preproccessor (Skriptovac´ı programovac´ı jazyk) PZS Pˇredsednictvo RGB Red-grean-blue barevn´ y model RKO Rada krajsk´e organizace RMO Rada mˇestsk´e organizace RR Republikov´a rada SSL Secure Sockets Layer (protokol poskytuj´ıc´ı zabezpeˇcenou komunikaci) UML Unified Modeling Language ´ redn´ı revizn´ı komise ´ UKR Ustˇ ZOA Administr´ator z´akladn´ı organizace ZO Z´akladn´ı organizace
35
B
Obsah Pˇ riloˇ zen´ eho CD
Tato pˇr´ıloha obsahuje adres´aˇrovou strukturu pˇriloˇzen´eho CD spolu se struˇcn´ ym popisem.
Sloˇzka programu CQTranslator pro pˇrevod dat. Obsahuje zdrojov´e k´ody programu. Testovac´ı data, kter´e program pˇrev´ad´ı. Spustiteln´ y soubor programu.
dbsz 1 0/
Instalaˇcn´ı, dokumentaˇcn´ı a datov´ y bal´ıˇcek p˚ uvodn´ıho programu.
Instalaˇcn´ı, dokumentaˇcn´ı a datov´ y bal´ıˇcek nov´eho projektu. Zkompilovan´a verze pˇrevodov´eho programu. Obsahuje SQL skripty pro vytvoˇren´ı a naplnˇen´ı datab´aze. Instalaˇcn´ı pˇr´ıruˇcka programu DBSZ 2.0. Uˇzivatelsk´a pˇr´ıruˇcka programu DBSZ 2.0. Obsahuje vˇsechny skripty webov´e rozhran´ı. Struˇcn´ y popis programu a adres´aˇrov´e struktury instalaˇcn´ıho bal´ıˇcku dbsz 2 0.
ets/ ...... ets.pdf/
Dokumentace projektu ETS, kter´ y je pouˇzit v syst´emu DBSZ 2.0
LATEX/ ...... kucerm10.pdf/
Zdrojov´e k´ody ve form´atu LATEXa pˇridruˇzen´e soubory. Text bakal´aˇrsk´e pr´ace ve form´atu pdf.
36
C
Pˇ riloˇ zen´ e obr´ azky
Obr´azek 4: Hlavn´ı menu aplikace
Obr´azek 5: Moˇznost pr´ace s organizacemi
37
ˇ ast formul´aˇre s osobn´ımi u Obr´azek 6: C´ ´daji uˇzivatele
Obr´azek 7: Nov´a podoba hlavn´ıho menu
Obr´azek 8: Zobrazen´ı vnoˇren´e tabulky v tabulce
38
Obr´azek 9: Naˇcten´a data v programu CQTranslator