Meeskond:LifePlanner

From ICO wiki

Meeskonna liikmed ja tööjaotus

  • Kaire Toom - TO-DO List, Sisse- ja väljalogimine
  • Alina Loitšenko - Kalender
  • Maria Andreitšuk(Projektijuht) - Rahaplaneerija

Idee

Projekti eesmärk on luua WPF rakendus, mis võimaldab oma elu organiseerida ja lihtsamaks muuta. Loodav rakendus on kalendri kujuline ja võimaldab lisada märkmeid. Samuti võimaldab rakendus sisestada igapäevased kulud ja teha aruandeid.

Projekti kirjeldus

Tänapäeva elu on kiire tempoga ja tihti inimesed ei oma ülevaadet oma plaanide, kohtumiste ja raha-asjade üle. Selleks, et elu kergemaks muuta, mõtlesime grupiga välja suurepärase lahenduse - universaalne elu planeerija. Meie rakendus ei pruugi just elusid päästa, kuid võib olla abiks järgmise hambaarsti visiidi meeldetuletamisel või annab ülevaate, kui palju raha on mingil kuul kulunud toidu peale. Idee luua just selline rakendus tuli vajadusest igapäevase abilise ja nõustaja järele. Meil on palju häid ideid, kuidas saaks funktsionaalsuse veelgi põnevamaks muuta, kuid antud projekti raames (eelkõige ajapuuduse tõttu) keskendume veatu ja kasutajasõbraliku rakenduse realiseerimisele.

Meie rakendus hakkab loodetavasti koosnema kalender-märkmik vaatest, kuhu saab kasutaja märkida oma tavapäraseid ja mitte nii tavapäraseid päevaplaane. Lisaks on tal võimalik planeerida oma väljaminekuid ja sissetulekuid ning selle järgi otsustada, kas oleks vaja oma kulud üle vaadata. Kui aega jääb, siis teeme rahaplaneerijale ka graafikute kuvamise. Idaalis võiks veel juures olla ka wishlist, kus kasutaja saab välja tuua asjad, mida ta sooviks osta ning rahaplaneerija abil näha, kui kaua ta peab raha koguma, et see võimalik oleks. Kui kasutajal on vajadus pidada to-do listi, siis meie loodavas rakenduses on seda väga mugav teha, kuna list ilmub kohe pealehel. Nii saab kiire elutempoga inimene oma plaanitud tegevustel lihtsalt silma peal hoida. Tehtud asjadele saab ka vastava märke lisada. Lisaks saab loodavale rakendusele ligi oma unikaalse kasutajanime ja parooliga. Nii tagame andmete turvalisuse ja ka selle, et programm ei ole mõeldud ainult ühele inimesele.

Eelkõige soovime luua sellist WPF rakendust, mis meile endale meeldiks ja oleks mugav. Arvame, et seda hakaksid kasutama enamasti kiire elutempoga naisterahvad. Loodame, et loodav rakendus asendaks nende päevaplaanide koostamiseks mõeldud märkmiku.

Must have funktsionaalsus

Sisse- ja väljalogimine

Võimaldab tegevuste kohta registri pidamist (logi). Iga uus rakenduse kasutaja peab looma endale kasutajakonto. Kasutajate andmed salvestatakse andmebaasi (ID, nimi, perekonnanimi, kasutajatunnus, parool). Iga uue sessiooni alguses peab kasutaja sisse logima ja tema logi-infot salvestatakse eraldi andmebaasi (ID, kasutaja ID kes on käinud, kuupäev). Logi andmetabelist on võimalik koostada aruanne, kes ja millal on rakendust kasutanud.

Kalender

Kuvatakse erinevaid kohtumisi mida on võimalik sisestada, muuta ja kustutada. Kalendri päeva planeerimise vaates jaotatakse päev kolmeks: hommik, lõuna, õhtu. Plaanis on luua nädala kalendri vaade, kus on võimalik liikuda erinevate nädalate vahel pisikese kuu kalendri abil. Töö teostamise käigus võib nädala vaade ka muutuda päeva vaateks.

TO-DO list

Võimalik sisestada ülesandeid. Kasutaja saab avada kogu to-do listi vaate, kus näidatakse 10 viimast tehtud ülesannet ja kõiki tegemata ülesandeid. Tegevuste sisestamine toimub üldises to-do listi vaates. Kasutajal on võimalik tegevusi tehtuks märkida.

