Palvelun tekninen rakenne
Tekninen arkkitehtuuri on kuvattu myös projektin Github-sivuilla.
Arkkitehtuuri koostuu neljästä osasta:
- Dataa keräävät anturit lähettävät tapahtumia pilvipalvelimelle HTTP POST-komennoilla.
- Pilvipalvelin tallentaa anturien tapahtumat, hallitsee datan luonnin ja haun käyttöoikeuksia ja tarjoaa käyttöliittymälle valmiiksi pureskeltua dataa.
- Selainkäyttöliittymä näyttää tietoa anturien datan perusteella
- 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.
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ä.