Systém tvorby rozvrhu: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
d
 
(4 medziľahlé úpravy od 2 ďalších používateľov nie sú zobrazené)
Riadok 1: Riadok 1:
 
{{Hlavička_FM|{{PAGENAME}}|Milan Porubský|Ing. Juraj Ďuďák|
 
{{Hlavička_FM|{{PAGENAME}}|Milan Porubský|Ing. Juraj Ďuďák|
 
2009/2010
 
2009/2010
|Semetrálna práca
+
|Bakalárska práca
 
|Mechatronika
 
|Mechatronika
 
}}  
 
}}  
 
[[Kategória:Študentské práce]][[Kategória:Bakalárske práce]][[Kategória:Informatika]][[Kategória:web]][[Kategória:php]]
 
[[Kategória:Študentské práce]][[Kategória:Bakalárske práce]][[Kategória:Informatika]][[Kategória:web]][[Kategória:php]]
{{Praca_uvod|1|Systém tvorby rozvrhu|Popis systémov pre tvorbu rozvrhu|Návrh systému rozvrhu pre FM TnU AD|Administrátorské prostredie rozvrhu FM|||||||||}}
+
 
 +
{{Praca_uvod|1|Systém tvorby rozvrhu|Popis systémov pre tvorbu rozvrhu|Návrh systému rozvrhu pre FM TnU AD|Administrátorské prostredie rozvrhu FM|Funkcie administrátorského prostredia}}
 +
 
 
__TOC__
 
__TOC__
 +
 
{{Abstrakt
 
{{Abstrakt
|Popis systémov pre tvorbu školského rozvrhu. Zoznam možností a parametrov týchto systémov. Prezentácia niektorých existujúcich systémov, ich klady a zápory. Opísanie postupu pri vytváraní online aplikácie pre tvorbu rozvrhu pre potreby FM TnU AD. Vytvorenie databázovej štruktúry. Zoznam grafických ovládacích prvkov administrátorského prostredia, popis dôležitých častí zdrojového kódu hotovej časti aplikácie.
+
|Práca sa zaoberá opisom systémov pre tvorbu školského rozvrhu. V prvej časti sú uvedené možnosti a parametre týchto systémov a prezentácia niekoľkých existujúcich systémov, ich klady a zápory. V druhej časti je uvedený postup pri vývoji takejto aplikácie pre potreby Fakulty mechatroniky TnUAD. Je zdôvodnený výber programovacích jazykov a prostriedkov, návrh databázovej štruktúry. Nasleduje opis samotného systému,  spôsob prihlasovania do administrátorskej časti, zoznam akcií vykonaných po prihlásení.  Sú ukázané hlavné ovládacie prvky prostredia, ich funkcia a spôsob vytvárania. Ďalšie sú uvedené implementované funkcie aplikácie, spôsob zadávania informácií o vyučujúcich, definovanie obmedzení ich výučby, priradenie vyučujúcich k predmetu, vytváranie a mazanie krúžkov, predmetov a jednotlivých vyučovacích hodín. Sú tu tiež opísané funkcie zvyšujúce pohodlie a efektivitu pri práci so systémom  –  archív starších verzií rozvrhu, možnosť nastavenia niektorých vlastností systému používateľom, zhrnutie stavu rozvrhu a zmazanie celého
|Description of systems for creation of school timetable. List of possibilities and parameters of these systems. Presentation of some of existing systems, theirs pros and cons. Description of process of generating online application for creation of school timetable for needs of FM TnU AD. Forming of database structure. List of graphical controls of administration, description of important parts of source code of completed part of application.
+
rozvrhu alebo jeho časti. Nasledujú možnosti napojenia rozvrhu na iné aplikácie. Posledná časť práce sa venuje bezpečnostnej stránke aplikácie.  
 +
|The work deals with description of systems for creating school timetable. Possibilities and parameters of these systems and presentation of some existing systems, their pros and cons are  listed in the first part. Procedure of development of such application for needs of Faculty of mechatronics TnUAD is in second part. Choice of programming languages and techniques, design of database structure is justified. Description of system, system of logging in into administrating part, list of actions executed after  login follows. Main operating items are shown, their function and the way of creation. Next, implemented functions of application are presented, the way of  inserting information about teachers, defining restrictions of their
 +
teaching, assigning of teachers  to subjects, creating and deleting subclasses, subjects and separate lessons. There are described functions which raise comfort and efficiency while working with system too – archive of older versions of timetable, possibility to set some of system properties by user, summarizing of state of timetable and deleting all timetable or its part. Possibilities of connection of timetable with other applications follows. The last part of the work deals with security aspects of application  
 
}}
 
}}
  
 
'''Úvod'''
 
'''Úvod'''
  
Tvorba rozvrhu je úloha, ktorú musí riešiť každá škola bez ohľadu na stupeň alebo zameranie minimálne jeden krát za školský rok. S napredujúcim prenikaním informačných technológií do školstva a vyučovacieho procesu sa aj tento problém čím ďalej častejšie rieši pomocou počítača. Vznikajú preto aplikácie pre tvorbu a zobrazovanie. V mojej práci sa zaoberám práve takýmito aplikáciami, hlavne návrhom administrátorského prostredia, v ktorom sa rozvrh vytvára.
+
Tvorba rozvrhu je úloha, ktorú musí riešiť každá škola bez ohľadu na stupeň alebo zameranie  
 +
minimálne jeden krát za školský rok. S napredujúcim prenikaním informačných technológií  
 +
do školstva a vyučovacieho procesu sa aj tento problém čím ďalej častejšie rieši pomocou  
 +
