Systém tvorby rozvrhu

Z Kiwiki
Verzia z 16:42, 23. júl 2010, ktorú vytvoril Fajzen (diskusia | príspevky)
Skočit na navigaci Skočit na vyhledávání
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