Dr. Cserép Máté honlapja


Gyorslinkek: tartalom, navigáció.


Oktatás » Témakiírások » BSc szakdolgozat

A TMS beadandókezelő rendszer Moodle integrációjának megvalósítása

A nyílt forráskódú TMS beadandókezelő rendszer egyik fő funkciója programozási beadandó és zárthelyi feladatok kiírása és a hallgatói megoldások begyűjtése. A TMS rendszer automata fordítással, fekete-doboz elvű teszteléssel, statikus analízissel és plágiumvizsgálattal tudja a hallgatók és az oktatók munkáját segíteni.

A TMS rendszer jelenleg a Canvas tanulásmenedzsment-rendszerrel (LMS) képes együttműködni, annak REST API-ján keresztül: időzített szinkronizációval átveszi a kurzusok és kurzuscsoportok adatait, a hallgatói és oktatói névsorokat, a kiírt feladatokat és a beadott megoldásokat, az értékelés eredményét pedig visszaírja az LMS-be. Számos felsőoktatási intézmény — köztük hamarosan az ELTE is — azonban a Moodle rendszert használja, amelyhez a TMS nem jelenleg nyújt támogatást. További nehézség, hogy a jelenlegi megvalósításban a Canvas-specifikus azonosítók közvetlenül az adatmodellbe épültek be, így az integráció más LMS-re nem általánosítható.

A szakdolgozat célja a Moodle rendszerrel való integráció megvalósítása. A szakdolgozat keretében először általánosítandó a meglévő szinkronizációs réteg: az LMS-specifikus azonosítókat és a szinkronizációs logikát olyan absztrakcióval kell leváltani, amely mögé több LMS implementációja is beilleszthető. Ezt követően implementálandó a Moodle integráció a Moodle Web Services REST felületére építve, amely a Canvas integrációval megegyező funkcionalitást nyújt: kurzusok és csoportok listázása, névsorok szinkronizálása, feladatok és beadott megoldások átvétele, valamint az értékelés és az automatikus tesztelés eredményének visszaírása. Külön megtervezendő a hitelesítés robusztus modellje, mivel a Moodle a Canvastól eltérően nem felhasználónkénti OAuth2 folyamatot, hanem tokenalapú hozzáférést alkalmaz; a választott megoldás adatvédelmi vonatkozásait is elemezni kell. Opcionális kitekintésként a szakdolgozat összevetheti a megvalósított megközelítést az LTI 1.3 szabvánnyal, amely egységes, LMS-független integrációt tenne lehetővé.

A megvalósítás a TMS rendszer szerveroldali komponensében, PHP nyelven, a Yii2 keretrendszer használatával történik, a szinkronizáció a rendszer meglévő ütemezett háttérfeladat-kezelőjére épül. A konfigurációs felület React és TypeScript technológiákkal készül. A fejlesztés és a tesztelés helyben, Docker konténerben futtatott Moodle példány ellenében végezhető.