Laener: Difference between revisions
No edit summary |
|||
(22 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
* Martin Kask - programmeerija | * Martin Kask - programmeerija | ||
* Marko Nõu - programmeerija | * Marko Nõu - programmeerija/projektijuht | ||
== Rakendus == | == Rakendus == | ||
Line 10: | Line 9: | ||
== Rakenduse sisu == | == Rakenduse sisu == | ||
Rakendus võimaldab lauamängude laenutajal pidada ülevaadet lao hetkeseisust ja laenutuse kasutajatest. | Rakendus võimaldab lauamängude laenutajal pidada ülevaadet lao hetkeseisust ja laenutuse kasutajatest. | ||
Mänge ja laenutajaid saab lisada ja muuta, samuti saab laenutajatele | Mänge ja laenutajaid saab lisada ja muuta, samuti saab laenutajatele määrata mänge, pannes paika kuupäeva, kuna nad peavad selle tagastama. | ||
Automaatselt toimub teavitus tagastuskuupäeva saabudes, saates laenutajale vastavasisulise e-maili. Laenutajaid saab vastavalt nende laenutusharjumustele hinnata - kui on tegu laenutajaga, kes | Automaatselt toimub teavitus tagastuskuupäeva saabudes, saates laenutajale vastavasisulise e-maili. Laenutajaid saab vastavalt nende laenutusharjumustele hinnata - kui on tegu laenutajaga, kes tihti jääb hiljaks või on mõne mängu ära rikkunud või mängukarbist midagi ära kaotanud, saab laenutajale panna madalama hinde, mida edaspidi arvestada. | ||
tihti jääb hiljaks või on mõne mängu ära rikkunud või mängukarbist midagi ära kaotanud, saab laenutajale panna madalama hinde, mida edaspidi arvestada. | |||
Tegu on Windows platvormi desktop rakendusega, mille andmed hoitakse andmebaasis. | |||
Kogu rakendust seob kokku päis, mis võimaldab navigeerida erinevate vaadete vahel. Päises on nupud, millele vajutades vahetatakse päise all olevas konteineris linkidele vastavaid vaateid. | |||
Peavaateid on kokku kolm : Lenders, Games, Reports, Settings. | |||
Lisaks sellele on modaalsed-vaated, mis on vajalikud erinevate operatsioonide tegemiseks nagu laenutajate ja lauamängude lisamine, erinevad kinnitused (kas ikka soovid antud tegevust teha?). | |||
==Tehnoloogiad== | |||
* C# - arendus toimub C# keeles | |||
* MySQL - andmebaasiks kasutame MySQL serverit, kuna kooli server seda tasuta võimaldab. | |||
* TFS - koodi hoitame TFS serveris, kasutades git versioonikontrolli. | |||
* WPF - kasutajaliidese valmistame Windows Presentation Foundationis, .NET alamsüsteemis. | |||
==Vaated== | |||
====Peamised vaated:==== | |||
* '''Loaners''' Konteineris kuvatakse nimekiri laenutajate kohta: Nimi, email, telefon, elukoht, isikukood, laenutatud toodete arv, ületähtaegsete toodete arv, rating. Laenutaja ratingut on võimalik muuta. Samuti on võimalik järjestada nimekirja erinevate filtrite järgi. Samuti on iga kasutaja taga nupud kasutaja muutmiseks ja kustutamiseks. Lisaks on vaates nupud uute kasutajate lisamiseks, avades "Add Loaner" modaalvaate. | |||
* '''Games''' Konteineris kuvatakse olemasolevate lauamängude nimekiri. Nimetus, mängijate arv, laenutuse päevahind, mängu ostuhind. Samu mänge võib olla ka mitu, kuid neid eraldi laoseisu numbriga ei grupeerita, sest nende konditsioon võib olla erinev. Värviga tehakse vahet laos olevate ja välja laenutud mängudel, lisaks erinev toon või märge mängude kohta, mille tagastustähtaeg on üle. Mängu peale klikkides saab hüpikaknas lugeda mängu lühikirjeldust ja kes seda on minevikus laenutanud. Iga mängu taga nupud mängu muutmiseks, kustutamiseks ja väljalaenutamiseks. Need avavad vastava modaalvaate. Samuti on nupp mängu lisamiseks. | |||
* '''Reports''' Konteineris kuvatakse nimekiri võimalikest raportitest. Palju mängude laenutusega mingil perioodil teenitud on. Kasutajate raport, palju keegi laenutanud on ja raha sisse toonud. | |||
* '''Settings''' Konteineris avaneb seadete vaade. Siin saab muuta teavitust, mis kasutajatele läheb ja vaikimisi päevi, mis kuvatakse laenutusmodaalis. | |||
====Modaalsed vaated:==== | |||
* '''Add / Edit Loaner''' Vorm isiku lisamiseks, samalaadne templiit isiku muutmiseks. Võimaldab lisada isikuid laenutajate andmebaasi ja neid sealt muuta. Minimaalselt vajalik on isiku nimi, isikukood, ja emaili aadress. Soovitav on lisada ka telefoninumber ja aadress | |||
* '''Add / Edit Games''' Administraatoritel on siin võimalik lisada mänge. Sisestada tuleb mängu nimetus, kirjeldus, mängujate arv, laenutuse päeva maksumus, mängu ostuhind. | |||
* '''Lend Game''' Avaneb kui vajutatakse laenutusnupule. Siin saab valida kasutaja, kellele laenutatakse ja tagastuskuupäev. | |||
== Rakenduses võiksid olla lisavõimalused (Nice to have): == | |||
* Andmebaas on seotud https://boardgamegeek.com/ leheküljega, kust kuvatakse lauamängude reitinguid. | |||
* Automaatne kasutaja reitingu arvutamine vastavalt kasutaja käitumisele (raske õigele valemile pihta saada ning nõuab reaalsete andmete analüüsi). | |||
* Uute, mugandatud raportite koostamine. | |||
* Andmebaasi import/export varunduse eesmärgil. | |||
== Andmebaasiskeem == | |||
====Laenutaja==== | |||
* Laenutaja ID | |||
* nimi | |||
* telefon | |||
* aadress | |||
* e-mail | |||
* rating | |||
====Laenutus==== | |||
* Laenutuse ID | |||
* FK - Mängu ID | |||
* FK - Laenutaja ID | |||
* Laenutuse algus kuupäev | |||
* Laenutuse lõpu kuupäev | |||
* Laenutuse maksumus | |||
* Märge, kas on saadetud teavitus tagastusaja ületusest. | |||
====Mäng==== | |||
* Mängu ID | |||
* nimetus | |||
* kirjeldus | |||
* mängijate arv | |||
* ostuhind | |||
* mängu laenutuse hind(päev) | |||
* viivis | |||
* staatus (majas/väljas) | |||
====Kasutajad==== | |||
* Kasutaja ID | |||
* Kasutaja nimi | |||
* Kasutaja roll | |||
* Salasõna (krüpteeritud) | |||
====Raportid==== | |||
* Raporti ID | |||
* Raporti päringu kood | |||
* Raporti kirjeldus | |||
====Logid==== | |||
* Logi ID | |||
* TimeStamp | |||
* FK - Kasutaja ID | |||
* Tegevus | |||
TODO - Graafiline esitlus | |||
==WTF== | |||
*Automaatne teavitussüsteem - kuidas seda ehitada? Kas peaks jooksma mingi protsess, mis intervalli tagant küsib andmebaasist, millistel laenutustel on käes tagastusaeg, ja saadab neile teavituse (märgib ka ära, et neile on teaded saadetud). | |||
Kuidas seda windowsi protsessi käimas hoida või skripti mingi intervalli tagant käivitada? Kas protsess ei peaks eraldi olema üldse kuskil pilveserveris ja ise end surres taaskäivitama? Igatahes selline lahendus tähendab, et meie rakendus peab kasutama välist SQL serverit, kus nii desktop rakendus kui ka teavitusskript saaks andmebaasile ligi. | |||
== Worklog == | == Worklog == | ||
Line 27: | Line 107: | ||
Wikisse kogutud materjali formaliseerimine. | Wikisse kogutud materjali formaliseerimine. | ||
== | === 12.12.2016 === | ||
MVVM realiseerimine ning esmase funktsionaalsuse lisamine. | |||
== | === 18.12.2016 === | ||
Andmebaasiga sidumine. | |||
Kogu | |||
=== 21.12.2016 === | |||
Kogu andmebaasi üleviimine MySQL-i peale ning projektiga "nullist" alustamine | |||
=== 24.01.2017 === | |||
Vaadete loomine ja andmete sidumine Bindingu kaudu andmebaasiga | |||
=== 25.01.2017 === | |||
Laenamisloogika lisamine andmebaasi ja programmi. Visuaalse poole ilustamine. | |||
=== 27.01.2017 === | |||
Lõpptoote esitleminie | |||
== Lõpptoode == | |||
Projekti TFS: [https://kaskmartin.visualstudio.com/Laener] | |||
Kokku pakitud toode: [http://enos.itcollege.ee/~markask/csharp/Laener.zip] | |||
Latest revision as of 14:18, 30 January 2017
Meeskond ja rollid
- Martin Kask - programmeerija
- Marko Nõu - programmeerija/projektijuht
Rakendus
Lauamängude rendiplatvorm
Rakenduse sisu
Rakendus võimaldab lauamängude laenutajal pidada ülevaadet lao hetkeseisust ja laenutuse kasutajatest. Mänge ja laenutajaid saab lisada ja muuta, samuti saab laenutajatele määrata mänge, pannes paika kuupäeva, kuna nad peavad selle tagastama. Automaatselt toimub teavitus tagastuskuupäeva saabudes, saates laenutajale vastavasisulise e-maili. Laenutajaid saab vastavalt nende laenutusharjumustele hinnata - kui on tegu laenutajaga, kes tihti jääb hiljaks või on mõne mängu ära rikkunud või mängukarbist midagi ära kaotanud, saab laenutajale panna madalama hinde, mida edaspidi arvestada.
Tegu on Windows platvormi desktop rakendusega, mille andmed hoitakse andmebaasis. Kogu rakendust seob kokku päis, mis võimaldab navigeerida erinevate vaadete vahel. Päises on nupud, millele vajutades vahetatakse päise all olevas konteineris linkidele vastavaid vaateid.
Peavaateid on kokku kolm : Lenders, Games, Reports, Settings. Lisaks sellele on modaalsed-vaated, mis on vajalikud erinevate operatsioonide tegemiseks nagu laenutajate ja lauamängude lisamine, erinevad kinnitused (kas ikka soovid antud tegevust teha?).
Tehnoloogiad
- C# - arendus toimub C# keeles
- MySQL - andmebaasiks kasutame MySQL serverit, kuna kooli server seda tasuta võimaldab.
- TFS - koodi hoitame TFS serveris, kasutades git versioonikontrolli.
- WPF - kasutajaliidese valmistame Windows Presentation Foundationis, .NET alamsüsteemis.
Vaated
Peamised vaated:
- Loaners Konteineris kuvatakse nimekiri laenutajate kohta: Nimi, email, telefon, elukoht, isikukood, laenutatud toodete arv, ületähtaegsete toodete arv, rating. Laenutaja ratingut on võimalik muuta. Samuti on võimalik järjestada nimekirja erinevate filtrite järgi. Samuti on iga kasutaja taga nupud kasutaja muutmiseks ja kustutamiseks. Lisaks on vaates nupud uute kasutajate lisamiseks, avades "Add Loaner" modaalvaate.
- Games Konteineris kuvatakse olemasolevate lauamängude nimekiri. Nimetus, mängijate arv, laenutuse päevahind, mängu ostuhind. Samu mänge võib olla ka mitu, kuid neid eraldi laoseisu numbriga ei grupeerita, sest nende konditsioon võib olla erinev. Värviga tehakse vahet laos olevate ja välja laenutud mängudel, lisaks erinev toon või märge mängude kohta, mille tagastustähtaeg on üle. Mängu peale klikkides saab hüpikaknas lugeda mängu lühikirjeldust ja kes seda on minevikus laenutanud. Iga mängu taga nupud mängu muutmiseks, kustutamiseks ja väljalaenutamiseks. Need avavad vastava modaalvaate. Samuti on nupp mängu lisamiseks.
- Reports Konteineris kuvatakse nimekiri võimalikest raportitest. Palju mängude laenutusega mingil perioodil teenitud on. Kasutajate raport, palju keegi laenutanud on ja raha sisse toonud.
- Settings Konteineris avaneb seadete vaade. Siin saab muuta teavitust, mis kasutajatele läheb ja vaikimisi päevi, mis kuvatakse laenutusmodaalis.
Modaalsed vaated:
- Add / Edit Loaner Vorm isiku lisamiseks, samalaadne templiit isiku muutmiseks. Võimaldab lisada isikuid laenutajate andmebaasi ja neid sealt muuta. Minimaalselt vajalik on isiku nimi, isikukood, ja emaili aadress. Soovitav on lisada ka telefoninumber ja aadress
- Add / Edit Games Administraatoritel on siin võimalik lisada mänge. Sisestada tuleb mängu nimetus, kirjeldus, mängujate arv, laenutuse päeva maksumus, mängu ostuhind.
- Lend Game Avaneb kui vajutatakse laenutusnupule. Siin saab valida kasutaja, kellele laenutatakse ja tagastuskuupäev.
Rakenduses võiksid olla lisavõimalused (Nice to have):
- Andmebaas on seotud https://boardgamegeek.com/ leheküljega, kust kuvatakse lauamängude reitinguid.
- Automaatne kasutaja reitingu arvutamine vastavalt kasutaja käitumisele (raske õigele valemile pihta saada ning nõuab reaalsete andmete analüüsi).
- Uute, mugandatud raportite koostamine.
- Andmebaasi import/export varunduse eesmärgil.
Andmebaasiskeem
Laenutaja
- Laenutaja ID
- nimi
- telefon
- aadress
- rating
Laenutus
- Laenutuse ID
- FK - Mängu ID
- FK - Laenutaja ID
- Laenutuse algus kuupäev
- Laenutuse lõpu kuupäev
- Laenutuse maksumus
- Märge, kas on saadetud teavitus tagastusaja ületusest.
Mäng
- Mängu ID
- nimetus
- kirjeldus
- mängijate arv
- ostuhind
- mängu laenutuse hind(päev)
- viivis
- staatus (majas/väljas)
Kasutajad
- Kasutaja ID
- Kasutaja nimi
- Kasutaja roll
- Salasõna (krüpteeritud)
Raportid
- Raporti ID
- Raporti päringu kood
- Raporti kirjeldus
Logid
- Logi ID
- TimeStamp
- FK - Kasutaja ID
- Tegevus
TODO - Graafiline esitlus
WTF
- Automaatne teavitussüsteem - kuidas seda ehitada? Kas peaks jooksma mingi protsess, mis intervalli tagant küsib andmebaasist, millistel laenutustel on käes tagastusaeg, ja saadab neile teavituse (märgib ka ära, et neile on teaded saadetud).
Kuidas seda windowsi protsessi käimas hoida või skripti mingi intervalli tagant käivitada? Kas protsess ei peaks eraldi olema üldse kuskil pilveserveris ja ise end surres taaskäivitama? Igatahes selline lahendus tähendab, et meie rakendus peab kasutama välist SQL serverit, kus nii desktop rakendus kui ka teavitusskript saaks andmebaasile ligi.
Worklog
29.09.2016
Esimesed sammud: idee brainstorm, meeskonna loomine ja tööülesannete kinnitamine, skype chati loomine projekti vestlusteks
6.10.2016
Wiki ja VS projekti loomine
10.10.2016
Koosolek ja skoobi täpsem paikapanek, vaadete visandid paberile, funktsionaalsuse kirjeldused.
01.11.2016
Wikisse kogutud materjali formaliseerimine.
12.12.2016
MVVM realiseerimine ning esmase funktsionaalsuse lisamine.
18.12.2016
Andmebaasiga sidumine.
21.12.2016
Kogu andmebaasi üleviimine MySQL-i peale ning projektiga "nullist" alustamine
24.01.2017
Vaadete loomine ja andmete sidumine Bindingu kaudu andmebaasiga
25.01.2017
Laenamisloogika lisamine andmebaasi ja programmi. Visuaalse poole ilustamine.
27.01.2017
Lõpptoote esitleminie
Lõpptoode
Projekti TFS: [1]
Kokku pakitud toode: [2]