Oktatást segítő rendszer tervezése és megvalósítása

OData támogatás
Konzulens:
Dr. Gajdos Sándor
Távközlési és Médiainformatikai Tanszék

A Szoftver Laboratórium 5 tantárgy lebonyolítása - az órák megtartása mellett - több száz hallgató adminisztratív feladatainak elvégzését igényli. Ezen feladatok elvégzése egy adminisztrációs rendszer segítségével jelentősen megkönnyíthető. A tantárgy eddig is rendelkezett egy portállal, ami azonban az évek során a technológia fejlődésével, illetve a felhasználók újabb elvárásai miatt elavulttá vált.

A szakdolgozatom célja egy olyan új portál és a hozzá tartozó vékony kliens tervezése, amely megfelel a tantárgy követelményeinek, illetve lehetőséget nyújt több tantárgy kezeléséhez is. A végleges rendszer három modult tartalmaz mind a back-end, mind a front-end részen: a hallgatói, az oktatói és az adminisztrációs modult. Szakdolgozatomban a front-end hallgatói moduljának elkészítését mutatom be.

Munkám során egy fejlesztői csapattal kellett együttműködnöm. Az én szerepem a rendszer tervezése, illetve a kliens elkészítése volt a csapattal egyeztetve. A csapat többi tagja a szerver oldali funkciók elkészítéséért felelős.

A vékony kliens tervezése és implementálása előtt megismerkedtem több JavaScript keretrendszerrel. Az összehasonlítás során az útvonalválasztás, az AJAX kérések és az adatkötés lehetőségeit vizsgáltam, hiszen ezek elengedhetetlenek egy egyoldalas webalkalmazás elkészítéséhez. A Mithril keretrendszert választottam, mert gyors, minden szükséges funkciót támogat és nem függ más keretrendszerektől.

A funkcionális specifikálás során először összegyűjtöttem, hogy milyen funkciókat kell mindenképpen nyújtania a rendszernek. Ehhez hozzávettem azokat az új funkciókat, amelyek hiányát az előző portál felhasználói jelezték. Az így kapott funkcionális specifikáció alapján megterveztem a hallgatói kliens architektúráját, funkcionalitását és külalakját.

A rendszertervezés a Design by Contract módszertan elvein alapul. Definiáltam a kliens és a szerver közötti interfészeket, de magukat a szerver oldali komponenseket nem. Mivel a back-end elkészítése nem az én feladatom volt, ezért a fejlesztés és a tesztelés során az elkészített interfészeket egy ún. mock szerverrel működtettem, ami biztosította a szükséges tesztadatokat.

Mithrilben és Bootstrap 3-ban implementáltam a hallgatói klienst. Az MVC minta nézet rétegében Bootstrap 3 szolgáltatja a külalakot. Az elkészült kódot a könnyebb fejlesztés és karbantarthatóság érdekében modulokon belül is tovább bontottam. A futtatható kód előállítását a gulp rendszerrel automatizáltam.

Munkám hangsúlyos részét képezte az elkészült komponensek tesztelése. A specifikáció alapján az implementálandó klienshez elfogadási teszteket és kód lefedettségi tesztet készítettem. A teszteket a Cucumber, Zombie és Istanbul rendszerek segítségével implementáltam és futtattam, amelyek visszaigazolták a tervezés és megvalósítás megfelelő.

Letölthető fájlok

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