OnTime

From ICO wiki
Revision as of 09:01, 27 January 2017 by Tkruglov (talk | contribs) (Lõpptoode)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Meeskond ja rollid

  • Tatjana Kruglova - all-in-one

Projekti TFS

OnTime

Analüüs

OnTime on wpf rakendus, mille abil on võimalik efektiivselt leida päeva sees ühist suhtlemise aega üle kogu maailma. Rakenduse eesmärk on lubada kasujatel otsida ajavahemikke, millal on neil kõige mugavam omavahel suhelda. Kasutaja saab sisestada oma asukoha ning teise inimese asukoha kellega ta soovib suhelda, mille alusel leiab rakendus suhtlemiseks päevase ajavahemiku. Kasutajal on võimalik ostingusse lisada mitu erinevat asukohta. Asukohtade otsingu abiks on Google API, mis aitab tõhusamalt leida õiged asukohad. Asukohtade alusel leiab rakendus õiged ajatsoonid, nii suve kui ka talveaegadel. Ajatsoonide järgi leiab rakenduse algoritm ühised ajavahemikud. Klientidel võimalik end registreerida rakenduse kasutajaks. Registreeritud kasutajatel on lisavõimalused. Lisavõimalusteks on näiteks see, et registreerimisel võtab rakendus kasutaja automaatse Windowsi ajatsooni, mistõttu otsingutel ei pea kasutaja enam enda asukohta määrama. Automaatset ajatsooni on kasutajatel ka vajadusel võimalus muuta. Kasutajatel on võimalik otsingusse lisada ka teisi kasutajaid, ilma nende asukoha teadmata. Süsteem vaatab, kas otsingusse on sisestatud kasutaja ning kui sellist kasutajat ei ole, otsib süsteem järgnevalt sama nimega asukohti. Lisaks saab registreerunud kasutaja lisada endale ebasobivaid ajavahemikke päeva vältel, mida hiljem rakendus oma ühise aja otsingutest välja arvestab.

Kasutuslood

Ühiste ajavahemike otsimine (registreerimata):

Klient avab rakenduse ning sisestab otsingu väljadele asukohad mille vahel soovib leida ühiseid aegu. Vaikimisi pakub süsteem otsinguvälju kahe sisendi jaoks, kuid välju saab juurde lisada. Kui klient on asukohad lisanud, otsib süsteem asukohtade järgi nende ajatsoonid ning kui sisendid on valiidsed kuvab kasutajale algoritmist tulnud ühised ajavahemikud. Juhul, kui asukohti ei leitud, väljastatakse kasutajale veateade.

Kasutaja registreerimine:

Klient avab rakenduse ning soovib registreerida end süsteemi kasutajaks. Registreerimisel küsitakse kasutajanime, parooli, emaili aadressi. Kasutaja sisestab nõutud andmed ning süsteem valideerib sisestatud andmeid. Kui andmed on valiidsed, luuakse uus kasutaja. Vastasel juhul kuvatakse kliendile veateade. Veateated võivad tulla, kui sisestatud emaili aadressi või kasutajanimega kasutaja on süsteemis juba olemas. Loodud kasutajale tekivad uued väljad. Kasutaja saab lisada endale ebasobivad ajavahemikud ning (Nice to have) importida Google või Outlooki kalendrid süsteemi, mille alusel süsteem lisab ise ebasobivate ajavahemike hulga.

Ühiste ajavahemike otsimine (registreeritud):

Klient avab rakenduse ning logib rakendusse sisse. Vaikimisi pane süsteem esimeseks otsitavaks väljaks kasutaja ajatsooni, selle välja võib kasutaja vajadusel ära muuta. Kasutaja sisestab otsingu väljadele asukohad või kasutajanimed mille vahel soovib leida ühiseid aegu. Vaikimisi pakub süsteem otsinguvälju kahe sisendi jaoks, kuid välju saab juurde lisada. Kui klient on asukohad või kasutajanimed lisanud, otsib süsteem kasutajanimede järgi nende ajatsoonid ning kui sellist kasutajanime süsteemis ei leidu otsib süsteem sama nimega asukohti. Asukohtade järgi otsitakse nende ajatsoonid ning kui sisendid on valiidsed kuvab kasutajale algoritmist tulnud ühised ajavahemikud. Juhul, kui asukohti ei leitud, väljastatakse kasutajale veateade.

