Meeskond:Lillelapsed

From EIK wiki

Meeskond

  • Rene Ott (projektijuht)
  • Alari Talvar
  • Villu Viirsalu
  • Daniil Slobodin

Idee

Laenutussüsteem

  • Laenutusüsteem, mis võimaldab laenutajal omada ülevaadet sõpradele, tuttavatele laenutatud objektidest.
  • Laenutajatest kasutajate loomine
  • Esemete lisamine
  • Laenutuste registeerimine
  • Laenutuste lisamine
  • Laenutusajaloo kuvamine
  • Laenajate lisamine

Kasutatavad tehnoloogiad

  • Kasutajaliides - WPF
  • Andmebaasi ORM - Entity Framework

Analüüs

Üldine

Eesmärk

Laenutusinfosüsteemi eesmärgiks on aidata lihtsustada laenutuste haldamist. Programmis saab tegeleda laenutatavate esemetega, neid lisada, muuta, eemaldada ja välja laenutada. Loodav tarkvara sobib nii väikeettevõtele kui ka koduseks kasutamiseks. Ettevõtted saavad laenutusinfosüsteemi abil ülevaate töötajatele kasutamiseks väljastatud esemetest, näiteks firma auto või arvuti. See omakorda võimaldab ettevõttel loobuda välja antud esemete märkimisest paberkandjale. Rakenduse kasutuselevõtmine soodustab firmal kokku hoida rahaliste kulutuste pealt, mis kaasneksid liigse paberimajandusega. Lisaks lihtsustab infosüsteeem välja jagatud esemete haldamist ning ülevaate saamist, mis annab ettevõttele ajalise efektiivuse võrreldes arhailiste meetodite kasutamisega.

Koduses majapidamises kasutamise kohta võib tuua olukorra, kus naabrile on laenuks antud mingi ese, mida laenutaja tahab määratud kuupäevaks tagasi saada. Tavaliselt ei panda kirja esemeid, mis on laenuks antud tuttavale või kui seda tehakse, siis märgitakse laenutatud ese ning laenaja nimi paberilipikule. Kuna tihti kaovad väikesed lipikud ära või läheb meelest ära nii laenutamine kui ka lipiku eksistents, siis on see programm hea viis meeldetuletuseks nii endale kui ka laenajale.

Rakenduse kasutajasõbralikkus ning lihtne infosüsteemiliides võimaldab programmiga töötada nii kogenud arvutispetsialistil kui ka võhikust arvutikasutajal.

Rakenduse ülevaade

Rakenduses teeb laenutaja endale kasutaja. Kasutaja saab logida sisse infosüsteemi. Igal laenajal ja laenutajal on olemas oma profiil. Laenaja profiili registreerib infosüsteemi kasutaja. Infosüsteemi kasutaja saab lisada infosüsteemi uusi objekte ning määrata lisatud esemete liik. Kui olemas on laenutatav ese ning inimene, kes seda soovib laenata, siis saab registreerida laenutuse. Laenutusel on olemas kolm kuupäeva: väljastustähtaeg, tagastustähtaeg ning tagastatud.Laenutuste pikendamine toimub vana laenutuskirje loomise ning vana sulgemisega. Kasutajal on võimalik hallata enda profiili, mille kauda ta saab muuta oma andmeid. Lisaks saab rakenduse kasutaja ülevaate statistikast laenutuste ning laenatavate esemete kohta.

Must have

  • Kasutajate haldamine
    • Kasutaja profiili loomine
    • Kasutaja autentimine kasutajanime ning parooliga
    • Kasutaja andmete muutmine
    • Kasutajaga rakendusest välja logimine
  • Laenutuste haldamine
    • Kuvamine
      • Filtreerimine (otsimisfunktsioon) omaduste põhjal
    • Lisamine
    • Muutmine
      • Laenutuskirje info muutmine.
    • Pikendamine
      • Vana kirje sulgemine, uue kirje avamine
  • Laenatavate objektide haldus
    • Kuvamine
      • Filtreerimine (otsimisfunktsioon) omaduste põhjal
    • Lisamine
      • Objekti nimi
      • Objekti liik
        • Olemasolev liik
        • Uus liik
    • Kustutamine
    • Muutmine
  • Laenajate haldamine
    • Kuvamine
      • Filtreerimisvõimalus (otsimisfunktsioon) omaduste põhjal
    • Lisamine
    • Kustutamine
    • Muutmine
  • Statistika kuvamine
    • Objektide arv andmebaasis
    • Välja laenutatud objektide arv
    • Sees olevate objektide arv
  • Tähtaja meeldetuletus e-mailile
    • Tähtaja lähenemise
    • Tähtaja ületamise
  • Filtreerimisvõimalus (otsimisfunktsioon) vaadetes
    • Eseme järgi
    • Liigi järgi
    • Kuupäeva järgi
    • Laenaja nime järgi

