szakdoga

Felhasználói felületek

A rendszer alapvetően kétfajta felülettel rendelkezik. A hallgatói felület áll a hallgatók rendelkezésére, ahol szerkeszthetik a kívánságlistájukat, s szabadon fórumozhatnak. Az adminisztrátori felületen viszont a hallgatókat, szobákat, épületeket lehet kezelni, s itt ellenőrizhető a szobabeosztás folyamata is.

Jogosultságkezelés

A rendszer teljes körű használatához a felhasználókat azonosítani kell. Erre egy felhasználónév és jelszó páros szolgál, amelyet a hallgatók a nyári szünetben kapnak meg, a kollégiumi felvételről szóló értesítéshez mellékelve. Ezen adatok birtokában már használatba tudják venni a rendszert. A rendszerben lévő tartalmak bizonyos része viszont azonosítás nélkül is elérhető, ilyen például a fórum. Pontosabban itt is szükséges egy azonosítás, de ez történhet IP cím alapján is. Az elv egyszerű: a fórum olvasását a belső hálózatról, valamint a főiskola gépeiről szabadon elérhetővé tesszük, míg máshonnan bejelentkezéshez kötjük. Így a hallgatók otthonról is elérhetik a rendszer szolgáltatásait, míg a belső hálózatról egyszerűbb elérést biztosítunk, ezzel is növelve a hozzászólási kedvet, szükségtelenül nem akadályozva az információk áramlását.

Az adatbázis felépítése

A fórumhoz szükséges táblák, és ezen táblák közötti kapcsolatok a 10. ábrán láthatóak. A users tábla megegyezik a 8. ábrán már bemutatottal, itt azért szerepel ismételten, mert szükséges a kapcsolatok ábrázolásához.

10. Ábra: A fórumhoz szükséges táblák és kapcsolatok
10. Ábra: A fórumhoz szükséges táblák és kapcsolatok

topics tábla

A topics tábla egy-egy rekordja egy-egy fórumbeli témáról tartalmaz információkat, attribútumai:

title: a téma címe
cuid: a téma létrehozójának azonosítója (users táblára mutató idegen kulcs)
ct: a téma létrehozásának időpontja és dátuma
tid: a téma azonosítója, elsődleges kulcs

posts tábla

Az egyes hozzászólások szövege, létrehozásának idejét tartalmazó tábla. Attribútumai:

postid: a hozzászólás azonosítója, elsődleges kulcs
uid: a hozzászólás tulajdonosa (a users tábla sid attribútumára mutató idegen kulcs)
tid: a téma azonosítója (a topics táblára mutató idegen kulcs)
dt: a hozzászólás időpontja
t: a hozzászólás szövege

Hallgatói fórum

A fórumhoz nem kapcsolódnak nagy igények, csupán egy egyszerű webalkalmazás létrehozása a cél: tudjon mindeni által létrehozható témákat kezelni, a témákon belül pedig bárki írhasson hozzászólást.

Az interneten már számos nagyszerű nyílt forráskódú fórummotor áll az érdeklődők rendelkezésére, s ezek közül is lehetne a célnak megfelelőt találni, de többségük funkcionalitásának nagy része nem lenne kihasználva, vagy bonyolult lenne a beléptetőrendszerhez illeszteni őket.

A céljainknak megfelelő egyszerű fórum rövid idő alatt leprogramozható, és a saját alkalmazás megírása egyszerűbbé teheti a tagok azonosítását is. A szobabeosztás elkészítéséhez már eleve rendelkezésre áll a hallgatók listája, ami nagyon jól használható a fórumhoz is.

Érdemes még megemlíteni, hogy a gyorsabb és közvetlenebb információáramláshoz olyan, viszonylag új technológiák is segítséget nyújtanak, mint az RSS. Az RSS feedek használatával lehetővé tesszük az érdeklődők számára, hogy ne kelljen mindig megnézniük a fórum oldalát, ha az új hozzászólásokra, új témákra kíváncsiak. A fórumot rendszeresen ellenőrizheti egy olvasóprogram vagy aggregátor, amely új hozzászólás érkezésekor értesíteni tudja a felhasználót.

Az adatbázis felépítése

8. Ábra: A szobabeosztáshoz szükséges táblák és kapcsolataik
8. Ábra: A szobabeosztáshoz szükséges táblák és kapcsolataik

A szobabeosztási folyamathoz szükséges táblák, és a táblák közötti kapcsolatok a 8. ábrán láthatóak.

buildings tábla

A kollégium épületeit tartalmazza, attribútumai:

bid: numerikus azonosító, elsődleges kulcs
bname: az épület neve, esetleg címe szöveges formában
bsname: az épület rövid megnevezése (maximum 8 karakter, egyedinek kell lennie)

users tábla

A felhasználók nyilvántartására szolgáló tábla, attribútumai:

realname: a felhasználók valódi neve
username: felhasználónév, a bejelentkezéshez van rá szükség, egyedinek kell lennie
password: jelszó, titkosítva
sid: numerikus azonosító a felhasználóhoz, elsődleges kulcs
ut: felhasználó-típus, lehetséges értékei:
UT_ASTUDENT: jelenlegi aktív hallgató, felvételt nyert valamelyik épületbe. Csak ezek a hallgatók vesznek részt a szobabeosztási folyamatban.
UT_OSTUDENT: öregdiák, a rekord törlésére nincs mód, mert létező fórumhozzászólása, fórumtémája esetén szükségesek az adatai a topics, illetve a posts táblákból ide mutató idegen kulcsok miatt (lásd később)
email: a felhasználó elektronikus levélcíme
sex: a felhasználó neme, csak a hallgatók esetében van jelentősége
bid: épület-azonosító, az itt meghatározott épületbe van beosztva a hallgató (buildings táblára mutató idegen kulcs)
disabled: igen (Y) vagy nem (N) lehet az értéke, igen esetén a felhasználó ki van tiltva a rendszerből, nem tud bejelentkezni
av: a hallgató tanulmányi átlaga

