Rahaplaneerija

From ICO wiki
Jump to navigationJump to search

Meeskond ja rollid

  • Maila Keerus - Projektijuht-arendaja
  • Evelin Jõgi - Arendaja
  • Kersti Miller - Arendaja, osales projektis kuni analüüsi protsessini

Kasutusjuhend

Programmi kasutamiseks tuleb kõigepealt registreerida uus kasutaja, mille käigus registreeritakse ühtlasi ka pere. Pere registreeriv kasutaja loetakse antud pere peakasutajaks. Tal on soovi korral võimalik lisada teisi pereliikmeid tavakasutajateks, kellel on õigus näha ja sisestada kulusid ja sissetulekuid, kuid pole õigust muuta seadistusi nagu kulugrupid, eelarved jms. Enne kulude sisestamist tuleb menüüpunkti 'Seaded' all seadistada ära vähemalt üks kulugrupp ning vähemalt üks hinnang (nt. vajalikud ja mittevajalikud ostud vms). Sissetulekute sisestamine pole kohustuslik - seda kasutatakse säästu/ülekulu arvutamisel. Kõige olulisem info kulude kohta kuvatakse kasutajale programmi põhivaates. Kasutajal on võimalik võtta menüüst 'Aruanded' detailne aruanne kulude kohta, kus on võimalik kulusid sorteerida vajutades vastava veeru nimetusele.

Idee

Luua windows töölaua rakendus rahaplaneerija, kus kasutaja saab määrata kulugruppidele eelarve ja sisestada kulusid ning võtta aruandeid.

Tehnoloogia

  • Keel: C#
  • Kasutajaliides: Windows Presentation Foundation
  • Arendusmuster: MVVM

Analüüs

Rahaplaneerija rakendus on mõeldud inimestele, kes soovivad oma igapäevase rahakasutuse puhul teha teadlikumaid finantsotsuseid. Rakenduse eesmärgiks on aidata kasutajal jälgida oma jooksvaid kulutusi valitud kulugruppide kaupa, seada kulugruppidele eelarveid ning võrrelda oma kulusid sissetulekuga.

Tehniline lahendus

Arendusvahendiks on MS Visual Studio 2015, programmeerimiskeel on MS C#, andmebaasimootoriks on MS SQL, graafiline kasutajaliides luuakse WPF tehnoloogiat kasutades, XAML keeles.

Kasutajaks registreerimine

Rahaplaneerija kasutamiseks on vaja luua kasutajakonto. Kasutajakonto on vajalik, et ühes arvutis oleks võimalik oma kulusid jälgida igal perekonnaliikmel eraldi. Samuti selleks, et kui kellelgi on ligipääs kasutaja arvutile, siis ei oleks tal ligipääsu kasutaja sissetuleku ja kulude andmetele. Konto loomiseks sisestatakse eesnimi, perekonnanimi, kasutajanimi, parool ja parooli kordus. Lõppversioonis peaks olema kasutajanimi unikaalne ja parool vähemalt 5 tähemärki. Kasutajakonto loomisel vigade esinemisel kuvatakse kasutajale veateateid.

Sisselogimine

Peale kasutajakonto registreerimist on võimalik rakendusse sisse logida, seadistada oma jälgitavad kulugrupid, sisestada oma sissetulek, määrata kulugruppidele igakuine eelarve ja alustada kulude sisestamist. Ilma sisselogimata rakendust kasutada ei saa. Kui kasutaja sisestab sisselogimisel vigaseid andmeid, siis kuvatakse talle veateateid.

Rakenduse kasutamine

Sisseloginud kasutaja vaatab üle kulugrupid, mis on vaikimisi sisestatud, kui kasutaja soovib teha muudatusi, siis ta saab lisada/muuta/kustutada kulugruppe. Kasutaja sisestab oma igakuise sissetuleku suuruse. Seejärel määrab kasutaja igale kulugrupile kuu eelarve. Kui kasutaja kulugruppide eelarved on kokku suuremad kui sissetulek, siis teavitatakse sellest kasutajat, kasutaja saab valida, kas täpsustab eelarveid või jätkab, kui soovib varasemate säästude arvelt kulusid teha. Sissetulekut kasutatakse kasutajale jooksvakuu ja kumulatiivselt aasta säästmissumma kuvamiseks. Kui eelpool nimetatud seadistused on tegemata, siis teavitatakse kasutajat ja palutakse rakenduse seadistamise toimingud lõpuni viia. Kui eelnimetatud seadistused on tehtud, saab kasutaja lisada oma kulusid rakenduse süsteemi. Kui kasutaja soovib hiljem seadistusi muuta, siis saab vastava tegevuse valida menüüst. Seadistuste muutmisel küsitakse kasutajalt kinnitust, et kas ta on kindel, et soovib muudatust teha. Kulugruppi ei lubata kustutada, kui selle alla on juba sisestatud kulusid ja sellest teavitatakse kasutajat. Kulude sisestamisel valitakse õige kulugrupi tab ja sisestatakse info kulu kohta: toote/teenuse kirjeldus, kulu tekkimise kuupäev, kulusumma ja hinnang kulu kohta. Kõik andmed on kohustuslikud ja nullväärtused ei ole lubatud. Kui kasutaja sisestab vigaseid andmeid või jätab mingid andmed sisestamata, siis kuvatakse kasutajale veateade. Kasutajal on lubatud sisestatud kulu andmeid muuta ja kulu kustutada. Kulu muutmisel või kustutamisel küsitakse kasutjalt, kas ta on kindel, et soovib andmeid muuta või kustutada.

