Webes GUI készítése REST API-hoz AngularJS alapokon

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

Ha valakinek vékonykliens fejlesztés a feladata, aligha nyúlhat platformfüggetlenebb eszközhöz, mint a JavaScript. Köszönhetően annak, hogy minden modern böngésző tartalmaz JavaScript interpretert, az így készült webalkalmazások bármilyen modern böngészővel ellátott eszközön képesek működni. Az idők folyamán a HTML és a CSS szabvány is kinőtte gyermekbetegségeit, és alkalmassá vált mobil és tablet kijelzőkön való megjelenítésre is. A Bootstrap keretrendszernek köszönhetően könnyebbé vált a platform-böngésző és felbontásfüggetlen alkalmazások fejlesztése.

Szakdolgozatom témája egy olyan webalkalmazás lefejlesztése, mely a Bootstrap 3 és AngularJS technológiákra építkezik. Segítségével lehetőség nyílik az őt kiszolgáló backend teljeskörű, felhasználóbarát használatára. A fejlesztés folyamán megismerkedtem pár harmadik fél által készített platform bővítménnyel is, mint pl. a $Linq, mely a JavaScriptes változata a Microsoft által fejlesztett, a C# és Visual Basic nyelvekbe integrált formális lekérdezések írását lehetővé tevő függvénykönyvtárnak.

Munkám során megismerkedtem az AngularJS világgal, megértettem az életciklusát, főbb alkotóelemeit. A felhasználói felület tervezésekor use-case-ekkel modelleztem a felhasználó és a rendszer interakciójának lehetséges eseteit, így a felület teljesen felhasználó központú lett. Ez lehetővé tette számomra, hogy a felület bizonyos elemeinek megjelenítését a felhasználó jogosultsági szintjéhez kössem.

Az általam készített webalkalmazáshoz saját direktívákat, filtereket készítettem. A fejlesztés során kialakítottam egy komplex build rendszert, ami lehetővé teszi a gyors alkalmazáspublikálást a fejlesztői szerverre, illetve terjesztői csomag előállítását. Létrehoztam egy komplex, egyedi, jól bővíthető szolgáltatás elérési réteget, mely az AngularJS factory szolgáltatására építkezik.

Az alkalmazást a könnyebb karbantarthatóság érdekében, funkcionális dekompozícióval modulokra bontottam. A beépített JavaScript objektumok funkcionalitását saját igényeim szerint bővítettem a prototípikus öröklés lehetőségeinek kihasználásával.

A létrehozott kontrollereket unit teszteltem a Jasmine keretrendszer segítségével. A unit teszteket a karma teszt rendszer és a grunt build rendszer segítségével integráltam a build folyamatba.

Letölthető fájlok

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