počítača. Vznikajú preto aplikácie pre tvorbu a zobrazovanie rozvrhu. V mojej práci sa  
 +
zaoberám práve takýmito aplikáciami. Najskôr ich opisujem všeobecne a následne opisujem
 +
vlastnú aplikáciu, ktorú som v rámci bakalárskej práce vytvoril.
 +
 
 +
V prvej časti  uvádzam  hlavné parametre programu, ktoré musí  programátor navrhnúť ešte
 +
pred začatím programovania vlastnej aplikácie. Poukazujem na rozdiel medzi online a offline
 +
aplikáciou a medzi univerzálnym programom a riešením vytváraným na mieru. Taktiež
 +
poukazujem  na to, aké dôležité je premyslieť si správnu prezentáciu údajov v systéme
 +
a stanoviť si základnú bezpečnostnú politiku aplikácie. Následne sa venujem trom existujúcim
 +
riešeniam systému pre tvorbu rozvrhu. V krátkosti vyjadrujem svoj subjektívny názor na tieto
 +
programy, ich výhody a nevýhody.  
  
V prvej časti popíšem hlavné parametre programu, ktoré musí programátor navrhnúť ešte pred začatím programovania vlastnej aplikácie. Ukážem, aký je rozdiel medzi online a offline aplikáciou a medzi univerzálnym programom a riešením vytváraným na mieru. Taktiež poukážem na to, aké dôležité je premyslieť si správnu prezentáciu údajov v systéme a stanoviť si základnú bezpečnostnú politiku aplikácie. Následne popíšem tri existujúce riešenia systému pre tvorbu rozvrhu. V krátkosti zhrniem svoj subjektívny názor na tieto programy, ich výhody a nevýhody.
+
V druhej  časti práce sa  venujem  svojmu vlastnému systému pre tvorbu rozvrhu, ktorý je
 +
určený  pre potreby Fakulty mechatroniky TnUAD.  Opisujem  prípravné práce, ktoré som
 +
musel vykonať pred začatím programovania a zdôvodňujem niektoré rozhodnutia týkajúce sa
 +
systému, ktoré som spravil. V práci  uvádzam  zoznam programovacích jazykov
 +
a prostriedkov, ktoré som použil a tiež podrobný  opis návrhu databázovej štruktúry, ktorej
 +
som venoval značnú pozornosť. Správny návrh databázovej štruktúry totiž môže uľahčiť
 +
programovanie samotnej aplikácie.  
  
V druhej časti práce sa budem venovať práve vyvíjanej aplikácií pre potreby FM TnU AD. Popíšem prípravné práce, ktoré som musel vykonať pred začatím programovania a zdôvodním niektoré rozhodnutia týkajúce sa systému, ktoré som spravil. V práci je uvedený zoznam programovacích jazykov a prostriedkov, ktoré som použil a tiež podrobný popis návrhu databázovej štruktúry, ktorej som venoval značnú pozornosť. Správny návrh databázovej štruktúry totiž môže uľahčiť programovanie samotnej aplikácie.
+
Následne sa zameriavam na prihlasovanie do systému. Opisujem spôsob kontroly oprávnenia
Následne sa zameriavam na grafickú stránku administrátorského prostredia, popíšem jednotlivé ovládacie prvky, ktoré sa na stránke nachádzajú, ich funkcie a možnosti. V poslednej časti práce sa venujem kľúčovým častiam zdrojového kódu aplikácie, ktoré sú v súčasnosti v systéme naprogramované. Ponúkam výpis kódu niektorých týchto častí spolu s popisom ich funkcie. Taktiež v krátkosti opisujem použitie a možnosti frameworkov, ktoré som sa rozhodol používať pre zjednodušenie a skvalitnenie kódu.
+
vstúpiť do administrátorského prostredia aplikácie, synchronizáciu údajov jednej z tabuliek
 +
s tabuľkou nachádzajúcou sa na inom serveri, výber dát z databázy a ich predprípravu 
 +
pre uľahčenie a zefektívnenie práce s nimi.  
  
Keďže aplikácia zatiaľ nie je hotová, zoznam grafických ovládacích prvkov ani funkcií, ktoré bude aplikácia mať, nie je úplný. V závere však prikladám zoznam navrhovaných funkcií, ktoré by mala finálna verzia systému obsahovať.
+
V ďalšej časti  sa zameriavam na grafickú stránku  administrátorského prostredia. Opisujem
 +
základné  ovládacie prvky, ktoré sa na stránke nachádzajú  –  hlavné menu, zoznam hodín
 +
zaradených do rozvrhu a zoznam hodín nezaradených do rozvrhu. Uvádzam ich funkciu,  
 +
vzhľad a spôsob vytvárania.  
  
=Popis systémov pre tvorbu rozvrhu=
+
Nasleduje zoznam funkcií, ktoré som do systému implementoval. Uvádzam spôsob, akým sa
Myšlienka použiť pri tvorbe rozvrhu počítač nie je nová. Existuje niekoľko aplikácií, ktoré majú za úlohu zjednodušiť vytváranie, správu a prezentovanie školského rozvrhu, či už cez internet, teda online, alebo bez internetu, teda offline. Každá má pri tom svoje klady ale aj zápory, ktoré v tejto kapitole rozoberiem najskôr všeobecne a následne popíšem a porovnám niekoľko existujúcich aplikácií.
+
v systéme zadávajú údaje o vyučujúcich, definujú sa obmedzenia výučby vyučujúcim,
==Hlavné parametre systému==
+
priraďujú sa im jednotlivé predmety, vytvárajú sa krúžky a pridávajú sa im predmety,
Pred začatím vlastného programovania aplikácie si treba stanoviť parametre, ktoré má daný program spĺňať. Ide predovšetkým o to, či má byť aplikácia online alebo offline a s tým súvisiaci výber programovacieho jazyka, či bude riešenie univerzálne alebo na mieru danej škole, treba premyslieť správnu prezentáciu údajov používateľovi a hlavne v prípade online aplikácie bezpečnosť.
+
pridávajú a odoberajú sa vyučovacie hodiny z rozvrhu. Pridávam tiež opis funkcií, ktoré som
===Online vs. offline aplikácia===
+
do systému pridal z dôvodu zvýšenia komfortu a efektivity pri práci s aplikáciou. Sú to archív
 +
