szakdoga

Interaktív kollégiumi információs rendszer

A Kecskeméti Főiskola Gépipari és Automatizálási Műszaki Főiskolai Karán (KF-GAMFK) 2005 tavaszi félévben írt szakdolgozatom.

Mellékletek jegyzéke

Dolgozatomhoz egy darab CD tartozik, amely tartalmazza az elkészült program forráskódját, a beüzemeléséhez szükséges további fájlokat, valamint a dokumentációt is. A hordozható médián lévő fájlok, könyvtárak listája a következő:

kp-2005-05-18.tar.gz: A telepítésnél már említett tömörített fájl, amely az elkészített programot tartalmazza.

kp: Az előbbi fájl tartalma egy könyvtárban, tömörítés nélkül.

kp-doc-2005-05-18.tar.gz: A phpDocumentor-ral készített dokumentáció tömörítve.

kp-doc: Az előbbi dokumentáció tömörítés nélkül, a könyvtárban lévő index.html bármely böngészővel megnyitható.

km-szd.md5: ellenőrzőösszeg a fájlokról, amely a cfv nevű programmal készült. Az egész fájlra számított md5 ellenőrzőösszeg a következő:

$ md5sum km-szd.md5
e03009586e8b3316a94db538c075ba23  km-szd.md5

Felhasznált irodalom

  1. Bártházi András: 2006-ra az asztali alkalmazások a webre költöznek?
    http://weblabor.hu/hirek/20050330/asztalwebre/ (2005. 04. 12. 11:04)
  2. Celko Joe: SQL Felsőfokon
    2002, Kiskapu Kft., ISBN: 9639301205
  3. MySQL Reference Manual
    http://dev.mysql.com/doc/mysql/en/index.html (2005. 02. 01. - 2005.05.20)
  4. PHP kézikönyv
    http://hu.php.net/manual/hu/index.php (2005. 02. 01. – 2005. 05. 20.)
  5. Koblinger Egmont: Unicode, UTF-8
    http://cs.bme.hu/~egmont/utf8/ (2005. 04. 27. 17:20)
  6. Bylaws of the MacGregor House Committee
    Massachusetts Institute of Technology
    http://macgregor.mit.edu/housecomm/docs/bylaws_2004.pdf (2005. 05. 13. 18:30)
  7. mod_ssl Project
    http://www.modssl.org/ (2005. 05. 14. 21:31)
  8. Hornyák László: Apache
    http://www.szabilinux.hu/apache/index.html (2005. 05. 14. 21:38)
  9. phpDocumentor Guide to Creating Fantastic Documentation

Összegzés

Elsődleges és legfőbb reményeim szerint sikerült egy olyan rendszer tervét és megvalósítását létrehoznom, amely nagyban segítheti bármely kollégium szobabeosztási folyamatát illetve a kollégiumi élet szereplői közötti hatékonyabb kommunikációt.

A dolgozatom mellékletében is szereplő program képes összegyűjteni a szobabeosztáshoz szükséges információkat, s ebből kialakítani egész épületcsoportok szobabeosztását. Mindezek mellett a forráskódban szereplő és az onnan kinyert dokumentáció, valamint a szabványok alkalmazása egyszerűen, rugalmasan bővíthetővé, s testreszabhatóvá teszi a rendszert. Ennek eredményeként egy nagyobb projekt keretében továbbfejlesztve akár egy, a kollégium teljes információs rendszereként is szolgálhat.

Továbbfejlesztési lehetőségek

Mint a legtöbb weblapról, erről is elmondható, hogy sosem lesz teljesen kész, sosem lesz végleges formája, az idő előrehaladtával újabb és újabb igények merülnek fel, s emiatt folyamatosan fejleszteni kell.

A rendszer komplexitása miatt több továbbfejlesztési irány is lehetséges. Egyrészt a megírt programot lehet optimalizálni. Kisebb futásidőt elérve ugyanazon hardvert használva gyakrabban generálható a tesztidőszakban a szobabeosztás. Másrészt a hallgatók beavatkozási lehetőségei is növelhetőek. A tesztidőszakban legenerálható az összes lehetséges szoba-összeállítás. Ezen listából kinyerhető minden leendő kollégistához az összes olyan hallgató, akivel valamelyik variációban egy szobába kerülhet. Ezután mindenki értékelheti a saját listáján szereplőket, aszerint, hogy mennyire szeretne (vagy sem) egy szobába kerülni az illetővel.

Az értékeléshez minimálisan egy három fokozatú skála szükséges, de még ezt is lehet finomítani. A skála elemei az „egyáltalán nem akarok vele egy szobába kerülni”, „mindegy, vagy nem ismerem az illetőt” és a „szívesen kerülnék vele egy szobába” lehetnek, illetve ezek árnyaltabb változatai.

Telepítés

A rendszer telepítéséhez valamilyen Linux rendszer szükséges, amelyen már rendelkezésre állnak a LAMP betűszó végét alkotó programok: egy Apache webszerver, MySQL adatbázisszerver (legalább 4.1-es verzió), és a PHP értelmező. Az itt leírtak Debian GNU/Linux Sarge kiadásának alapértelmezett telepítésére vonatkoznak, az ettől való eltérések vannak feltüntetve. Első lépés a programfájlok feltelepítése, amely a következő paranccsal tehető meg:

tar xvzf kp-2005-05-18.tar.gz

A telepítés könyvtárát az Apache számára is elérhetővé kell tenni, például úgy, hogy közvetlenül a /var/www/ könyvtárba tömörítjük ki a fájlokat, amihez egy VirtualHost is létrehozható a /etc/apache/httpd.conf kibővítésével:

