Friday, November 15, 2013

Analüüs rakendusele Last Night App

LastNight App (edasipidi LNA ) on rakendus, mis aitab kasutajal salvestada enda asukohta. Rakendus salvestab asukohad IsolatedStorage-sse, soovi korral on kasutajal võimalus oma asukohad ka meie andmebaasi salvestada. Salvestamise mõte on selles, et telefoni vahetades saab vanad asukohad uuesti alla laadida ning võimaluse korral loome ka sõpradega asukohtade jagamise võimaluse. Rakendus LNA koosneb WebApi-st ja Windows Phone 8 rakendusest. WebApi puhul on tegemist raamistiku laiendusega, mille ideeks on muuta lihtsamaks veebipõhiste API-de loomine, meie rakenduse puhul on WebApi põhiülesandeks andmete jagamine kasutajate vahel, samuti salvestusfunktsioon, sest sinna talletatakse kasutajate Live Connect id-d, koordinaadid ja sõbralisti.
Lahenduse eesmärk on pakkuda kasutajale võimalust jälgida enda ja/või nõusoleku andnud sõprade asukohta. Siinkohal oleme mõelnud paari võimaluse peale, mida meie rakendus kindlasti täita võiks:
1) “Kus ma eile olin?“ - kasutaja asukoht saadetakse apisse perioodiliselt iga n minuti tagant, säästmaks kasutaja telefoniakut, mis tühjeneks järjepideval asukohtade saatmisel märgatavalt kiiremini.
2) Enda ja sõprade asukoha kuvamine kaardil pushpinide abil. Pushpinidel on märgitud ka kellaaeg, millal selles asukohas oldi, lisavõimalusena võimalus lisada kommentaar või info vastavalt pushpinile.
Võimalused, mida proovime rakendada, kuid esialgu on nice-to-have kategoorias:
1) Asukoha sõpradega jagamine – kõige pealt määrata kellega asukohta jagada, ning siis võimalik kas manuaalselt update-da asukohta või lasta iga n minuti järel oma andmed WebApi-sse saata
2) Sõbralisti toimimisel saaksime kasutajate vahelisi koordinaate sorteerida kasutajale huvi pakkuval moel. Järgnevad parameetrid võivad olla kasutaja poolt defineeritud ükskõik millisteks. Näiteks saaksime kuvada kasutajale kõik tema sõbrad, kes on olnud temast 50m/500m/2km/100km raadiuses viimase minuti/tunni/päeva jooksul.
Usume, et meie rakendus oleks tavakasutajale huvipakkuv, sest hilisema edasiarenduse käigus võib lisada näiteks võimaluse vaadata, kus asub laps, kes kasutab LNAd. Lisaks reisimiseks mõeldud funktsionaalsus, salvestades oma teekond, et hilisem tagasiliikumine ei valmistaks probleeme.
Kasutajalt registreerimist ei nõuta, küll aga on vajalik MS Account olemasolu, sest autentimine toimub läbi Live Connecti. Live Connectist küsime andmeid basic ja email scope ulatuses. Emaili alusel hakkab toimuma sõprade lisamine kasutajatelisti.
Turvalisuse tagamiseks suhtleb rakendus WebApi-ga ainult üle HTTPS. Azure keskkonnas hostides on HTTPS kohe olemas, piisab sellest, kui päringud saata https://lastnight.windowsazure.com/api. Sellisel kujul saadetud päringud on krüpteeritud ning kõrvalisel isikul on nende lugemine raskendatud. Kasutades Live Connect-i, saame iga kasutaja jaoks unikaalse id, mille alusel hakkame kasutajat enda andmebaasis tuvastama. Kuna Live Connectist saadud token on püsiv, tasub mõelda süsteemile, mis teeks perioodiliselt uue autoriseerimistokeni ning saadaks lisaks Live Connectist saadud tokenile ka tolle ajutise tokeni WebApi-sse autoriseerimiseks.
Problemaatiliseks võib osutuda rakenduse töötamine taustal.
Samuti cutom pushpinide kuvamine, sest tegu on uuendusega, mis tuleneb wp8ga ning abimaterjale küll on, kuid neid pole siiski väga palju.
Sõbralisti kujutamine c#s läbi entity frameworki. 