Nice to have

  • Lisada esemetele pilt
  • Hoiatuse kuvamine halva laenamisajaloo puhul
    • Kui laenajal on vähemalt kolm hilinenud tähtajaga objekti tagastust, kuvatakse järgmisel laenutamisel hoiatus kasutaja kohta
  • Taustal jooksmine, et isegi kui rakendus on kinni, siis tähtajameeldetuletus ja-ületus e-maile saadetakse.

Raskuskohad

Projekti realiseerimisel võib esineda mitu takistust.

  • Filtreerimisfunktsiooni realisatsioon.
  • Kasutajaliidese korrektne ning kasutajasõbralik realisatsioon.

Kirjeldus

Arhitektuur

Projekt luuakse ühe solution failina, mis sisaldab kolme kihti ehk kolme alamprojekti. Selline 3-tasemiline vahekihtide kasutus hoiab kogu infosüsteem arendusprotsessi modulaarsena. Modulaarsus võimaldab kõiki vahekihte arendada ning testida üksteisest sõltumatult.

  • Data access layer - Realiseeritakse andmebaasi ning rakenduse vaheline suhtlus. Kasutusele tuleb Entity Framework, millega luuakse andmebaasipoolsed mudeli klassid.
  • Business Logic layer - Realiseeritakse äriloogika ning luuakse äriloogikapõhised klassi mudelid.
  • UI Layer - Realiseeritakse kasutajaliides, vaated ning vaatemudelid.

Andmebaas

Mudel

LillelapsedDb.png

Mudeli kirjeldus

  • User - Tabel rakenduse kasutajate andmete hoidmiseks.
  • Object - Tabel erinevate välja laenatavate objektide tabel.
  • Categry - Tabel, mis sisaldab erinevaid kategooriaid, kuhu objekt võib kuuluda.
  • Borrower - Tabel isikutest, kes laenavad või plaanivad esemeid laenutada.
  • Lending - Tabel, mis hoiab endas ühte laenutuskirjet.

Kasutajaliides

Prototüüp

Vaadete kirjeldus

Kasutajaliidese saab jagada kasutaja oleku ning funktsionaalsuse põhjal kaheks:

  • Väliliides - Kasutaja pole ennast autentinud või kasutajanime loonud. Koosneb kahest vaatest
  1. Login
  2. Register
  • Põhiliides - Kasutajal on olemas username, millega ta on ennast autentinud süsteemi. Põhiliides koosneb viiest vaatest.
  1. Väljas
  2. Sees
  3. Laenajad
  4. Ajalugu
  5. Seaded
  • Põhiliides on realiseeritud kasutades kolme põhikomponenti.
  1. Side menu - Kuvab hetkel sisse logitud kasutajanime ning objektid, millega saab vaateid vahetada. Lisaks võimaldab kasutajal rakendusest väljuda.
  2. Header - Kuvab hetkel avatud vaate ning vaatega seotud lisafunktsionaalsuse.
  3. Body - Kuvab vaate sees oleva informatsiooni kasutajale.

Liides lillelapsed.png


Login

Vaade kasutaja autentimiseks.

Register

Vaade uue kasutaja loomiseks.

Väljas

Vaade kuvab kasutajale kõik objektid, mis on hetkel välja laenutatud. Laenutused kuvatakse DataGridi abil moodustatatud tabelisse. Tabeli päis defineerib kasutatavateks väljadeks tabeli reas:

  • Objekti liik - Iga väljalaenutatud ese kuulub mingisesse üldisemasse kategooriasse
  • Igal väljastatud esemel on olemas nimetus
  • Väljastuskuupäev määrab kuupäeva, millal ese laenutati välja
  • Tagastuskuupäev määrab kuupäeva, millal objekt peaks olema tagastatud
  • Tagastatud on kuupäev, millal reaalselt objekt tagasi toodi
  • Laenaja on isik, kes objekti laenutas
  • Pilt objektist (nice to have)

