Kalimali budget

From ICO wiki

Meeskond ja tööjaotus

  • Katrin Lasberg - projektijuht
  • Liina Laumets
  • Maile Mäesalu
  • Liis Talsi

Tehnoloogia

Kasutatav tehnoloogia:

  • C# - arenduse keel
  • TFS - koodi asukohaks on Team Foundation Server
  • MySQL - andmebaasiks kasutame MySQL-i serverit
  • WPF - kasutajaliidese valmistame Windows Presentation Foundationis

Idee

Ideeks on teha rakendus, mille abil saab iga väiksem majapidamine oma tulud ja kulud kokku lüüa ning pidada eraldi arvestust määratud kategooriate kaupa.

Rakenduse analüüs

Antud rakenduse idee on tekkinud reaalsest vajadusest omada ülevaadet majapidamise (pere) sissetulekutest ning kulutustest, et oleks võimalik planeerida ja korraldada pere eelarvet, suuremaid oste ning teha pikemaid finantsplaane. Kavandava rakenduse eesmärgiks on luua andmebaasil põhinev praktiline rakendus (lahendus), mis võimaldab lisada andmebaasi sissetulekuid ning kulutusi liikide kaupa, teha erinevaid päringuid kulutuste liigi, aja ning suuruse jne järgi. Rakendus võimaldab kasutajatel saada ka kiiresti visuaalset ülevaadet perioodiliste kulude kohta, võimaldades sellega vajadusel piirata vähem olulisi kulutusi ning säästa eesootavate oluliste kulutuste katmiseks. Rakendust on võimalik kasutada ka nii, et ainult 1 inimene (ehk admin) omab õigusi näha kõikide kasutajate kulutusi ning teised kasutajad (nt. lapsed) saavad sisestada endapoolseid tulusid-kulusid, aga ei näe teiste kasutajate andmeid. Rakenduse edasiarenduseks võiks olla statistilise analüüsi väljatöötamine, mille abil saaks sisestatud andmete põhjal teha soovitusi/oletusi selle kohta, kust reaalselt saaks kulusid kärpida. Näiteks kui üks kuu kulub kasutajal riiete/jalanõude peale 150 eurot ja teine kuu kulub 20 eurot, siis suure tõenäosusega on võimalik sellest kategooriast igakuiselt raha kokku hoida.

Milliste osade realiseerimine võib osutuda problemaatiliseks?

Olles kõik algajad programmeerijad, on kogu projekti teostus ning kõigi planeeritud funktsionaalsuste realiseerimine piisavalt suur väljakutse. Suure tõenäosusega kujunevad küllaltki keeruliseks erinevate andmetabelite seostamised ning samuti liitpäringute tegemised. Raske on ka ette hinnata kui keeruline on erinevate must-have ja nice-to-have ideede reaalne saavutamine.

Vaated

1. esilehel kuvatakse kasutaja valimine (pole veel otsustatud, kas saab olema parooliga või ilma)

* admin
* kasutaja
* külaline

2. kasutajale kuvatakse tema jooksva kuu tulude-kulude seis

* vasakul pool kuvatakse vabad vahendid ja jooksva kuu kulude tabel
* paremal pool kuvatakse kui palju on raha (eurodes) kulunud erinevate kategooriate peale jooksva kuu sees -võimalus kuvada kulusid protsentides
* paremal pool all on nupud "lisa kulu", "lisa tulu" ja nende all "otsi kirjet"
* lisa kulu/tulu suunab uutele lehtele

3."otsi kirjet" nupp suunab uuele lehele, kus saab valida erinevaid tingimusi, mille järgi päringut teostada

* kuupäevavahemiku järgi
* kategooria järgi
* summa järgi
* kas tulu/kulu
* samuti saab selles vaates ka muuta juba sisestatud kirjeid (kuvatud kirjete ette tuleb kastikene kuhu saab linnukese teha, et seda muuta)
* eraldi on nupp ka statistika jaoks ehk sektordiagrammi moodustamise jaoks (saab kuvada nii summana kui protsendina)