<VirtualHost 10.1.0.8>
	ServerAdmin admin@pelda.hu
	DocumentRoot /var/www/kp/www/
	ServerName kp.pelda.hu
	AllowOverride All
</VirtualHost>

Az AllowOverride értékének módosítása mindenképp szükséges, erre VirtualHost nélkül telepítéskor is szükség van:

<Directory /var/www/kp/>
	AllowOverride All
</Directory>

Az adminisztrátori felület védelméről szintén gondoskodni kell a kp/www/admin/ könyvtárban lévő .htaccess állomány finomhangolásával. Itt a következő sort kell módosítani:

Tesztelés

A legkomolyabb tesztelésre a korábban már sokat emlegetett tesztidőszak fog szolgálni. Ilyenkor szabadon lehet kísérletezni különféle prioritási értékeket előállító függvényekkel. A hallgatók visszajelzéseire a fórum megfelelő, illetve egy olyan visszajelzési lehetőségre is szükség van, amely független az új rendszertől, hiszen ha pont a hibajelentő rész, a fórum hibásodik meg, akkor elég lehetetlen helyzetbe kerül a tesztelési folyamat.

A rendszer működésének naplózására tökéletes a fejlesztés során használt hibakereső megoldás, mely egy saját függvény segítségével a böngészőprogramnak (illetve a fejlesztőnek) számos futás közbeni hibakeresési információt továbbított: változók értékeit, függvények hívásáról információkat, visszatérési értékeket, stb. Az élesítés után ugyanezen információkat lehet felhasználni a felhasználók által talált hibák pontos behatárolására is.

Mindehhez csupán annyi módosítás szükséges, hogy ezeket az üzeneteket ne a felhasználóknak küldjük ki, hanem egy naplóállományba mentsük, ahonnan később visszakereshető egy-egy makacsabb hiba

Dokumentáció készítése

A program fontos része a dokumentáció, készítését ajánlatos a program írásával egy időben elkezdeni. Ez egyrészt már a program első sorainak elkészültétől segíti a programozót, programozókat, másrészt nem marad az állandóan csúszásban lévő projekt végére, amikor leginkább az ilyen feladatokon szokás időt nyerni.

Az általam használt dokumentációkészítő program, a phpDocumentor a php fájlok forráskódjába írt speciális megjegyzésekből állítja össze a dokumentációt, amelyet PDF és többféle HTML formátumban képes elmenteni. Mivel a dokumentáció közvetlenül a forráskódok mellett foglal helyet, a forrás módosításával ez is rögtön frissíthető, tehát a dokumentáció mindig aktuális marad.

A phpDocumentor segítségével készített HTML fájlok a webre is kitehetőek. Ezeken weboldalakon egy függvényre vagy változóra kattintva a hozzájuk tartozó forráskód is megjelenik. Az így készített dokumentáció dolgozatom mellékletében is megtalálható.

Adminisztrátori felület

Ez a felület a hallgató felület címéhez képest a /admin/ címen érhető el.

Itt a Beállítások menüpont alatt van lehetőség a variables tábla tartalmának módosítására. Egy-egy legördülő listából kiválasztva itt tiltható-engedélyezhető globálisan a hallgatók bejelentkezése, valamint a kívánságlista szerkesztése. A kívánságlista szerkesztésének megtiltása erősen ajánlott a szobabeosztást végző programrészek futásának idejére, ennek elmulasztása nem várt működéshez vezethet.

A Diáklista a rendszerbe felvett hallgatók listája, különféle sorrendezési lehetőségekkel. Emellett a hallgatók státuszának módosítására (jelenlegi vagy öregdiák), valamint a kitiltására is van lehetőség. Komolyabb módosításokra itt nincs lehetőség, de ezek is elvégezhetőek a CSV import és export (diáklista feltöltése, letöltése) funkciókon keresztül egy táblázatkezelővel. Letöltéskor elküldésre kerül a users tábla elsődleges kulcsa is, ami alapján a feltöltésnél automatikusan el lehet dönteni, hogy létezik-e a felhasználó, vagy sem. Ha nem, akkor a megfelelő INSERT parancs lesz elküldve az adatbázis-kiszolgálónak, amivel új rekord beszúrásával létrehozza új felhasználóként. Ha már létezik ilyen azonosító, akkor csak módosítva lesz a felhasználóhoz tartozó rekord egy UPDATE paranccsal.

Hallgatói felület

A hallgatói felületre mindenki a saját felhasználónevével és jelszavával léphet be. Itt lehet új hallgatót felvenni a kívánságlistára, törölni róla, illetve sorrendet módosítani. Ez a felület csak akkor érhető el, ha az adminisztrátor engedélyezte. A szobainfo menüpont alatt megtekinthetőek a felhasználó szobájának adatai (ha már be lett osztva valamelyik szobába). A tesztidőszak alatti szobabeosztások is ezen a helyen jelennek meg, s ugyanitt látható azon hallgatók neve is, akik a bejelentkezett hallgatót felvették a kívánságlistájukra.

A fórumnak szintén van egy menüpontja, ahol bárki létrehozhat új témát, illetve bármelyik témához hozzászólhat. Az RSS feed is mindenki rendelkezésére áll, ez az egyetlen olyan szolgáltatás, amely bárhonnan elérhető bejelentkezés nélkül.

Az eddigieken kívül lehetőség van még a jelszó megváltoztatására, valamint a kijelentkezésre is.

Tartalom átvétel