Lisatud lähima objekti arvutamine ja kuvamine otsitavast aadressi suhtes. Objekti nime näitamine kaardi "pin'i"kõrval. Veaparandused. Kaardi kõrvale kuvatakse nüüd otsitava objekti info (aadress, koordinaadid, kaugus lähimast objektist ja "turvaskoor").
30. dets. koosolek Skype vahendusel, struktuuri ülevaatus, testimine, versioonihaldusega kaasnenud probleemide lahendamine.
Koosoleku tulemusel otsustasime avaldada prototüübi hetkel valmis oleval kujul. Kaardistasime teada olevad vead ning realiseerimata funktsionaalsuse. Planeerisime järgnevaid samme.
teisipäev, 30. detsember 2014
26. detsember - arenguhüpe
Projekti struktuur täielikult ümber kirjutatud. Autentimine arusaadavamal kujul implementeeritud. Sõnumite edastamine ümber tehtud, asendatud sisseehitatud funktsionaalsusega.
21. dets - edasiminek
Valmisid logini edasiarendus, Maa-ameti API integratsioon ja kaardiotsing. Lõpuks ometi hakkab rakendus mingit hoomatavat visuaalset ja kasutatavat kuju võtma.
20. dets. - arvutused
Valmis esialgne versioon kahe punkti vahelise kauguse arvutamisest. Kerkisid üles probleemid versioonihalduse kasutamise osas - kõik osapooled ei saanud uuendusi kätte.
19. detsember koosolek Kolledžis
Taaskord suurepärane võimalus koos maha istuda. Tulemuseks töötav login ning pisivigade parandused.
3. detsember - USER
Valmis kasutaja model, viewmodel ja view (esialgu funktsionaalsuseks vaid andmebaasis muutmine ja kustutamine).
30. nov. koosolek Kolledžis - kolhoos
Kasutasime 30. novembril koolis olles ära head võimalust kogunemiseks ning "kolhoosi" vormis saavutasime projekti osas esimese hoomatava edasimineku funktsionaalsuses. Valmisid esimesed tükid objektide kuvamise ning muutmise osas.
UI disain
23. novembril sai versioonihaldusesse üles laetud kasutajaliidese disaini põhi. Esialgu eraldi projektina ettepaneku vormis ülejäänud meeskonnale läbivaatamiseks.
kolmapäev, 26. november 2014
Bing Maps API - esialgne integratsioon valmis
Sel nädalal õnnestus töökorda saada Bing Maps WPF Controls integratsioon arendatavas rakenduses. Selleks sai lisatud rakendusse vastavad teegid ning loodud Bing Maps avalik basic key. Järgnevaks sammuks on sisduda rakenduse andmebaasis olevate päästekomandode andmed kaardiapi'ga selliselt, et päästekomandol klikkides kuvatakse vastava päästekomando asukoht kaardil.
Päästekomando koordinaatide andmebaasi loomine
Vahemikus 17.-23. november tegelesime vabatahtlike päästjate andmebaasi loomisega. Andmebaasi loomisel oli mitmeid organisatoorseid ja infohanke detaile, mis on kaugel programmeerimisest, kuid seonduvad paratamatult käesoleva projekti lõpptulemusega. Andmebaasi kanti:
1. valves olevad riiklikud komandod
2. valves olevad vabatahtlikud komandod
Komandode asukoha määramisel võeti aluseks põhjalaiuse ja idapikkuse L-EST97 koordinaadid. Seda seepärast, et eeldatavalt kasutav algoritm võtab kauguste arvutamisel aluseks just geodeetilised koordinaadid. põhjalaiuse ja idapikkuse mõttes.
1. valves olevad riiklikud komandod
2. valves olevad vabatahtlikud komandod
Komandode asukoha määramisel võeti aluseks põhjalaiuse ja idapikkuse L-EST97 koordinaadid. Seda seepärast, et eeldatavalt kasutav algoritm võtab kauguste arvutamisel aluseks just geodeetilised koordinaadid. põhjalaiuse ja idapikkuse mõttes.
teisipäev, 11. november 2014
Andmebaasi loomine
Eelmise nädala jooksul sai loodud rakenduse esialgne andmebaas Microsoft Azure SQL pilvekeskonda. Esialgu toimub arendus otse andmebaasi pihta, kuid projekti käigus uurime võimalust asendada se web service ühendusega. Kui see osutub liiga keerukaks / mahukaks ettevõtmiseks, jätame kasutusse otseühenduse Azure SQL serveriga.
Projekti skelekton - esimene commit
Verstapost projekti arenduses: projekti esimene (kuigi funktsionaalsuseta) commit sai lükatud versioonihalduskeskkonda.
laupäev, 8. november 2014
kolmapäev, 29. oktoober 2014
SimpleGeo C# projekti analüüs
Toomas Juhkov, Silver Lumi (projektijuht), Tiit Kuuskmäe
Käesolev dokument kirjeldab vabas vormis 2014/2015 õppeaasta sügissemestril IT Kolledžis õppeaines „Programmeerimine C# keeles“ teostatava iseseisva grupitöö eesmärki, funktsionaalsust ja planeeritud kasutajarolle. Analüüsi teises osas käsitletakse rakenduse tehnilist teostamist ja meeskonnasisest ülesannete jaotust. Samuti pannakse paika andmebaasis ning programmeerimisel kasutatavad muutujate, andmebaasiväljade, meetodite jms nimetamise põhimõtted.
Eesmärk
Käesoleva projekti eesmärgiks on luua WPF töölauarakendus, mis võimaldab kasutajal pärida ning kuvada kaardil erinevate andmebaasis defineeritud huviobjektide kaugusi kasutaja poolt sisestatud aadressist/koordinaatidest. Lisaks sellele antakse otsitavale aadressile abstraktne hinnang/skoor (kvaliteediskoor, näiteks kolmepallisüsteemis) lähtuvalt valitud kriteeriumist (näiteks turvalisus, haridus, meditsiini või raudteeühenduse kättesaadavus jne).
Projekti raames loodava rakenduse funktsionaalsed eesmärgid jagunevad kaheks:
- Baasfunktsionaalsus (must have) - kursuse raames reaalselt töötava lahenduse näol implementeeritavad rakenduse omadused.
Baasfunktsionaalsus võimaldab kasutajatel otsida lähimat päästekomandot vastavalt sisestatud asukoha parameetritele. Sisestatud andmete alusel kuvab rakendus päästekomandode informatsiooni tekstiliselt, kuid näitab ära ka täpse asukoha kaardil. Lisaks sellele annab süsteem päästevaldkonna sisemiste kriteeriumite alusel (füüsikalises mõttes minimaalne reageerimisaeg põlengule selleks, et veel üldse midagi päästa oleks) kasutajale abstrakse hinnangu tema ruumipunkti päästevõimekuse kohta (kõrge, keskmine, madal). - Laiendatud funktsionaalsus (nice to have) - piisava ajaressursi olemasolul loodavad lisavõimalused. Lisaks päästekomandode andmebaasile liita rakendusse andmed kiirabi, koolivõrgu jms kohta ning võimaldada erinevate huviobjektide andmekihtide omavahelist kombineerimist.
Rakendus baseerub päästekomandode andmebaasil, mille koostab ja mida haldab rakenduse administraator. Kuna antud juhul on tegemist on lähteülesande esialgse püstitusega, siis on oodatav, et projekti käigus teostatav funktsionaalsus mõnevõrra muutub ning täpsustub.
Rakenduse funktsionaalsuse kirjeldus
Selles alajaotuses kirjeldatakse rakenduse funktsionaalsust läbi kasutajarollide, samuti selgitatakse andmete otsimise põhimõtteid.
Kasutajarollid
Selleks, et rakendust kasutada, peab isik end registreerimisvormi alusel süsteemi kasutajaks registreerima. Rakenduses on ette nähtud kaks põhimõtteliselt erinevat rolli:
- tavakasutaja
- administraator
Olenevalt kasutajarollist võimaldab süsteem mõnevõrra erineva funktsionaalsuse teostamist. Järgnevalt avame kasutajarollide funktsionaalsuse detailvaates:
Tavakasutaja
- võib rakendusse sisse logida
- võib muuta oma profiili andmeid
- võib teha otsinguid päästekomandode andmebaasis ning kuvada otsingutulemusi
- võib otsingutulemuse salvestada „lemmikute“ andmebaasi
Administraator
- võib teha kõike, mida saab teha tavakasutaja
- võib lisada / muuta / kustutada päästekomandode andmeid
- võib muuta / deaktiveerida registreeritud kasutajate kontosid
- võib genereerida kasutajale uue salasõna
Süsteemil on 1+n administraatorit ning 1+n tavakasutajat.
Andmete otsimine
Loodav rakendus võimaldab pärida ning kuvada kaardil erinevate objektide kaugusi ette antud aadressist. Aadressi koordinaatide kindlaks tegemiseks kasutatakse maa-ameti avaliku API võimalusi.
Baasfunktsionaalsuse raames keskendutakse päästekomandode paiknemisele Eestis. Rakendus võimaldab päästekomandode andmeid otsida järgnevate parameetrite alusel:
- Kinnistu aadress
- Asula täpsusega
- Tänava ja hoone täpsusega
- Kinnistu koordinaadid
Otsingu tulemusena kuvatakse linnulennul kõige lähemal asuva päästekomando andmed:
- teksti kujul kuvatakse päästekomando kaugus kilomeetrites ja kvalitatiivne hinnang päästevõimekuse kohta antud ruumipunktis (A - kõrge, B - keskmine, C - madal)
- kaardil kuvatakse täpne päästekomando asukoht
- päästekomando nimele vajutades kuvatakse teksti kujul päästekomando aadress ja muu komando võimekust puudutav informatsioon (autode arv, erivõimekused).
Otsingutulemuse salvestamine
Kasutajal on võimalus salvestada otsingu tulemusel leitud päästekomando nö „lemmikute“ nimekirja. Lemmikuid saab lemmikute nimekirjast valida ning lemmiku andmeid rakenduses kuvada. Kasutajal saab soovi korral lemmikuid nimekirjast ka kustutada.
Rakenduse tehniline teostamine
Järgnevalt kirjeldatakse rakenduse teostamisel kasutatavaid üldisi põhimõtteid, nimede ja kommenteerimise standardeid ja teisi tehnilist teostamist puudutavaid aspekte.
Üldised põhimõtted
Rakendus teostatakse järgmiste põhimõtete alusel:
- rakendus viiakse ellu WPF desktop application formaadis;
- päästekomandode, kasutajate ning lemmikute salvestamiseks kasutatakse relatsioonilist andmebaasi, mis majutatakse pilves, kusjuures ligipääs pilvele toimub läbi loodava veebiteenuse;
- aadressiotsingul võetakse aluseks maa-ameti vastav avalik API;
- andmete kuvamiseks kaardil kasutatakse Microsoft Bing Maps võimalusi.
Nimede ja kommenteerimise standardid ja kokkulepped
- meetodite, andmebaasiväljade, muutujate jms nimed kirjutatakse inglise keeles;
- kommentaarid kirjutatakse inglise keeles;
- muutujate ning meetodite nimetused camel-case (näide: userName), alakriipse (näide: user_name) jms ei kasutata;
- Andmebaasispetsiifilised kokkulepped:
- väljade nimetused algavad suure tähega
- normaliseeritud tabelid sisaldavad identity välja ID
- Foreign Key piirangutega väljad kirjutatakse kujul “tabeli nimi ainsuses” + ID, näiteks UserID
Märkused
- kõik kasutaja poolt süsteemi sisestatavad andmed valideeritakse (näiteks kontrollib süsteem, kas e-kirjas sisaldub @ märk)
- C# keeles loodavad meetodid üritatakse hoida võimalikult lühikestena;
- andmebaas luuakse maksimaalselt normaliseeritult.
Tööülesannete jaotus
Rakenduse välja töötamisel jagatakse tööülesanded grupiliikmete vahel järgmiselt:
- Silver: Rakenduse üldine arhitektuur. Andmemudeli loomine. Andmebaasi arhitektuur ja implementatsioon, andmebaasi veebiteenuse loomine. DAO objektide loomine.
- Toomas: Kasutajaliides ning kõik presentation layer’iga seotud punktid, sh sisestatavate andmete valideerimine, veateated jne.
- Tiit: Maa-ameti API integratsioon rakenduse andmemudelisse. Päästevaldkonda puudutavate spetsiifiliste andmete hankimine ja asjakohane tõlgendamine. Rakenduse äriloogika mudelite loomine.
Kõik tiimiliikmed osalevad jooksvalt veakindluse, kasutusmugavuse ja muude aspektide testimisel. Samuti vaadatakse teiste tiimiosaliste tehtud töö üheskoos üle ka köögipoolelt, et (C# keeles) programmeerimise erinevatest aspektidest võimalikult palju õppida.
Keeruliste osade teostamine ning ohukohad
Rakendust puudutavad keeruliste osade määratlemine on mõneti ettenägematu, kuid tõenäoliselt võib raskusi tekkida järgmiste aspektidega:
- maa-ameti info kättesaadavus ja kasutatavus meie rakenduse kontekstis;
- merepäästekomandode süsteemi integreerimine (merel olles ei saa esitada aadressi, võimalik on vaid GPS otsing; maismaad puudutava GPS päringu korral tuleb merepäästekomandod jällegi otsingu tulemustest eemaldada)
- rakendus on küll kasutatav võrguühendusega seadmetes, kuid selle mobiiltelefonides kasutuselevõtuga seotud võimalike probleemide ring pole täielikult teada
esmaspäev, 27. oktoober 2014
Projekti algus.
Projekt SimpleGeo tiim:
Toomas Juhkov
Tiit Kuuskmäe
Silver Lumi (projektijuht)
28. september 2014
Tiimi sünnipäevaks võib lugeda 28.-ndat septembrit. Paika pandi koosseis ning formuleeriti algne idee. Tiidu seotus vabatahtlike päästjatega sundis teda mõtlema rakendusele, mis näitaks ära suvaliselt valitud aadressi kauguse lähimast Päästekomandost. Kuna idee tundus huvitav ning skaleeritav, otsustasime mõtet edasi arendada ja projektina teostada.
2. oktoober 2014
Valmib projekti esialgne lähteülesanne. Sisaldab kirjeldust, eesmärki, funktsionaalsust, kasutajarolle ning ettepanekut tiimi tööjaotuseks.
21. oktoober 2014
Skype konverentsi käigus andsime tiimile nime SimpleGeo. Valisime Silveri pidulikult projektijuhiks. Arutlesime algse idee laiema rakendamise osas. Ajurünnaku käigus lisandusid sidumised teiste valdkondadega ning hinnangud.
Laiemalt võttes püstitasime eesmärgiks luua rakendus, mis mõõdab valitud aadressi vahemaad erinevaid valdkondi puudutavatest objektidest, näiteks päästekomandod, gümnaasiumid, raudteejaamad, haiglad, teatrid jpm. Erinevate objektide kauguste hindamisel saab vormida mudelid, mille alusel hinnata valitud aadressi turvalisusastet (päästekomando, politseijaoskonna, medüksuse lähedus/kaugus), kultuuri tarbimise võimalusi (teater, kino, kultuurimaja jms), hariduse kättesaadavust (lasteaiad, koolid, gümnaasiumid, huvikoolid) jne.
Väljundina kuvatakse andmebaasis leiduvate objektide kaugused koos metainfoga ning abstrakte 3-astmeline hinnang (A, B või C) valdkonniti. Lisaks saab leitud objekte kuvada ka kaardil.
22. oktoober 2014
Lõime Wiki lehe ning VSO konto.
26. oktoober 2014
Tiimi koosolek. Täpsustasime skoopi, leppisime kokku detailides (näiteks koodistiil, inglise keele kasutamine nii koodis kui kommenteerimisel, andmebaasi struktuurid, tööjaotus). Püstitasime esmased tähtajad analüüsi, logipidamise ning projekti teostamise alguse suhtes, leppisime kokku lähteülesande - admin-liidese loomine.
27. oktoober 2014
Lõime projekt SimpleGeo blogi, kuhu saame jooksvalt kirjutada projekti teostamisega kaasnevaid logisid.
Toomas Juhkov
Tiit Kuuskmäe
Silver Lumi (projektijuht)
28. september 2014
Tiimi sünnipäevaks võib lugeda 28.-ndat septembrit. Paika pandi koosseis ning formuleeriti algne idee. Tiidu seotus vabatahtlike päästjatega sundis teda mõtlema rakendusele, mis näitaks ära suvaliselt valitud aadressi kauguse lähimast Päästekomandost. Kuna idee tundus huvitav ning skaleeritav, otsustasime mõtet edasi arendada ja projektina teostada.
2. oktoober 2014
Valmib projekti esialgne lähteülesanne. Sisaldab kirjeldust, eesmärki, funktsionaalsust, kasutajarolle ning ettepanekut tiimi tööjaotuseks.
21. oktoober 2014
Skype konverentsi käigus andsime tiimile nime SimpleGeo. Valisime Silveri pidulikult projektijuhiks. Arutlesime algse idee laiema rakendamise osas. Ajurünnaku käigus lisandusid sidumised teiste valdkondadega ning hinnangud.
Laiemalt võttes püstitasime eesmärgiks luua rakendus, mis mõõdab valitud aadressi vahemaad erinevaid valdkondi puudutavatest objektidest, näiteks päästekomandod, gümnaasiumid, raudteejaamad, haiglad, teatrid jpm. Erinevate objektide kauguste hindamisel saab vormida mudelid, mille alusel hinnata valitud aadressi turvalisusastet (päästekomando, politseijaoskonna, medüksuse lähedus/kaugus), kultuuri tarbimise võimalusi (teater, kino, kultuurimaja jms), hariduse kättesaadavust (lasteaiad, koolid, gümnaasiumid, huvikoolid) jne.
Väljundina kuvatakse andmebaasis leiduvate objektide kaugused koos metainfoga ning abstrakte 3-astmeline hinnang (A, B või C) valdkonniti. Lisaks saab leitud objekte kuvada ka kaardil.
22. oktoober 2014
Lõime Wiki lehe ning VSO konto.
26. oktoober 2014
Tiimi koosolek. Täpsustasime skoopi, leppisime kokku detailides (näiteks koodistiil, inglise keele kasutamine nii koodis kui kommenteerimisel, andmebaasi struktuurid, tööjaotus). Püstitasime esmased tähtajad analüüsi, logipidamise ning projekti teostamise alguse suhtes, leppisime kokku lähteülesande - admin-liidese loomine.
27. oktoober 2014
Lõime projekt SimpleGeo blogi, kuhu saame jooksvalt kirjutada projekti teostamisega kaasnevaid logisid.
Tellimine:
Postitused (Atom)