Laener: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mnou (talk | contribs)
No edit summary
Markask (talk | contribs)
No edit summary
Line 10: Line 10:
== 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 assigneerida mänge, pannes paika kuupäeva, kuna nad peavad selle tagastama.  
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.
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 lingid ja neile klikkides vahetatakse päise all olevas konteineris linkidele vastavaid vaateid.
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 : Users, Games, Reports, Settings.
 
Lisaks sellele on modal-vaated, mis on vajalikud erinevate operatsioonide tegemiseks nagu laenutajate ja lauamängude lisamine, erinevad kinnitused (kas ikka soovid antud tegevust teha?).
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==
==Tehnoloogiad==
*C# - arendus toimub C# keeles
* C# - arendus toimub C# keeles
*MySQL - andmebaasiks kasutame MySQL serverit, kuna meie käsutuses olevad
* MySQL - andmebaasiks kasutame MySQL serverit, kuna kooli server seda tasuta võimaldab.
*TFS - koodi hoitame TFS serveris, kasutades git versioonikontrolli
* TFS - koodi hoitame TFS serveris, kasutades git versioonikontrolli.
*WPF - kasutajaliidese valmistame Windows Presentation Foundationis, .NET alamsüsteemis.
* WPF - kasutajaliidese valmistame Windows Presentation Foundationis, .NET alamsüsteemis.


==Vaated==
==Vaated==
====Peamised vaated:====
====Peamised vaated:====
* '''Users''' 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 User" modaalvaate.
* '''Lenders''' 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 Lender" 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.
* '''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.
* '''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.
Line 33: Line 33:


====Modal vaated:====
====Modal vaated:====
* '''Add / Edit User''' 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 Lender''' 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.
* '''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.
* '''Lend Game''' Avaneb kui vajutatakse laenutusnupule. Siin saab valida kasutaja, kellele laenutatakse ja tagastuskuupäev.
Line 40: Line 40:
* Andmebaas on seotud https://boardgamegeek.com/ leheküljega, kust kuvatakse lauamängude reitinguid.
* 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).
* 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.
* Andmebaasi import/export varunduse eesmärgil.


== Salvestatavad andmed ==
== Salvestatavad andmed ==
====Laenutaja====
====Laenutaja====
*nimi
* Laenutaja ID
*telefon
* nimi
*aadress
* telefon
*e-mail
* aadress
*rating
* e-mail
*mängud, mis on talle laenutatud
* rating
*kuupäev, kuna mäng talle laenutati
 
*märge, kas on saadetud teavitus tagastusaja ületusest.
====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äng====
*nimetus
* Mängu ID
*kirjeldus
* nimetus
*mängijate arv
* kirjeldus
*ostuhind
* mängijate arv
*mängu laenutuse hind(päev)
* ostuhind
*staatus (majas/väljas)
* 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


=== Andmebaasiskeem ===
=== Andmebaasiskeem ===
TODO (paberkujul olemas)
TODO  


==WTF==
==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 saadetud).
*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.
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.



Revision as of 22:01, 1 November 2016

Meeskond ja rollid

  • Martin Kask - programmeerija
  • Marko Nõu - programmeerija
  • Anto Animägi - 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:

  • Lenders 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 Lender" 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.

Modal vaated:

  • Add / Edit Lender 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.

Salvestatavad andmed

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

Andmebaasiskeem

TODO

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.