Rahaplaneerija

  • Kasutajal on võimalik sisestada kulud ja tulud. Andmeid salvestatakse eraldi tabelisse (ühine tabel kulude ja tulude jaoks).
  • Sisestatud andmete põhjal koostatakse tabel, mis on jaotatud kuudeks. Tabel on unikaalne just antud kasutaja jaoks, kuna on seotud sisselogitud kasutaja ID-ga. Kulud ja tulud lüüakse kokku ja kuvatakse ka KOGU tulud ja KULUD ning VABA JÄÄK. Antud jäägi oleks hiljem võimalik kasutada wishlistis. (vt. nice2have)
  • Kulud on liigitatud erinevateks kuluallikateks (näiteks toit, liisingud/laenud, riided jne.). Tuludeks on üldjuhul palk, kuid on võimalik sisestada ka muu tuluallika (nt. mõne eseme müügist saadud tulu, erinevad toetused, lotovõit jne).
  • Vajutades kululiigile kuu vaates avaneb kasutajale täpsem info antud liigi terve kuu kulude kohta (kuupäevade järgi). Avanevat tabelit on võimalik muuta (näiteks kui on vaja mõnda sisestatud kulu muuta või kustutada).

Nice to have funktsionaalsus

Meie loodaval rakendusel võiksid olla ka järgnevad lisafunktsionaalsused:

  • Pilkupüüdev disain.
  • Wishlist - kajastatakse kasutaja ostusoove. Rahaplaneerija jäägi abil kuvatakse, milliseid oste on võimalik realiseerida. Muidugi saab kasutaja muuta, lisada ja kustutada.
  • Sünnipäevad - lisada, muuta, kustutada. Sünnipäevi kuvatakse kalendris õigel päeval. Kasutajal on võimalik sünnipäeva juurde lisada ka kingiideid.
  • Rahaplaneerija koostab kulude ja tulude graafikuid.
  • Poelist - kasutajal on võimalus enne suuremat toidupoodi minekut teha vajalikest toiduainetest nimekiri. Sarnase funktsionaalsusega nagu ka TO-DO list.

Rakenduse problemaatilised kohad

Meie tiimi kaks põhilist probleemset kohta on aja ja kogemuste-teadmiste puudus. Kuna keegi ei ole varem C#-ga ja projekti läbiviimisega kokku puutunud, on ka raske hetkel konkreetseid problemaatilisi kohti nimetada. Esialgu tunduvad raskena:

  • Programmeerimiskeele oskus, ei hooma projekti mahtu.
  • Kalender - kuidas kuvada tänase, homse, terve nädala vaade, kuidas muuta selle interaktiivseks (andmeid saaks muuta peale klikides)
  • Iseseisev vs. meeskonna töö - kas õnnestub panna kõik kokku ja kas rakendus hakkab tööle nii, nagu meie seda plaanime. Kas esineb tõrkeid/vigu?
  • Tähtajast kinni pidamine - kas jõuame oma projekti valmis õigeks ajaks?
  • Kuidas teha nii kasutajasõbralik ja samas ka kena ning tänapäevase disainiga rakendus?

Prototüüp

Juhend prototüübi testimiseks on lisatud .zip faili. Faili nimi: readme.docx

Prototüübi allalaadmiseks mine lingile: LifePlanner

Funktisionaalsused, mis on olemas

Kalender
  • Kuvatakse erinevaid kohtumisi, mida on võimalik sisestada ja kuvada.
  • Loodud ühe päeva vaade. Väikese kalendri abil on võimalik liikuda erinevatele kuupäevadele.
TO-DO list
  • Võimalik sisestada ülesandeid.
  • Kasutaja saab avada kogu to-do listi vaate.
  • Tegevuste sisestamine toimub üldises to-do listi vaates.
  • Kasutajal on võimalik tegevusi tehtuks märkida.
Rahaplaneerija
  • Kasutajal on võimalik sisestada kulud ja tulud.
  • Andmeid salvestatakse eraldi tabelisse (ühine tabel kulude ja tulude jaoks).
  • Tabel on unikaalne just antud kasutaja jaoks, kuna on seotud kasutaja ID-ga.
  • Tuludeks on üldjuhul palk, kuid on võimalik sisestada ka muu tuluallika (nt. mõne eseme müügist saadud tulu, erinevad toetused, lotovõit jne).
  • Kulud ja tulud lüüakse kokku ja kuvatakse ka KOGU tulud ja KULUD ning VABA JÄÄK. Valides "Sorteerimise" rippmenüüst saab kasutaja sorteerida sisestamise, summa ja liigi järgi kogu perioodi ulatuses. Samuti on võimalik vaadata eraldi ainult kulud ja tulud, mida sorteeritakse automaatselt sisestamise järgi.

Funktisionaalsused, mida veel ei ole

