FH Kufstein Raumbelegung Webservice
Achtung: Die Informationen auf dieser Seite sind nicht mehr aktuell und werden in Kürze aktualisiert.
Bequemlichkeit kann machmal der Grund für neue Projekte sein. In diesem Fall die Bequemlichkeit, am Notebook immer Auskunft über die Raumbelegung, den Stundenplan und Planänderungen an der FH zu haben, ohne zum Infoscreen laufen zu müssen. Gegen Anfang des 2. Semesters bin ich auf den Online-Raumbelegungsplan der FH gestoßen, welcher die Basis für dieses Projekt bietet. Da ich mich mit dem Plan nicht wirklich anfreunden konnte, habe ich begonnen, ein eigenes System zu entwickeln, das sich auf die Daten aus genanntem Plan stützt.
Das Resultat ist eine auf PHP basierende Applikation, die die Daten des Raumbelegungsplans abruft und in Form eines SOAP-Webservices zur Verfügung stellt. Nachdem der Webservice in der ersten Version auf den schon doch recht angestaubten Libraries NuSOAP und php-html basierte, liegt der zweiten Version mittlerweile das Zend Framework in Version 1.6 und die Weiterentwicklung von php-html, simple_html_dom, zu Grunde. Das Resultat ist besseres Caching mit Zend_Cache, besserer Code und die Möglichkeit, das System flexibel zu erweitern.
Die Grundfunktion des Webservices besteht darin, den HTML-Quellcode des Online-Raumbelegungsplans, zu parsen, die relevanten Daten auszufiltern und diversen Clients als aufbereitete Daten zur Verfügung zu stellen. Der Webservice erlaubt das Filtern der Daten nach Datum, Studiengang, Lektor und Raum und ermöglicht es zusätzlich, Listen von ebendiesen Filterungskriterien auszulesen, um beispielsweise Auswahlfelder in Clientapplikationen damit zu füllen.
Der Webservice (PHP5/Zend_Soap) ist hier zu finden: http://raumbelegung.stud.ailoo.net/service (WSDL)
Desktopclient
Da ein Webservice ohne darauf aufbauende Applikation relativ langweilig ist, habe ich mich daran gemacht, einen Desktopclient in C# zu entwickeln. Da meine C#-Kenntnisse — vor allem was GUI-Applikationen angeht — (noch) relativ bescheiden sind, ist das Programm nicht sonderlich ausgefeilt und teilweise fehleranfällig. Anregungen und Kritik sind natürlich immer willkommen :)
Changelog
- 0.2.2: Kleinere Bugfixes
- 0.2.1: Umstellung der Webservice-URL
Anmerkung: Mittlerweile (v.A. durch die Verschmelzung Client/Service und die AJAX-Funktionalität) läuft der Webclient deutlich flüssiger und zuverlässiger als der Desktopclient.
Download
Der Desktopclient als Windows Installer Package (msi).
- raumbelegung_setup_0.1.7.msi (2.64 MB)
- raumbelegung_setup_0.2.0.msi (3.4 MB)
- raumbelegung_setup_0.2.1.msi (3.4 MB)
- raumbelegung_setup_0.2.2.msi (3.4 MB)
- Setup.msi (2.64 MB)
Webclient
Um den Service nicht nur auf Windows-Clients zu beschränken, gibt es seit kurzem einen Webclient, der ebenfalls in PHP geschrieben ist. Das Layout ist zwar relativ spartanisch, der Client funktioniert aber und erlaubt komfortablere Filterungsmethoden als der Desktopclient. Seit der zweiten Version greift der Webclient nicht mehr über das SOAP-API auf den Service zu, sondern ist voll in den Service integriert und basiert somit ebenfalls auf dem Zend Framework.
- Raumbelegung Webclient
Der Plan bietet direkt über die URL diverse Filtermöglichkeiten, hier ein paar Beispiele:
- Direkter Link für den Studiengang WI07-VZ für den aktuellen Tag
- Andere Filterungsmöglichkeiten
- Kombination von Filtern
- Der Date-Filter ist recht flexibel (siehe dazu PHP strtotime)
- Dies lässt sich natürlich auch mit anderen Filtern kombinieren
- Zusätzlich gibt es auch eine Wochenübersicht
- Direktaufruf für einen Studiengang
- Direktaufruf für eine Kalenderwoche (KW 44, weil der 29.10 in dieser KW liegt)
- iCal Wochenübersicht
-
- Siehe Post
Changelog
- 0.2.3: iCal Support für Wochenübersicht
- 0.2.2: Wochenübersicht hinzugefügt
- 0.2.1: Erweiterung um AJAX-Funktionen mittels jQuery
- 0.2: Zweite Version basierend auf Zend Framework
- 0.1: Erste Version basierend auf altem Service
- Lizenz
- sämtlicher Code dieses Projekts (ausgenommen der verwendeten Biblotheken, für die die jeweilige Lizenz gilt) unterliegt der GPL (GNU General Public License)
- Sourcecode
Alle Komponenten sind im Sourcecode der aktuellen Version über Subversion verfügbar. Da ich für die neue Version ein anderes SCM-System als Subversion verwendet habe und sich das Ganze im Moment noch recht stark in Entwicklung befindet, ist der aktuelle Code bisweilen nicht online verfügbar. Falls jemand interessiert ist, möge er mich kontaktieren.- Changelogs
- Da die Changelogs mehr oder weniger in Blogposts festgehalten wurden/werden, dient der entsprechende Tag als gute Anlaufstelle.
Wem der Service nützlich ist und eventuell Lust hat, Clients für andere Betriebssysteme zu schreiben oder die bestehenden Clients zu erweitern, dem sei dies ausdrücklich erlaubt ;)
Tortellini mit grünen Spargelspitzen in Schinken-Rahm-Sauce
Ich bin mal wieder dazu gekommen, mir zu merken, was ich so fabriziert habe und dazu noch ein Foto zu machen (leider nur mit dem Handy, deswegen die schlechte Qualität). Ist zwar nicht das gesündeste aber geht schnell und schmeckt.
Kleineres Design-Update
Es gibt mal wieder ein kleineres Design-Update:
- das Theme ist nun komplett auf Blueprint CSS Grids aufgebaut
- Inhalte aus der Sidebar sind in einen neuen Footer gewandert
- das orange Farbschema wurde durch ein grasgrünes ersetzt
Firefox 3 Download Day
Sie müssen nur Firefox 3 am “Download Day” herunterladen – so einfach ist das. Wir werden Sie nicht darum bitten, ein Schwert zu schlucken oder 30 Löffel mit Ihrem Gesicht zu balancieren – natürlich wäre das schon ziemlich klasse.
Dieser Spruch prangt in letzter Zeit auf spreadfirefox.com, um User auf den Firefox 3 Download Day aufmerksam zu machen. Und dieser Download Day ist heute, also hab ich mich mal drangemacht, Firefox runterzuladen. Dabei ist mir ein kleiner Patzer auf der Download-Seite aufgefallen (man achte auf die Versionsnummer). Nichtsdestotrotz freu ich mich jetzt aufs Testen der Final-Version.
Update: ich hätte den Beitrag doch später schreiben sollen. Ich habe arge Probleme, die Mozilla-Seiten aufzurufen und der Download schwankt so zwischen 10 und 15 KB/s. Aber was solls, für den Rekord kann dies nur positiv sein :).