Skip to content

Suoritukset

Kimmo Koskinen edited this page Sep 18, 2016 · 1 revision

Johdanto

Toiminnon käyttötarkoituksena on leirinaikainen kasvatuksellinen ja viihdyttävä aktivointi.

Kaikki tiedot näkee kirjautumattakin, mutta omia suorituksia voi merkitä ja nähdä vasta, kun on kirjautunut.

Optio: Nettisivun kautta leiri-lpk:n johto voisi nähdä oman leirilippukunnan suoritusten tilanteen.

Backend-kommunikointi

Suoritukset-toiminnon tiedot tulevat appin paikallisesta storagesta. Jos siellä ei ole mitään, appi lukee kaikki suoritustiedot backendistä ja tallentaa ne paikalliseen storageen. Tämän jälkeen ne sitten tulevat paikallisesta storagesta Suoritukset-toimintoon.

Myös tilanteessa, että käyttäjä muuttaa kielivalintaa, appi lukee kaikki tiedot uudestaan.

Tiedot tulevat backendistä täysin valmiina, eli appin ei mm. tarvitse laskea prosentteja, ja kaikissa tapauksissa ensin paikalliseen storageen, josta ruutuun.

Backend palauttaa tekstit suomeksi, ruotsiksi tai englanniksi appin kielivalinnan mukaan. Jos kielivalinta on joku muu, backend palauttaa tekstit englanniksi.

Jos käyttäjä on kirjautunut, bäckendistä tulevat tämän omat suoritustiedot.

Kun kirjautunut käyttäjä muuttaa suoritusmerkintäänsä (päälle tai pois), tämä kirjoitetaan heti paikalliseen storageen, ja sieltä backendiin. Jos jälkimmäinen ei onnistu, yritetään uudestaan aina viiden tunnin välein. Lisäksi jos käyttäjä merkitsee uuden suorituksen, niin backendiin yritetään kirjoittaa uusimman lisäksi kaikki siihen mennessä epäonnistuneet.

Alkulatauksen jälkeen appi tarkastaa JSON-datan kertomin määrävälein (ainakin aluksi kerran vuorokaudessa), onko suorituksiin tullut muutoksia. Ei juuri tuolloin taustalla, vaan sitten kun käyttäjä appin käynnistää ja on kulunut yli vuorokausi edellisestä tarkastuksesta. Lisäksi käyttäjä voi käynnistää tarkastuksen käsin. Suoritusten lisäykset ja poistot eivät ole mahdollisia, vaan ainostaan tekstimuutokset (jotka tunnistetaan kussakin suorituksessa olevan aikaleiman perusteella). Lukumäärä per ikäkausi on siis kiinteä, luultavasti 15 kpl. Backendistä haetaan aina vain ne tiedot, jotka ovat muuttuneet viime hakemisen jälkeen.

Käyttöliittymän toiminnot

  1. Alkunäkymässä on
  • Noin viiden ikäkauden lista (perheleiri, tarpojat, samoajat, vaeltajat, aikuiset)
  • Listan kunkin kohdan perässä lkm, kuinka monta suoritusta koko leirillä on tehty kyseiseen ikäkauteen
  1. Napauttamalla edellisen kohdan ikäkautta, aukeaa uusi ruutu, jossa on
  • Kyseisen ikäkauden noin 15 suoritusotsikon lista, esim. "olen syönyt jäätelöä ulkomaalaisen kanssa"
  • Listan kunkin kohdan perässä lkm, kuinka moni koko leiriltä on sen suorittanut
  • Jos käyttäjä on kirjautunut, kunkin kohdan perässä näkyy myös, onko käyttäjä itse sen suorittanut
  • Listan edellä yläreunassa on
    • Kyseisen ikäkauden kärjessä olevan suoritusmäärä
    • Kyseisen ikäkauden koko leirin keskiarvo
    • Jos käyttäjä on kirjautunut, käyttäjän omien suoritusten lkm
  1. Napauttamalla edellisen kohdan suoritusotsikkoa, aukeaa uusi ruutu jossa on
  • Kyseinen suoritusotsikko
  • Suorituksen tarkempi kuvaus
  • Suoritusohjeen viimeisimmän muokkauksen aikaleima pv, kk, vuosi, hh, mm kieltä vastaavassa muodossa
  • Kuusi alaleiriä erikseen, että (järjestys prosenttien mukaan laskevasti)
    • Kuinka moni on suorittanut
    • Montako alaleiriläistä on yhteensä kyseisessä ikäkaudessa
    • Paljonko edeltävä on prosenteissa.
  • Jos käyttäjä on kirjautunut, näkyy myös, onko käyttäjä itse sen suorittanut, ja on/off-toiminto, jolla voi merkitä suorituksen tai perua sen
  1. Em. on/off-toiminnolla käyttäjä merkitsee suorituksen tehdyksi. Tämä ei vaadi esim. johtajan kuittausta.
  • Optio: tällöin voi tulla popup hymynaama-peukut ylös ja/tai ääni-jinglePeukut ja hymynaama

Lisäksi "yläpalkissa" on seuraavat toiminnot

  • Painike asetuksiin
  • Painike päivittää tiedot backendistä

Optio: Voisi olla hauska, jos käyttäjä voisi liittää suoritukseen ottamansa valokuvan.

Pseudo-JSON

Alla oleva pseudo-JSON on tehty siltä pohjalta, että suoritukset sijaitsevat ikäkausien alla, mikä tapa on luultavasti appille helpoin. Vaihtoehtoinen tapa on, että ikäkaudet ovat yksi lista ja suoritukset erikseen toinen lista.

--------------------------
KUTSU
--------------------------

Kieli FI, SV, EN, tai joku muu kännykkään valittu
Mahdollinen token (identiteetti ja kirjautuminen)

--------------------------
VASTAUS
--------------------------

timestamp: "2016-02-10T20:10:05+0300" /* time and date when data was retrieved */
next_check: "2016-02-11T20:10:05+0300" /* time and date when to check for new changes */
language: FI, SV tai EN /* language of the retrieved texts */
agelevels:
    {
        title: "perheleiri"
        jne.
    }
    {
        title: "tarpojat"
        last_modified: "2016-01-14T12:45:06Z" /* when agelevel name was last modified */
        id: 02938402389
        sort_no: 20 /* let's use 10, 20, 30, etc., to give room for changes */
        achievement_count: 1225 /* how many achievements in this age group 
            in the entire camp */
        leading_score: 14 /* how many achievements has the person who is leading 
            in this age group in the entire camp */
        user_score: 5 /* how many achievements the user has personally */
        average_score: 6,6 /* how many achievements on the average in this age group
            in this age group */
        achievements:
            {
                title: "Olen syönyt jäätelöä ulkomaalaisen kanssa"
                last_modified: "2016-01-14T12:45:06Z"
                id: 09234242
                sort_no: 10
                achievement_count: 755 /* how many achievements in this age group 
                    in the entire camp */
                user_achieved: true /* whether the user herself has achieved */
                bodytext: "Tässä tarkempi kuvaus"
                image: "lkjLJKLKjlkj99" /* base64 png */
                subcamps:
                    {
                        title: "Unity"
                        achievement_count: 540
                        person_count: 840
                        achievement_percentage: 64,3
                    }
            }

------------------------------------------
KÄYTTÄJÄN SUORITUSTEN KIRJOITUS BACKENDIIN
------------------------------------------

!Autentikaatio!

achievements:
    {
        achievement_id: 23423 /* achievement id */
        user_id: 098098 /* PartioID */
        new_state: true
    }

JSON

xxx

Clone this wiki locally