Sisse- ja väljalogimine
  • Võimaldab tegevuste kohta registri pidamist (logi).
  • Iga uus rakenduse kasutaja peab looma endale kasutajakonto.
  • Kasutajate andmed salvestatakse andmebaasi (ID, nimi, perekonnanimi, kasutajatunnus, parool).
  • Iga uue sessiooni alguses peab kasutaja sisse logima ja tema logi-infot salvestatakse eraldi andmebaasi (ID, kasutaja ID kes on käinud, kuupäev).
  • Logi andmetabelist on võimalik koostada aruanne, kes ja millal on rakendust kasutanud.
Kalender
  • Kohtumisi on võimalik muuta ja kustutada.
  • Kalendri päeva planeerimise vaates jaotatakse päev kolmeks: hommik, lõuna, õhtu.
  • Hetkel ei tööta listi puhastamine (kui klikkida uuel kuupäeval, siis näitab eelmise valitud kuupäeva sündmusi ikka edasi). Lisab uued sündmused lihtsalt listile lisaks.
  • Kuigi väärtus lõppaeg on nullable, siis hetkel tuleb see ikkagi sisestada.
TO-DO list
  • Hetkel ei näita 10 viimast tehtud ülesannet.
  • To-Do listi uuendamise lahendus vajab parendamist.
Rahaplaneerija
  • Ei saa muuta ja kustutada kulud ja tulud.
  • Ei kuva andmeid kuu vaates.
  • Vajutades kululiigile kuu vaates avaneb kasutajale täpsem info antud liigi terve kuu kulude kohta (kuupäevade järgi) - hetkel tegemata.
Andmebaasi mudel

Admebaas.JPG

Logi

18. oktoober
  • tiimi moodustamine
  • wiki lehe loomine
  • Tööjaotuse jagamine
  • TFS-i loomine
23. oktoober
  • idee arutamine ja kirja panemine
  • üldstruktuur ja funktsionaalsus
29. oktoober
  • Analüüsi esialgne kokkupanek.
  • Arutasime andmebaasi tabeleid ja nende sisu.
  • Jaotasime tööülesanded.
  • Arutasime läbi funktsionaalsused ja väljanägemist.
November-Detsembri algus
  • Arendus ja probleemide lahendamine
14. detsember
  • Tiim sai kokku ja panime erinevad osad kokku.
  • Probleemid on endiselt TFS-iga ja mõnda funktsionaalsusega.
  • Viimased lihvid nädala jooksul
18. detsember
  • Prototüübi koostamine.
  • Dokumentatsiooni koostamine.
  • Prototüübi üleslaadimine
26. jaanuar
  • Lõpptoode viimaste detailide arutamine.
  • Lõpptoode uue disaini loomine.
  • Dokumentatsiooni koostamine.
  • Login funktsionaalsuse lisamine ja testimine
29. jaanuar
  • Lõpptoode viimistlemine.
  • Dokumentatsiooni koostamise lõpetamine.
  • Lõpptoode üleslaadimine

Lõpptoode

Lõpptoote allalaadmiseks mine lingile: LifePlanner

Tehniline dokumentatsioon

Lahenduse kirjeldus

Rakendus on loodud WPF tehnoloogial, kasutades programmeerimiskeelt C#. Vaate poolel on rakenduse arendamises kasutatud MVVM arendusmustrit. Arenduse keskkonnana on kasutatud Visual Studio 2013 keskkonda. Ka projekti andmebaas on koostatud kasutades Visual Studio 2013 keskkonda. Andmebaasiühenduseks kasutame Entity Frameworki. Koodi dokumentatsioon on eesti keeles. Projekt on loodud kasutades database first lähenemist.

Rakendus koosneb kolmest osast: kalender, To Do list ja Rahaplaneerija. Rakenduse kasutamiseks on vajalik sisselogimine, et kuvataks õige kasutaja andmed. Põhivaates avaneb kalender ja To Do list. Kasutajal on võimalik navigeerida erinevate vaadete vahel kasutades üleval paremal asuvaid nuppe. Kalender vaates on kasutusel kolm funktsionaalsust: sündmuste lisamine ja kustutamine. Erinevate päevade vahel liikumiseks on kasutusel XAML-i kalender. Põhivaates asuvas To Do listis on võimalik kirjeid tehtuks märkida.

Rahaplaneerija vaates saab kasutaja ülevaate sisestatud kuludest ja tuludest. Lisaks on tal võimalik neid sorteerida, lisada, muuta ja kustutada. Vajutades "Lisa uus" ja "Muuda" nuppe avanevad uued aknad.

To Do list vaates on kasutajal võimalik sündmusi sisestada ja tehtuks märkida.

Arendusprotsess - kes mida tegi

Projekti jooksul korraldati mitu grupikoosolekut, kus tehti ühiselt ära järgnevad projekti osade mustandid: vaadete kujundus ja funktsionaalsus, andmebaasi koostamine. Palju suhtlust toimus Skype teel, kuid enamasti korraldamise grupikoosolekuid. Kirjutasime koos retsensiooni ja analüüsi.

