Hallgatói feladatbeadó portál adminisztratív funkciókkal való bővítése

OData támogatás
Konzulens:
Dr. Goldschmidt Balázs
Irányítástechnika és Informatika Tanszék

A Budapesti Műszaki és Gazdaságtudományi Egyetem Irányítástechnika és Informatika Tanszékének több tárgya használja a Hercules feladatbeadó rendszert. Szakdolgozatom célja ennek a feladatbeadó rendszernek az adatbázisát használva, illetve azt visszafelé kompatibilis módon kiegészítve, egy új, a meglévőtől eltérő funkciókkal rendelkező rendszer megalkotása.

Az egyik tantárgy, amelynek pontozási rendszere miatt új funkciókat igényel, a Szoftver laboratórium 4. A tárgyban a hallgatók csapatokba szerveződnek, amelyek közös beadásaikra kapnak pontot. Azért, hogy a csapatokban lévő emberek eltérő mértékű munkáját meg lehessen határozni, a tárgyban három mérföldkő során határozzák meg a csapattagok százalékos munkáját.

Munkám első fázisát az adatbázis szerkezet megértése és módosítása jelentette, amely végeredményeképp lehetőség nyílt a beadások tárolásán túl azok pontozására, illetve nagyobb mérföldkövenként az egyes hallgatók munkamennyiségének meghatározására a csapaton belül.

Ezután következett a felület megtervezése, amely HTML5, CSS3 és jQuery (Javascript) technológiákat használ. Utóbbi biztosítja a szerver oldallal való kommunikáció nagy részét, ahol PHP nyelven megvalósított keretrendszer biztosítja az üzleti logikához nem kapcsolódó mellékfeladatok végrehajtását.

A feladathoz szorosan kapcsolódó osztályokat MVC architektúra szerint terveztem meg és hoztam létre, ahol a Controller osztályok vezérlik a Model és a View közötti kommunikációt.

Az elkészült rendszer képes a csapatok beadásainak pontozását, mérföldkövenként a csapattagok által végzett munka százalékos arányának megadását támogatni, továbbá a hallgatókhoz tartozó pontok alapján a tárgy teljesítése során elért jegy kiszámítására, a tantárgy ponthatárainak módosítására.

A fenti funkciók ellenőrzésére a legnépszerűbb böngészőkben folytatott kézi tesztelésen kívül a Selenium IDE felhasználásával készült automatizált teszteket, illetve egyes egységek tesztelésére írt PHPUnit teszteket használtam. A MySQL adatbázis triggerek megfelelő lefutását egy próbaadatbázison futtatott lekérdezésekkel ellenőriztem.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.