Matias Berg
Bek Eljurkaev
Minna Lehtomäki
Juhani Sihvonen
Hannu Viinikainen
Versio 1.0.0
Julkinen
Jyväskylän yliopisto
Tietotekniikan laitos
Jyväskylä
Tekijät:
matias.j.k.berg@student.jyu.fi
kaeljurk@student.jyu.fi
minna.j.lehtomaki@student.jyu.fi
juhani.j.p.sihvonen@student.jyu.fi
hannu.j.viinikainen@student.jyu.fi
Dokumentin nimi: Timppa-sovellusprojekti, sovellusraportti
Tiivistelmä: Timppa-projekti kehitti Jyväskylän yliopiston tietotekniikan laitoksella kehitettyyn TIM-oppimisympäristöön WWW-sovelluksen tukemaan välitöntä vuorovaikutusta massaluennoilla. Kehitetyllä sovelluksella luennoitsijat voivat luoda luentoja, laatia kysymyksiä, kysyä luennolle liittyneiltä opiskelijoilta kysymyksiä luennon aikana, sekä esittää kysymysten vastausjakaumia. Oppilaat voivat liittyä luennoille, sekä vastata luentokysymyksiin, kysyä kysymyksiä ja kommentoida luentoa luentoseinän avulla. Sovellusraportissa kuvataan sovelluksen käyttöliittymää ja kokonaisrakennetta, tavoitteiden toteutumista ja jatkokehitysideoita.
Avainsanat: Jatkokehitys, järjestelmätestauksen tulokset, kokonaisrakenne, käyttöliittymä, tavoitteiden toteutuminen, tietokannan taulurakenne.
Muutoshistoria:
Versio | Päivämäärä | Muutokset | Tekijät |
---|---|---|---|
0.0.1 | 30.4.2015 | Luotiin dokumenttipohja pääotsikoineen. | ML |
0.0.2 | 15.5.2015 | Tarkennettiin otsikointia ja lisättiin kuvauksia lukujen alkuihin. | ML |
0.0.3 | 28.5.2015 | Aloitettiin Käyttöliittymän kuvaaminen. | ML |
0.1.0 | 7.6.2015 | Ensimmäinen versio raportista lähetettiin projektiorganisaatiolle. | JS, MB |
0.1.1 | 12.6.2015 | Tehtiin muutoksia palautteen perusteella. | MB |
0.2.0 | 25.8.2015 | Laajennettiin käyttöliittymien kuvausta koskevia lukuja. | MB |
0.3.0 | 26.8.2015 | Laajennettiin käyttäliittymien kuvausta, sovelluksen rakennetta ja tietokannan rakennetta koskevia lukuja. | HV, MB |
0.3.1 | 31.8.2015 | Tietokannan rakennetta koskevaa lukua korjattiin palautteen perusteella. | MB |
0.3.4 | 2.9.2015 | Sovelluksen rakennetta koskevaa lukua korjattiin palautteen perusteella. | HV |
0.3.5 | 3.9.2015 | Käyttöliittymien kuvausta koskevia lukuja korjattiin palautteen perusteella ja tehtiin muita muutoksia. | MB |
0.4.0 | 4.9.2015 | Termejä ja tavoitteiden toteutumislukuja muokattiin. | BE, MB |
0.4.5 | 9.9.2015 | Muokattiin lukuja 1-4 palautteen perusteella. | MB |
0.9.0 | 10.9.2015 | Muokattiin loppuja lukuja palautteen perusteella. | MB |
1.0.0 | 14.9.2015 | Muokattiin dokumenttia palautteen perusteella. | MB |
Timppa-projekti kehitti Jyväskylän yliopiston tietotekniikan laitoksella kehitettyyn TIM-oppimisympäristöön sovelluksen tukemaan välitöntä vuorovaikutusta massaluennoilla.
Tekijät:
matias.j.k.berg@student.jyu.fi
kaeljurk@student.jyu.fi
minna.j.lehtomaki@student.jyu.fi
juhani.j.p.sihvonen@student.jyu.fi
hannu.j.viinikainen@student.jyu.fi
Tilaaja:
vesa.t.lappalainen@jyu.fi
antti-jussi.lakanen@jyu.fi
Ohjaajat:
mika.k.lehtinen@student.jyu.fi
santanen@mit.jyu.fi
Yhteystiedot:
timppa@korppi.jyu.fi
ja timppa_opetus@korppi.jyu.fi
https://korppi.jyu.fi/kotka/servlet/list-archive/timppa
jahttps://korppi.jyu.fi/kotka/servlet/list-archive/timppa_opetus
Timppa-projekti kehitti Sovellusprojekti-kurssilla keväällä 2015 Jyväskylän yliopiston tietotekniikan laitoksella kehitettyyn TIM-oppimisympäristöön sovelluksen tukemaan välitöntä vuorovaikutusta massaluennoilla. TIM-järjestelmän ohella aikaisemmin kyselyominaisuuksia varten tarvittiin erillinen inSitu-järjestelmä. Kahden erillisen ohjelmiston käyttö, ylläpito ja kehittäminen on todettu hankalaksi ja työlääksi.
Timppa-projektiryhmä lisäsi TIM-järjestelmään kyselyominaisuuden, jolla pystyy luomaan monipuolisempia kysymyksiä kuin vanhassa inSitu-järjestelmässä. Projektiryhmä lisäsi TIM-järjestelmään myös luentoseinän, johon oli olemassa erillinen sivusto ennestään.
Sovellusraportin laatimisessa on hyödynnetty Liikkuva-projektin sovellusraporttia [8] sekä Timppa-projektin projektiraporttia [4], projektisuunnitelmaa [5], vaatimusmäärittelyä [6] sekä järjestelmätestausraportteja [1] ja [2]. Timppa-projektin laatimiin dokumentteihin kuuluu myös järjestelmätestaussuunnitelma [3].
Sovellusraportti muodostuu kahdeksasta luvusta. Luvussa 2 kuvataan sovelluksen kannalta olennaisia termejä. Luvussa 3 kuvataan sovelluksen käyttöliittymän valikkoja, yleisnäkymää ja luentoja koskevia toimintoja. Luvussa 4 kuvataan käyttöliittymän kysymyksiin liittyviä toimintoja. Luvussa 5 kuvataan sovelluksen kokonaisrakennetta ja rajapintoja. Luvussa 6 kuvataan sovelluksen tietokannan rakennetta. Luvussa 7 kuvataan tavoitteiden toteutumista ja listataan jatkokehitettäviä ominaisuuksia. Raportin päättää yhteenvedon sisältävä luku.
Luvussa kuvataan projektissa käytettäviä aihealueen ja kehitetyn järjestelmän termejä.
Projektin aihealueen termejä ovat seuraavat:
Dokumentissa käytettyjä teknisiä termejä ovat seuraavat:
Luvussa esitellään sovelluksen käyttöliittymän sivu- ja ylävalikoiden toiminnallisuutta, luentojen luomista sekä luentoseinän toiminnallisuutta.
Kuvassa 3.1 esitetään järjestelmän käyttöliittymän näkymät, kun luento on käynnissä.
Luennon ollessa käynnissä sovellus koostuu kirjaimilla kuvaan 3.1 merkityistä seuraavista näkymistä:
Kuvan 3.2 sivuvalikossa näkyvät kaikki mahdolliset sivuvalikkoon tulevat ikonit, mutta sovelluksen käytössä niitä kaikkia ei välttämättä aina ole samaan aikaan näkyvissä.
Ikonien merkitykset ovat seuraavat:
Kutakin ikonia klikkaamalla avautuu kuvissa 3.3-3.7 esitetyt sivuvalikot.
Kuvan 3.3 dokumentin sisällysluettelossa esitetään kaikki kolmen ylimmän tason lukuotsikot.
Kuvan 3.4 sivuvalikossa esitetään dokumentin luennot. Vaihtoehdossa A dokumentissa ei ole yhtään luentoa, sekä vaihtoehdossa B dokumentissa on jo pidetty luento, käynnissä oleva luento ja tulevia luentoja.
Kuvan 3.5 sivuvalikossa esitetään dokumentin kysymykset. Vaihtoehdossa A dokumentissa ei ole yhtään kysymystä ja vaihtoehdossa B dokumentissa on kaksi kysymystä.
Kuvan 3.6 käyttäjävalikossa luennolle on liittyneenä kaksi käyttäjää, joista toisella on luennoitsijan oikeudet ja toisella oppilaan oikeudet. Nimen perässä oleva aika tarkoittaa kellonaikaa, jolloin viimeksi yhteys käyttäjään saatiin.
Kuvan 3.7 asetusvalikossa luento on käynnissä, sillä luentoasetukset näkyvät. Tässä valikossa voi vaikuttaa TIMin ulkoasuun ja muokata luennon aikana näytettäviä näkymiä.
Kuvan 3.8 ylävalikko näyttää tilanteen, jossa dokumentissa ei ole tulevia tai käynnissä olevia luentoja. Uuden luennon luominen aloitetaan klikkaamalla +-painiketta.
Kuvan 3.9 ylävalikko näyttää tilanteen, jossa dokumentissa on jo luentoja.
Kuvan 3.9 ylävalikkoon merkittyjen kohtien merkitykset ovat seuraavat:
Kuvan 3.10 ylävalikko näyttää tilanteen, jossa dokumentissa luento nimeltään ITKS100_1 on käynnissä. Valikossa näkyy luennon aloitus- ja päättymisaika. Painikkeiden merkitykset ovat seiraavat:
Kuvan 3.11 luennon luomisikkunassa luennolle on annettu nimi ja salasana, joka vaaditaan opiskelijoilta luennolle pääsyä varten. Lisäksi luennolle on määrätty aloitusaika, kesto ja opiskelijoilla on mahdollisuus liittyä luennolle 15 minuutia ennen luennon alkua.
Kuvan 3.12 päivämääräkenttä ilmestyy, kun aloituspäivämäärää tai lopetuspäivämäärää halutaan muokata.
Kuvassa 3.13 näkyy luentoseinä avattuna. Kohdassa A aika ja lähettäjän käyttäjätunnus näkyvät, sekä kohdassa B molemmat ovat piilotettuna. Lähettääkseen viestin luentoseinälle se tulee kirjoittaa seinän alareunassa olevaan tekstilaatikkoon ja on painettava Enter-näppäintä.
Luennon päättäminen onnistuu painamalla B-painiketta kuvassa 3.10 olevassa valikossa. Luennon tietoja voi tarkastella painamalla sivuvalikosta (kuvassa 3.4) luennon nimeä, jolloin avautuu kuvassa 3.14 näkyvä sivu.
Oppilaalle sivuvalikko on muuten samanlainen kuin opettajallakin, mutta siinä ei näy kysymyskohtaa (katso kuva 3.2 C), eikä myöskään luennolla olijoita (katso kuva 3.2 D). Oppilas ei voi muokata tai luoda luentoja, joten ylävalikosta häneltä puuttuvat luennon luomis- ja muokkauspainikkeet.
Kuvan 3.15 ikkuna tulee näkyviin, kun oppilas painaa luennolle liittymispainiketta (katso kuva 3.9 A). Ikkunassa kysytään, haluaako oppilas luentokysymykset ja luentoseinän näkyviin, koska oppilas saattaa lukea samaa materiaalia kahdella eri laitteella ja haluaa kysymykset vain toiseen.
Luennolta poistuminen onnistuu vastaavasti kuin opettajalla ylävalikosta painamalla painiketta A kuvassa 3.10.
Menneiden luentojen tarkastelu onnistuu kuten opettajallakin kuvassa 3.14.
Luvussa esitellään sovelluksen käyttöliittymän toiminnallisuuksista kysymyksen luonti sekä kysymyksen kysymistä ja siihen vastaamista.
Kuvan 4.1 valikko ilmestyy käyttöliittymään, kun opettajan oikeudet dokumenttiin omaava käyttäjä klikkaa haluttua tekstikappaletta kaksi kertaa.
Jos kuvan 4.1 valikosta valitsee kysymyksen luomisen, ilmestyy kuvan 4.2 mukainen kysymksen luomisikkuna. Lomake koostuu kysymyksen otsikosta, itse kysymyksestä, kysymystyypistä ja kysymyksen kestosta.
Kuvassa 4.3 esitetään kysymyksen luontilomakkeeseen ilmestyvät vastausvaihtoehdot, jos kysymystyypiksi valitaan monivalintakysymys vastaustyyppinä radiopainike. Vastausvaihtoehtojen oikealla puolella oleviin tekstikenttiin kirjoitetaan kyseisestä vastauksesta saatavat pisteet, jos ne halutaan pisteyttää. Uuden vastausvaihtoehdon voi lisätä painamalla +-painiketta.
Kuvassa 4.4 esitetään kysymyksen luontilomakkeen vastausvaihtoehdot, kun kysymystyypiksi valitaan monivalintakysymys vastaustyyppinä valintaruudut.
Kuvassa 4.5 esitetään kysymyksen luontilomakkeen vastausvaihtoehdot, kun kysymystyypiksi valitaan True-False-väittämät.
Kuvassa 4.6 esitetään kysymyksen luontilomakkeen vastausvaihtoehdot, kun kysymystyypiksi valitaan matriisikysymys ja vastaustyypiksi valitaan tekstikentät.
Kuvassa 4.7 esitetään kysymyksen luontilomakkeen vastausvaihtoehdot, kun kysymystyypiksi valitaan matriisikysymys ja vastaustyypiksi valitaan radiopainikkeet.
Kuvassa 4.8 esitetään kysymyksen luontilomakkeen vastausvaihtoehdot, kun kysymystyypiksi valitaan matriisikysymys ja vastaustyypiksi valitaan valintaruudut.
Kysymyksen kysyminen aloitetaan klikkaamalla kysymysmerkkikuvaketta kappaleen alla (katso kuva 4.9). Viemällä kursorin kysymysmerkin päälle kysymyksen otsikko tulee näkyviin.
Klikattuasi kysymysmerkkikuvaketta ilmestyy kuvan 4.10 kysymyksen esikatseluikkuna, jossa voit muokata kysymystä, kysyä kysymyksen tai sulkea esikatseluikkunan.
Kuvassa 4.11 näkyy opettajan käyttöliittymän tilanne, kun kysymys on kysytty ja vastausaika on käynnissä.
Vastausajan umpeuduttua ilmestyy kuvassa 4.12 näkyvä teksti. Vastausaika ei ole siltikään loppunut, vaan se loppuu vasta, kun opettaja painaa vastaus- tai suljepainiketta.
Kysymyksen muokkaaminen onnistuu painamalla kuvan 4.10 kysymyksen esikatseluikkunassa olevaa muokkauspainiketta. Kuvassa 4.13 näkyy kysymyksen muokkausikkuna, joka vastaa kuvissa 4.2-4.8 esitettyjä kysymyksen luomisikkunoita.
Kuvan 4.13 poistopainikkeesta avataan kuvan 4.14 poiston varmistusikkuna. Ikkuna saattaa näyttää erilaiselta eri selaimissa.
Kuvan 4.15 kysymyksen vastausjakaumaikkunan opettaja saa näkyviin kysymyksen aikana ja kysymisen jälkeen. Kysymisen aikana sen saa näkyviin (katso kuva 4.11) Show answers -painikkeella. Kysymisen jälkeen tilastoja voi tarkastella luennon yhteenvetosivulta (katso kuva 3.14).
Kysymysten osalta oppilaan käyttöliittymä painottuu lähinnä kysymyksiin vastaamiseen. Kuvassa 4.9 näkyvät kysymyskuvakkeet eivät näy opiskelijoille, kun he lukevat luentomateriaalia.
#Oppilaalla kysymykseen vastaaminen onnistuu samalla ikkunalla kuin opettajallakin (katso kuva 4.11), mutta siinä ei näy tilastoja, eikä vastausten näyttämispainiketta.
Luvussa kuvataan sovelluksen kokonaisrakennetta sekä käytettyjä ulkopuolisia komponentteja. Luvussa käydään myös lävitse kaksi esimerkkiä käyttöliittymän sekä palvelimen välisestä kommunikaatiosta.
TIM-järjestelmä jakautuu kuvan 5.1 mukaisesti päätelaitteen asiakassovellukseen, sekä palvelinlaitteen palvelinsovellukseen ja tietokantaan.
Päätelaitteilla käytetään WWW-selaimessa pyörivää sovellusta, joka toimii TIMin käyttöliittymänä. Käyttöliittymän tarjoamat tiedot ja toiminnot poikkeavat opettajan ja opiskelijan käyttäjärooleilla.
Palvelinsovellus suorittaa toiminnot sekä tekee pyyntöjä tietokantaan ja vastaanottaa dataa tietokannalta. Palvelin ottaa vastaan HTTP-pyyntöjä asiakassovelluksilta ja vastaa niihin lähettämällä JSON-muodossa olevaa dataa päätelaitteille.
Tietokanta sisältää järjestelmän varastoimat tiedot. Tarkemmat tiedot löytyvät luvusta 6.
Yleinen käyttötapaus alkaa siitä, että käyttäjä navigoi WWW-selaimella käyttämään sovellusta. Tämän jälkeen hän suorittaa käyttöliittymässä jonkun toiminnon, jolloin selain lähettää palvelimelle toimintoon liittyvät tiedot HTTP-pyynnöllä. Palvelin tarkastaa, että pyyntö on hyväksyttävä sekä tarvittaessa suorittaa kyselyn tietokantaan. Toteutettuaan tämän, palvelin vastaa käyttäjällä lähettämällä vastauksen JSON-muodossa. Käyttäjän selaimessa pyörivä sovellus käsittelee saamansa vastauksen ja esittää sen käyttäjälle.
TIM-järjestelmän olennaisimmat luokkarakenteet ovat esitelty kuvassa 5.2.
Kuvan 5.2 luokkarakenteet ovat seuraavat:
html
- ja css
-päätteiset tiedostot.js
-päätteisistä tiedostotoista.tim.py
-tiedostossa.py
-päätteisissä tiedostoissa.Timppa-projektissa kehitettyjen olennaisimpien luokkien kuvaukset ja niiden yhteydet ovat seuraavat:
tim.py
toimii välittäjänä käyttöliittymän ja tietokannan välissä.Static/scripts/
-kansiossa ovat seuraavat luokat ja kansiot:
Kaikki yllämainitut tiedostot ja kansiot sijaitsevat timApp
-kansiossa.
Oletuksena kuvan 5.3 sekvenssikaaviossa on se, että luento on käynnissä ja sekä luennoitsija että opiskelija ovat luennolla. Luennoitsijalla on myös käytössä vastausten hakeminen. Kaaviota on myös yksinkertaistettu jättämällä pois viestien hakeminen, joka on osa HTTP-kutsua getUpdates
.
Kysymysten kysymisen long-poll alkaa siitä, että luennoitsija kysyy kysymyksen selaimessaan. Heti kysymisen jälkeen opettajan käyttöliittymä lähettää uuden pyynnön, jonka avulla hän hakee opiskelijoiden vastaukset selaimelleen. Tämän jälkeen palvelin hakee kysymyksen tietokannasta, sekä lähettää sen opiskelijoille. Opiskelijat saavat kysymyksen getUpdates
-metodiin vastauksena. Tämän jälkeen he vastaavat kysymykseensä selaimellaan, joka lähettää vastauksen palvelimelle. Palvelin tallentaa vastauksen tietokantaan ja lähettää sen opettajalle. Opettajan selain on silmukassa, joka pyytää uudet vastaukset aina entiset saatuaan. Tämä silmukka loppuu sitten, kun opettaja ei enää hae vastauksia.
Kuvassa 5.4 on selitetty, kuinka luentoseinän viestien hakeminen toimii. Alkutilanteessa molemmat käyttäjät ovat samalla luennolla, ja heillä on seinäviestien hakeminen asetettuna päälle. Molemmat henkilöt lähettävät getUpdates
-metodin palvelimelle. Jos joku käyttäjistä lähettää seinälle viestin, huomaa palvelin tämän ja lähettää kaikki uudet viestit molemmille käyttäjille. Vaihtoehtoisesti, jos kukaan ei lähetä viestiä kymmenen sekunnin aikavälillä, molempien getUpdates
-pyynnöt saavat vastaukseksi tiedon siitä, että ei ole tullut uusia viestejä. Tämän jälkeen käyttäjien selaimet lähettävät uudet getUpdates
-pyynnöt, mikäli henkilöt ovat vielä luennolla.
Tietojärjestelmä hyödyntää seuraavia kirjastoja ja sovelluskehyksiä:
Luvussa kuvataan jo ennen projektia sovelluksessa olleita tauluja pintapuolisesti. Projektiryhmän luomat tietokannan taulut ja kentät kuvataan tarkemmin.
Timppa-projektissa ei muokattu seuraavia TIM-järjestelmän tauluja:
Lecture-taulu sisältää luennot sisältäen seuraavat kentät:
LectureAnswer-taulu sisältää luennoilla esitettyihin kysymyksiin tulleet vastaukset sisältäen seuraavat kentät:
LectureUsers-taulu liittää käyttäjät luentoihin sisältäen seuraavat kentät:
Message-taulu sisältää kaikki sovelluksessa lähetetyt luentoseinäviestit sisältäen seuraavat kentät:
Question-taulu sisältää kaikki luodut kysymykset sisältäen seuraavat kentät:
Luvussa kuvataan vaatimusten toteutumista sekä heikkoja ja puutteellisia toteutusratkaisuja. Sovelluksen vaatimukset ja niiden toteutuminen on kuvattu vaatimusmäärittelyssä [6].
Vaatimusten toteutuminen vaatimuskohtaisesti on kuvattu vaatimusmäärittelyssä [6]. Pakollisista 24 vaatimuksesta toteutui kokonaan 21. Tärkeistä 19 vaatimuksesta toteutui 14. Mahdollisista 6 vaatimuksesta toteutui yksi vaatimus. Ainoa ideatason vaatimus ei toteutunut. Vaatimusmäärittelyyn ei kirjattu prioriteetilla Ei toteuteta yhtään vaatimusta. Kaikki pakolliset toteutumattomat vaatimukset liittyivät kysymyksen luontiin.
Toukokuussa Matias Berg laati järjestelmätestausssuunnitelman [3] ja suoritti sitä noudattaen järjestelmätestaukset Google Chromella ja Internet Explorerilla. Testausten tulokset on raportoitu järjestelmätestausraporteissa [1] ja [2]. Google Chromella suoritetussa järjestelmätestauksessa [1] 80 testitapauksesta 63 havaittiin virheitä, kun taas Internet Explorerilla suoritetussa testauksessa [2] 83 testitapauksesta 45 havaittiin virheitä ja neljää ei voitu suorittaa.
Projektin aikana sovelluksen eri versioita koekäyttivät vastaava ohjaaja Jukka-Pekka Santanen sekä tilaajan edustajat Antti-Jussi Lakanen ja Vesa Lappalainen. Heidän palautteensa on saatavilla projektin sähköpostiarkistosta [7]. Jatkokehityksessä testaus tulee suorittaa useammalla selaimella ja päätelaitteella.
Projektin kehittämissä toiminnoissa TIM-järjestelmään on todettu olevan seuraavat heikot ja puutteelliset toteutusratkaisut:
Projektin kuluessa esitettiin seuraavat kehitysideat:
Timppa-projekti toteutti Sovellusprojekti-kurssilla keväällä ja kesällä 2015 Jyväskylän yliopiston tietotekniikan laitokselle muutoksia TIM-järjestelmään. Projektissa lisättiin TIM-järjestelmään opettajille mahdollisuus luoda luentoja, laatia ja kysyä kysymyksiä, sekä tarkastella vastausten jakaumia. Oppilas voi muutoksien ansiosta vastata kysymyksiin sekä kysyä ja keskustella luennon sisällöstä luentoseinällä.
#Toteutut muutokset toimivat pääosin asetettujen vaatimusten mukaan, mutta joitain asioita jäi toteuttamatta. Toteutumattomista vaatimuksista suurin osa koski kysymyksen luontilomaketta. Järjestelmätestausta ei ehditty tekemään kattavasti projektin lopussa, joten jatkokehittäjien tulee testata järjestelmää perusteellisemmin. Projektissa kehitettyjä TIM-järjestelmään tehtyjä muutoksia tullaan jatkokehittämään ja lisäämään julkiseen TIM-järjestelmään jatkokehityksen jälkeen.
[1] | Matias Berg, Bek Eljurkaev, Minna Lehtomäki, Juhani Sihvonen ja Hannu Viinikainen, "Timppa-sovellusprojekti, Järjestelmätestausraportti #1", Jyväskylän yliopisto, tietotekniikan laitos, 2015. |
[2] | Matias Berg, Bek Eljurkaev, Minna Lehtomäki, Juhani Sihvonen ja Hannu Viinikainen, "Timppa-sovellusprojekti, Järjestelmätestausraportti #2", Jyväskylän yliopisto, tietotekniikan laitos, 2015. |
[3] | Matias Berg, Bek Eljurkaev, Minna Lehtomäki, Juhani Sihvonen ja Hannu Viinikainen, "Timppa-sovellusprojekti, Järjestelmätestaussuunnitelma", Jyväskylä yliopisto, tietotekniikan laitos, 2015. |
[4] | Matias Berg, Bek Eljurkaev, Minna Lehtomäki, Juhani Sihvonen ja Hannu Viinikainen, "Timppa-sovellusprojekti, Projektiraportti", Jyväskylän yliopisto, tietotekniikan laitos, 2015. |
[5] | Matias Berg, Bek Eljurkaev, Minna Lehtomäki, Juhani Sihvonen ja Hannu Viinikainen, "Timppa-sovellusprojekti, Projektisuunnitelma", Jyväskylän yliopisto, tietotekniikan laitos, 2015. |
[6] | Matias Berg, Bek Eljurkaev, Minna Lehtomäki, Juhani Sihvonen ja Hannu Viinikainen, "Timppa-sovellusprojekti, Vaatimusmäärittely", Jyväskylän yliopisto, tietotekniikan laitos, 2015. |
[7] | Timppa-projektiorganisaation sähköpostiarkisto, saatavilla HTML-muodossa URL: https://korppi.jyu.fi/kotka/servlet/list-archive/timppa/ , viitattu 3.9.2015. |
[8] | Joel Kivelä, Erkki Koskenkorva, Mika Lehtinen, Oskari Leppäaho ja Petri Partanen, "Liikkuva-sovellusprojekti, Sovellusraportti", saatavilla PDF-muodossa URL: http://sovellusprojektit.it.jyu.fi/liikkuva/dokumentit/sovellusraportti/liikkuva_sovellusraportti_1.0.0.pdf , Jyväskylän yliopisto, tietotekniikan laitos, 9.6.2014. |
[9] | Google, "What is Angular", saatavilla HTML-muodossa URL: https://docs.angularjs.org/guide/introduction , viitattu 26.8.2015. |
[10] | Nick Downie, "Chart.js Documentation", saatavilla HTML-muodossa URL: http://www.chartjs.org/docs/ , viitattu 26.8.2015. |
[11] | jQuery Foundation, "What is jQuery", saatavilla HTML-muodossa URL: https://jquery.com/ , viitattu 26.8.2015. |