Meeskond:Lillelapsed
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
- Kuvamine
- Laenatavate objektide haldus
- Kuvamine
- Filtreerimine (otsimisfunktsioon) omaduste põhjal
- Lisamine
- Objekti nimi
- Objekti liik
- Olemasolev liik
- Uus liik
- Kustutamine
- Muutmine
- Kuvamine
- Laenajate haldamine
- Kuvamine
- Filtreerimisvõimalus (otsimisfunktsioon) omaduste põhjal
- Lisamine
- Kustutamine
- Muutmine
- Kuvamine
- 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
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
- Kasutajaliidese prototüüp erinevate vaadete vahel liikumisest.Link (ei tööta Chromium'iga korralikult)
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
- Login
- Register
- Põhiliides - Kasutajal on olemas username, millega ta on ennast autentinud süsteemi. Põhiliides koosneb viiest vaatest.
- Väljas
- Sees
- Laenajad
- Ajalugu
- Seaded
- Põhiliides on realiseeritud kasutades kolme põhikomponenti.
- Side menu - Kuvab hetkel sisse logitud kasutajanime ning objektid, millega saab vaateid vahetada. Lisaks võimaldab kasutajal rakendusest väljuda.
- Header - Kuvab hetkel avatud vaate ning vaatega seotud lisafunktsionaalsuse.
- Body - Kuvab vaate sees oleva informatsiooni kasutajale.
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
Lõpptoode
Seadistamise juhend
- Tõmba alla Laenutussusteem.zip ja sql_edm.txt.
- Kaivita solution fail, kui tuleb TFS info messagebox, siis vali no.
- Andmebaasi loomine:
- Vali -> Server Explorer -> Data Connection -> Add a connection
- Sisesta ->
- Server name: (LocalDB)\v11.0
- Select or enter a database name
- Protorüübi puhul: LaenutusAndmebaas
- Lõpptootel: LendingDatabase
- Loo andmebaas
- Andmebaasi tabelite genereerimine:
- Parem klikk loodud ühendusel
- New query -> kopeeri sql_edm.txt failist sql avanenud aknasse ja execute'i (roheline nooleke vasakul)
- Refreshi andmebaasi ühendust, vaata kas tuli 6 tabelit.
- 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. Kui ei soovi midagi muuta, siis võid jätta lahtri tühjaks
Parooli muutmiseks on vaja sisestada vana parool ning uut parool kaks korda.
Mail service
TODO/Bugid
1) MailSettingsFile -> kui main_xml.faili ei ole, siis loo vastav fail.
- Registreerimise korral - Sisselogimise korral
2) MainWindow
- Laenaja tahtajauletuste hoiatus -> Lisa Cancel'i nupp - Lendingu update realiseerida taielikult, hetkel uuendus ainult lopetab aktiivse laenutuse. - Objektide kategooriate uuendus fixida. - Kategooria listview'ist eemalda IsOut header. - Listview headerite suurus parajaks - Lendingutele lisada objektide kategooriad.
3) Statistika
- Koikidide andmete arvutamine.
4) Settings
- Mailsettings parooli varjamine - Mailsettings tootab hetkel ainult läbi GMALI smtp serveri. - User settings, kasutaja parooli ja andmete muutmine.
5) Uldine
- Koik alamaknad keskele. - Koik tekstid ingliskeelseks. - Kood korralikult ära dokumenteerida. - Meetodite ning muutujate nimetused ära parandada. - XAML korda teha.