predchádzajúcich verzií rozvrhu, možnosť nastaviť si niektoré vlastnosti systému
 +
používateľom, zhrnutie aktuálneho stavu rozvrhu a rýchle zmazanie rozvrhu alebo jeho časti.
 +
 
 +
Pre potreby napojenia na iné aplikácie a projekty uvádzam možnosti prístupu k aktuálnemu
 +
rozvrhu. Jednou z možností je pripojenie sa do databázy so špeciálnym účtom s obmedzenými
 +
právami, druhou je využitie voľne prístupného exportu vo formáte JSON.
 +
 
 +
V poslednej časti práce  sa zaoberám bezpečnostnými prvkami, ktoré som v aplikácií použil,
 +
odôvodňujem ich výber, uvádzam ich výhody a nevýhody. Pri nevýhodách pripájam postupy,
 +
ktorými som sa ich snažil eliminovať.
 +
= Opis systémov pre tvorbu rozvrhu =
 +
Myšlienka použiť pri tvorbe rozvrhu počítač nie je nová. Existuje niekoľko aplikácií, ktoré  
 +
majú za úlohu zjednodušiť vytváranie, správu a prezentovanie školského rozvrhu, či už cez  
 +
internet, teda online, alebo bez internetu, teda offline. Každá má pri tom svoje klady ale aj  
 +
zápory, ktoré v tejto kapitole rozoberiem najskôr všeobecne a následne opíšem a porovnám  
 +
niekoľko existujúcich aplikácií.  
 +
 
 +
== Hlavné parametre systému ==
 +
 
 +
Pred začatím vlastného programovania aplikácie si treba stanoviť parametre, ktoré má daný  
 +
program spĺňať. Ide predovšetkým o to, či má byť aplikácia online alebo offline a s tým  
 +
súvisiaci výber programovacieho jazyka, či bude riešenie univerzálne alebo na mieru danej  
 +
škole, treba vybrať vhodnú formu prezentačnej vrstvy a hlavne v prípade online aplikácie je
 +
dôležitá otázka bezpečnosti.  
 +
=== Online vs. offline aplikácia ===
 
Výhody online oproti offline aplikácií sú zrejmé z možností internetu:
 
Výhody online oproti offline aplikácií sú zrejmé z možností internetu:
 
<ul>
 
