Meeskond: Premium
Premium
- Karin Talumäe - projektijuht
- Tarmo Petrovits
- Jevgeni Gavrilov
Idee
Koduse raamatukogu haldusprogramm. Rakendus võimaldab kasutajal töötada infoga raamatute, laenutuste ja klientide kohta.
Projekti kirjeldus
Analüüs
- SISSEJUHATUS
HomeLibrary rakenduse analüüsis üritatakse ära katta kõik võimalikud kasutaja poolsed tegevused ja nende tulemused. Analüüsi esimene osa on struktureeritud kasutajale kuvatavatele akendele ja vaadetele baseerudes. Abiks on vaba käega valmis tehtud suur joonis (vt Lisa 1) kasutajale kuvatavatest kõikidest akendest, vaadetest ja labelitest. Analüüsi lõpuosas on toodud UML diagramm.
Eeldused: HomeLibrary on koduseks kasutamiseks ja pole mõeldud suurte andmemahtude töötlemiseks. Kõiki raamatuid on HomeLibrary’s üks koopia.
- LOGIN AKEN
LogIn aknas on kiri HomeLibrary Login ja kaks tekstivälja emaili ja parooli sisestamiseks. Pärast seda on „Sign in“ nupp. Eduka sisenemise korral peaaken sulgub ja avaneb järgmine aken. Tavakasutaja korral kuvatakse järgmisena User aken alamvaatega User_MyLoans ning administraatori korral Admin aken alamvaatega Admin_BooksData. Kui sisenemine pole edukas, kuvatakse kasutajale teade „Try again or contact your administrator“. Kasutaja vajutab „OK“ nuppu, et ta sai aru ja on teadet lugenud. „OK“ nupu vajutamisel kuvatakse kasutajale jälle LogIn akent tühjade väljadega. LogIn aknas on väljade all ka link „Register“. Sealt avatakse lugejaks registreerumiseks Register aken.
- REGISTER AKEN
Register aknas on viis tekstivälja. Esimesse tuleb sisestada oma eesnimi, teise perenimi, kolmandasse email, neljandasse parool, viiendasse parooli kinnitus. Seejärel on nupud „Register“ ja „Cancel“. „Register“ nupu vajutamisel kontrollitakse programmi poolt 1) Kas kõik väljad on täidetud. 2) Kas kasutaja poolt sisestatud emaili juba andmebaasis esineb või mitte. 3) Kas sisestatud parool ja parooli kordus on ühesugused. Kui kõik väljad on täidetud, sama emailiaadressi andmebaasis ei esine ning sisestatud paroolid on ühesugused, siis salvestatakse andmed otse andmebaasi ning kasutajale antakse ID. Vaikimisi saab iga registreerija andmebaasis ka user-staatuse. Administraator (üks on vaikimisi andmebaasis olemas) saab soovi korral iga kasutaja õiguseid muuta. Lõpuks suunatakse tavakasutaja „Register“ aknast User aknasse User_MyLoans vaatesse. Kui üks või mitu välja on täitmata, siis kuvatakse kasutajale kiri, kus palutakse tal täita kõik väljad, näiteks „Please fill in all of the fields!“. Kui sama emaili aadress on juba andmebaasis olemas, siis kuvatakse kasutajale kiri: „This email address is already in use!“ Nime ja parooli kirjutiste sisu üksikasjalik kontrollimine pole tõenäoliselt vajalik, kuna tegemist on väikesemahulise andmebaasiga ja erinevate probleemide korral jõuab administraator parandada need käsitsi. Kasutajad on ka administraatori sõbrad/tuttavad, kellelt on ilmselt oodata keskmisest heatahtlikumat ja mõistlikumat käitumist. „Cancel“ nupu vajutamisel Register aknas suunatakse kasutaja tagasi LogIn aknasse.
- USER AKEN
Selle akna peavaade (main view) sisaldab kolme nuppu akna ülaservas (vt Lisa 1) 1) „User_MyLoans“. 2) „User_ViewAllBooks“. 3) „User_MySettings“.
„Log out“ nuppu üleval paremas nurgas. Esimesi kolme nuppu klikkides kuvatakse kasutajale põhivaate sees nupu nimele vastav alamvaade, kas User_MyLoans, User_ViewAllBooks või User_MySettings (kirjeldatud allpool). Vaikimisi on ees User_MyLoans alamvaade. Kui vajutatakse „Log out“ nupule, siis nice to have funktsionaalsusena küsitakse kasutajalt, kas ta tõesti soovib välja logida: „Are you sure you want to log out from HomeLibrary?“. Kasutajale antakse kaks valikut: „Log out“ ja „Cancel“. Esimesele klikkides logitakse kasutaja rakendusest välja ning saadetakse LogIn aknasse, teisele klikkides kaob teade „Are you sure you want to log out from HomeLibrary“ ära ja kasutaja jääb User aknasse vastavasse alamvaatesse.
- USER_MYLOANS ALAMVAADE
User_MyLoans alamvaates nice to have funktsionaalsusena kuvatakse kasutajale tervitus. Näide: „Hello, Peeter Pakiraam!“. Lisaks kuvatakse tabel konkreetse kasutaja laenutatud raamatutest ning tähtaegadest, kokku neli veergu: 1) No 1, 2, 3, … (max 10), et kasutaja näeks kergesti hoomataval viisil, mitu raamatut tal parasjagu käes on. 2) Title – raamatu pealkiri. 3) Author – autori nimi/autorite nimed. 4) Return deadline – raamatu/te tagastamise tähtaeg. Raamatuid saab sorteerida pealkirja ja autori järgi. Nice to have funktsionaalsusena on võimalik sorteerida ka tähtaegade järgi.
- USER_VIEWALLBOOKS ALAMVAADE
User_ViewAllBooks alamvaates kuvatakse kasutajale tabel kõikide HomeLibrary raamatutega andmebaasis. Samuti väli, kuhu kasutaja sisestab otsingusõna raamatu/te leidmiseks ning nupp „Search“. Kui otsingule mitte ühtegi vastet ei tule, siis nice to have funktsionaalsusena kuvatakse kasutajale vastavasisuline kiri. User_ViewAllBooks alamvaate tabelis on kolm veergu: 1) Title – raamatu pealkiri. 2) Author – autori nimi/autorite nimed. 3) Status and availability – annab informatsiooni, kas raamat on kohal või mitte. Tabelis on kirjutatud veeru alla kas „on stock“ või raamatu tagastamise tähtaeg. Kuna raamatuid pole koduses raamatukogus tuhandeid, siis antud tabel on lahendatud Scroll-down-window abil. Raamatuid saab sorteerida pealkirja ja autori järgi.
- USER_MYSETTINGS ALAMVAADE
User_MySettings alamvaade on mõeldud tavakasutajale oma andmete muutmiseks. Seal kuvatakse eeltäidetud kolm välja kasutaja andmetega – eesnime, perenime ja emaili aadressiga. Kohe antud väljade all on nupud „Edit“ ja „Cancel“ ning lõpuks link „Change your password“. Nice to have funktsionaalsusena ilmub nupp „Cancel“ alles siis, kui kasutaja välja sees midagi muudab. „Cancel“ vajutamisel kuvatakse kasutajale jälle tema praegused andmed. „Edit“ nupule vajutades ilmub parooli sisestamise label. Parooli sisestamise labeli peal on tekst, kus palutakse kasutajal sisestada oma parool, ja väli parooli sisestamiseks. Labeli peal on ka nupud „Submit“ ja „Cancel“. Viimase vajutamisel suunatakse kasutaja tagasi User aknasse User_MySettings alamvaatesse. Õige parooli sisestamisel ja „Submit“ nupu vajutamisel programm kuvab andmete muutmise õnnestumise kinnitamise labeli, millel on kirjas „Your settings are confirmed“ ning nupp „OK“. Viimase vajutamisel kaovad labelid eest ja kasutajale kuvatakse User_MySettings vaates juba muudetud andmed. Kui parooli sisestamise labelisse kirjutatakse kasutaja poolt vale kood, siis kuvatakse teade samal labelil „The password you entered is incorrect. Please try again“. Nice to have funktsionaalsusena on antud kirjutis punane, et kasutaja seda kiiresti märkaks. User_MySettings alamvaates on ka link „Change password“, mida klikkides suunatakse kasutaja uude aknasse: ChangePassword. Märkimisväärne on, et antud rakenduses ei võimaldata tavakasutajal ise oma kontot kustutada.
- CHANGEPASSWORD AKEN
Siin kuvatakse kasutajale kolme tekstivälja, kuhu tuleb sisestada uus parool ja uue parooli kinnitus. Väljade all paiknevad nupud „Submit“ ja „Cancel“. Esimese nupu vajutamisel: 1) Kontrollitakse, kas väljad on täidetud (vähemalt kaks viimast välja). 2) Kontrollitakse, kas uus parool ja uue parooli kinnitus on ühesugused. 3) Kontrollitakse, kas vana parool on sama, mis andmebaasis. Ja kui eelnevad tingimused on täidetud, siis: 4) Asendatakse vana parool andmebaasis uue parooliga. 5) Kuvatakse kasutajale teade „Your password is successfully changed“ ja „OK“ nupp. „OK“ nupuvajutusel saadetakse kasutaja tagasi User aknasse alamvaatega User_MySettings. Kui üks või rohkem kolmest tingimusest ei ole täidetud, siis kuvatakse kasutajale vastavad teated ning jäädakse ChangePassword aknasse kuni kasutaja sisestab kõik õigesti või vajutab „Cancel“. Viimasega suunatakse kasutaja tagasi User aknasse alamvaatega User_MySettings.
- ADMIN AKEN
Admin aken sarnaneb konstruktsioonilt User aknaga. Admini akna peavaade sisaldab kahte nuppu akna ülaservas: 1) Books’ data. 2) Users’ data. Nende nuppudega saab kuvada vastavaid alamvaateid: Admin_BooksData ja Admin_UsersData. Lisaks sisaldab peavaade „Log out“ nuppu akna paremas ülaservas.
- ADMIN_BOOKSDATA ALAMVAADE
Admin_BooksData alamvaade sisaldab ühte tekstivälja, kuhu administraator saab sisestada märksõnu raamatute otsinguks. Tekstivälja kõrval on „Search“ nupp otsingu teostamiseks. Kui otsingule vastavat raamatut/raamatuid ei leidu, kuvatakse nice to have funktsionaalsusena administraatorile sellekohane teade. Allpool on tabel, kuhu kuvatakse raamatute nimekiri ja andmed: 1) Title – raamatu pealkiri. 2) Author – autori nimi/autorite nimed. 3) Comments – kommentaarid (nt kas raamatul on mõni leht puudu vm). Nice to have funktsionaalsusena kuvatakse kirjed lehtede kaupa: kasutaja saab vajutada „Next“ ja „Previous“ nuppe, et kuvataks talle järgmised või eelmised näiteks 20 kirjet. Raamatuid saab sorteerida pealkirja ja autori järgi. Admin_BooksData alamvaates raamatute tabeli all paiknevad nupud „Add“, „Delete“, „Edit“ ja viimasena natuke eraldi paiknevalt nupp„Log“.
„Add“ nupule klikkides avaneb aken, kust administraator saab sisestada andmebaasi uue raamatu, mida on kasutajatel võimalik laenutada. Aknas kiri „Adding a new book to database“ ja kolm tekstivälja autori, pealkirja ja kommentaaride lisamiseks. Lõpuks on nupud „Submit“ ja „Cancel“. Mõlemad nupud suunavad tagasi Admin aknasse Admin_BooksData vaatesse. „Submit“ nupu vajutusel kontrollitakse ka, kas kõik väljad on täidetud. Kui väljad on täidetud, siis lisatakse raamat otse andmebaasi, ja kui pole täidetud, kuvatakse sellekohane hoiatus kuni administraator vea parandab või vajutab „Cancel“.
„Delete“ nupule klikkides kuvatakse administraatorile hoiatus „Are you sure you want to permanently delete this book?“. Valida saab „Delete“ või „Cancel“. „Delete“ kustutab andmebaasist lõplikult raamatu, mis oli tabelis parasjagu valitud (selected). Administraator suunatakse lõpuks tagasi Admin aknasse Admin_BooksData vaatesse.
„Edit“ nupp avab akna, kus on kolm eeltäidetud tekstivälja autori, pealkirja ja kommentaariga tabelist valitud raamatu andmetega. Administraator saab aknas klikkida nuppudele „Edit“ või „Cancel“, mis mõlemad viivad tagasi Admin aknasse Admin_BooksData vaatesse. „Edit“ nupuvajutus salvestab ka tehtud muudatused.
„Log“ nupp avab logi akna.
- LOG AKEN
Log aknas kuvatakse tavaline kiri „Log“ ja tabel kõikide raamatute sündmustest. Tabeli veergudes kuvatakse kuupäev, pealkiri, autor ning sündmus. Viimase all saavad olla „created“, „lent out“, „returned“ and „extended“. Kuna logid võivad väga kiiresti väga suureks minna, siis kuvatakse kindlasti antud read lehtede kaupa, näiteks ühel lehel 20 rida. Seega tabeli all on lehtede vahel navigeerimiseks „Next“ ja juba edasi järgmisele lehele liikudes ka „Previous“ lingid. Kindlasti on logis ka „Back“ nupp, mis suunab tagasi Admini aknasse Admin_BooksData alamvaatega. Nice to have funktsionaalsusena on logi aknas ka pdf faili koostamise võimalus. Pdf fail sisaldab kindla raamatuga seotud toimingud teatud ajaperioodil. See võimaldab saada infot ka paberkandjal.
- ADMIN_USERSDATA ALAMVAADE
Sisaldab ühte tekstivälja, kuhu administraator saab sisestada kasutaja nime ja tema andmeid otsida, vajutades „Search“ nupule. Kui otsingule vastavat inimest andmebaasis ei leidu, kuvatakse nice to have funktsionaalsusena administraatorile sellekohane teade. Allpool on tabel, kuhu kuvatakse kasutajate nimekiri ja andmed: 1) First name – raamatu pealkiri. 2) Last name – autori nimi/autorite nimed. 3) Email address. 4) Comments – kommentaarid (nt kas raamatul on mõni leht puudu vm). Nice to have funktsionaalsusena kuvatakse kirjed lehtede kaupa: kasutaja saab vajutada „Next“ ja „Previous“ nuppe, et kuvataks talle järgmised või eelmised näiteks 20 kirjet. Kasutajaid saab sorteerida eesnime ja perenime järgi. Admin_UserData alamvaates kasutajate tabeli all paiknevad nupud „Add“, „Delete“, „Edit“ ja „View user’s details“. „Add“ nupu vajutamisel saab lisada andmebaasi uue kasutaja. Administraator suunatakse „Register“ aknasse. Pärast uue kasutaja registreerimist „Register“ aknas aga suunatake administraator Admini aknasse Admin_UsersData vaatesse tagasi. „Delete“ nupu vajutamisel saab administraator tabelist valitud kasutaja andmebaasist kustutada. „Edit“ nupu vajutusega saab administraator tabelist parasjagu valitud kasutaja andmeid muuta. Selleks suunatakse administraator eeltäidetud tekstiväljadega „Register“ aknasse. Pärast kasutaja andete muutmist „Register“ aknas aga suunatake administraator Admini aknasse Admin_UsersData vaatesse tagasi. „View User’s details“ nupp. Kui administraator soovib näha konkreetse kasutaja käes olevaid raamatuid, kasutaja emaili aadressi jm täpsemat informatsiooni konkreetse kasutaja kohta, siis administraator teeb Admin aknas UsersData vaates kasutaja aktiivseks ning vajutab „View User’s details“ nuppu. Administraator suunatakse sellega täiesti uude, UsersDetails aknasse.
- USERSDETAILS AKEN
UserDetails aken sarnaneb väga User aknale, mis on User_MyLoans alamvaatega. UsersDetails aknas kuvatakse administraatorile kohe konkreetse kasutaja andmed: nimi, emaili aadress ja HomeLibrary’s kasutajaks registreerimise kuupäev ning kas ta on admin/user. Viimane on nupuna ja sealt nupust saab õigusi kohe administraator muuta ka. Kõik need andmed on lihtsalt kasutajast mugava üldpildi saamiseks. Järgneb tabel konkreetse kasutaja laenutatud raamatute kohta. Tabel koosneb järgmistest veergudest: 1) No – saab olla ühest kuni kümneni, sest kasutajal korraga rohkem raamatuid ei või käes olla. Nummerdamine on oluline, et administraator saaks ühe kiire pilguga aru, mitu raamatut ta võib veel kasutajale välja laenutada. 2) Title – välja laenutatud raamatu pealkiri. 3) Author – välja laenutatud raamatu autor/autorid. 4) Return deadline – välja laenutatud raamatu tagastamise tähtaeg. 5) Comments – kommentaarid raamatute kohta. Näiteks kui raamat tagastatakse ja raamatul juba oli viga või CD-d ei antud kasutajale kaasa, siis kõike on võimalik sealsamast aknast kommentaarina näha. Tabelile järgnevad nupud „Add“, „Delete“ ja „Extend“.
„Add“ nupule vajutades saab kasutajale laenutada uue raamatu. Selleks suunatakse kasutaja uude aknasse – LendOut (kirjeldatud allpool).
„Delete“ nupule vajutab administraator, kui kasutaja raamatu tagastab. Selleks administraator valib tabelist välja raamatu, mida tagastada tahetakse, ning vajutab „Delete“. „Delete“ nupu vajutamise järel aken uuendatakse ja administraator näeb juba uuendatud nimekirja laenutatud raamatutest.
„Extend“ nupule vajutab administraator, kui kasutaja soovib raamatut pikendada. Pärast „Extend“ nupule vajutamist uuendatakse aken ning tabelisse ilmub kohe uus raamatu tagastamise tähtaeg.
Nice to have funktsionaalsusena võiks olla rakenduse kasutusmugavuse perspektiivist kohe UsersDetails aknas ka raamatutele kommentaaride lisamise võimalus. Et kui administraator laenutab kasutajale raamatu, siis saab ta ka mugavalt kirja panna raamatu algseisukorra või kas CD oli raamatul kaasas või mitte.
- LENDOUT AKEN
LendOut akna vaade sarnaneb väga User aknaga, mille alamvaade on User_ViewAllBooks. Puuduvad vaid nupud „My loans“, „View all loans“ ja „My settings“. Selle asemel on nupp „Back“, mis viib tagasi UsersDetails aknasse. Ka tabel on täpselt sama, aga tabeli alla lisanduvad kaks nuppu: „Add“ ja „Cancel“. Viimane suunab tagasi UserDetails aknasse, Add aga nii-öelda laenutab raamatu kasutajale välja. Administraator suunatakse tagasi UsersDetails aknasse, kust ta näeb juba uuendatud profiili koos uue laenutatud raamatuga. Järgmise raamatu laenutamisel kordab administraator lihtsalt sama käitumismustrit.
Funktsioonid (must have)
- „Laenuta“ funktsioon
- „Tagasta teavik“ funktsioon
- „Pikenda tähtaega“ funktsioon
- „Lisa andmebaasi uus teavik“ funktsioon
- „Kustuta teavik andmebaasist“ funktsioon
- „Lisa uus kasutaja“ funktsioon
- „Raamatute logi vaatamise funktsioon“.
- „Raamatute sorteerimine autorite ja pealkirjade põhjal“ funktsioon
- „Kasutajate sorteerimine eesnime ja perenimede põhjal“ funktsioon
Funktsioonid (nice to have)
- „Saada kasutajale sellekohane meil“, kui tähtaeg läheneb
- „Muuda kasutaja andmeid“ funktsioon
- Üle tähtaja läinud teavikud märgitakse kasutajale punaseks.
Kasutatavad tehnoloogiad
- WPF
- C#
- EntityFramework
- LINQ
- MSSQL
Lisa 1
Lisa 2
Logi
04.10.2015
- Meeskonna „Premium“ lõplik kokkupanek. Kõik meeskonnaliikmed andsid kiire ülevaate oma ootustest ja võimalustest projekti panustada erinevatel perioodidel. Loodi meeskonna Wiki leht ja TFS grupp.
05.10.2015
- Valiti projektijuht ning loodi Skype’i grupp, et soodustada meeskonnaliikmete vahelist suhtlust.
01.11.2015
- Valmis analüüs