Individuaalne panus:

  • Kaire - Rakenduste kihtide paika panemine, kogu TODO ja LogIn/LogOut koodi osa, XAML välimus.
  • Maria - Rahaplaneerija koodi osa, XAML välimus, wiki täiendamine.
  • Alina - Kalendri koodi osa, XAML välimus, wiki täiendamine.

Kasutajajuhend

  1. Lisa Data Connectionisse andmebaasi tabelite andmed. Tabelite andmete fail on projektiga kaasas. Ühenduse nimeks pane masterEntities.
  2. Lisa tabelisse "Kasutaja" kindlasti kasutaja, kelle KasutajaId = 1. Muidu ei saa programmi sisse logida.
  3. Lisada vastavad andmed tabelisse "RahaLiik": RahaLiikId = 1; Liik = Kulu; RahaLiikId = 2; Liik = Tulu.

Kalender

  • Uue sündmuse lisamiseks kalendrisse tuleb täita selleks ette nähtud vorm ning vajutada "Lisa Kalendrisse" nupule. Tärniga märgitud väljad on kohustulikud. Algusaega tuleb sisestada järgnevalt: päev, kuu, aasta, tunnid ja minutid.
  • Sündmuse kustutamiseks klikkida kalender vaates olevale sündmusele ja vajutada "Kustutada kalendrist" nupule.
  • Erinevate päevade vahel liikumiseks on kasutusel vasakus nurgas olev kalender. Et näha kindla päeva sündmusi, tuleb klikkida soovitud kuupäeval.

TO DO

TO Do listi on näha kahes vaates:

  1. Kalendri vaates kuvatakse To Do list kohe väikese kalendri alla. Valides tegevust on võimalik see märkida tehtuks vajutates tehtud nuppu ning siis ta ka kustub vaatest ära.
  2. To Do listi vaatest on võimalik märkida ToDosid tehtuks, vajutades nupule "Tehtud". Uut To Do-d on võimalik lisada täites ära nimetuse(kohustuslik) ja kirjelduse väljad ning vajutades nupule lisa.

Rahaplaneerija

  • Kulude ja tulude lisamine andmebaasi. Lisamise vaates on võimalik valida rippmenüüst, kas tegu on tuluga või kuluga. Lisaks on võimalik lisada ka lisainfo. Summa ja liik (kulu/tulu) on kohustuslikud, lisainfo on vabatahtlik. Rakendus kontrollib, kas summa ja liik on lisatud/valitud. Juhul, kui üks neist on puudu, kuvatakse veateade, mis täpselt on puudu ja aken avatakse uuesti (kasutaja peab alustama otsast peale). Kui kõik on korras, andmed salvestatakse andmebaasi. Eduka salvestamise puhul ilmub kiri "Andmed salvestatud andmebaasi".
  • Kulude ja tulude kuvamine. Kuvamise vaates saab kasutaja määrata, kuidas ta kulud või tulud (või mõlemad) näha soovib.

Võimalused on:

  • Ainult kulud
  • Ainult tulud
  • Kulud ja tulud koos

Koos kuvamisel on võimalik sorteerida sisestamise järgi (vanemad või uuemad enne), Summa järgi (kasvavalt või kahanevalt) või Liigi järgi (kulud enne/tulud enne). Erinevate sorteerimiste vahel saab liikuda samas aknas, valide rippmenüüs sobiva vaate ja klikkides "Sorteeri" nuppu. Rakendus kontrollib, et rippmenüüst oleks midagi valitud ja tühja välja korral kuvab veateade. Lisaks listile kuvatakse eraldi Kogu kulud, Kogu tulud ja Vaba jääk (arvutatakse automaatselt, kui kulud on tuludest suuremad, on summa negatiivne).

  • Kulude ja Tulude muutmine. Kui kasutaja soovib muuta mõnda sissekannet, saab seda teha klikates vastavale reale. Rida muutub valituks ja üleval peamenüüst muutub "Muuda" nupp aktiivseks. Vajutades "Muuda" nupule kuvatakse uus aken, kuhu kopeeritakse Summa, Liik ja Lisainfo valitud reast. Siin on võimalik muuta andmeid. Kustutada saab ainult Lisainfo välja, kuna see on vabatahtlik. Kui kasutaja jätab Summa või Liigi tühjana, kuvab süsteem veateade ja palub sisestada andmeid uuesi. Uued andmed salvestatakse otse andmebaasi.
  • Kulude ja Tulude kustutamine. Sarnaselt muutmisega, tuleb valida soovitud rida ja seejärel vajutada nupule "Kustuta". Eduka kustutamise puhul ilmub teade - "Kustutamine õnnestus!".