A teljes folyamat

A teljes szobabeosztási folyamat három részre osztható. Első lépésben a páros, heterogén szobák feltöltése történik meg, mivel nem minden szoba alkalmas erre a feladatra. Kikeressük az adatbázisból az erre alkalmas szobákat, illetve azokat a különböző nemű hallgatókat, akik egymást jelölték meg első helyen. Ezekkel a csoportokkal prioritási sorrendben feltöltjük a szobákat. Ha marad felhasználatlan páros szoba, akkor azokat fel lehet használni még a későbbiekben, mint homogén szoba. Ha nem marad, akkor néhány (a prioritás sor végén lévő) hallgatópáros nem fog közös szobába kerülni. Ezek a kívánságok később törölve lesznek, hiszen erőforrás hiányában nem teljesíthetőek.

Második illetve harmadik lépésben a fiú-, illetve a lánycsoportok szobákhoz való hozzárendelése történik meg. Ha hozzárendelünk egy csoportot egy szobához, akkor a csoportlistából nem csak ezt a csoportot kell törölni, hanem minden olyan másikat is, amelynek van olyan tagja, aki a most beosztott csoportban is benne volt. Ennek következtében előfordulhat, hogy egy hallgató kívánságlistáján szereplő összes ember beosztásra kerül egy a prioritási sorban előrébb levő csoporttal. Így a hallgató gyakorlatilag „egyedül” marad, egy kívánsága sem teljesíthető.

Erőforrások szűkössége

A prioritások kiosztása láthatóan fontos része a rendszernek. A prioritások jó meghatározásával lehet biztosítani a hallgatók legnagyobb elégedettségét, viszont az 1. ábrán láthatóhoz hasonlóan szűkös erőforrásokkal nem lehet minden esetre garantálni, hogy az összes hallgató ténylegesen is azzal fog egy szobába kerülni, akivel szeretne.

Az erőforrásokat számunkra a szobák jelentik, amelyeket különféle csoportokba lehet sorolni. A szoba maximális létszámán, az ágyak számán kívül a szoba elhelyezkedése is fontos lehet. Négyféle szobatípus különböztethető meg: lányszoba, fiúszoba, homogén-, illetve heterogén nemeloszlású szoba. A csak lányok, illetve csak fiúk által elfoglalható szobák általában olyan helyen vannak, ahol csak emeletenként van zuhanyzási, tisztálkodási lehetőség, s ezeken a helyeken az egész emeleten csak fiúk, illetve csak lányok laknak. A homogén szobatípus a saját zuhanyzóval rendelkező szobákra jellemző, ezekbe egy nembe tartozó hallgatók kerülhetnek, de a lakók neme nincs előre meghatározva. A heterogén szobák azon kétágyas, zuhanyzós szobák, ahol akár házaspár hallgatók is lakhatnak. Amennyiben nincsenek ilyen páros jelentkezők, ezeket a szobákat homogén szobaként is használhatjuk.

Prioritási rendszer

A prioritási érték kiszámításához nem áll rendelkezésre túl sok adat: csupán a kívánságlistán elfoglalt helyezéseket, illetve a tanulmányi átlagot lehet figyelembe venni. Utóbbit csak korlátozottan szabad használni, hiszen a hallgatók kívánságai alapján akarjuk eldönteni a szobák beosztását, nem a tanulmányi eredményüktől függően. Az azonos szerkezetű csoportok között viszont eldöntheti a sorrendet tagjaik összesített tanulmányi eredménye.

6. Ábra: Azonos szerkezetű csoportok
6. Ábra: Azonos szerkezetű csoportok

A 6. ábrán látható gráf alapján két csoportot lehet létrehozni: {A, B} és {C, D}. Itt mind a négy hallgató első helyen jelölte meg csoportjának másik tagját. Ennyi információ alapján a két csoport közötti sorrend nem határozható meg egyértelműen. Lehetséges lenne például névsor alapján sorrendezni, de technikailag ez nem sokban különbözik attól, ha a két csoportot tagjaik tanulmányi eredménye alapján sorrendezzük.

Egy lehetséges mód a prioritási érték számítására a kívánságlistában elfoglalt sorrend és a tanulmányi átlag lineáris kombinációja:

(4) (4)

Általános problémák

Könnyen belátható, hogy a feladatnak nincs tökéletes megoldása, csupán közelíteni lehet egy optimumot. A hallgatók és a kívánságaik egy gráfként is elképzelhetőek, ahol a csúcsok jelentenek egy-egy hallgatót, az irányított élek pedig egy-egy „kívánságot”.

Szobabeosztás

Hallgatói szemmel nézve sok problémát jelent, hogy az őszi félév elején, a félév megkezdése előtt készülő szobabeosztás általában nem mindenki számára optimális.

A régi, papír alapú rendszer idejétmúlt, megérett a leváltásra. A félév eleji átköltözések, különféle hosszabb-rövidek kérelmek megelőzhetőek lennének, ha a leendő kollégistáknak nagyobb beleszólása lenne a szobabeosztás kialakításának folyamatába. Jelenleg a jelentkezési lap beadásakor kell megnevezni a leendő szobatársakat. Ez többek között azért problémás, mert egyáltalán nem biztos, hogy a megjelölt hallgatót fel is veszik a kollégiumba, s ekkor felborulhat a jól kitervelt következő évi társaság.

Tartalom átvétel