Kalimali budget: Difference between revisions
(76 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Programmeerimine CSharp keeles (2017)]] | [[Category:Programmeerimine CSharp keeles (2017)]] | ||
== Meeskond ja tööjaotus== | == Meeskond ja tööjaotus== | ||
* Katrin Lasberg | * Katrin Lasberg - projektijuht | ||
* Liina Laumets | * Liina Laumets | ||
* Maile Mäesalu | * Maile Mäesalu | ||
Line 8: | Line 8: | ||
== Tehnoloogia == | == Tehnoloogia == | ||
Kasutatav tehnoloogia: | Kasutatav tehnoloogia: | ||
* C# | * C# - arenduse keel | ||
* | * TFS - koodi asukohaks on Team Foundation Server | ||
* | * MySQL - andmebaasiks kasutame MySQL-i serverit | ||
* WPF - kasutajaliidese valmistame Windows Presentation Foundationis | |||
== Idee == | == Idee == | ||
Line 16: | Line 17: | ||
== Rakenduse analüüs == | == 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. | ||
=== Nice to have === | ===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 | *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 | *andmeanalüüsi järgi öeldakse millisest kategooriast saaks kulu reaalselt kärpida | ||
== Andmemudel == | === Andmemudel === | ||
[[File:Joonis_Andmemudel.png|700px]] | |||
=== Näide andmebaasi tabelitest: === | |||
[[File:CSharp_tabelite_n2idised.JPG|1000px]] | |||
==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 == | == Logi == | ||
'''20.09.2017''' Meeskkonna moodustamine ja ideede pakkumine <br> | '''20.09.2017''' Meeskkonna moodustamine ja ideede pakkumine <br> | ||
'''04.10.2017''' Wiki lehe loomine ning esimesed sissekanded | '''30.09.2017''' Esimene kokkusaamine ning rakenduse funktsionaalsuse täpsustamine <br> | ||
'''04.10.2017''' Wiki lehe loomine ning esimesed sissekanded <br> | |||
'''28.10.2017''' TFS'i konto loomine <br> | |||
'''04-06.11.2017''' Rakenduse analüüs/wiki lehe täiendamine <br> | |||
'''12.11.2017''' Retsensioon meeskonnale H2l<br> | |||
'''17.12.2017''' Prototüübi valmimine, lingi lisamine meeskonna wiki lehele |
Latest revision as of 00:58, 18 December 2017
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
Näide andmebaasi tabelitest:
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