4. "lisa kulu" ja "lisa tulu" suunab eraldi lehtedele, mis on oma ülesehituselt analoogsed

* võimalus lisada kuupäev
* valida juba olemasolevate kululiikide (ehk kategooriate seast) sobiv
* kui vajalikku kulu(tulu)liiki ei eksisteeri, siis saab tekitada uue kulu(tulu)liigi (ehk kategooria)
* summa sisestamine
* kommentaari sisestamine

Funktsionaalsus

Must have

  • erinevate kasutajate lisamine
  • tulude-kulude sisestamisvõimalus
  • kululiikide lisamise võimalus nt. tahetakse tekitada eraldi kategooria mingi hobi tarvis
  • erinevate tulu ja kululiikide (kategooriate) määramise võimalus
  • kasutajanimede, kululiikide ning muude kirjete muutmine/kustutamine
  • võimalus teha päringuid erinevate kasutajate, kululiikide kaupa
  • tehingute grupeerimise võimalus
  • järjestada tulusid-kulusid erinevate parameetrite kaupa (summa, kululiigi, kuupäeva järgi nt. nn. TOP kulud)
  • vabade vahendite ja broneeringute kuvamine

Nice to have

  • püsikulu määramine (igakuised samas summas arved nt. spordiklubi kuutasu)
  • eelarvelimiidi panemise võimalus
  • päringute (tulude-kulude) graafiline kuvamine
  • järgmise nädala/kuu/aasta keskmise kulu automaatne prognoos
  • punase "Alert"-sildi hüppamine ekraanile, kui ollakse miinustes või on eelarve on lõhki
  • andmeanalüüsi järgi öeldakse millisest kategooriast saaks kulu reaalselt kärpida

Andmemudel

Joonis Andmemudel.png

Näide andmebaasi tabelitest:

CSharp tabelite n2idised.JPG

Prototüüp

Töö senine kulg

Projekti esimene commit 10.12.2017, millele järgnes tubli ühine pingutus. Probleemid esinesid pidevalt erinevate osade (ühendused andmebaasiga, kuidas WPF-i kaudu ühenduda andmebaasiga jne.) juures, aga enamusest saime üle. Praegu pakub väljakutset erinevate vaadete kasutamisel andmete uuendamine jms.

DONE

Valminud peavaade, kus saab lisada, muuta ja kustutada nii tulusid kui kulusid. Andmete salvestamine ja muudatuste kuvamine vaates toimib, samuti ühenduvus andmebaasiga. Lisaks tehtud veel üks vaade, mis seotud peavaatega. Osa funktsionaalsust on praegu välja kommenteeritud, millega tegeleme hiljem.

TODO

Plaanis on veel sisselogimise vaade teha lisamisega ja samuti vaade päringute tarbeks. Tekitada WPF-s rohkem silmailu, aga keskendume siiski rohkem funktsionaalsusele. Osa koodi on juba kommenteeritud, aga plaanime ka seda rohkem teha.

Meeskonna hinnang prototüübile

Kuigi ei jõutud nii kaugele kui loodeti, siis tegime enda võimeid arvestades (eelnev programeerimiskogemus puudub ning samuti on see esmane samalaadse meeskonnatöökogemus meie kõigi jaoks) korraliku soorituse. Meeskond on realiseerinud enamuse osa prototüübile esitatud nõuetest, seega loodame saada 10 punkti.

Logi

20.09.2017 Meeskkonna moodustamine ja ideede pakkumine
30.09.2017 Esimene kokkusaamine ning rakenduse funktsionaalsuse täpsustamine
04.10.2017 Wiki lehe loomine ning esimesed sissekanded
28.10.2017 TFS'i konto loomine
04-06.11.2017 Rakenduse analüüs/wiki lehe täiendamine
12.11.2017 Retsensioon meeskonnale H2l
17.12.2017 Prototüübi valmimine, lingi lisamine meeskonna wiki lehele