Meeskond "DigiRiiul": Difference between revisions
No edit summary |
No edit summary |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Meeskond "DigiRiiul" == | == Meeskond "DigiRiiul" (1. etapp) == | ||
Jaan Elken (projektijuht) <br> | Jaan Elken (projektijuht) <br> | ||
Line 7: | Line 7: | ||
Martin Orgusaar <br> | Martin Orgusaar <br> | ||
== Projektiidee == | === Projektiidee === | ||
Projekti käigus luuakse nn virtuaalne raamaturiiul "DigiRiiul" | Projekti käigus luuakse nn virtuaalne raamaturiiul "DigiRiiul" | ||
'''Põhifunktsionaalsus:'''<br> | '''Põhifunktsionaalsus:'''<br> | ||
Kasutajad saavad oma riiulile lisada raamatuid, mida nad on lugenud, mis on neil olemas või mida nad soovivad tulevikus lugeda. Samuti saab kasutaja raamatutele jätta kommentaare ja arvustusi. Rakendus on liidestatud avalike API-dega nagu | Kasutajad saavad oma riiulile lisada raamatuid, mida nad on lugenud, mis on neil olemas või mida nad soovivad tulevikus lugeda. Samuti saab kasutaja raamatutele jätta kommentaare ja arvustusi. Rakendus on liidestatud avalike API-dega nagu Google Books API, mis võimaldab raamatute lisamisel tärkandmed ja kaanepildi automaatselt alla tõmmata. Samuti võimaldab rakendus pidada järge selle üle, kellele on raamatuid välja laenutatud. Rakendusel on ka graafiline vaade, mis koosneb raamatute pealiskaantest (võrdluseks nt iTunes). | ||
'''Lisafunktsionaalsus:''' <br> | '''Lisafunktsionaalsus:''' <br> | ||
Line 19: | Line 19: | ||
- Rakenduse kaudu saab kasutaja vaadata teiste kasutajate raamaturiiuleid ja neid kommenteerida. | - Rakenduse kaudu saab kasutaja vaadata teiste kasutajate raamaturiiuleid ja neid kommenteerida. | ||
== Tehnoloogiad == | === Tehnoloogiad === | ||
Rakendus ehitatakse WPF.NET tehnoloogiale. <br> | Rakendus ehitatakse WPF.NET tehnoloogiale. <br> | ||
Line 27: | Line 27: | ||
Rakenduse ehitamisel kasutatakse versioonihaldussüsteemi TFS aadressil [http://digiriiul.visualstudio.com digiriiul.visualstudio.com] | Rakenduse ehitamisel kasutatakse versioonihaldussüsteemi TFS aadressil [http://digiriiul.visualstudio.com digiriiul.visualstudio.com] | ||
== Logi == | === Logi === | ||
'''10.10.2014 <br>''' | '''10.10.2014 <br>''' | ||
Line 34: | Line 34: | ||
'''22.10.2014 <br>''' | '''22.10.2014 <br>''' | ||
Skype vestlus. Projektiidee arutamine. Projekti nime välja mõtlemine. TFS konto loomine. | Skype vestlus. Projektiidee arutamine. Projekti nime välja mõtlemine. TFS konto loomine. | ||
'''30.10.2014 <br>''' | |||
Skype kõne. Analüüsidokumendi koostamine. | |||
== Analüüs (2. etapp) == | |||
=== Rakenduse kirjeldus === | |||
''Mida rakendus endas sisaldab?'' | |||
Rakendus seisneb digitaalses raamaturiiulis, kuhu kasutaja saab lisada raamatuid, mida ta on varem lugenud, mis tal on olemas või mida ta soovib tulevikus lugeda. Kasutaja saab lisada raamatutele ka kommentaare, arvustusi, hindeid ning märksõnu (''tag''-e). Digiriiul on liidestatud ka avalike API-dega, mille abil saab kasutaja enda raamatu kohta lisanduvaid andmeid, mida ei pruugi ise lisada. Rakendusel on graafiline vaade, mis kuvab raamatute pealiskaaned, et kasutajal oleks kiire ülevaade enda raamatutest. | |||
Võimaluse korral lisatakse ka funktsionaalsus, mis laseb vaadata teiste kasutajate raamaturiiuleid, jätta neisse kommentaare, lisada teisi kasutajaid oma jälgitavate nimekirja ning saada oma ajajoonele nende tegevustest uuendusi. Kui aega jätkub, siis luuakse kasutajale ka võimalus jälgida, kellele on raamatuid välja laenutatud. | |||
''Rakenduse eesmärk'' | |||
Rakenduse eesmärgiks on pakkuda kasutajale mugavat võimalust hallata kõike lugemisega seonduvat otse oma töölaualt. Rakendus on võimalikult lihtsalt kasutatav. | |||
''Must have'' | |||
Kasutaja loomine, profiili uuendamine ja kustutamine <br> | |||
Raamatute lisamine <br> | |||
Raamatutele kommentaaride, arvustuste, hinnete ning märksõnade (''tag''-ide) lisamine <br> | |||
Digiriiuli liidestamine avalike API-dega, et saada lisanduvat infot <br> | |||
Filtreerimine ehk žanri/autori jms järgi raamatute näitamine <br> | |||
Graafiline vaade (kollaažh raamatukaantest) <br> | |||
''Nice to have'' | |||
Teiste kasutajate raamaturiiulite sirvimine ja kommenteerimine rakenduse kaudu <br> | |||
Teiste kasutajate jälgimine <br> | |||
Ajajoon, mis näitab jälgitud kasutajate viimaseid toiminguid rakenduses <br> | |||
Välja laenatud raamatute üle arvestuse pidamine <br> | |||
Muu meedia: filmid, seriaalid, mängud jms. <br> | |||
=== Rakenduse üldine struktuur / kasutatavad arendusmustrid === | |||
Rakenduse üldine struktuur järgib MVVM (''Model View ViewModel'') mustrit, kus: | |||
* ''View'' kihis graafiline kasutajaliides | |||
* ''ViewModel'' kihis kiht seob ''Model'' kihti ja ''View'' kihti | |||
* ''Model'' kiht sisaldab ''Business Logic Layer'' ja ''Data Access Layer''-it | |||
''Data Access Layer'' - siia lähevad kõik andmebaasiga seonduvad meetodid. Iga olemi kohta tekitatakse eraldi DAO objekt. Rakendatakse O/RM ''Entity Framework'' tehnoloogiat, et minimeerida andmebaasiga suhtlemist puudutava koodi hulka. Kasutaja poolt sisestatud andmete valideerimine saavutatakse samuti ''Entity Framework'' abil. | |||
''Business Logic'' - siia läheb kõik, mis ei puuduta otseselt graafilist liidest või andmebaasiga suhtlemist. Muu hulgas tähendab see avalikest veebiteenustest andmete küsimist (avalike API-dega suhtlemist), kasutaja sisselogimisega seotud toiminguid jms. Veebiteenustega suhtlemine (Google Books API, Open Library Covers API jms) peidetakse ühe objekti taha kasutades ''Facade'' mustrit. | |||
Testandmebaasi server asub rakendusega samas arvutis, kuid live-versioonis hakkab rakendusi teenindama keskne andmebaas. Rakenduse jaoks on renditud Azures MS SQL Server. | |||
=== Testimine === | |||
Aja jätkumise korral kasutatakse rakenduse osade testimiseks automaattestimist (Microsoft Unit Test Framework). Tõenäoliselt selle jaoks siiski aega ei jätku. | |||
=== Graafiline liides === | |||
Graafiline liides koosneb menüüribast akna ülemises ääres ning “riiulivaatest”, mis jääb menüüribast allapoole. Menüüriba koosneb kahest nupust, “My shelf” ja “View” | |||
==== “My shelf” ==== | |||
Kui kasutaja '''ei ole''' sisse loginud, kuvatakse talle kolm alammenüüd: | |||
* Log in: Kasutajanimi, parool, logi-sisse nupp, kasutaja registreerimise nupp (mis avab akna kasutaja registreerimiseks) ning “unustasid parooli” nupp. Kui üks väljadest on tühi, kuvatakse veateade ning kasutajal on võimalus uuesti väljad ära täita. | |||
* Register: Kasutajanimi, parool, uuesti parool, e-mail (parooli meeldetuletamiseks) ja “registreeri” nupp. Valideerib kasutajanime ja parooli (parool ei tohi olla liiga lihtne). | |||
* Exit: sulgeb rakenduse (küsib hüpikaknas kinnitust) | |||
Kui kasutaja '''on''' sisse loginud, kuvatakse talle alljärgnevad menüüd: | |||
* My books: avaneb kasutaja riiul. Vaate üleval on kontrollpaneel, mis koosneb 4 nupust. Esimene lülitab sisse “slideshow” vaate, teine lülitab sisse “list” vaate. Kolmas nupp on rippmenüü, kust saab valida sortimise parameetri. Neljas nupp on sortimise järjekord. | |||
** Slideshow: Ekraani keskel näidatakse kolme raamatukaant, mis on valitud sortimise järgi esimestel kohtadel. Akna paremal äärel on näha poolikult järgmise raamatu kaant. Akna vasakul äärel on valitud sortimise põhjal näha viimase raamatu kaant poolikult. Kui raamatu kaant pole lisatud, kuvatakse kohahoidja. Hõljudes hiirega raamatukaane peal, ilmub kaane alla raamatu nimi ning autor. Vaate mõlemas ääres on nooled, millele vajutades saab liikuda ühe raamatu võrra edasi või tagasi. Raamatu nimele vajutades avaneb vaade täiendava infoga raamatu kohta. | |||
** List view: akna keskele tekib tabel raamatutest valitud sortimise järgi. Kuvatakse raamatu nimi, autor ning valitud sortimise tulp. Kui kirjeid on rohkem kui rakenduse aken mahutab, tekib paremasse äärde kerimisriba. Kui kirjeid on rohkem, kui teatud fikseeritud arv (nt 20) siis kuvatakse lehekülgede kaupa. Raamatu nimele vajutades avaneb vaade täiendava infoga raamatu kohta. | |||
* Add Book: avab vaate raamatu lisamiseks. Lisamisaknas on kõik raamatuga seonduvad väljad (autor, pealkiri, ISBM jms) ning nupud “Add book”, mis lisab raamatu kasutaja riiulile, ning “Cancel” lisamise tühistamiseks. ISBM või pealkirja välja täitmisel küsib rakendust avalikest veebiteenustest (Google Books API, Open Library Covers API jms) raamatu andmed ning pakub kasutajatele võimalust väljad eeltäita. | |||
* My Profile: saab uuendada enda profiiliga seonduvaid andmeid | |||
* Log out : logib kasutaja rakendusest välja, aga jätab rakenduse tööle | |||
* Exit: sulgeb rakenduse (küsib hüpikaknas kinnitust) | |||
====“Search”==== | |||
Pakub võimalust otsida ja vaadata rakenduse andmebaasis või avalikes API-des olevaid raamatuid, otsides nt autori nime või pealkirja järgi | |||
=== Mock-up ekraanitõmmised === | |||
==== Myshelf menüü struktuur sisselogituna ==== | |||
[[File:Myshelf-logged-in.jpg]] | |||
==== Myshelf menüü struktuur väljalogituna ==== | |||
[[File:Myshelf-not-logged-in.jpg]] | |||
==== My Books List vaade ==== | |||
[[File:Mybooks-listview.jpg]] | |||
==== My Books Slideshow vaade ==== | |||
[[File:Mybooks-slideshow.jpg]] | |||
=== Andmebaasi graaf === | |||
[[File:DB_model.JPG]] | |||
=== Rollijaotus === | |||
Rollijaotus on esialgne ning võib veel muutuda. | |||
* Jaan Elken - API-dega suhtlus, teenuste kiht | |||
* Martin Orgusaar - graafiline liides | |||
* Henri Põld - entity framework, äriloogika | |||
* Morris Mänd - andmebaasiga seonduv | |||
* Riho Uusjärv - teenuste kiht | |||
== Meie kirjutatud retsensioonid: == | |||
Analüüsi retsensioon: [[Retsensioonid]]<br> | |||
Prototüübi retsensioonid: [[Talk:Meeskond:RemindEm]] <br> | |||
Lõpptoote retsensioon: - | |||
== Prototüüp == | |||
Prototüüp asub [http://enos.itcollege.ee/~jelken/Digiriiul.zip SIIN] <br/> | |||
Solution tuleb VS-i importida ning Presentation projekt käima lasta (set as StartUp project). | |||
Paigaldamise probleemide korral võtke ühendust Skype jaan.elken e-mail elkenj@gmail.com | |||
== Lõpptoode == | |||
Prototüüp asub [http://dorandoran.eu/Digiriiul-final.rar SIIN] <br/> | |||
Solution tuleb VS-i importida ning Presentation projekt käima lasta (set as StartUp project). | |||
Paigaldamise probleemide korral võtke ühendust Skype jaan.elken e-mail elkenj@gmail.com |
Latest revision as of 12:12, 31 January 2015
Meeskond "DigiRiiul" (1. etapp)
Jaan Elken (projektijuht)
Henri Põld
Morris Mänd
Riho Uusjärv
Martin Orgusaar
Projektiidee
Projekti käigus luuakse nn virtuaalne raamaturiiul "DigiRiiul"
Põhifunktsionaalsus:
Kasutajad saavad oma riiulile lisada raamatuid, mida nad on lugenud, mis on neil olemas või mida nad soovivad tulevikus lugeda. Samuti saab kasutaja raamatutele jätta kommentaare ja arvustusi. Rakendus on liidestatud avalike API-dega nagu Google Books API, mis võimaldab raamatute lisamisel tärkandmed ja kaanepildi automaatselt alla tõmmata. Samuti võimaldab rakendus pidada järge selle üle, kellele on raamatuid välja laenutatud. Rakendusel on ka graafiline vaade, mis koosneb raamatute pealiskaantest (võrdluseks nt iTunes).
Lisafunktsionaalsus:
- Muud sisutüübid (filmid, muusika jne)
- Facebooki API-ga sidumine
- Rakenduse kaudu saab kasutaja vaadata teiste kasutajate raamaturiiuleid ja neid kommenteerida.
Tehnoloogiad
Rakendus ehitatakse WPF.NET tehnoloogiale.
Andmebaas ehitatakse Microsoft SQL Serverile.
Andmebaasiga suhtlemiseks kasutatakse ORM mappingut (ADO.NET Entity Framework tehnoloogia).
Rakenduse ehitamisel kasutatakse versioonihaldussüsteemi TFS aadressil digiriiul.visualstudio.com
Logi
10.10.2014
Skype grupikõne. Projektiidee ja funktsionaalsuse välja mõtlemine.
22.10.2014
Skype vestlus. Projektiidee arutamine. Projekti nime välja mõtlemine. TFS konto loomine.
30.10.2014
Skype kõne. Analüüsidokumendi koostamine.
Analüüs (2. etapp)
Rakenduse kirjeldus
Mida rakendus endas sisaldab?
Rakendus seisneb digitaalses raamaturiiulis, kuhu kasutaja saab lisada raamatuid, mida ta on varem lugenud, mis tal on olemas või mida ta soovib tulevikus lugeda. Kasutaja saab lisada raamatutele ka kommentaare, arvustusi, hindeid ning märksõnu (tag-e). Digiriiul on liidestatud ka avalike API-dega, mille abil saab kasutaja enda raamatu kohta lisanduvaid andmeid, mida ei pruugi ise lisada. Rakendusel on graafiline vaade, mis kuvab raamatute pealiskaaned, et kasutajal oleks kiire ülevaade enda raamatutest.
Võimaluse korral lisatakse ka funktsionaalsus, mis laseb vaadata teiste kasutajate raamaturiiuleid, jätta neisse kommentaare, lisada teisi kasutajaid oma jälgitavate nimekirja ning saada oma ajajoonele nende tegevustest uuendusi. Kui aega jätkub, siis luuakse kasutajale ka võimalus jälgida, kellele on raamatuid välja laenutatud.
Rakenduse eesmärk
Rakenduse eesmärgiks on pakkuda kasutajale mugavat võimalust hallata kõike lugemisega seonduvat otse oma töölaualt. Rakendus on võimalikult lihtsalt kasutatav.
Must have
Kasutaja loomine, profiili uuendamine ja kustutamine
Raamatute lisamine
Raamatutele kommentaaride, arvustuste, hinnete ning märksõnade (tag-ide) lisamine
Digiriiuli liidestamine avalike API-dega, et saada lisanduvat infot
Filtreerimine ehk žanri/autori jms järgi raamatute näitamine
Graafiline vaade (kollaažh raamatukaantest)
Nice to have
Teiste kasutajate raamaturiiulite sirvimine ja kommenteerimine rakenduse kaudu
Teiste kasutajate jälgimine
Ajajoon, mis näitab jälgitud kasutajate viimaseid toiminguid rakenduses
Välja laenatud raamatute üle arvestuse pidamine
Muu meedia: filmid, seriaalid, mängud jms.
Rakenduse üldine struktuur / kasutatavad arendusmustrid
Rakenduse üldine struktuur järgib MVVM (Model View ViewModel) mustrit, kus:
- View kihis graafiline kasutajaliides
- ViewModel kihis kiht seob Model kihti ja View kihti
- Model kiht sisaldab Business Logic Layer ja Data Access Layer-it
Data Access Layer - siia lähevad kõik andmebaasiga seonduvad meetodid. Iga olemi kohta tekitatakse eraldi DAO objekt. Rakendatakse O/RM Entity Framework tehnoloogiat, et minimeerida andmebaasiga suhtlemist puudutava koodi hulka. Kasutaja poolt sisestatud andmete valideerimine saavutatakse samuti Entity Framework abil.
Business Logic - siia läheb kõik, mis ei puuduta otseselt graafilist liidest või andmebaasiga suhtlemist. Muu hulgas tähendab see avalikest veebiteenustest andmete küsimist (avalike API-dega suhtlemist), kasutaja sisselogimisega seotud toiminguid jms. Veebiteenustega suhtlemine (Google Books API, Open Library Covers API jms) peidetakse ühe objekti taha kasutades Facade mustrit.
Testandmebaasi server asub rakendusega samas arvutis, kuid live-versioonis hakkab rakendusi teenindama keskne andmebaas. Rakenduse jaoks on renditud Azures MS SQL Server.
Testimine
Aja jätkumise korral kasutatakse rakenduse osade testimiseks automaattestimist (Microsoft Unit Test Framework). Tõenäoliselt selle jaoks siiski aega ei jätku.
Graafiline liides
Graafiline liides koosneb menüüribast akna ülemises ääres ning “riiulivaatest”, mis jääb menüüribast allapoole. Menüüriba koosneb kahest nupust, “My shelf” ja “View”
“My shelf”
Kui kasutaja ei ole sisse loginud, kuvatakse talle kolm alammenüüd:
- Log in: Kasutajanimi, parool, logi-sisse nupp, kasutaja registreerimise nupp (mis avab akna kasutaja registreerimiseks) ning “unustasid parooli” nupp. Kui üks väljadest on tühi, kuvatakse veateade ning kasutajal on võimalus uuesti väljad ära täita.
- Register: Kasutajanimi, parool, uuesti parool, e-mail (parooli meeldetuletamiseks) ja “registreeri” nupp. Valideerib kasutajanime ja parooli (parool ei tohi olla liiga lihtne).
- Exit: sulgeb rakenduse (küsib hüpikaknas kinnitust)
Kui kasutaja on sisse loginud, kuvatakse talle alljärgnevad menüüd:
- My books: avaneb kasutaja riiul. Vaate üleval on kontrollpaneel, mis koosneb 4 nupust. Esimene lülitab sisse “slideshow” vaate, teine lülitab sisse “list” vaate. Kolmas nupp on rippmenüü, kust saab valida sortimise parameetri. Neljas nupp on sortimise järjekord.
- Slideshow: Ekraani keskel näidatakse kolme raamatukaant, mis on valitud sortimise järgi esimestel kohtadel. Akna paremal äärel on näha poolikult järgmise raamatu kaant. Akna vasakul äärel on valitud sortimise põhjal näha viimase raamatu kaant poolikult. Kui raamatu kaant pole lisatud, kuvatakse kohahoidja. Hõljudes hiirega raamatukaane peal, ilmub kaane alla raamatu nimi ning autor. Vaate mõlemas ääres on nooled, millele vajutades saab liikuda ühe raamatu võrra edasi või tagasi. Raamatu nimele vajutades avaneb vaade täiendava infoga raamatu kohta.
- List view: akna keskele tekib tabel raamatutest valitud sortimise järgi. Kuvatakse raamatu nimi, autor ning valitud sortimise tulp. Kui kirjeid on rohkem kui rakenduse aken mahutab, tekib paremasse äärde kerimisriba. Kui kirjeid on rohkem, kui teatud fikseeritud arv (nt 20) siis kuvatakse lehekülgede kaupa. Raamatu nimele vajutades avaneb vaade täiendava infoga raamatu kohta.
- Add Book: avab vaate raamatu lisamiseks. Lisamisaknas on kõik raamatuga seonduvad väljad (autor, pealkiri, ISBM jms) ning nupud “Add book”, mis lisab raamatu kasutaja riiulile, ning “Cancel” lisamise tühistamiseks. ISBM või pealkirja välja täitmisel küsib rakendust avalikest veebiteenustest (Google Books API, Open Library Covers API jms) raamatu andmed ning pakub kasutajatele võimalust väljad eeltäita.
- My Profile: saab uuendada enda profiiliga seonduvaid andmeid
- Log out : logib kasutaja rakendusest välja, aga jätab rakenduse tööle
- Exit: sulgeb rakenduse (küsib hüpikaknas kinnitust)
“Search”
Pakub võimalust otsida ja vaadata rakenduse andmebaasis või avalikes API-des olevaid raamatuid, otsides nt autori nime või pealkirja järgi
Mock-up ekraanitõmmised
Myshelf menüü struktuur sisselogituna
Myshelf menüü struktuur väljalogituna
My Books List vaade
My Books Slideshow vaade
Andmebaasi graaf
Rollijaotus
Rollijaotus on esialgne ning võib veel muutuda.
- Jaan Elken - API-dega suhtlus, teenuste kiht
- Martin Orgusaar - graafiline liides
- Henri Põld - entity framework, äriloogika
- Morris Mänd - andmebaasiga seonduv
- Riho Uusjärv - teenuste kiht
Meie kirjutatud retsensioonid:
Analüüsi retsensioon: Retsensioonid
Prototüübi retsensioonid: Talk:Meeskond:RemindEm
Lõpptoote retsensioon: -
Prototüüp
Prototüüp asub SIIN
Solution tuleb VS-i importida ning Presentation projekt käima lasta (set as StartUp project).
Paigaldamise probleemide korral võtke ühendust Skype jaan.elken e-mail elkenj@gmail.com
Lõpptoode
Prototüüp asub SIIN
Solution tuleb VS-i importida ning Presentation projekt käima lasta (set as StartUp project).
Paigaldamise probleemide korral võtke ühendust Skype jaan.elken e-mail elkenj@gmail.com