Kasutaja andmete muutmine:

Klient avab rakenduse ning logib rakendusse sisse. Klient saab vaadata ning muuta enda andmeid. Muudetavateks väljadeks on ajatsoon, parool ning valik ebasobivaid ajavahemikke. Väljade korrektsust ei kontrollita, uuendus toimub automaatselt. Hiljem(Nice to have) on kasutajatel võimalik ka lisada ning kustutada teisi kasutajaid sõbralistist.

Ebasobivate ajavahemike lisamine:

Klient avab rakenduse ning logib rakendusse sisse. Klient saab vaadata enda andmeid. Lisaks andmetele saab klient muuta või lisada endale ebasobilikke ajavahemikke, mida süsteem pärast otsingust välja jätab. Vaikimisi saab kasutaja lisada ühe ebasobiva ajavahemiku kella 8.00 ja 22.00 vahel. Lisavälju rohkemate ajavahemike jaoks saab ükshaaval lisada. Lisaks(Nice to have) võib kasutaja lisada süsteemi .ics faili Google või Outlook kalendrist, mis ise genereerib ebasobivad ajavahemikud. Süsteem ei valideeri vahemike omavahelist kattuvust. Peale ajavahemike lisamist ei arvesta süsteem enam neid aegu sobivateks.

Rakendus koosneb:

  • Windows Presentation Foundation kasutajaliidest, mille abil saab kasutaja lisse logida ning lisada asukohti. Kasutajaliidese abil kuvatakse kasutajale otsitavad väärtused.
  • Microsoft SQL Server andmebaasist, kus talletatakse andmeid kasutajate kohta, kasutajate ebasobivate ajavahemike kohta ning kasutajate ajatsoonide kohta.
  • Rakenduse sisuks on C# keeles kirjutatud algoritm, mis otsib ühiseid aegu etteantud sisenditest.
  • Rakendusele lisaks on sisse ehitatud ühendus Google API-ga asukohtade otsingute hõlbustamiseks.

Must have

  • Leida google API abiga kasutaja sisestatud asukohad.
  • Genereerida asukohtadest UTC ajatsoon. Nii talve kui ka suveaegadeks.
  • Realiseerida algoritm ühiste aegade arvutamiseks.
  • Realiseerida kasutajate loomise võimalus.
  • Funktsionaalsus kasutaja andmete muutmiseks.
  • Kasutaja registeerimisel lisada automaatselt ajatsoon.
  • Realiseerida kasutajate võimalus lisada ebasovibaid ajavahemikke.
  • Realiseerida algoritmi lisa, mis kontrollib ebasobivaid ajavahemikke otsinguil.
  • Võimalus lisada otsingusse teisi kasutajaid.
  • Leida ajatsoonid kasutajanime alusel.

Nice to have

  • Kasutajatel sõbralisti võimalus.
  • E-maili verifitseerimine registreerimisel.
  • Realiseerida kasutajate võimalus lisada ebasobivaid ajavahemikke kalendri failiga.
  • Luua ühendus Skype-ga, kui algoritmi leitud ajavahemik on praegune, pakub rakendus teha Skype kõne.
  • Asukohtade autocomplete
  • Google kaart asukohtadega

Võimalikud probleemid

  • Nõutud ühendus google API-ga
  • Ei jõua rakendust terviklikult valmis
  • Kaart/Autocomplete.
  • Algoritmi keerukus.
  • Kalendri faili parsimine.
  • Puuduvad teadmised ühenduse jaoks Skype-ga.

