UiB Romsjekker

I min tid som student ved Universitetet i Bergen er det spesielt en ting som har pekt seg ut: Det er vanskelig å finne fram på UiBs nettsider. Flere studenter med erfaring innenfor utvikling har den siste tiden tatt tak i dette, blant annet gjennom Kvast og Emnesjekkeren. Denne artikkelen handler om en app som gjør det enklere å finne fram til hvilke rom som er ledige ved UiB.

Skjermbilde 2015-05-27 kl. 14.55.38
Velkomstbildet til Romsjekkeren

Appen vi har lagd var i utgangspunktet en obligatorisk oppgave i faget INFO233 (avansert programmering). Vi skulle hente data fra rom.app.uib.no og vise data på et enkelt grafisk brukergrensesnitt (GUI) laget i Swing.

Anders og jeg så raskt at det var et større potensiale her enn en ren obligatorisk oppgave. Det måtte jo være mulig å hente ned data i sanntid og vise hvilke rom som er ledige på UiB til enhver tid.

Dessuten måtte det være mer moderne måter å vise et GUI på enn gode, gammeldagse Swing i Java.

Det eneste oppgaven dikterte var at dataene skulle hentes ut med en HTML-parser, altså hente informasjon fra en nettside. Det hadde nok vært et bedre alternativ å bruke åpne data, og dette skal jeg komme tilbake til.

Hvordan finne rom på UiBs sider

Hvis man vet hva man skal se etter og hvor man skal se, kan man finne fram til Timeplan og rombestilling. Inne på siden er det haugevis med informasjon og det er vanskelig å vite hvor man skal trykke hvis man bare ønsker å finne ut hvilke rom som er ledige. Siden tilbyr riktignok alt som har med rom på UiB å gjøre, men kanskje på en litt ustrukturert måte. Her er det mange ting å ta tak i!

Romsjekkeren per idag

Appen vår er utviklet i Java og JavaFX (for GUI), og henter informasjonen ved å gjennomgå HTML-sidene direkte fra rom.app.uib. Hvert bilde i appen tilsvarer ett steg videre i rom.app.uibs timeplan. Velger du for eksempel SV-bygget går du videre på samme måte som du gjør i rom.app.uib og får velge rom. Velger du rom får du tegnet en tabell med dager i uken og hvilke rom som er opptatt til hvilken tid. Hvis det ikke eksisterer noen aktiviteter, vil ikke det bli vist en tabell (det vil stå at den er tom). I tillegg kan man lagre sitt «favoritt-rom», og ha tilgang til ukesinformasjonen til dette rommet den inneværende uken.

Skjermbilde 2015-05-27 kl. 15.21.42 Skjermbilde 2015-05-27 kl. 15.21.56 Skjermbilde 2015-05-27 kl. 15.23.23 Skjermbilde 2015-05-27 kl. 15.22.16

Hva kan gjøres videre?

På grunn av mye arbeid med studier og lite tid til prosjekter, ble ikke appen førsteprioritet. Som nevnt tidligere, er det sannsynligvis mest praktisk å bruke åpne data til en slik applikasjon. Vi har ikke sjekket grundig om disse dataene finnes åpne, men uansett så kan de gjøres åpne. Det er sikkert også mulig å gjøre appen til en mobilapplikasjon for smarttelefoner. Studenter flest har smarttelefoner, og det vil derfor være nyttig og hendig å ha den som mobilapp. Anders og jeg har valgt å gjøre prosjektet til åpen kildekode, og gir de som vil sjansen til å fortsette utviklingen av appen (så lenge vi i det minste blir nevnt i en ferdig produksjon).

Jeg vil også nevne at appen er i en alfa-versjon, så mye kan gjøres for å forbedre den.

Appen kan lastes ned gratis fra: Romsjekkeren (OS X, Windows)

Prosjektet ligger åpent på: https://github.com/gauteremen/romsjekkerenUiB

Gjerne ta kontakt med meg om noen ønsker å fortsette utviklingen!

Én kommentar til “UiB Romsjekker”

  1. Kjekt å lese om prosjektet!

    Ein kan hente ut status på rom for inneverande dag via opne data frå UiB.
    Bruk data frå datasettet «eventBoard»:
    http://opendata.app.uib.no/syllabus.fd.aapnedata.html

    For liste over bygningar:
    https://timeplan.data.uib.no/{api-key}/json/eventBoard
    Deretter kan ein liste ut rom i ein bygning ved å kalle for eksempel:
    https://timeplan.data.uib.no/{api-key}/json/eventBoard/RFB
    RFB = Realfagbygget
    Og deretter på det enkelte rom ved å kalle:
    https://timeplan.data.uib.no/{api-key}/json/eventBoard/RFB/A2

    Sjå http://data.uib.no/ for meir informasjon om opne data frå UiB, korleis skaffe seg API-nøkkel etc.

Det er stengt for kommentarer.