Laener: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mnou (talk | contribs)
Markask (talk | contribs)
No edit summary
 
(27 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
* Anto Animägi - projektijuht


== Idee ==
== Rakendus ==
Lauamängude rendiplatvorm
Lauamängude rendiplatvorm


== 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ää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.


== Workload ==
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)


===View===
====Raportid====
* Raporti ID
* Raporti päringu kood
* Raporti kirjeldus


Tegu on Windows platvormi desktop rakendusega, mille andmed hoitakse andmebaasis.
====Logid====
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.
* Logi ID
Peavaateid on kokku kolm : Users, Games, Reports.
* TimeStamp
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?).
* FK - Kasutaja ID
* Tegevus
 
TODO - Graafiline esitlus


Peamised vaated:
==WTF==
* '''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.
*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).
* '''Games''' Konteineris kuvatakse olemasolevate lauamängude nimekiri. Nimetus, mängijate arv, hind, laoseis.  Värviga tehakse vahet laos olevate ja välja laenutud mängudel, lisaks eri märge mängude kohta, mille tagastustähtaeg on üle. Toote peale klikkides saab modalis lugeda toote lühiiseloomustust ja kes seda on laenutanud. Samuti on iga toote taga nupud toote muutmiseks ja kustutamiseks.
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.
* '''Reports''' Konteineris kuvatakse nimekiri võimalikest raportitest.


Modal vaated:
* '''AddUser''' (On võimalik lisada isikuid laenutajate andmebaasi. 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. Kindlasti tuleb sisestada mängu nimetus ja laenutuse päeva maksumus. Soovitav on ka toote pilt ning lühikirjeldus.)
* '''


== Worklog ==
=== 29.09.2016 ===
=== 29.09.2016 ===
Esimesed sammud: idee genereerimine ja kinnitamine, esimesed mõtted, skype chati loomine projekti vestlusteks
Esimesed sammud: idee brainstorm, meeskonna loomine ja tööülesannete kinnitamine, skype chati loomine projekti vestlusteks


=== 6.10.2016 ===
=== 6.10.2016 ===
wiki loomine, VS projekti loomine
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: [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
  • 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

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]