Uue laenutuse sissekandmine toimub tabeli rea täitmisega. Valides uue rea puhul välja "nimi", siis kuvatakse kasutajale DropDownList, mille seest on võimalik valida objekt, mida tahetakse välja laenutada. Objekti laenutustähtaja pikendamiseks tuleb hetkel jooksev kirje sulgeda (märgitakse kuupäev välja "tagastatud") ning seejärel uus kirje avada.

Kui kirje on suletud ehk kuupäev on märgitud välja "tagastatud", siis objekti kohta käivat laenutuskirjet ei kuvata selles vaates enam.

Otsi/Filtreeri võimaldab kirjete seast otsida ning filtreerida kirjeid vastavalt märksõnale.


Sees

Vaade kuvab kasutajale kõik objektid, mida on võimalik hetkel välja laenutada:

  • Liik - Määrab objekti kategooria
  • Objekti nimetus
  • Pilt objektist (nice to have)

Kasutajal on võimalik defineerida uus objekt uue rea täitmisega. Objekti liiki on võimalik määrata, kas olemasolevate tüüpide kasutamisege DropDownListist või luua uus tüüp jooksvalt.

Objekti kustutamine toimub rea aktiivseks tegemisega ning vajutades nuppu eemalda.

Laenajad

Vaade kuvab kasutajale koik andmebaasis olevad laenajad DataGridi abil. Tabelis olevad väljad:

  • Nimi - Laenaja nimi
  • Mail - E-mail, millele saadetakse tagastustähtaja kohta käivad sõnumid
  • Kommentaar - Kommentaar laenutaja kohta (krooniline tähtaja üleataja)
  • Jooksvaid laenutusi (hetkel välja laenutatud esemete arv)

Infot laenaja kohta on võimalik muuta tabelist rea välju muutes. Ainuke väli, mida ei saa muuta on "Jooksvaid laenutusi", sest see sõltub isiku laenamistest.

Laenutusajalugu

Vaates kuvatakse laenutusajalugu. Laenutus satub vaatest "Väljas" vaatesse "Laenutusajalugu" pärast seda, kui laenutuskirje on vaates "Väljas" suletud ehk lisatud on kuupäev välja "tagastatud". Tabeli väljad:

  • Objekti liik
  • Igal väljastatud esemel on olemas nimetus
  • Väljastuskuupäev määrab kuupäeva, millal ese laenutati välja
  • Tagastuskuupäev määrab kuupäeva, millal objekt peaks olema tagastatud
  • Tagastatud on kuupäev, millal reaalselt objekt tagasi toodi
  • Laenaja on isik, kes objetkti laenutas
  • Pilt objektist (nice to have)

Laenutusajaloo ridu ise muuta ei saa hetkel.

Statistika

Kuvatakse kasutajale statistikat laenutuste, kasutajate, ning laenutavate objektide kohta.

Seaded

Kasutajal on võimalik muuta enda parooli. Kui kasutaja vajutab nuppu salvesta, siis kuvatakse kasutajale sama vaade tagasisidega (toiming õnnestus või ebaõnnestus).

Logi

14.10.2014

  • Meeskonna kokkupanek:Rene, Alari, Villu
  • Projekti idee
  • Wiki lehe loomine

17.10.2014

  • Osalejad: Rene, Alari, Villu
  • Meeskonnaga liitus Daniil Slobodin
  • Idee edasiarendus
  • Analüüsi koostamine
  • Esialgse andmebaasi projekteerimine
  • Esialgse kasutajaliides prototüüp

23.10.2014

  • Osalejad: Rene, Alari
  • Analüüsi edasiarendus
  • TFS-i loomine
  • Wiki lehe uuendamine

29.10.2014

  • Prototüübi üleslaadimine
  • Projektiliikmete panus on siiani olnud kesine.

Prototüüp

Juhend

  • Prototüübi leiab siit.
  • SQL script [1]