Nice-to-have lisana on kasutajal võimalik valida, kas ta sisestab oma kulusid lihtsal meetodil nagu eelpool kirjeldatud või detailsemalt. Selle võimaluse korral tuleks kasutada pisut teistsugust andmebaasimudelit (versioon 2). Detailsema kulude sisestamise puhul valitakse kulu kuupäev, sisestatakse kogu arve summa, valitakse soovitud kulugrupp ja sisestatakse info kulu kohta: toote/teenuse kirjeldus, hinnang kulu kohta (võimalus märgistada rida, kui kasutaja leiab, et antud kulu ei olnud otstarbekas). Kui kasutaja soovib ühest suuremast tšekist eraldada teatud kulusid teise gruppi, on tal sisestusvormil võimalik lisada „+“ alt uus rida ning sellel real täidab kasutaja lisaks varasemalt mainitule ka kulurupi (dropdown) ja summa veerud. Esimesena sisestatud rea summat korrigeeritakse automaatselt vastavalt terve tšeki summa ja uue sisestatud rea summale.

Nice-to-have lisana on rakendusel lemmikute kohad, et teha kulu sisestamine võimalikult lihtsaks (kulud, mida on vaja tihti sisestada ja on alati samade andmetega). Rakendusel on vaikimisi lemmikud, kuid rakenduse seadistamisel saab kasutaja lemmikuid lisada, ümbernimetada, kustutada ja seadistada. Seadistamisel saab kulu andmeid muuta, kui näiteks hind muutub. Vaikimisi lemmikute hind on null.

Rakenduse vaade

Esmakordsel sisse logimisel kuvatakse kasutajale vaade, kus on kõik seadistamist ehk väärtuste sisestamist vajavad väljad.

Seadistatud rakendusse sisselogimisel kuvatakse kasutajale vaikimisi jooksva kuu vaade(eelarve kulud ja eelarvetätimise protsent kulugruppide lõikes) ja kulugruppide tab'id koos sisestusvormiga. Kasutaja saab tab'ist valida, kas andmed kuvatakse tabelina või joonisena ning kas kuvatakse jooksva nädala, jooksva kuu või jooksva aasta andmeid.

Kulugrupi kulusumma taust muudab värvi, sõltuvalt eelarvetäitmise protsendist. Kui eelarve täitmine on 0-90%, on kulusumma taust vaikimisi kulu tab'i värvi, kui 90-100%, siis kulusumma taust on kollane ja kui eelarve on ületatud, siis punane.

Rakenduses on kulugrupi tab'idele vaikimisi määratud värvid ja kasutaja saab seadistades neid värve muuta. Kasutajal oma värvivalikutes ei ole lubatud kasutada kollast ja punast värvi, mida kasutatakse kasutaja tähelepanu suunamisel eelarve täitmisele. Tab'ile määratud värvi kasutatakse rakenduses igal pool taustavärvina, kus on kuvatud kulugrupi eelarve ja/või kulud. See tähendab tabelis on eelarve, kulude ja eelarvetäitmise protsendi taust ning joonistel kulud sama värvi, mis on määratud tab'ile.

Rakenduses loetavuse tagamiseks on eelarvete ja kulude summad alati musta värvi, taustavärvid on osaliselt läbipaistvad.

Nice-to-have versioonis on aruande vaade, milles saab võrrelda kahe perioodi kulusid.

Rakenduse vaateskeem Must-Have funktsionaalsusega:

Rakenduse sisu

