Meeskond: Premium: Difference between revisions
Line 203: | Line 203: | ||
=Prototüüp= | =Prototüüp= | ||
Link: http://www.upload.ee/files/5395106/HM_1_.zip.html | Link: http://www.upload.ee/files/5395106/HM_1_.zip.html | ||
==Analüüs== | |||
Lähtudes retsensioonis leiduvatele soovitustele, valmis uus analüüs. Viidi sisse mõned muudatused, näiteks muuhulgas on ära jäetud spetsiaalne võimalus laenutajatel ise oma profiili vaadata ja raamatuid arvutist otsida. | |||
SISSEJUHATUS | |||
HomeLibrary on mõeldud oma isiklike raamatute sõpradele/tuttavatele laenutamiste haldamiseks. Laenutajad ise programmi ei kasuta. Kõiki raamatuid on HomeLibrary’s üks koopia. HomeLibrary rakenduse analüüsis üritatakse ära katta kõikvõimalikud kasutaja poolsed tegevused ja nende tulemused. Võimalikult täpselt proovitakse kirjeldada programmi välispilt. Analüüsi lõpuosas on toodud lisaks ka ERD diagramm. | |||
MAINWINDOW | |||
MainWindow aknas on neli nuppu, mis kõik viivad vastavate nimedega akendesse. Nupud: | |||
1) „BooksLending“ – siit pääseb raamatuid laenutama/pikendama/tagastama ja laenutusi vaatama | |||
2) „Book“ - siit saab raamatute pealkirju ja autoreid vaatama, lisama raamatuid, muutma ja kustutama raamatuid | |||
3) „Person“ - siin on võimalik inimeste kontakte vaatama, lisama inimesi, muutma ja kustutama inimesi | |||
4) „Log“ – siia nupule vajutades pääseb raamatutega seotud ajaloo logi lehele. | |||
BOOKSLENDING AKEN | |||
BooksLending aknas on kolm tabi: 1) Lend Book 2) Return/Extend Book 3) View Loans | |||
Lend Book | |||
Lend Book tabi vaates on võimalik raamatuid laenutada. Selleks kuvatakse kasutajale kaks tabelit: 1) inimeste tabel ja 2) raamatute tabel. Kasutaja valib ühest tabelist inimese, kellele ta tahab laenutada, ja teisest tabelist raamatu, mida laenutada. Lisaks on tabis kalender, kust saab valida raamatu laenutamise tähtaja, ning nupp „Lend the Book“. Nice to have funktsionaalsusena on tabelite juures Search textboxid, kus kasutaja saab veidi oma valikut kitsendada, kui ta seda soovib. | |||
Return/Extend Book | |||
Return/Extend tabi vaates kuvatakse laenutuste tabel veergudega FirstName, LastName, Email, Book, Author, Deadline. Ehk kasutajal on võimalik näha, kelle käes on parasjagu mis raamatud, ja valida kirjeid raamatute pikendamiseks või tagastamiseks. Viimaste jaoks on vaates kalender, kust saab uue kuupäeva välja valida, ja nupud „Extend“ ja „Return“. Nice to have funktsionaalsusena on tabeli juures Search textbox, kus kasutaja saab veidi oma valikut kitsendada, kui ta seda soovib. | |||
View Loans | |||
View Loans tabi vaates on kasutajal võimalik näha tabelit veergudega FirstName, LastName, Email, Book, Author, Deadline. Tabel sisaldab informatsiooni, kelle käes on parasjagu mis raamatud ja mis on tähtaeg. Nice to have funktsionaalsusena kuvatakse tähtaja ületanud veerud silmapaistvalt, näiteks punases kirjas. Nice to have funktsionaalsusena on tabeli juures Search textbox, kus kasutaja saab veidi oma valikut kitsendada, kui ta seda soovib. | |||
PERSON AKEN | |||
Person aknas on neli tabi: 1) View Persons 2) Add New Person 3) Edit Person 4) Remove Person. | |||
View Persons | |||
View Persons tabi vaates kuvatakse kasutajale tabel andmebaasis olevatest inimestest – (PersonId,) FirstName, LastName, Email ja Comment. Tabel on scrollitav. Kuna tabel võib aja jooksul minna pikaks, siis on nice to have funktsionaalsusena vaates võimalik inimest otsida kiiresti ka nime järgi, mille tulemusena kuvatakse tabelis vaid list otsingu tulemustest ja mitte listi kogu andmebaasis olevatest inimestest. | |||
Add New Person | |||
Add New Person tabi vaates on neli textboxi - „First Name“, Last Name“, „Email“, „Comment“ ning nupp „Add new Person“. Textboxidesse saab kasutaja sisestada andmed inimesest, keda ta soovib salvestada andmebaasi. „Comment“ väli võib jääda tühjaks, ülejäänud väljad on kohustuslikud. Kui kasutaja jätab ühe või rohkem kohustuslikest väljadest täitmata ja vajutab „Add new Person“ nuppu, kuvatakse talle teade (MessageBox): „Please fill in all mandatory fields!“. Sama emailiga inimest andmebaasi ei salvestata. Email peab olema unikaalne. Kui inimene sisestab juba andmebaasis leiduva emaili, antakse talle veateade. | |||
Edit Person | |||
Edit Person tabi vaates kuvatakse kasutajale samasugune tabel nagu View Persons vaateski ((PersonId,) FirstName, LastName, Email ja Comment). Kasutajal tuleb valida tabelist inimene, kelle andmeid ta andmebaasis muuta tahab. Valitud inimese andmed ilmuvad textboxidesse ja neid on võimalik muuta. Kui kasutaja üritab „Edit Person“ nuppu vajutades mõnda välja tühjaks jätta, siis kuvatakse talle sellekohane teade. | |||
Kuna ühte nime võib esineda mitmel inimesel, siis EditPerson meetodi juures tuleb arvestada, et tagastatakse otsingu tulemusena list. Ei sobi lihtsalt nime järgi muutmine andmebaasis. Selle tõttu Edit Person vaates kuvatakse tabel kõigi kontaktandmetega, et kasutaja leiaks kindlasti õige inimese, keda ta muuta soovib. | |||
Remove Person tab | |||
Remove Person tabi vaates kuvatakse kasutajale jälle samasugune tabel nagu View Persons vaateski ((PersonId,) FirstName, LastName, Email ja Comment). Kasutajal tuleb valida tabelist inimene, keda ta jäädavalt andmebaasist kustutada soovib, ja vajutada nuppu „Remove Person“. Kuna tabelis võib aja jooksul olla tekkinud palju inimesi, siis nice to have funktsionaalsusena on tabeli juures võimalik ka textboxi sisestada otsitava inimese nimi ning vajutada „Searh“ nuppu. Selle tulemusena kuvatakse tabelisse kogu Person andmebaasitabeli kirjete asemel list otsingu tulemustest. Sealt on lihtsam kasutajal õige inimene üles leida. | |||
BOOK AKEN | |||
Book aken sarnaneb väga Person aknaga. Erinevad on vaid andmetes, mida esitatakse. | |||
Book aknas on neli tabi: 1) View Books 2) Add New Book 3) Edit Book 4) Remove Book. | |||
View Books | |||
View Books tabi vaates kuvatakse kasutajale tabel andmebaasis olevatest raamatutest – (BookId,) Title, Author, Email ja Comment. Tabel on scrollitav. Kuna tabel võib aja jooksul minna pikaks, siis on nice to have funktsionaalsusena vaates võimalik raamatut otsida kiiresti ka pealkirja või autori järgi, mille tulemusena kuvatakse tabelis list otsingu tulemustest ja mitte listi andmebaasis olevatest kõikidest raamatutest. Märkimisväärne on, et Book aknas ei saa näha, kas raamatud on parasjagu välja laenutatud või mitte. Seda informatsiooni kuvatakse BookLending aknas. | |||
Add New Book | |||
Add New Book tabi vaates on kolm textboxi - „Title“, „Author“ ja „Comment“ ning nupp „Add new Book“. Textboxidesse saab kasutaja sisestada raamatu andmed, mida ta soovib salvestada andmebaasi. „Comment“ väli võib jääda tühjaks, ülejäänud väljad on kohustuslikud. Kui kasutaja jätab ühe või mõlemad kohustuslikest väljadest täitmata ja vajutab „Add new Book“ nuppu, kuvatakse talle teade (MessageBox): „Please fill in all mandatory fields!“. Sama pealkirja ja autoriga raamatut andmebaasi ei salvestata. Kui inimene sisestab juba andmebaasis leiduva raamatu, antakse talle veateade. | |||
Edit Book | |||
Edit Book tabi vaates kuvatakse kasutajale samasugune tabel nagu View Books vaateski ((BookId,) Title, Author ja Comment). Kasutajal tuleb valida tabelist raamat, mille andmeid ta andmebaasis muuta tahab. Valitud raamatu andmed ilmuvad textboxidesse ja neid on võimalik muuta. Kui kasutaja üritab „Edit Book“ nuppu vajutades mõnda välja tühjaks jätta, siis kuvatakse talle sellekohane teade. | |||
Remove Book tab | |||
Remove Book tabi vaates kuvatakse kasutajale jälle samasugune tabel nagu View Books vaateski ((BookId,) Title, Author ja Comment). Kasutajal tuleb valida tabelist raamat, mida ta andmebaasist eemaldada soovib, ja vajutada nuppu „Remove Book“. Kuna tabelis võib olla palju raamatuid ka kodusel raamatukogu pidajal, siis nice to have funktsionaalsusena on tabeli juures võimalik ka textboxi sisestada otsitava raamatu nimi ning vajutada „Searh“ nuppu. Selle tulemusena kuvatakse tabelisse otsingu täpsusest sõltuvalt teatud kogus raamatuid. Väiksemast valikute hulgast on kasutajal lihtsam õige raamat üles leida. | |||
LOG AKEN | |||
Log aknas kuvatakse tavaline kiri „Log“ ja tabel kõikide raamatute sündmustest. Tabeli veergudes kuvatakse kuupäev, raamatu pealkiri, raamatu autor, inimene 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. | |||
Funktioonid - Must have | |||
„Laenuta“ funktsioon | |||
„Tagasta teavik“ funktsioon | |||
„Pikenda tähtaega“ funktsioon | |||
„Lisa andmebaasi uus teavik“ funktsioon | |||
„Muuda teavik“ funktsioon | |||
„Kustuta teavik andmebaasist“ funktsioon | |||
„Lisa uus kasutaja“ funktsioon | |||
„Muuda kasutaja andmeid“ funktsioon | |||
„Kustuta kasutaja“ funktsioon | |||
„Raamatute logi vaatamine“ funktsioon | |||
„Raamatute sorteerimine autorite ja pealkirjade põhjal“ funktsioon | |||
„Kasutajate sorteerimine eesnime ja perenimede põhjal“ funktsioon | |||
Funktisioonid – Nice to have | |||
Üle tähtaja läinud teavikud märgitakse punaseks. |
Revision as of 23:54, 11 December 2015
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)
- „Kustuta kasutaja ja muuda kasutaja andmed“ funktsioon
- „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
06.11.2015
- Tehti meeskond LIB analüüsile retsensiooni
Prototüüp
Link: http://www.upload.ee/files/5395106/HM_1_.zip.html
Analüüs
Lähtudes retsensioonis leiduvatele soovitustele, valmis uus analüüs. Viidi sisse mõned muudatused, näiteks muuhulgas on ära jäetud spetsiaalne võimalus laenutajatel ise oma profiili vaadata ja raamatuid arvutist otsida.
SISSEJUHATUS HomeLibrary on mõeldud oma isiklike raamatute sõpradele/tuttavatele laenutamiste haldamiseks. Laenutajad ise programmi ei kasuta. Kõiki raamatuid on HomeLibrary’s üks koopia. HomeLibrary rakenduse analüüsis üritatakse ära katta kõikvõimalikud kasutaja poolsed tegevused ja nende tulemused. Võimalikult täpselt proovitakse kirjeldada programmi välispilt. Analüüsi lõpuosas on toodud lisaks ka ERD diagramm.
MAINWINDOW MainWindow aknas on neli nuppu, mis kõik viivad vastavate nimedega akendesse. Nupud: 1) „BooksLending“ – siit pääseb raamatuid laenutama/pikendama/tagastama ja laenutusi vaatama 2) „Book“ - siit saab raamatute pealkirju ja autoreid vaatama, lisama raamatuid, muutma ja kustutama raamatuid
3) „Person“ - siin on võimalik inimeste kontakte vaatama, lisama inimesi, muutma ja kustutama inimesi
4) „Log“ – siia nupule vajutades pääseb raamatutega seotud ajaloo logi lehele.
BOOKSLENDING AKEN BooksLending aknas on kolm tabi: 1) Lend Book 2) Return/Extend Book 3) View Loans Lend Book Lend Book tabi vaates on võimalik raamatuid laenutada. Selleks kuvatakse kasutajale kaks tabelit: 1) inimeste tabel ja 2) raamatute tabel. Kasutaja valib ühest tabelist inimese, kellele ta tahab laenutada, ja teisest tabelist raamatu, mida laenutada. Lisaks on tabis kalender, kust saab valida raamatu laenutamise tähtaja, ning nupp „Lend the Book“. Nice to have funktsionaalsusena on tabelite juures Search textboxid, kus kasutaja saab veidi oma valikut kitsendada, kui ta seda soovib. Return/Extend Book Return/Extend tabi vaates kuvatakse laenutuste tabel veergudega FirstName, LastName, Email, Book, Author, Deadline. Ehk kasutajal on võimalik näha, kelle käes on parasjagu mis raamatud, ja valida kirjeid raamatute pikendamiseks või tagastamiseks. Viimaste jaoks on vaates kalender, kust saab uue kuupäeva välja valida, ja nupud „Extend“ ja „Return“. Nice to have funktsionaalsusena on tabeli juures Search textbox, kus kasutaja saab veidi oma valikut kitsendada, kui ta seda soovib. View Loans View Loans tabi vaates on kasutajal võimalik näha tabelit veergudega FirstName, LastName, Email, Book, Author, Deadline. Tabel sisaldab informatsiooni, kelle käes on parasjagu mis raamatud ja mis on tähtaeg. Nice to have funktsionaalsusena kuvatakse tähtaja ületanud veerud silmapaistvalt, näiteks punases kirjas. Nice to have funktsionaalsusena on tabeli juures Search textbox, kus kasutaja saab veidi oma valikut kitsendada, kui ta seda soovib.
PERSON AKEN Person aknas on neli tabi: 1) View Persons 2) Add New Person 3) Edit Person 4) Remove Person. View Persons View Persons tabi vaates kuvatakse kasutajale tabel andmebaasis olevatest inimestest – (PersonId,) FirstName, LastName, Email ja Comment. Tabel on scrollitav. Kuna tabel võib aja jooksul minna pikaks, siis on nice to have funktsionaalsusena vaates võimalik inimest otsida kiiresti ka nime järgi, mille tulemusena kuvatakse tabelis vaid list otsingu tulemustest ja mitte listi kogu andmebaasis olevatest inimestest. Add New Person Add New Person tabi vaates on neli textboxi - „First Name“, Last Name“, „Email“, „Comment“ ning nupp „Add new Person“. Textboxidesse saab kasutaja sisestada andmed inimesest, keda ta soovib salvestada andmebaasi. „Comment“ väli võib jääda tühjaks, ülejäänud väljad on kohustuslikud. Kui kasutaja jätab ühe või rohkem kohustuslikest väljadest täitmata ja vajutab „Add new Person“ nuppu, kuvatakse talle teade (MessageBox): „Please fill in all mandatory fields!“. Sama emailiga inimest andmebaasi ei salvestata. Email peab olema unikaalne. Kui inimene sisestab juba andmebaasis leiduva emaili, antakse talle veateade. Edit Person Edit Person tabi vaates kuvatakse kasutajale samasugune tabel nagu View Persons vaateski ((PersonId,) FirstName, LastName, Email ja Comment). Kasutajal tuleb valida tabelist inimene, kelle andmeid ta andmebaasis muuta tahab. Valitud inimese andmed ilmuvad textboxidesse ja neid on võimalik muuta. Kui kasutaja üritab „Edit Person“ nuppu vajutades mõnda välja tühjaks jätta, siis kuvatakse talle sellekohane teade. Kuna ühte nime võib esineda mitmel inimesel, siis EditPerson meetodi juures tuleb arvestada, et tagastatakse otsingu tulemusena list. Ei sobi lihtsalt nime järgi muutmine andmebaasis. Selle tõttu Edit Person vaates kuvatakse tabel kõigi kontaktandmetega, et kasutaja leiaks kindlasti õige inimese, keda ta muuta soovib. Remove Person tab Remove Person tabi vaates kuvatakse kasutajale jälle samasugune tabel nagu View Persons vaateski ((PersonId,) FirstName, LastName, Email ja Comment). Kasutajal tuleb valida tabelist inimene, keda ta jäädavalt andmebaasist kustutada soovib, ja vajutada nuppu „Remove Person“. Kuna tabelis võib aja jooksul olla tekkinud palju inimesi, siis nice to have funktsionaalsusena on tabeli juures võimalik ka textboxi sisestada otsitava inimese nimi ning vajutada „Searh“ nuppu. Selle tulemusena kuvatakse tabelisse kogu Person andmebaasitabeli kirjete asemel list otsingu tulemustest. Sealt on lihtsam kasutajal õige inimene üles leida.
BOOK AKEN Book aken sarnaneb väga Person aknaga. Erinevad on vaid andmetes, mida esitatakse. Book aknas on neli tabi: 1) View Books 2) Add New Book 3) Edit Book 4) Remove Book. View Books View Books tabi vaates kuvatakse kasutajale tabel andmebaasis olevatest raamatutest – (BookId,) Title, Author, Email ja Comment. Tabel on scrollitav. Kuna tabel võib aja jooksul minna pikaks, siis on nice to have funktsionaalsusena vaates võimalik raamatut otsida kiiresti ka pealkirja või autori järgi, mille tulemusena kuvatakse tabelis list otsingu tulemustest ja mitte listi andmebaasis olevatest kõikidest raamatutest. Märkimisväärne on, et Book aknas ei saa näha, kas raamatud on parasjagu välja laenutatud või mitte. Seda informatsiooni kuvatakse BookLending aknas. Add New Book Add New Book tabi vaates on kolm textboxi - „Title“, „Author“ ja „Comment“ ning nupp „Add new Book“. Textboxidesse saab kasutaja sisestada raamatu andmed, mida ta soovib salvestada andmebaasi. „Comment“ väli võib jääda tühjaks, ülejäänud väljad on kohustuslikud. Kui kasutaja jätab ühe või mõlemad kohustuslikest väljadest täitmata ja vajutab „Add new Book“ nuppu, kuvatakse talle teade (MessageBox): „Please fill in all mandatory fields!“. Sama pealkirja ja autoriga raamatut andmebaasi ei salvestata. Kui inimene sisestab juba andmebaasis leiduva raamatu, antakse talle veateade. Edit Book Edit Book tabi vaates kuvatakse kasutajale samasugune tabel nagu View Books vaateski ((BookId,) Title, Author ja Comment). Kasutajal tuleb valida tabelist raamat, mille andmeid ta andmebaasis muuta tahab. Valitud raamatu andmed ilmuvad textboxidesse ja neid on võimalik muuta. Kui kasutaja üritab „Edit Book“ nuppu vajutades mõnda välja tühjaks jätta, siis kuvatakse talle sellekohane teade.
Remove Book tab Remove Book tabi vaates kuvatakse kasutajale jälle samasugune tabel nagu View Books vaateski ((BookId,) Title, Author ja Comment). Kasutajal tuleb valida tabelist raamat, mida ta andmebaasist eemaldada soovib, ja vajutada nuppu „Remove Book“. Kuna tabelis võib olla palju raamatuid ka kodusel raamatukogu pidajal, siis nice to have funktsionaalsusena on tabeli juures võimalik ka textboxi sisestada otsitava raamatu nimi ning vajutada „Searh“ nuppu. Selle tulemusena kuvatakse tabelisse otsingu täpsusest sõltuvalt teatud kogus raamatuid. Väiksemast valikute hulgast on kasutajal lihtsam õige raamat üles leida.
LOG AKEN Log aknas kuvatakse tavaline kiri „Log“ ja tabel kõikide raamatute sündmustest. Tabeli veergudes kuvatakse kuupäev, raamatu pealkiri, raamatu autor, inimene 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.
Funktioonid - Must have
„Laenuta“ funktsioon
„Tagasta teavik“ funktsioon
„Pikenda tähtaega“ funktsioon
„Lisa andmebaasi uus teavik“ funktsioon
„Muuda teavik“ funktsioon
„Kustuta teavik andmebaasist“ funktsioon
„Lisa uus kasutaja“ funktsioon
„Muuda kasutaja andmeid“ funktsioon
„Kustuta kasutaja“ funktsioon
„Raamatute logi vaatamine“ funktsioon
„Raamatute sorteerimine autorite ja pealkirjade põhjal“ funktsioon
„Kasutajate sorteerimine eesnime ja perenimede põhjal“ funktsioon
Funktisioonid – Nice to have Üle tähtaja läinud teavikud märgitakse punaseks.