Saturday, November 23, 2013

Appi valmimisel toimus murrang - kood sai piisavalt täiendust ning nüüdeks on rakendus suuteline üles salvestama asukoha, sünkroniseerima selle andmebaasi, võtma andmebaasist salvestatud teekonna punktid ning kuvama need joonena kaardile.
Veider on aga see, et meie rakenduse valmimisel on ettetulnud mitmeid, meist mitte olenevaid takistusi. Tänaseks probleemiks võib pidada liiga pakse majaseinu, mille tõttu LastNight esialgu elumärke taaskord ei näidanud. Kuid peale mitmekordset õues käiku, läks rakendus lõpuks tööle.

Loo moraaliks on see, et ärge arendage oma koodi Eesti Rahvusraamatukogu paksude müüride vahel..muidugi juhul kui GPSi on vaja ?!

Friday, November 22, 2013

Retsentsioon

Retsentseerisime meeskonna "!" projekti analüüsi.
Retsenseeritavasse meeskonda kuuluvad Jander Lapmaa, Mihkel Ehrlich ja Fred Moritz.

Meeskonna projekti põhieesmärgiks on luua IT firmale lao- ja remondihaldussüsteem.  
Analüüs on koostatud vastavalt etteantud kirjeldusele, tänu millele on alapunkte lihtne jälgida ning kergelt arusaada, mis/milleks/kellele projekti luuakse. Kuigi sõnade arv ei ole vastavuses etteantud 700 sõnaga, on tegu siiski sisuka analüüsiga, millel, nagu eelpool mainitud, on nõuetekohane ülesehitus.
Analüüsis kirjeldatakse, millist rakendust kasutatakse projekti elluviimiseks. Lihtsa näite abil kirjeldatakse, miks üldiselt võiks mõni tehnika müügiga ja remontimisega tegelev firma nende loodavat rakendust oma igapäevasesse töösse siduda. 
Vastavalt ülesande püstitusele on meeskond oma analüüsi käigus välja toonud punktidena eesmärgid, mida projekti käigus loodav rakendus kindlasti teha võiks. 
Miinusena analüüsi kohta võiks välja tuua võimalike probleemide nimekirja puudumine. Kuigi paljud tõrked tekivad alles töö käigus, kujunevad eesmärkide püstitamisel siiski välja mingid aspektid, millesse tuleks rohkem süveneda. Lisaks aitaks ülesannete lahterdamine võimalike probleemide tekkimise järgi kaasa ajaplaneerimisele. 
Analüüsis on hästi välja toodud ka need funktsioonid, mida võiks rakendusele tulevikus juurde lisada. 

Loobusime pushpinidest, sest nädalaid kestnud ikaldus ei tasunud end ära. Tõepoolest, ühtlase joone kuvamine vastavalt koordinaatide muutusele on kahjuks mitmeid kordi lihtsam.
Üleüldiselt on käes taaskordne ühine nädalavahetus projekti kirjutamiseks. App töötab, saates andmebaasi koordinaate, esialgu esineseid viperused, sest koordinaatide saatmine toimus liiga harva, olenemata et intervalliks oli seatud 5sekundit.  Õnneks vastav probleem lahenese kiiresti, sest Margus vahetas ajaintervalli välja asukoha muutuse vastu, mis tagas ühtlase koordinaatide saatmise andmebaasi.

Homne päev peaks tooma koordinaatide andmebaasist võtmise ning nende abil ühtlase joone moodustamise kaardil, hetkel toimub joone moodustamine vastavalt käsitsi kirjutatud suvalistel koordinaatidel. Samuti tuleb veel andmebaasis mõningaid muudatusi läbi viia.


Tuesday, November 19, 2013

Pushpinid

Pushpinid võtavad lõpuks ilmet ning asukohtade kuvamine kaardil liikus suure sammu edasi.
Samal ajal on küsimusi, mis vajavad arutamist - kas meie rakendus peaks ka ilma internetiühenduseta töötama või ainult internetiga ? Kuidas sünkroniseerida andmed korralikult localhostist andmebaasi?


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.

Thursday, November 14, 2013

2.nädal (4.11-10.11)

Esimene koosviibimine projekti teostamiseks.
Projektijuht Margus annab ülesanded vastavaks päevaks:
Doris ja Piia tegelevad kaardile pinide kuvamisega.
Andrese ülesandeks leida võimalus asukoha perioodiliseks salvestamiseks. ( Uurida kas selleks on vajalik background service või on selleks mingisugune teine võimalus ? )
Margus ise tegeleb sisselogimise arendamisega( Live Connect) ning testib asukohtade sisestamise toimimist.

Samas leiame end juba esimeste probleemide küüsist, mis peamiselt seisnevad selles, et windows 8 pro asemel on nii Piial kui ka Andresel windows 8, selle ümber installeerimine võtab põhimõtteliselt ära kõik reedese päeva ning tööga saab hoogsalt pihta hakata alles laupäeval.




Tuesday, November 5, 2013

1.nädal ( 28.10 - 3.11)

Projekti algus.
Paika saab pandud tööjaotus ning üldine konseptsioon, mis oleks vaja teha ja milliseks ajahetkeks.
Loodud saab ka wikileht meeskonnale ning blogi, et kajastada projekti kulgu.