Tööjaotus:
Andmebaasi kujundamisel osalevad kõik grupiliikmed. Funktsionaalsusest ühte moodi arusaamiseks on vajalik, et kõik oleksid teadlikud ka kasutusel olevast andmemudelist. Mudeli loomisel kasutame omandatud teadmisi ainest Andmebaaside alused, mis on andnud põhjalikud alusteadmised andmebaasi loomiseks.
WP8 rakenduse arenduses osalevad kõik grupiliikmed võrdselt. Arenduse sujuvaks toimimiseks on vajalik, et kõik liikmed oleks arendustegevusse kaasatud ja annaks oma panuse. Tähtsamad küsimused ala andmete flow ning ühendumine WebApi-ga lahendame ühiselt, et kõigil oleks samasugune arusaam Appi toimimisest. Disain ja kasutajaliides on punktid, millega saame tegeleda ka eraldi, ning ei ole vajalik koos töötamine. Üldises plaanis üritame teha vähemalt 6-10 intensiivset koostöötamispäeva, mis tagaks info ühtlase ülekande, samal ajal kasutame ka fleep.io-d ning Team Foundation Service'it http://tfs.visualstudio.com/ tähtsamate punktide arutamiseks.
WebApi arendusega on seotud Margus ja Andres.
Telefoniga seotud tegevused – kaardiga seotu/ pushpinide ( windows phone 8 toolkiti abil ) kuvamine jääb Piia ja Dorise õlule. Tänu WP8 uuendustele tegeleme ka rakenduse tööle saamisega taustal, et juhul kui kasutaja kasutab muid rakendusi või on telefon lukustatud, saadaks meie telefon siiski asukohti andmebaasi.
Blogipostitustega tegeleb Piia ning Doris, hoides silma peal kirjalikel ülesannetel ning ülevaate andmisele projekti käekäigust.
API-st info saamine:
//GET
1) “eilsete õhtute list“ api/locations/gettracking/userid
2) eile õhtu koordinaadid api/locations/getlocations/userid/trackingid
3) minuga jagatud asukohad api/locations/sharedwithme/userid
APIsse info saatmine:
//POST – Andmed saadame üle võrgu serialiseeritud objektidena, osadel juhtudel saadame andmed POST meetodiga kontrolleri aadressile, lisades valikulisi parameetreid näiteks /api/locations/savelocation?security=true
1) Uue kasutaja registreerimine: api/users/registeruser
2) Tracking objekti salvestamine api/locations/createtracking
3) Asukoha salvestamine api/locations/savelocation?trackingid=42
Andmebaasi ja Api hostime Windows Azure keskkonda, mis kujutab endast paindlikku pilve platvormi, mis lubab kiiresti ehitada, paigaldada ning hallata appe üle globaalse Microsofti võrgu.
Must have
LNA rakendus peaks kindlasti olema suuteline edastama rakendust kasutava inimese asukohti andmebaasi, salvestama need ning vajadusel pakkuma võimalust neid uuesti hilisemalt pärida. Teekond peaks olema märgitud kas pushpinide või joone abil. Samuti on oluline, et meie rakendus oleks võimeline töötama ka taustal s.o. Segamatult teistest rakendustest ning ka juhul kui telefoni ekraan on lukus.
Nice to have
1)Meie rakenduse lisavõimalusena võiks olla suutlikus jagada meie teekondi valitud kasutajatega ning võimalus vaadata ka teiste kasutajate teekondi, juhul kui nad neid meiega jagavad.


2) WebApi turvaprotokoll, mis jagab kasutajale sisselogides uue tokeni, mida hakatakse hilisemate päringute puhul kontrollima. See muudaks Api oluliselt turvalisemaks.

No comments:

Post a Comment