Retsensioonid

TikTokTek

Lõpptoode

OnTime sisaldab:

  • OnTime_prototüüp
  • OnTime_toode
  • README.txt
  • OnTime_dokumentatsioon
    • Rakenduse põhikirjeldus
    • Kasutuslood
    • Töökulg
    • Entity mudel
    • Testid
  • OnTimeEntityModel.sql
  • OnTime powerpoint

Idee

Rakendus, mille abil on maailma eri paikades olevatel isikutel organiseerida ühiseid online-kohtimisi.

Tehnoloogia

Kasutatav tehnoloogia:

  • C#
  • Windows Presentation Foundation
  • SQL

Funktsionaalsus

Must have

  • asukohad (google API)
  • asukohtadest UTC-d
  • algoritm ühiste aegade arvutamiseks
  • kasutajad/sisselogimine
  • windowsist kasutajate ajatsoonid
  • ajatsoonide vahetuse võimalus kasutajatel
  • võimalus lisada ebasobivad ajavahemikud
  • UTC otsing kasutaja ja asukoha järgi

Nice to have

  • andmete parsimine Google või Outlook kalendrist
  • ühendus Skype kõnedega
  • emaili verifitseerimine
  • sõbralist

Võimalikud probleemid

  • ühendused API-dega
  • kalendri parsimine

Töökulg

09.10.2016

  • Teema ja meeskond õppejõuga kooskõlastatud

26.10.2016

  • Lehekülg ja TFS valmis
  • TFS kutse õppejõule saadetud

30.10.2016

  • Esimene commit
  • Analüüs

06.11.2016

  • Ajatsooni otsing asukoha järgi
  • Ühiste aegade leidmine asukohtade järgi
  • Testid ühistele aegadele
  • Andmebaas
  • WPF pealeht

18.11.2016

  • Andmebaasi võimalus muuta kasutajal default sobivaid aegu
  • Andmebaasi võimalus lisada kasutajal ebasobivaid ajavahemikke
  • Algoritmi parandus

20.11.2016

  • WPF-ist saab küsida asukohti ja kasutajaid ning korrektne tulemus väljastatakse ekraanile

23.11.2016

Analüüs mis on tehtud ning mis veel vajab tegemist:

Must have
  • Leida google API abiga kasutaja sisestatud asukohad.
  • Genereerida asukohtadest UTC ajatsoon. Nii talve kui ka suveaegadeks.
  • Realiseerida algoritm ühiste aegade arvutamiseks.
  • Realiseerida kasutajate loomise võimalus.
  • Funktsionaalsus kasutaja andmete muutmiseks.
  • Kasutaja registeerimisel lisada automaatselt ajatsoon.
  • Realiseerida kasutajate võimalus lisada ebasovibaid ajavahemikke.
  • Realiseerida algoritmi lisa, mis kontrollib ebasobivaid ajavahemikke otsinguil.
  • Võimalus lisada otsingusse teisi kasutajaid.
  • Leida ajatsoonid kasutajanime alusel.
  • Kasutajad saavad muuta default sobivat ajavahemikku *(retsentsiooni idee)

30.11.2016

  • Register, Login, Account Settings leheküljed
  • Navigeerimine lehekülgede vahel

01.12.2016

  • Registreerimine toimib
  • Sisse logimine toimib
  • Registreerimisel määratakse automaatne kasutaja ajatsoon
Must have
  • Leida google API abiga kasutaja sisestatud asukohad.
  • Genereerida asukohtadest UTC ajatsoon. Nii talve kui ka suveaegadeks.
  • Realiseerida algoritm ühiste aegade arvutamiseks.
  • Realiseerida kasutajate loomise võimalus.
  • Funktsionaalsus kasutaja andmete muutmiseks.
  • Kasutaja registeerimisel lisada automaatselt ajatsoon.
  • Realiseerida kasutajate võimalus lisada ebasovibaid ajavahemikke.
  • Realiseerida algoritmi lisa, mis kontrollib ebasobivaid ajavahemikke otsinguil.
  • Võimalus lisada otsingusse teisi kasutajaid.
  • Leida ajatsoonid kasutajanime alusel.
  • Kasutajad saavad muuta default sobivat ajavahemikku *(retsentsiooni idee)