Rakenduses on olemas järgmised võimalused (Must have):

  • Kasutajaks registreerimine
  • Sisselogimine
  • Rakendusel on vaikimisi etteantud kulugrupid
    • Kasutaja saab kulugruppe lisada
    • Kasutaja saab kulugruppe ümbernimetada
    • Kasutaja saab kulugruppe kustutada
    • Kasutaja saab valida, mis värvi antud grupi andmeid graafikul/tabelites jms. kuvatakse
  • Sissetuleku sisestamine
    • Kasutaja saab sissetuleku lisada (määratakse sissetuleku kuupäev, kirjeldus, summa)
    • Kasutaja saab sissetulekut muuta
  • Kulugruppidele eelarve määramine
    • Kasutaja saab eelarvet lisada
    • Kasutaja saab eelarvet muuta
    • Kasutaja saab eelarvet kustutada
  • Kulude sisestamine
    • Kasutaja saab sisestada kulusid (määratakse kulugrupp, toote/teenuse kirjeldus, kuupäev, summa, hinnang ostule)
    • Kasutaja saab sisestatud kulusid muuta
    • Kasutaja saab sisestatud kulusid kustutada
  • Kasutajale kuvatakse vaikimisi jooksva kuu vaade (eelarve, kulud ja eelarvetäitmise protsent kulugruppide lõikes)
    • Kasutaja saab tab'ist valida, kas andmed kuvatakse tabelina või joonisena
    • Kasutaja saab valida, kas kuvatakse jooksva nädala, jooksva kuu või jooksva aasta andmeid
  • Kasutajale kuvatakse
    • Jooksva kuu säästetud summat
    • Kumulatiivselt käesoleva aasta säästetud summat
  • Päringute tegemine
    • Kasutaja saab pärida konkreetse perioodi andmeid
    • Kasutaja saab pärida konkreetse kulugrupi andmeid
  • Kulugrupi eelarve, kulude summa ja eelarvetäitmise protsendi taust muudab värvi, sõltuvalt eelarve täituvuse protsendist
    • Taust on kulugrupi tab'iga sama värvi, kui kulud on veel eelarve limiidist kaugel
    • Kollane, kui kulud lähenevad eelarve limiidile
    • Punane, kui kulud ületavad eelarve

Rakenduses võiksid olla järgmised lisavõimalused (Nice to have):

  • Peresüsteem, kus ainult määratud kasutajad saavad
    • eelarvet sisestada/muuta
    • kõikide pereliikmete kulusid näha
    • kulugruppe lisada/muuta/kustutada
  • Rakendusel on lemmikute kohad, et teha kulu sisestamine võimalikult lihtsaks (kulud, mida on vaja tihti sisestada ja on alati samade andmetega)
    • Kasutaja saab lemmikuid lisada
    • Kasutaja saab lemmiku andmeid muuta (ümbernimetamine, summa muutus)
    • Kasutaja saab lemmikuid kustutada
  • Aruanded
    • Kasutaja saab saab võtta aruande, milles võrrelda erinevaid perioode
    • Kasutaja saab saab võtta filtreeritava ja sorteeritava aruande

Andmebaasiskeem

DB versioon 1:




DB versioon 2.

Logi

26.01-27.01.2017

Maila: Täiendatud kontrolle sisestamisel ja registreerimisel, kulude päringutele lisatud pere piirangu tingimus, lisatud säästu arvutus ja kuvamine, kulugrupi muudatused lõpetatud, alustatud logitabeliga.

Evelin: Kulude kuvamiste täiendused (kulugrupi kaupa, hiljutised kulud). Lisatud eelarve kuvamine, kulude kuvamistele kulugrupi värvid. Lisatud detailne kulude aruanne, mida on võimalik sorteerida.

24.01-25.01.2017

Maila: Pea- ja tavakasutajate loomine, õiguste haldus erinevate perede ning erinevate rollidega kasutajate osas. Kulugrupi muutmine osaliselt realiseeritud.

Evelin: Lisatud hiljutiste kulude kuvamine, osaliselt valmis.

19.01-22.01.2017

Maila: Andmebaasi muudatus seoses peresüsteemi loomisega.

Evelin: Avavaate comboboxide täiendused, hinnangute comboboxi loomine.

13.01-18.01.2017

Konsultatsioon õppejõu juures. Maila: värvide lisamine kulugrupile, sisselogitud kasutajaga seotud haldus

14.12-18.12.2016

Maila: dünaamiliselt hallatav menüü, võimalus kulugruppe ja hinnanguid sisestada, osaliselt abiks ka kulude sisestamise juures.

Evelin: Avavaate (põhivaate) loomine, DataGrid andmete kuvamiseks. Kulude sisestamise vaate loomine. INotifyPropertyChanged(). Kulude kuvamise ja kulude sisestamise funktionaalsuse loomine, osaliselt valmis funktsionaalsus.

19.11-10.12.2016

Maila: kasutajate registreerimisega seotud klassid ja funktsionaalsused

15-16.11.2016

Evelin alustas projektiga, tehtud esmane skelett + andmebaas

1.11.2016

Rakenduse analüüs

31.10.2016

Rakenduse analüüs

23.10.2016

Rakenduse funktsioonide kirjeldamine

22.10.2016

TFS loomine

15.10.2016

Idee paikapanek, wiki loomine

9.10.2016

Teistele projektikaaslastele kahe erineva idee kohta oma nägemuse esitamine