D1-avain

Diabetesliiton itsearviointityökalu, jonka teknisestä toteutuksesta vastasin

Teknologiat: Ruby, Rails, Coffeescript, Backbone.js
Demo

D1-avain on Diabetesliiton ylläpitämä itsearviointiväline tyypin 1 diabeetikoille. Vastasin tämän sovelluksen teknisestä toteutuksesta.

Koska kyseessä oli pitkäaikaissairauteen liittyvä aihepiiri, oli tietoturva ja yksityisyydensuoja yksi tärkeistä huomioon otettavista asioista. Alkuperäinen Diabetesliiton konseptiluonnos perustui siihen, että työkalun käyttäjä tarvitsi henkilökohtaisen käyttäjätunnuksen, jotta kyselyn voisi tarvittaessa jättää kesken ja jatkaa sen täyttämistä myöhemmin. Jotta palvelun ylläpidosta ja tietoturvasta huolehtiminen olisi Diabetesliitolle helpompaa, päätin ehdottaa toisenlaista toteutusperiaatetta.

Tuotantoon päätyneessä toteutuksessa ei ole lainkaan käyttäjätunnuksia, ja muutenkin henkilötiedon keräämistä vältetään mahdollisimman paljon. Kysessä on periaatteessa yhden sivun sovellus, ja palvelin palauttaa D1-avaimen käyttämän datasetin käyttäjän selaimeen ensimmäisellä latauksella. Kyselyn välituloksia tallennetaan niinikään vain selaimeen localstorage-ominaisuutta käyttäen. Tällä tavoin palvelimelle jää ainoastaan minimaalinen ja teknisesti välttämätön jälki siitä, miten käyttäjä on palvelua käyttänyt ja selaillut. Ainoa palvelimelle palautettu data on käyttäjän vapaaehtoisesti ja anonyymisti lähettämät taustatiedot itsestään.


Tekniseltä toteutukseltaan D1-avain on Ruby on Rails -sovellus, joka hyödyntää Backbone.js-kirjastoa käyttöliittymässä. Koko kysely/väittämä-datasetti on kohtuullisen suppea, joten se voidaan ladata käyttäjän selaimeen heti ensimmäisellä sivulatauksella. Vastaukset väittämiin tallentuvat selaimen localstorageen. Näin ollen väittämiin vastaaminen ei jätä jälkeä palvelimelle lainkaan, vaan toiminnot päivittävät vain selaimen omaa tallennustilaa.

Hallintaliittymänä D1-avain käyttää Activeadminia. Palvelun datasisältö oli ennalta määritelty, eikä suunnitelmissa ollut, että sisältöä olisi tarvetta muokata useasti. Näin ollen projekti ja sen budjetointi ei sisältänyt yksilöllisen hallintaliittymän tekemistä.