18.12.2016

  • Prototüüp õppejõule saadetud.
  • Algoritm arvestab ebasobivate aegadega.
Must have
  • Leida google API abiga kasutaja sisestatud asukohad.
  • Genereerida asukohtadest UTC ajatsoon. Nii talve kui ka suveaegadeks.
  • Realiseerida algoritm ühiste aegade arvutamiseks.
  • Realiseerida kasutajate loomise võimalus.
  • Funktsionaalsus kasutaja andmete muutmiseks.
  • Kasutaja registeerimisel lisada automaatselt ajatsoon.
  • Realiseerida kasutajate võimalus lisada ebasovibaid ajavahemikke.
  • Realiseerida algoritmi lisa, mis kontrollib ebasobivaid ajavahemikke otsinguil.
  • Võimalus lisada otsingusse teisi kasutajaid.
  • Leida ajatsoonid kasutajanime alusel.
  • Kasutajad saavad muuta default sobivat ajavahemikku *(retsentsiooni idee)

29.12.2016

  • Must have osad on põhimõtteliselt tehtud.
  • Lisatud see, et kui kasutaja on sisselogitud siis automaatselt on tema asukoht lisatud otsingusse, kasutaja saab selle kõrvaldada.
Must have
  • Leida google API abiga kasutaja sisestatud asukohad.
  • Genereerida asukohtadest UTC ajatsoon. Nii talve kui ka suveaegadeks.
  • Realiseerida algoritm ühiste aegade arvutamiseks.
  • Realiseerida kasutajate loomise võimalus.
  • Funktsionaalsus kasutaja andmete muutmiseks.
  • Kasutaja registeerimisel lisada automaatselt ajatsoon.
  • Realiseerida kasutajate võimalus lisada ebasovibaid ajavahemikke.
  • Realiseerida algoritmi lisa, mis kontrollib ebasobivaid ajavahemikke otsinguil.
  • Võimalus lisada otsingusse teisi kasutajaid.
  • Leida ajatsoonid kasutajanime alusel.
  • Kasutajad saavad muuta default sobivat ajavahemikku *(retsentsiooni idee)


  • Sobivate ja ebasobivate aegadega algoritmi korrastus ning testimine

10-12.01.2017

  • Kasutajal on nüüd võimalik lisada default ajavahemik, mis talle sobib ning algoritm arvestab seda aega.
  • Lisaks arvestab algoritm ka ebasobivaid aegu.
  • Lisatud vahemikke saab resetiga kustutada ning see taastab default olukorra.

14-15.01.2017

  • Koodi muutused ja refaktoreerimine.
  • VM ja M osa muutused.
  • Testide jooksmine buildimisel.

21.01.2017

  • Logi lisatud.
  • Kasutaja näeb oma ebasobilikke/sobivat aega.
  • Kasutaja näeb oma praegust ajatsooni.
  • Koodi coverage unit-testidega 86%. (ilma wpf-ita)
  • Refaktoreeritud.

22.01.2017

  • Lisatud kommentaarid tähtsamatele meetoditele.

23.01.2017

  • Testide coverage 91.84% (ilma wpf-ita)
  • Visuaalsed muudatused.
  • Lisatud registreerimise ja sisselogimise kontrollid.

24.01.2017

  • Visuaalsed muudatused.
  • Window-page navigatsioonid.
  • Stiili muutus, kasutatud http://mahapps.com/ built-in stiili.

26.01.2017

  • Registreerimise fix.
  • Ajaotsingu bugi fix.
  • Poolikute ajatsoonide bugi fix.
  • Testid, coverage 96.20% (ilma wpf-ita)