VVK - reaaliaikaiset vapauskartat

varausjärjestelmien uusi sukupolvi

Katso projektia GitHubissa

Palvelun tekninen rakenne

arkkitehtuurikaavio

Tekninen arkkitehtuuri on kuvattu myös projektin Github-sivuilla.

Arkkitehtuuri koostuu neljästä osasta:

  1. Dataa keräävät anturit lähettävät tapahtumia pilvipalvelimelle HTTP POST-komennoilla.
  2. Pilvipalvelin tallentaa anturien tapahtumat, hallitsee datan luonnin ja haun käyttöoikeuksia ja tarjoaa käyttöliittymälle valmiiksi pureskeltua dataa.
  3. Selainkäyttöliittymä näyttää tietoa anturien datan perusteella
  4. Datan analyysi pureksii raakadataa ja löytää uusia, yllättäviä asioita

Tiedonkeruun toteutus

Tilojen varaustilannetta seurataan yhdistelemällä tietoa liikeantureista ja oven aukioloa seuraavista antureista. Mikäli tilassa on ollut liikettä, se pysyy varattuna niin kauan, kuin ovi on kiinni.

antureita ja tukiasema

Piloteissa on käytetty kahta teknologiaa, Telldusin Tellstick-järjestelmää sekä Z-wave.me:n Razberry-tuotetta. Molemmat tarjoavat langattomien antureiden tiedot kohtuullisen hyvin dokumentoiduilla, avoimilla rajapinnoilla ja molempien ohjelmistokomponentit ovat myös avointa lähdekoodia.

Molemmat vastaanottimet on liitetty kontrollerina toimivaan Raspberry Pi-koneeseen, jonka asennus anturikontrolleriksi on osittain automatisoitu. Adele on myös toteuttanut ohjelmistot tiedon keräämiseksi VVK:n pilvipalveluun z-waysta ja tellstickista.

Tietoa tallettava pilvipalvelu

Pilvipalvelua käytetään pelkästään APIen kautta, sillä ei ole omaa www-käyttöliittymää. Pilvipalvelu-backend on vastuussa datan keruusta ja reaaliaikaisen tiedon tarjoamisesta käyttöliittymäkomponenteille. Toteutusteknologiana on Java ja Spring boot.

Taustalla toimiva tietokanta on PostgreSQL.

Käyttöliittymä

VVK:n käyttöliittymä on toteutettu staattisilla www-sivuilla plain Javascriptina. Se käyttää Leaflet-kirjastoa kartan esittämiseen ja chartjs- ja momentjs-kirjastoja datan visualisointiin. Käyttöliittymä on suunniteltu toimimaan yhtä hyvin pöytäkoneissa ja älypuhelimissa.

Aineiston analysointi

Avoimien rajapintojen vuoksi aineistoa voi työstää haluamillaan työkaluilla. Omat data-analyysimme tehtiin R-kielellä.