Dlouhodobá maturitní práce
Evidenční systém ročníkových prací Petr Víteček
obor technické lyceum třída 4.L 2009
Beru na vědomí, že Střední průmyslová škola stavební, Opava, příspěvková organizace, nezasahuje do mých autorských práv užitím mé práce pro vnitřní potřebu školy. Dávám souhlas k tomu, aby Střední průmyslová škola stavební, Opava, příspěvková organizace, využívala mou práci k propagaci školy. Prohlašuji, že užití mé práce podle výše uvedených odstavců je bezúplatné. Prohlašuji, že jsem uvedenou práci vypracoval samostatně s použitím informačních zdrojů uvedených v závěru práce (a na základě konzultací s vedoucím práce Ing. Pavlem Kořízkem).
V Opavě dne 21. dubna 2009
Petr Víteček
Evidenční systém ročníkových prací
Petr Víteček
Anotace Uvedena dlouhodobá maturitní práce je věnována databázovému systému pro evidenci ročníkových prací, které studenti oboru technické lyceum SPŠ Stavební v Opavě každoročně zpracovávají. Daný databázový systém umožňuje provádět celý koloběh činností se závěrečnými pracemi, tj. od podání přihlášky studentem, přes schválení přihlášky učitelem až po evidenci již hotových závěrečných prací s možnostmi jako vytváření různých výstupních sestav nebo vyhledávání jednotlivých prací.
Annotation
This long-time graduation work is devoted to the database system of grade works, which are elaborated by students of the technical lyceum SPŠ Stavební in Opava every year. The database system allows to execute the whole circle of activities with final works, i.e. from submitting an application by student, through the confirmation of an application by the teacher, up to the evidence of completed final works with possibilities like generating of various output reports or searching single works.
1
Evidenční systém ročníkových prací
Petr Víteček
Obsah Anotace....................................................................................1 Seznam použitých zkratek a značení................................................3 1 Úvod......................................................................................4 2 Struktura evidenčního systému ročníkových prací.............................5 2.1 Databáze...............................................................................5 2.2 Python..................................................................................6 2.3 HTML, CSS a JavaScript.............................................................7 HMTL..........................................................................................7 CSS.............................................................................................7 JavaScript....................................................................................9
3 Systémové požadavky...............................................................11 4 Závěr...................................................................................12 5 Použitá literatura....................................................................14 Příloha č. 1 – příručka administrátora.............................................15 Práva administrátora...................................................................15 Návod „co & jak“........................................................................16 Doplňky k výše uvedeným postupům................................................20
Příloha č. 2 – příručka učitele.......................................................27 Práva učitele.............................................................................27 Návod „co & jak“........................................................................28 Doplňky k výše uvedeným postupům................................................30
Příloha č. 3 – příručka studenta.....................................................33 Práva studenta...........................................................................33 Návod „co & jak“........................................................................34 Doplňky k výše uvedeným postupům................................................36
2
Evidenční systém ročníkových prací
Petr Víteček
Seznam použitých zkratek a značení URL ........................... Uniform Resource Locator SGML......................... Standard Generalized Markup Language HTML ......................... HyperText Markup Language CSS ........................... Cascading Style Sheets W3C .......................... World Wide Web Consortium server-side aplikace ..... aplikace běžící na straně serveru client-side aplikace ...... aplikace běžící na straně uživatele
3
Evidenční systém ročníkových prací
Petr Víteček
1 Úvod Na SPŠ Stavební v Opavě již čtvrtým rokem studenti oboru technické lyceum zpracovávají na konci roku závěrečné práce, ale dosud nejsou nijak přehledně archivovány. Tímto vznikla potřeba vytvořit informační systém, který by umožnil evidovat tyto práce, zjednodušil systém podávání přihlášek studentů, schvalování těchto přihlášek příslušnými učiteli a archivaci vytvořených závěrečných prací a přihlášek.
4
Evidenční systém ročníkových prací
Petr Víteček
2 Struktura evidenčního systému ročníkových prací V této kapitole je popsán evidenční systém ročníkových prací, který byl vytvořen jako webová aplikace umožňující online přístup studentů a učitelů pro potřeby provádět příslušné činnosti spojené s evidencí ročníkových prací. Pro naprogramování evidenčního systému ročníkových prací byl použit databázový systém PostgreSQL pro sběr a uchování dat. Dále byl použit server-side programovací jazyk Python, který je řídicí složkou celého systému. Pro všechny výstupy je použit strukturovaný jazyk HTML v kombinaci s JavaScriptem, který zajišťuje jistý uživatelský komfort, a CSS, které upravují grafický výstup jak na monitoru, tak na tiskárně.
2.1 Databáze Pro tento evidenční systém ročníkových prací byl použit databázový systém PostgreSQL [1] pro svou rychlost, spolehlivost a možnost optimálního řešení různých databázových procesů. Tento databázový systém je vyvíjen světovými univerzitami a je volně šiřitelný i pro komerční účely. Na obr. 1 je znázorněno rozvržení tabulek a propojení jejich datových polí. Takto navržena databáze je schopna pojmout informace o: – učitelích, studentech a třídách, – předmětech, – podaných přihláškách závěrečných prací, – závěrečných pracích. Z takto navržené databáze je možno získat různé výstupní sestavy, např.: – seznam učitelů, – seznam studentů a jednotlivých tříd, – seznam předmětů, – seznam přihlášek a prací jednotlivých studentů během studia, – seznam prací podle klíčových slov, – seznam prací podle zaměření, – seznam prací podle školního roku, – seznam prací podle ročníku, 5
Evidenční systém ročníkových prací
Petr Víteček
– seznam prací podle vedoucího učitele, – adt. Všechny tyto sestavy lze pohodlně tisknout. Tisk je optimalizovaný pomocí CSS, viz kapitola 2.3. Veškeré vstupy a výstupy dat jsou řízeny server-side programovacím jazykem Python viz kapitola 2.2.
Obr. 1. Schéma rozvržení tabulek a jejich propojení
2.2 Python Tento interpretovaný objektově orientovaný programovací jazyk zde byl použit pro vytvoření server-side části 6
Evidenční systém ročníkových prací
Petr Víteček
tohoto evidenčního systému ročníkových prací. Jedná se o open source projekt. Tento jazyk má velice jednoduchou syntaxi, ale ta mu nic neubírá na jeho výkonnosti a širokých možnostech nasazení. V této webové aplikaci je nutné vytvořit pro Python prostředí. To je zajištěno systémem Apache [2], který nám zajistí prostředí webového serveru a je rovněž volně šiřitelný. Python [3] může v takovém prostředí mít veškeré typy internetových výstupů. Nejčastějším výstupem je zde „text/html“, který je dále upravován pomocí client-side části systému, který je naprogramován v JavaScriptu, a graficky formátován pomocí CSS viz kapitola 2.3. Touto vrstvou aplikace je zajištěna komunikace uživatele s databází. Uživatelé jsou rozděleni na dvě skupiny (učitel a student) a administrátora. Po přihlášení uživatele se veškeré informace o něm uloží do sessions. Podle pozice uživatele (administrátor, učitel nebo student) mu systém nabídne prostředí, ve kterém má různě omezena práva (v případě administrátora nejsou žádná omezení).
2.3 HTML, CSS a JavaScript HMTL Jak již bylo zmíněno, většina výstupů je typu „text/html“. Je zde použit strukturovaný jazyk HTML verze 4.01 [4]. Tento jazyk se postupem času vyvinul z rozsáhlého informačního jazyku SGML. Jeho vývoj byl dále z velké části ovlivněn vývojem webových prohlížečů, které zpětně ovlivňovaly definici jazyka.
CSS Tento jazyk CSS [5] byl navržen standardizační organizací W3C. Jeho hlavním smyslem je oddělit obsah dokumentu od kódu upravující jeho vzhled. Zde je použit ve verzi 2.1, jež umožňuje široké možnosti formátování zobrazení dokumentu na koncových zařízeních, jako jsou např.: monitor, tiskárna, mobilní telefon, televize, atp. Na obr. 2-4 jsou ukázky znázorňující sílu CSS a jeho využití v praxi:
7
Evidenční systém ročníkových prací
Petr Víteček
Obr. 2 Webová stránka bez použití CSS formátování
8
Evidenční systém ročníkových prací
Petr Víteček
Obr. 3 Zobrazení téže webové stránky na monitoru počítače za použití CSS
Veškeré CSS použité v tomto systému jsou plně W3C validní.
JavaScript Tento client-side programovací jazyk JavaScript [6] je zde použit především pro zvýšení uživatelského komfortu při práci s různými typy formulářů.
9
Evidenční systém ročníkových prací
Petr Víteček
Obr. 4 Výstup téže webové stránky na tiskárně za použití CSS
10
Evidenční systém ročníkových prací
Petr Víteček
3 Systémové požadavky Systém pro evidenci ročníkových prací potřebuje pro správný běh serverové prostředí Apache se správnou konfigurací Pythonu. Dále jsou potřeba nastavit práva Pythonu, aby mohl přistupovat do databáze, kde musí mít možnost číst a zapisovat data, a aby mohl vytvářet systémové soubory a složky v příslušném adresáři, viz příručka pro administrátora (příloha č. 1).
11
Evidenční systém ročníkových prací
Petr Víteček
4 Závěr V této práci byl vytvořen evidenční systém ročníkových prací, který je tvořen třemi aplikačními vrstvami. Jádro evidenčního systému ročníkových prací je tvořeno databází PostgreSQL, kde jsou shromažďovány veškeré potřebné informace o studentech, učitelích, předmětech, přihláškách a závěrečných pracích. Jednotlivé tabulky databáze a vazby mezi nimi jsou znázorněny na obr. 1. Z takto sestavené databáze není problém získat různé požadované sestavy, jako jsou např. seznamy studentů jednotlivých tříd, seznamy učitelů a předmětů, které vyučují, seznamy závěrečných prací vytvořených za určité období, seznamy prací s požadovanými klíčovými slovy, atd. Prostřední aplikační vrstva, server-side část aplikace, je napsaná v Pythonu. Tato vrstva rozděluje uživatele na tři různé typy – administrátora, skupinu učitelů a skupinu studentů. Každý z těchto uživatelů má svá určitá práva. Nejvýše v hierarchii je postaven administrátor, který zavádí celý systém, tj. učitele, studenty a předměty. Administrátor má právo vytvářet veškeré typy výstupních sestav, editovat uživatele a třídy. Podrobnější informace jsou uvedeny v příručce pro administrátora, viz příloha č. 1. Učitelé mají právo přihlášky závěrečných prací potvrzovat/zamítat, upravovat své kontaktní údaje, zobrazovat sestavy závěrečných prací/přihlášek, které vedl. Podrobnější informace jsou uvedeny v příručce pro učitele, viz příloha č. 2. Studenti mají právo podávat přihlášky svých závěrečných prací, vkládat své vytvořené závěrečné práce, upravovat své kontaktní údaje, zobrazovat sestavy svých přihlášek závěrečných prací a hotových závěrečných prací. Podrobnější informace jsou uvedeny v příručce pro studenty, viz příloha č. 3. Třetí vrstvou systému jsou veškeré výstupy. Většina výstupů je typu „text/html“, jež jsou dále dynamicky upravovány JavaScriptem a CSS. Veškeré výstupy jsou pomocí CSS optimalizovány pro výstup na monitor i tiskárnu a jsou plně W3C validní. Vytvořený databázový systém pro evidenci ročníkových prací je zpracován jako online webová aplikace. Tento systém byl testován v mnoha různých prohlížečích (Opera, Firefox, Konqueror, Epiphany, Lynx, Safari a Internet Explorer). Ve všech prohlížečích fungoval podle očekávání autora bezchybně, s výjimkou Internet Exploreru, kde docházelo k zobrazovacím chybám na koncových zařízeních v důsledku toho, že tento prohlížeč nedodržuje W3C standardy, 12
Evidenční systém ročníkových prací
Petr Víteček
a Lynxe, kde pochopitelně nefungovala grafická část (jedná se o textový, nikoliv grafický internetový prohlížeč).
13
Evidenční systém ročníkových prací
Petr Víteček
5 Použitá literatura [1] PostgreSQL 8.3.7 Documentation [online]. January 2009 [cit. 2009-01-01]. Available from World Wide Web:
. [2] Apache HTTP Server Version 2.2 Documentation [online]. January 2009 [cit. 2009-01-01]. Available from World Wide Web:
. [3] Python v2.6.2 documentation [online]. January 2009 [cit. 200901-01]. Available from World Wide Web:
. [4] Jak psát web, návod na html stránky [online]. January 2009 [cit. 2009-01-01]. Available from World Wide Web:
. [5] Pavol Mikle, XCSS-Css1, CSS2, Css2.1. 2004. Úplná přesná referenční příručka. ISBN 80-86815-13-7. [6] JavaScript Tutorial [online]. January 2009 [cit. 2009-01-01]. Available from World Wide Web:
.
14
Evidenční systém ročníkových prací
Petr Víteček
Příloha č. 1 – příručka administrátora Práva administrátora – přidávat/mazat/měnit uživatele (studenty i učitele) – přidávat/mazat/měnit předměty – nastavení „plného přihlášení“ pro studenty jednotlivých tříd – pohodlné výpisy všech objektů (studenti, přihlášky, učitelé, třídy, závěrečné práce, předměty) – provádět rychlou údržbu databáze
15
Evidenční systém ročníkových prací
Petr Víteček
Návod „co & jak“ – Instalace systému [0] – rozbalte soubor „sps.bn1.cz.zip“ do příslušného adresáře – složce „zp-files“ nastavte příslušná práva, aby do ní mohl Apache zapisovat (vytvářet další složky a soubory) – v souboru „moduless.py“ upravte proměnnou „_config“ podle poznámek – přejděte na URL „http://cesta-do-slozky/setup/“ – zde po kliknutí na jednotlivé odkazy se budou provádět dané úkony (nastavení databáze) – odstraňte soubor „setup.py“ – můžete se přihlásit jako administrátor systému – Přihlášení do systému [1] – potvrzením vyplněného přihlašovacího formuláře – Přidání nových objektů [2] menu – Nové položky
– Přidání nových učitelů – do hlavního (většího) pole vepište jména učitelů podle lokální nápovědy – pole „Třída“ můžete nechat prázdné – potvrďte – zkontrolujte pole „Příjmení“ a „Jméno“ – jestli jsou prohozené, použijte tlačítko „Přehodit sloupce" – jestli najdete chybu, použijte tlačítko „Upravit údaje“ a pokračujte znova od prvního kroku – potvrďte tlačítkem „Přidat“ - systém by vás měl ujistit, že vše proběhlo v pořádku – Přidání nových studentů – do hlavního (většího) pole vepište jména studentů podle lokální nápovědy 16
Evidenční systém ročníkových prací
Petr Víteček
– do pole „Třída“ vepište název třídy – když necháte pole „Třída“ prázdné, automaticky se doplní název třídy prvního ročníku lycea – potvrďte – zkontrolujte pole „Příjmení“ a „Jméno“ – jestli jsou prohozené, použijte tlačítko „Přehodit sloupce" – jestli najdete chybu, použijte tlačítko „Upravit údaje“ a pokračujte znova od prvního kroku – potvrďte tlačítkem „Přidat“ - systém by vás měl ujistit, že vše proběhlo v pořádku – Přidání nových předmětů – do hlavního (většího) pole vepište zkratky a názvy předmětů podle lokální nápovědy – do pole „Ročník“ vepište ročník, ve kterém budou tyto předměty přístupné – když necháte pole „Ročník“ prázdné, automaticky se doplní „x“ pro 3. a 4. ročník – potvrďte – zkontrolujte všechna pole, jestli jsou správně – jestli najdete chybu, použijte tlačítko „Upravit údaje“ pro opravení chyb – potvrďte tlačítkem „Přidat“ - systém by vás měl ujistit, že vše proběhlo v pořádku – Práce s tabulkami [3] menu – Přehledy
– vyberte si objekt – vyberte si sloupce tabulky, které chcete, aby se zobrazovaly – vyberte si filtry – zatrhnutí všech položek v jednom filtru je systémem bráno stejně, jako by nebyla zatržena ani jedna položka 17
Evidenční systém ročníkových prací
Petr Víteček
– zadejte část textu, která by se měla ve výsledcích vyskytovat – nastavte si primární a sekundární pole, podle kterých se budou výsledky seřazovat – nastavte si počet výsledků na jedné stránce – dostanete tabulku s výsledky – tabulku si můžete jednoduše vytisknout přímo z vašeho webového prohlížeče – po kliknutí na hlavičky jednotlivých sloupců se provede nové seřazení výsledků tabulky – dole pod tabulkou je zobrazena informace o celkovém počtu řádek v tabulce – v případě, že se zde všechny řádky tabulky nevejdou, objeví se zde i odkazy na další listy s výsledky – po kliknutí na kteroukoliv položku tabulky budete přesměrováni (platí pro většinu položek) na její podrobnější náhled/editaci – Rychlá údržba databáze [4] menu – Údržba
– kliknutím na název tabulky, se nad danou tabulkou provede příkaz VACUUM FULL – v binárních souborech databáze budou odstraněny prázdné řádky, které vznikají při změnách v tabulkách databáze – reakce databáze bude opět rychlejší – Změna administrátorského hesla [5] menu – Změnit heslo
– do formuláře vepište heslo, které chcete nastavit pro přihlášení – heslo vepíšete ještě jednou o řádek níže – pouze pro kontrolu – potvrďte
18
Evidenční systém ročníkových prací
Petr Víteček
– objeví se formulář, ze kterého přepíšete zahashované heslo do souboru „modules.py“ do proměnné „_config“ – chcete-li nastavit původní heslo, vepište na toto místo „QkcuIIyG“ - heslo bude opět „admin“ – Omezení pro editace závěrečných prací [6] menu – Přehledy – třída (odkaz ve výsledcích)
– omezení platí i pro vytváření přihlášek – pod seznamem studentů třídy se nachází formulář, ve kterém nastavíte datum, kdy si mohou studenti dané třídy podávat přihlášky a upravovat závěrečnou práci – v případě nenastavení data, studenti nebudou mít žádné omezení – mohou si kdykoliv během školního roku podat přihlášku nebo upravovat svou závěrečnou práci – Přiřazení jednotlivých předmětů k učitelům [7] menu – Přehledy – učitel (odkaz ve výsledcích)
– učitelům se přiřazují pouze předměty kategorie „x“ předměty pro 3. a 4. ročník – zvolíte libovolný počet předmětů u každého učitele a potvrdíte – Odhlaste se menu – Odhlásit se
19
Evidenční systém ročníkových prací
Petr Víteček
Doplňky k výše uvedeným postupům
[0] stránka pro nastavení databáze
[1] přihlašovací formulář
20
Evidenční systém ročníkových prací
Petr Víteček
[2] formulář pro přidání nových položek
21
Evidenční systém ročníkových prací
Petr Víteček
[3] formulář pro práci s tabulkami
22
Evidenční systém ročníkových prací
Petr Víteček
[4] formulář pro rychlou údržbu databáze
[5] formulář pro změnu hesla
23
Evidenční systém ročníkových prací
Petr Víteček
[5] okno s vygenerovaným heslem
[5] náhled do souboru „modules.py“, kde se upraví hodnota proměnné „_config“
24
Evidenční systém ročníkových prací
Petr Víteček
[6] formulář pro nastavení data, kdy si mohou studenti jednotlivých tříd podávat přihlášky nebo upravovat své závěrečné práce
25
Evidenční systém ročníkových prací
Petr Víteček
[7] editace učitele
26
Evidenční systém ročníkových prací
Petr Víteček
Příloha č. 2 – příručka učitele Práva učitele – schvalovat/odmítat přihlášky studentům – upravovat své kontaktní údaje – zobrazit všechny přihlášky a závěrečné práce, které vedl a vede – komentovat závěrečné práce – zobrazit kontaktní údaje všech studentů třídy, kde je třídním učitelem i těch, u kterých vede závěrečnou práci
27
Evidenční systém ročníkových prací
Petr Víteček
Návod „co & jak“ – Přihlášení do systému [1] – potvrzením vyplněného přihlašovacího formuláře – Schválení přihlášky/vytvoření závěrečné práce [2] menu – Domovská stránka – přihláška (odkaz v tabulce)
– z tabulky nepotvrzených přihlášek vyberte přihlášku – přihlášku potvrďte – v opačném případě student bude muset podat novou přihlášku – postupujte dál vytvářením závěrečné práce – pro spárování studentů vyberte v kolonce „spoluautor“ (jestliže nebyla nalezená druhá přihláška vhodná ke spárování, kolonka se neobjeví) druhého studenta – potvrďte – zkontrolujte, jestli informace o závěrečné práci jsou správné – potvrďte – nyní by se vám měla zobrazit nová závěrečná práce – Hodnocení závěrečné práce [3] menu – Domovská stránka – závěrečná práce (odkaz v tabulce)
– v náhledu závěrečné práce vepište do pole „Hodnocení“ vaše hodnocení práce – potvrďte – hodnocení se dá do konce školního roku nadále upravovat – Úprava kontaktních údajů a přístupového hesla [4] menu – Změnit kontakty nebo heslo
– do formuláře dopište kontakty nebo heslo a potvrďte uložení změn – pro vymazání kontaktu vymažte obě pole příslušného řádku a potvrďte uložení změn
28
Evidenční systém ročníkových prací
Petr Víteček
– Odhlaste se – menu – Odhlásit se
29
Evidenční systém ročníkových prací
Petr Víteček
Doplňky k výše uvedeným postupům
[1] přihlašovací formulář
[2] domovská stránka
30
Evidenční systém ročníkových prací
Petr Víteček
[2] vytvoření závěrečné práce
[3] hodnocení závěrečné práce
31
Evidenční systém ročníkových prací
Petr Víteček
[4] formulář pro úpravu kontaktních údajů a hesla
32
Evidenční systém ročníkových prací
Petr Víteček
Příloha č. 3 – příručka studenta Práva studenta – podávat přihlášky – vkládat vytvořené závěrečné práce – upravovat své kontaktní údaje – zobrazit všechny přihlášky a závěrečné práce, které vytvořil – komentovat své závěrečné práce – zobrazit kontaktní údaje všech studentů třídy, do které sám patří i učitelů, u kterých měl závěrečnou práci
33
Evidenční systém ročníkových prací
Petr Víteček
Návod „co & jak“ – Přihlášení do systému [1] – potvrzením vyplněného přihlašovacího formuláře – Podání přihlášky [2] menu – Domovská stránka
– přihlášku si můžete podat pouze v případě: – nemáte žádnou přihlášku nepotvrzenou učitelem – nepracujete za závěrečné práci – je vhodný termín – odešlete vyplněný přihláškový formulář – jestliže chcete práci vytvářet dohromady s dalším studentem, napište to do poznámek – vidíte přihlášku, která se odeslala – jestliže v ní naleznete chybu, přihlášku odstraňte a pošlete novou – vámi odstraněná přihláška se nebude nikde archivovat – Vytváření závěrečné práce [3] menu – Domovská stránka
– v případě schválení přihlášky, se automaticky vytvoří závěrečná práce, kterou můžete dále upravovat – nastavit klíčová slova – napsat abstrakt – nahrát veškeré soubory, které k ní náleží – pro nahrání souboru z URL musíte vložit URL daného souboru – ne URL stránky, na které se soubor nachází – Úprava kontaktních údajů a přístupového hesla [4] menu – Změnit kontakty nebo heslo
– do formuláře dopište kontakty nebo heslo a potvrďte uložení změn – pro vymazání kontaktu vymažte obě pole příslušného řádku a potvrďte uložení změn 34
Evidenční systém ročníkových prací
Petr Víteček
– Odhlaste se menu – Odhlásit se
35
Evidenční systém ročníkových prací
Petr Víteček
Doplňky k výše uvedeným postupům [1] přihlašovací formulář
[2] formulář pro podání přihlášky
36
Evidenční systém ročníkových prací
Petr Víteček
[3] prostředí pro editaci závěrečné práce
37
Evidenční systém ročníkových prací
Petr Víteček
[4] formulář pro úpravu kontaktních údajů a hesla
38