Seadistamise juhend

  1. Tõmba alla Laenutussusteem.zip ja sql_edm.txt.
  2. Kaivita solution fail, kui tuleb TFS info messagebox, siis vali no.
  3. Andmebaasi loomine:
    1. Vali -> Server Explorer -> Data Connection -> Add a connection
    2. Sisesta ->
      1. Server name: (LocalDB)\v11.0
      2. Select or enter a database name LaenutusAndmebaas
    3. Loo andmebaas
  4. Andmebaasi tabelite genereerimine:
    1. Parem klikk loodud ühendusel
    2. New query -> kopeeri sql_edm.txt failist sql avanenud aknasse ja execute'i (roheline nooleke vasakul)
    3. Refreshi andmebaasi ühendust, vaata kas tuli 6 tabelit.
  5. Käivita projekt.

Lõpptoode

  • Prototüübi leiab siit.
  • SQL script [2]

Seadistamise juhend

  1. Tõmba alla LaenutusProjektValmis.7z ja Lending.sql.
  2. Kaivita solution fail, kui tuleb TFS info messagebox, siis vali no.
  3. Andmebaasi loomine:
    1. Vali -> Server Explorer -> Data Connection -> Add a connection
    2. Sisesta ->
      1. Server name: (LocalDB)\v11.0
      2. Select or enter a database name LendingDatabase
    3. Loo andmebaas
  4. Andmebaasi tabelite genereerimine:
    1. Parem klikk loodud ühendusel
    2. New query -> kopeeri Lending.sql failist sql avanenud aknasse ja execute'i (roheline nooleke vasakul)
    3. Refreshi andmebaasi ühendust, vaata kas tuli 6 tabelit.
  5. Käivita projekt.


NB! Küsimuste probleemide korral saada e-mail aadressile rott@itcollege.ee

Kasutusjuhend

Programmi käivitamisel avatakse sisselogimise aken. Uue kasutaja registeerimiseks vajuta register. Registeerimisel on vaja ära täita kõik lahtrid.

Peale sisselogimist kuvatakse pealeht. Siin on võimalik luua uusi objekte ning neid välja laenutada või laenutusi sulgeda (toodi tagasi).

Igal laenamisel on ese mida laenatakse ja laenaja, siis on vaja need enne lisada.


Kategooria lisamine

Kuna esemel on vaja ka kategooriat, siis loome selle enne

  • Vali kõrvalt Categories
  • Name on kategooria nimi, comment-i alla võib lisada kirjelduse.
  • kui soovid muuta kategooria nime või kirjeldust vali see nimekirjast, muuda lahtreid ning vajuta update.
  • kustutamiseks vali see nimekirjast ning vajuta Delete


Objekti lisamine

Esemeid saab lisada pealehel.

  • Vali eseme kategooria, sisesta selle nimi ja kirjeldus (nt. värv või olek) ning vajuta Add


Laenaja lisamine
  • Vali kõrvalmenüüst Borrowers
  • sisesta nimi ning email ja vajuta Add


Laenamise lisamine

Nüüd saame loodud objekti laenata välja.

  • vali menüüst Object ese
  • Borrower on kellele laenatakse
  • Out date on millal väljastatakse
  • Due date on eeldatav tagastuskuupäev
  • Back date on millal tagasi toodi


Back date-i ei pea alguses valima. Kui andmed on valitud, vajuta Add Lending ning ilmub uus kirje. Alumisest nimekirjast kaob välja laenatud ese ära.

Kui objekt tuuakse tagasi, vali see laenutuste nimekijast, sisesta sellele Back date ning vajuta Close Lending


Menüüs Lending History kuvatakse laenamiste ajalugu


Settings

Kui tekib soov oma kasutaja andmeid muuta (parool, email), siis on seda võimalik teha Settings all.

Nime või emaili muutmiseks sisesta uued andmed ning vajuta Update.

Parooli muutmiseks on vaja sisestada vana parool ning uut parool kaks korda.

Automaatse teavitusmaili saatmiseks tähtajaületajatele tuleb seadistada smtp server, läbi mille toimub meili saatmine (näide google'i kontoga).

  1. SMTP server: smtp.gmail.com
  2. Port: 587
  3. SSL: True
  4. Username: example@gmail.com
  5. Password: pass4example
  6. Time interval : 3600 (minutid) // Iga 24h tagant toimub meilide saatmine