<ul>
Riadok 37: Riadok 91:
  
 
Jedinou nevýhodou môže byť zvýšené bezpečnostné riziko, ktoré plynie z možnosti prístupu k systému kýmkoľvek, teda administrátorom aj potenciálnym útočníkom. Toto riziko je však možné úspešne eliminovať vytvorením správnej bezpečnostnej politiky aplikácie a tiež vyhýbaním sa nebezpečných programovacích techník. Tejto problematike sa budem viac venovať v časti [[#Bezpe.C4.8Dnos.C5.A5|1.1.5]].
 
Jedinou nevýhodou môže byť zvýšené bezpečnostné riziko, ktoré plynie z možnosti prístupu k systému kýmkoľvek, teda administrátorom aj potenciálnym útočníkom. Toto riziko je však možné úspešne eliminovať vytvorením správnej bezpečnostnej politiky aplikácie a tiež vyhýbaním sa nebezpečných programovacích techník. Tejto problematike sa budem viac venovať v časti [[#Bezpe.C4.8Dnos.C5.A5|1.1.5]].
 +
 
===Výber programovacieho jazyka===
 
===Výber programovacieho jazyka===
 +
 
Pri výbere programovacieho jazyka budú hrať hlavnú úlohu predovšetkým schopnosti a zvyky programátora. V prípade online aplikácie však treba vziať do úvahy tiež možnosti servera, na ktorom bude aplikácia spustená. Vzhľadom k veľkému počtu internetových prehliadačov a ich rozdielnych schopnostiam treba tiež myslieť na to, aby aplikácia fungovala minimálne vo všetkých majoritných internetových prehliadačoch rovnako.
 
Pri výbere programovacieho jazyka budú hrať hlavnú úlohu predovšetkým schopnosti a zvyky programátora. V prípade online aplikácie však treba vziať do úvahy tiež možnosti servera, na ktorom bude aplikácia spustená. Vzhľadom k veľkému počtu internetových prehliadačov a ich rozdielnych schopnostiam treba tiež myslieť na to, aby aplikácia fungovala minimálne vo všetkých majoritných internetových prehliadačoch rovnako.
  
 
Či už je aplikácia online alebo offline, treba tiež dbať na to, aby program bežal plynule bez sekania a dlhého načítavania, nemal priveľké hardwarové nároky a bol stabilný. Aj tieto faktory môžu ovplyvniť výber programovacieho jazyka.
 
Či už je aplikácia online alebo offline, treba tiež dbať na to, aby program bežal plynule bez sekania a dlhého načítavania, nemal priveľké hardwarové nároky a bol stabilný. Aj tieto faktory môžu ovplyvniť výber programovacieho jazyka.
 +
 
===Univerzálne riešenie vs. riešenie na mieru===
 
===Univerzálne riešenie vs. riešenie na mieru===
 +
 
Jedným z najdôležitejších kritérií systému pre tvorbu rozvrhu je, či bude systém vytvorený ako univerzálna aplikácia použiteľná na väčšine škôl alebo vytvorená presne podľa požiadaviek konkrétnej školy. Každá škola môže mať totiž rozdielne kritéria na systém pre tvorbu rozvrhu a je takmer nemožné uspokojiť ich všetky jedinou aplikáciou.
 
Jedným z najdôležitejších kritérií systému pre tvorbu rozvrhu je, či bude systém vytvorený ako univerzálna aplikácia použiteľná na väčšine škôl alebo vytvorená presne podľa požiadaviek konkrétnej školy. Každá škola môže mať totiž rozdielne kritéria na systém pre tvorbu rozvrhu a je takmer nemožné uspokojiť ich všetky jedinou aplikáciou.
  
Riadok 49: Riadok 107:
  
 
Nechcem tým povedať, že vytvorenie a používanie univerzálnej aplikácie pre tvorbu rozvrhu je nezmysel alebo že to nie je možné. Je to však oveľa náročnejšie jednak na zložitosť aplikácie i na jej obsluhu. Treba preto zvážiť, či je to vhodné pre náš prípad.
 
Nechcem tým povedať, že vytvorenie a používanie univerzálnej aplikácie pre tvorbu rozvrhu je nezmysel alebo že to nie je možné. Je to však oveľa náročnejšie jednak na zložitosť aplikácie i na jej obsluhu. Treba preto zvážiť, či je to vhodné pre náš prípad.
 +
 
===Prezentácia údajov===
 
===Prezentácia údajov===
 +
 
Správna prezentácia údajov je dôležitým faktorom každej aplikácie, obzvlášť ak má slúžiť väčšiemu počtu používateľov. Ovládanie by malo byť čo najviac inštinktívne a prehľadné, čo sa môže ukázať ako neľahká úloha, hlavne keď musíme zobraziť veľké množstvo údajov.
 
Správna prezentácia údajov je dôležitým faktorom každej aplikácie, obzvlášť ak má slúžiť väčšiemu počtu používateľov. Ovládanie by malo byť čo najviac inštinktívne a prehľadné, čo sa môže ukázať ako neľahká úloha, hlavne keď musíme zobraziť veľké množstvo údajov.
  
 
Pri administrácií rozvrhu musí mať používateľ na výber z množstva akcií: editáciu krúžkov, pridávanie a odoberanie predmetov, priraďovanie vyučujúceho k predmetu, a mnoho iných. Okrem toho potrebuje vidieť rôzne štatistiky a filtrovať množstvo údajov podľa viacerých kritérií. Preto je vhodné venovať návrhu administrátorského prostredia dostatok času, vybrať najlepšie rozloženie ovládacích prvkov a najprehľadnejšie usporiadanie prezentovaných údajov.
 
Pri administrácií rozvrhu musí mať používateľ na výber z množstva akcií: editáciu krúžkov, pridávanie a odoberanie predmetov, priraďovanie vyučujúceho k predmetu, a mnoho iných. Okrem toho potrebuje vidieť rôzne štatistiky a filtrovať množstvo údajov podľa viacerých kritérií. Preto je vhodné venovať návrhu administrátorského prostredia dostatok času, vybrať najlepšie rozloženie ovládacích prvkov a najprehľadnejšie usporiadanie prezentovaných údajov.
 +
 
===Bezpečnosť===
 
===Bezpečnosť===
 +
 
Hlavne ak sa rozhodneme pre riešenie systému pre tvorbu rozvrhu formou online aplikácie, je treba venovať zvýšenú pozornosť bezpečnosti celého programu. Síce sa môže zdať, že takýto systém nie je pre útočníka nijak zaujímavý, jeho napadnutie by mohlo mať katastrofálne následky, hlavne ak by bol prepojený s ostatnými školskými aplikáciami.
 
Hlavne ak sa rozhodneme pre riešenie systému pre tvorbu rozvrhu formou online aplikácie, je treba venovať zvýšenú pozornosť bezpečnosti celého programu. Síce sa môže zdať, že takýto systém nie je pre útočníka nijak zaujímavý, jeho napadnutie by mohlo mať katastrofálne následky, hlavne ak by bol prepojený s ostatnými školskými aplikáciami.
  
 
Medzi základné bezpečnostné opatrenia patrí filtrovanie vstupných údajov pochádzajúcich od používateľa, nepoužívanie globálnych, ktoré by mohli pochádzať od neznámeho zdroja a typová kontrola premenných. Pri používaní databázy ako úložiska údajov na servery je obzvlášť nebezpečným typom útoku tzv. SQL injection – technika napadnutia databázovej vrstvy programu vsunutím kódu cez neošetrený vstup a vykonanie vlastnej SQL požiadavky.
 
Medzi základné bezpečnostné opatrenia patrí filtrovanie vstupných údajov pochádzajúcich od používateľa, nepoužívanie globálnych, ktoré by mohli pochádzať od neznámeho zdroja a typová kontrola premenných. Pri používaní databázy ako úložiska údajov na servery je obzvlášť nebezpečným typom útoku tzv. SQL injection – technika napadnutia databázovej vrstvy programu vsunutím kódu cez neošetrený vstup a vykonanie vlastnej SQL požiadavky.
==Porovnanie existujúcich systémov pre tvorbu rozvrhu==
+
 
 +
== Porovnanie existujúcich systémov pre tvorbu rozvrhu ==
 +
 
 
V tejto kapitole popíšem a porovnám niektoré exitujúce systémy pre tvorbu rozvrhu. Niektoré som sám otestoval, k iným som sa bohužiaľ nedostal, a tak musím súdiť len podľa inštruktážneho videa, a pri vývoji jedného systému som sám pomáhal.
 
V tejto kapitole popíšem a porovnám niektoré exitujúce systémy pre tvorbu rozvrhu. Niektoré som sám otestoval, k iným som sa bohužiaľ nedostal, a tak musím súdiť len podľa inštruktážneho videa, a pri vývoji jedného systému som sám pomáhal.
===Rozvrh 4.1===
+
 
 +
=== Rozvrh 4.1 ===
 +
 
 
Rozvrh 4.1 (Obr. 1.1) je offline aplikácia pre tvorbu rozvrhu od RNDr. Ľubomíra Červeného <ref>http://www.cerveny.sk/</ref>. Je to univerzálny program vhodný hlavne pre základné a stredné školy. Medzi jeho hlavné klady patrí možnosť automatického generovania celého rozvrhu alebo jeho časti podľa zadaných parametrov. Nevýhody, ktoré pre tento program plynú z toho, že je to offline aplikácia, zmierňuje možnosť exportovať vytvorený rozvrh vo formáte HTML. Veľkým záporom je však obmedzená funkčnosť neregistrovanej verzie programu, v ktorej sa nedá vytvorený rozvrh uložiť.
 
Rozvrh 4.1 (Obr. 1.1) je offline aplikácia pre tvorbu rozvrhu od RNDr. Ľubomíra Červeného <ref>http://www.cerveny.sk/</ref>. Je to univerzálny program vhodný hlavne pre základné a stredné školy. Medzi jeho hlavné klady patrí možnosť automatického generovania celého rozvrhu alebo jeho časti podľa zadaných parametrov. Nevýhody, ktoré pre tento program plynú z toho, že je to offline aplikácia, zmierňuje možnosť exportovať vytvorený rozvrh vo formáte HTML. Veľkým záporom je však obmedzená funkčnosť neregistrovanej verzie programu, v ktorej sa nedá vytvorený rozvrh uložiť.
[[Súbor:mpbc1.1.jpg|thumb|center|Obr. 1.1 Rozvrh verzia 4.0]]
+
[[Súbor:mpbc1.1.jpg|framed|center|Obr. 1.1 Rozvrh verzia 4.0]]
===Modul rozvrhu v systéme AIS===
+
 
 +
=== Modul rozvrhu v systéme AIS ===
 +
 
 
AIS <ref>http://www.ais2.sk/xwiki/bin/view/Domov/</ref> je komplexný informačný systém určený predovšetkým na riadenie všetkých troch stupňov vysokoškolského štúdia a podporu riadenia vedy a výskumu VŠ. Vyvíja ho Univerzita Pavla Jozefa Šafárika v Košiciach od roku 1997 a bol implementovaný na viacerých vysokých školách na Slovensku, vrátane našej Trenčianskej univerzity Alexandra Dubčeka. Má v sebe okrem iného implementovaný tiež modul pre správu rozvrhu (Obr. 1.2). Tento modul však zdedil z AISu všetky jeho nedostatky – pomalosť, zložitosť užívateľského prostredia, neprehľadnosť. Tieto zápory plynú z toho, že je systém tvorený ako maximálne univerzálny a tiež z nedostatočnej optimalizácie kódu programu.
 
AIS <ref>http://www.ais2.sk/xwiki/bin/view/Domov/</ref> je komplexný informačný systém určený predovšetkým na riadenie všetkých troch stupňov vysokoškolského štúdia a podporu riadenia vedy a výskumu VŠ. Vyvíja ho Univerzita Pavla Jozefa Šafárika v Košiciach od roku 1997 a bol implementovaný na viacerých vysokých školách na Slovensku, vrátane našej Trenčianskej univerzity Alexandra Dubčeka. Má v sebe okrem iného implementovaný tiež modul pre správu rozvrhu (Obr. 1.2). Tento modul však zdedil z AISu všetky jeho nedostatky – pomalosť, zložitosť užívateľského prostredia, neprehľadnosť. Tieto zápory plynú z toho, že je systém tvorený ako maximálne univerzálny a tiež z nedostatočnej optimalizácie kódu programu.
[[Súbor:mpbc1.2.jpg|thumb|center|Obr. 1.2 Modul rozvrhu v systéme AIS]]
+
[[Súbor:mpbc1.2.jpg|framed|center|Obr. 1.2 Modul rozvrhu v systéme AIS]]
===Rozvrh EPI===
+
=== Rozvrh Európskeho polytechnického inštitútu ===
 
Tento systém pre tvorbu rozvrhu (Obr. 1.3) je vytvorený priamo na mieru potrebám školy ako súčasť školského e-learningového portálu. Síce nedisponuje žiadnymi možnosťami nastavenia, ide o plynule fungujúcu online aplikáciu, ktorá používa ako programovací jazyk PHP na strane servera a HTML v kombinácií s JavaScriptom na strane klienta. Za nedostatok považujem hlavne formulár na pridávanie vyučovacej hodiny (Obr. 1.4), ktorý je podľa môjho názoru značne neprehľadný a komplikovaný.
 
Tento systém pre tvorbu rozvrhu (Obr. 1.3) je vytvorený priamo na mieru potrebám školy ako súčasť školského e-learningového portálu. Síce nedisponuje žiadnymi možnosťami nastavenia, ide o plynule fungujúcu online aplikáciu, ktorá používa ako programovací jazyk PHP na strane servera a HTML v kombinácií s JavaScriptom na strane klienta. Za nedostatok považujem hlavne formulár na pridávanie vyučovacej hodiny (Obr. 1.4), ktorý je podľa môjho názoru značne neprehľadný a komplikovaný.
[[Súbor:mpbc1.3.jpg|thumb|center|Obr. 1.3 Rozvrh EPI]]
+
[[Súbor:mpbc1.3.jpg|framed|center|Obr. 1.3 Rozvrh EPI]]
[[Súbor:mpbc1.4.jpg|thumb|center|Obr. 1.4 Formulár na pridávanie hodiny do rozvrhu EPI]]
+
[[Súbor:mpbc1.4.jpg|framed|center|Obr. 1.4 Formulár na pridávanie hodiny do rozvrhu EPI]]
 
<references/>
 
<references/>

Aktuálna revízia z 16:58, 5. december 2010

Tnu wiki.png
Trenčianska Univerzita Alexandra Dubčeka v Trenčíne
Fakulta Mechatroniky
Fm wiki.png
Systém tvorby rozvrhu

zadanie práce
Bakalárska práca


Autor:
Pedagogický vedúci: Ing. Juraj Ďuďák
Študijný odbor: Mechatronika

Akademický rok

2009/2010


Abstrakt

Práca sa zaoberá opisom systémov pre tvorbu školského rozvrhu. V prvej časti sú uvedené možnosti a parametre týchto systémov a prezentácia niekoľkých existujúcich systémov, ich klady a zápory. V druhej časti je uvedený postup pri vývoji takejto aplikácie pre potreby Fakulty mechatroniky TnUAD. Je zdôvodnený výber programovacích jazykov a prostriedkov, návrh databázovej štruktúry. Nasleduje opis samotného systému, spôsob prihlasovania do administrátorskej časti, zoznam akcií vykonaných po prihlásení. Sú ukázané hlavné ovládacie prvky prostredia, ich funkcia a spôsob vytvárania. Ďalšie sú uvedené implementované funkcie aplikácie, spôsob zadávania informácií o vyučujúcich, definovanie obmedzení ich výučby, priradenie vyučujúcich k predmetu, vytváranie a mazanie krúžkov, predmetov a jednotlivých vyučovacích hodín. Sú tu tiež opísané funkcie zvyšujúce pohodlie a efektivitu pri práci so systémom – archív starších verzií rozvrhu, možnosť nastavenia niektorých vlastností systému používateľom, zhrnutie stavu rozvrhu a zmazanie celého rozvrhu alebo jeho časti. Nasledujú možnosti napojenia rozvrhu na iné aplikácie. Posledná časť práce sa venuje bezpečnostnej stránke aplikácie.

Abstract

The work deals with description of systems for creating school timetable. Possibilities and parameters of these systems and presentation of some existing systems, their pros and cons are listed in the first part. Procedure of development of such application for needs of Faculty of mechatronics TnUAD is in second part. Choice of programming languages and techniques, design of database structure is justified. Description of system, system of logging in into administrating part, list of actions executed after login follows. Main operating items are shown, their function and the way of creation. Next, implemented functions of application are presented, the way of inserting information about teachers, defining restrictions of their teaching, assigning of teachers to subjects, creating and deleting subclasses, subjects and separate lessons. There are described functions which raise comfort and efficiency while working with system too – archive of older versions of timetable, possibility to set some of system properties by user, summarizing of state of timetable and deleting all timetable or its part. Possibilities of connection of timetable with other applications follows. The last part of the work deals with security aspects of application

Úvod

Tvorba rozvrhu je úloha, ktorú musí riešiť každá škola bez ohľadu na stupeň alebo zameranie minimálne jeden krát za školský rok. S napredujúcim prenikaním informačných technológií do školstva a vyučovacieho procesu sa aj tento problém čím ďalej častejšie rieši pomocou počítača. Vznikajú preto aplikácie pre tvorbu a zobrazovanie rozvrhu. V mojej práci sa zaoberám práve takýmito aplikáciami. Najskôr ich opisujem všeobecne a následne opisujem vlastnú aplikáciu, ktorú som v rámci bakalárskej práce vytvoril.

V prvej časti uvádzam hlavné parametre programu, ktoré musí programátor navrhnúť ešte pred začatím programovania vlastnej aplikácie. Poukazujem na rozdiel medzi online a offline aplikáciou a medzi univerzálnym programom a riešením vytváraným na mieru. Taktiež poukazujem na to, aké dôležité je premyslieť si správnu prezentáciu údajov v systéme a stanoviť si základnú bezpečnostnú politiku aplikácie. Následne sa venujem trom existujúcim riešeniam systému pre tvorbu rozvrhu. V krátkosti vyjadrujem svoj subjektívny názor na tieto programy, ich výhody a nevýhody.

V druhej časti práce sa venujem svojmu vlastnému systému pre tvorbu rozvrhu, ktorý je určený pre potreby Fakulty mechatroniky TnUAD. Opisujem prípravné práce, ktoré som musel vykonať pred začatím programovania a zdôvodňujem niektoré rozhodnutia týkajúce sa systému, ktoré som spravil. V práci uvádzam zoznam programovacích jazykov a prostriedkov, ktoré som použil a tiež podrobný opis návrhu databázovej štruktúry, ktorej som venoval značnú pozornosť. Správny návrh databázovej štruktúry totiž môže uľahčiť programovanie samotnej aplikácie.

Následne sa zameriavam na prihlasovanie do systému. Opisujem spôsob kontroly oprávnenia vstúpiť do administrátorského prostredia aplikácie, synchronizáciu údajov jednej z tabuliek s tabuľkou nachádzajúcou sa na inom serveri, výber dát z databázy a ich predprípravu pre uľahčenie a zefektívnenie práce s nimi.

V ďalšej časti sa zameriavam na grafickú stránku administrátorského prostredia. Opisujem základné ovládacie prvky, ktoré sa na stránke nachádzajú – hlavné menu, zoznam hodín zaradených do rozvrhu a zoznam hodín nezaradených do rozvrhu. Uvádzam ich funkciu, vzhľad a spôsob vytvárania.

Nasleduje zoznam funkcií, ktoré som do systému implementoval. Uvádzam spôsob, akým sa v systéme zadávajú údaje o vyučujúcich, definujú sa obmedzenia výučby vyučujúcim, priraďujú sa im jednotlivé predmety, vytvárajú sa krúžky a pridávajú sa im predmety, pridávajú a odoberajú sa vyučovacie hodiny z rozvrhu. Pridávam tiež opis funkcií, ktoré som do systému pridal z dôvodu zvýšenia komfortu a efektivity pri práci s aplikáciou. Sú to archív predchádzajúcich verzií rozvrhu, možnosť nastaviť si niektoré vlastnosti systému používateľom, zhrnutie aktuálneho stavu rozvrhu a rýchle zmazanie rozvrhu alebo jeho časti.

Pre potreby napojenia na iné aplikácie a projekty uvádzam možnosti prístupu k aktuálnemu rozvrhu. Jednou z možností je pripojenie sa do databázy so špeciálnym účtom s obmedzenými právami, druhou je využitie voľne prístupného exportu vo formáte JSON.

V poslednej časti práce sa zaoberám bezpečnostnými prvkami, ktoré som v aplikácií použil, odôvodňujem ich výber, uvádzam ich výhody a nevýhody. Pri nevýhodách pripájam postupy, ktorými som sa ich snažil eliminovať.

Opis systémov pre tvorbu rozvrhu

Myšlienka použiť pri tvorbe rozvrhu počítač nie je nová. Existuje niekoľko aplikácií, ktoré majú za úlohu zjednodušiť vytváranie, správu a prezentovanie školského rozvrhu, či už cez internet, teda online, alebo bez internetu, teda offline. Každá má pri tom svoje klady ale aj zápory, ktoré v tejto kapitole rozoberiem najskôr všeobecne a následne opíšem a porovnám niekoľko existujúcich aplikácií.

Hlavné parametre systému

Pred začatím vlastného programovania aplikácie si treba stanoviť parametre, ktoré má daný program spĺňať. Ide predovšetkým o to, či má byť aplikácia online alebo offline a s tým súvisiaci výber programovacieho jazyka, či bude riešenie univerzálne alebo na mieru danej škole, treba vybrať vhodnú formu prezentačnej vrstvy a hlavne v prípade online aplikácie je dôležitá otázka bezpečnosti.

Online vs. offline aplikácia

Výhody online oproti offline aplikácií sú zrejmé z možností internetu:

  • možnosť pristupovať k aplikácií z akéhokoľvek počítača s prístupom na internet
  • automatická aktualizácia údajov v užívateľskej časti rozvrhu pri zmenách v administrátorskej časti
  • možnosť prepojenia systému s inými internetovými aplikáciami
  • komfort a flexibilita internetových aplikácií

Jedinou nevýhodou môže byť zvýšené bezpečnostné riziko, ktoré plynie z možnosti prístupu k systému kýmkoľvek, teda administrátorom aj potenciálnym útočníkom. Toto riziko je však možné úspešne eliminovať vytvorením správnej bezpečnostnej politiky aplikácie a tiež vyhýbaním sa nebezpečných programovacích techník. Tejto problematike sa budem viac venovať v časti 1.1.5.

Výber programovacieho jazyka

Pri výbere programovacieho jazyka budú hrať hlavnú úlohu predovšetkým schopnosti a zvyky programátora. V prípade online aplikácie však treba vziať do úvahy tiež možnosti servera, na ktorom bude aplikácia spustená. Vzhľadom k veľkému počtu internetových prehliadačov a ich rozdielnych schopnostiam treba tiež myslieť na to, aby aplikácia fungovala minimálne vo všetkých majoritných internetových prehliadačoch rovnako.

Či už je aplikácia online alebo offline, treba tiež dbať na to, aby program bežal plynule bez sekania a dlhého načítavania, nemal priveľké hardwarové nároky a bol stabilný. Aj tieto faktory môžu ovplyvniť výber programovacieho jazyka.

Univerzálne riešenie vs. riešenie na mieru

Jedným z najdôležitejších kritérií systému pre tvorbu rozvrhu je, či bude systém vytvorený ako univerzálna aplikácia použiteľná na väčšine škôl alebo vytvorená presne podľa požiadaviek konkrétnej školy. Každá škola môže mať totiž rozdielne kritéria na systém pre tvorbu rozvrhu a je takmer nemožné uspokojiť ich všetky jedinou aplikáciou.

Najväčšie rozdiely sú hlavne medzi rôznymi stupňami škôl, napr.: väčšina základných škôl na rozdiel od vysokých škôl nemá školský rok rozdelený na semestre, rôzne typy a dĺžky vyučovacích hodín, iný rozvrh v párny a nepárny týždeň atď. No rozdiely sa nájdu aj medzi požiadavkami jednotlivých škôl v rámci rovnakého stupňa.

Ak sa teda rozhodneme, že náš systém bude univerzálny, musíme na tieto rozdiely pamätať a zahrnúť do aplikácie možnosti ako ich zohľadniť. Každý takýto rozdiel znamená pre aplikáciu ďalšiu položku v nastaveniach, prípadne ďalšie kliknutie myšou administrátora pri vytváraní rozvrhu. Všetky tieto nastavenia sa taktiež musia pred používaním aplikácie načítať, čo sa môže výrazne prejaviť na plynulosti celého programu, nehovoriac o tom, že tieto nastavenia musí používateľ zadať v ideálnom prípade raz, v horšom prípade vždy pred použitím aplikácie. Navyše je veľmi pravdepodobné, že sa nám nepodarí pokryť všetky možnosti, ktoré môžu nastať.

Nechcem tým povedať, že vytvorenie a používanie univerzálnej aplikácie pre tvorbu rozvrhu je nezmysel alebo že to nie je možné. Je to však oveľa náročnejšie jednak na zložitosť aplikácie i na jej obsluhu. Treba preto zvážiť, či je to vhodné pre náš prípad.

Prezentácia údajov

Správna prezentácia údajov je dôležitým faktorom každej aplikácie, obzvlášť ak má slúžiť väčšiemu počtu používateľov. Ovládanie by malo byť čo najviac inštinktívne a prehľadné, čo sa môže ukázať ako neľahká úloha, hlavne keď musíme zobraziť veľké množstvo údajov.

Pri administrácií rozvrhu musí mať používateľ na výber z množstva akcií: editáciu krúžkov, pridávanie a odoberanie predmetov, priraďovanie vyučujúceho k predmetu, a mnoho iných. Okrem toho potrebuje vidieť rôzne štatistiky a filtrovať množstvo údajov podľa viacerých kritérií. Preto je vhodné venovať návrhu administrátorského prostredia dostatok času, vybrať najlepšie rozloženie ovládacích prvkov a najprehľadnejšie usporiadanie prezentovaných údajov.

Bezpečnosť

Hlavne ak sa rozhodneme pre riešenie systému pre tvorbu rozvrhu formou online aplikácie, je treba venovať zvýšenú pozornosť bezpečnosti celého programu. Síce sa môže zdať, že takýto systém nie je pre útočníka nijak zaujímavý, jeho napadnutie by mohlo mať katastrofálne následky, hlavne ak by bol prepojený s ostatnými školskými aplikáciami.

Medzi základné bezpečnostné opatrenia patrí filtrovanie vstupných údajov pochádzajúcich od používateľa, nepoužívanie globálnych, ktoré by mohli pochádzať od neznámeho zdroja a typová kontrola premenných. Pri používaní databázy ako úložiska údajov na servery je obzvlášť nebezpečným typom útoku tzv. SQL injection – technika napadnutia databázovej vrstvy programu vsunutím kódu cez neošetrený vstup a vykonanie vlastnej SQL požiadavky.

Porovnanie existujúcich systémov pre tvorbu rozvrhu

V tejto kapitole popíšem a porovnám niektoré exitujúce systémy pre tvorbu rozvrhu. Niektoré som sám otestoval, k iným som sa bohužiaľ nedostal, a tak musím súdiť len podľa inštruktážneho videa, a pri vývoji jedného systému som sám pomáhal.

Rozvrh 4.1

Rozvrh 4.1 (Obr. 1.1) je offline aplikácia pre tvorbu rozvrhu od RNDr. Ľubomíra Červeného [1]. Je to univerzálny program vhodný hlavne pre základné a stredné školy. Medzi jeho hlavné klady patrí možnosť automatického generovania celého rozvrhu alebo jeho časti podľa zadaných parametrov. Nevýhody, ktoré pre tento program plynú z toho, že je to offline aplikácia, zmierňuje možnosť exportovať vytvorený rozvrh vo formáte HTML. Veľkým záporom je však obmedzená funkčnosť neregistrovanej verzie programu, v ktorej sa nedá vytvorený rozvrh uložiť.

Obr. 1.1 Rozvrh verzia 4.0

Modul rozvrhu v systéme AIS

AIS [2] je komplexný informačný systém určený predovšetkým na riadenie všetkých troch stupňov vysokoškolského štúdia a podporu riadenia vedy a výskumu VŠ. Vyvíja ho Univerzita Pavla Jozefa Šafárika v Košiciach od roku 1997 a bol implementovaný na viacerých vysokých školách na Slovensku, vrátane našej Trenčianskej univerzity Alexandra Dubčeka. Má v sebe okrem iného implementovaný tiež modul pre správu rozvrhu (Obr. 1.2). Tento modul však zdedil z AISu všetky jeho nedostatky – pomalosť, zložitosť užívateľského prostredia, neprehľadnosť. Tieto zápory plynú z toho, že je systém tvorený ako maximálne univerzálny a tiež z nedostatočnej optimalizácie kódu programu.

Obr. 1.2 Modul rozvrhu v systéme AIS

Rozvrh Európskeho polytechnického inštitútu

Tento systém pre tvorbu rozvrhu (Obr. 1.3) je vytvorený priamo na mieru potrebám školy ako súčasť školského e-learningového portálu. Síce nedisponuje žiadnymi možnosťami nastavenia, ide o plynule fungujúcu online aplikáciu, ktorá používa ako programovací jazyk PHP na strane servera a HTML v kombinácií s JavaScriptom na strane klienta. Za nedostatok považujem hlavne formulár na pridávanie vyučovacej hodiny (Obr. 1.4), ktorý je podľa môjho názoru značne neprehľadný a komplikovaný.

Obr. 1.3 Rozvrh EPI
Obr. 1.4 Formulár na pridávanie hodiny do rozvrhu EPI