Laener

From ICO wiki
Revision as of 11:55, 4 November 2016 by Markask (talk | contribs)
Jump to navigationJump to search

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:

  • 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.