Bomory

From EIK wiki

Meeskond ja rollid

  • Hando Laasmägi - projektijuht, programmeerija
  • Tarvo Tammejuur - programmeerija
  • Cathy Toomast - programmeerija, disainer

Idee

Rakendus kus kasutaja saab lisada raamatuid, mida ta on lugenud ja filme, mida ta on vaadanud. Enda teoseid saab sorteerida erinevate parameetrite alusel. Lisaks saab teoseid lisada To Read/To Watch listi.

Tehnoloogia

Kasutatav tehnoloogia: C#, Windows Presentation Foundation, Microsoft SQL Server

Analüüs

Meeskonnal Bomory on plaanis luua Windows WPF töölauarakendus, mis kirjutatakse C# programmeerimiskeeles. Andmebaasina kasutatakse Micrososft SQL Serverit, ning päringukeelena LinQ-t. Seda kasutame ka veebiteenuste (nt GoodReads’iga) suhtlemisel XML “lugemiseks”.

Selle rakendusega on kasutajal võimalus lisada raamatuid oma isiklikku loetud raamatute nimistusse. Raamatuid saab jagada erinevatesse kategooriatesse, neile saab anda hindeid, märkida, millal on raamat loetud ning kas raamatut omatakse. Saab märkida, millal on raamat välja antud, millal kasutaja seda luges, kes on autor. Raamatuid saab lisada ka “To-Read” nimekirja ning üles märkida saab ka raamatud, mida omatakse, kuid pole (veel) loetud. Rakenduse eesmärk oleks, et kasutajal oleks ühtne programm, kus ta saab lisada nii raamatuid, kui ka filme. Kasutaja saab näiteks sirvida nii raamatuid, mida ta lugenud on, et meenutada raamatuid, mis talle meeldinud on ja lugeda, mis ta nende kohta arvanud on. Nii on lihtsam näiteks ka teistele midagi soovitada. Samas on tal ülevaade, mis raamatud ja filmid tal endal olemas on ja millised on välja laenutatud.

Rakenduse kasutamise eelduseks on registreerimine ja sisse logimine. Kasutaja poolt tehtud valikud, lisatud raamatud ja nende andmed seotakse selle konkreetse kasutajaga ning lisatakse andmebaasi. Kui kasutaja on sisse logitud, on tal kaks põhivaadet: Minu raamatud ja minu filmid. Nende mõlema all on valik, et teavikuid juurde lisada ja erinevad kuvamise võimalused. Lisaks on olemas otsinguriba, kus saab otsida juba lisatud filme ja raamatuid. Kasutaja saab raamatuid ja filme sorteerida vastava parameetri järgi tähestikulises või kronoloogilises järjekorras kasvavalt või kahanevalt. Seda näiteks autori perekonnanime järgi, kuupäeva järgi, millal raamatut loetud, pealkirja järgi või ilmumise aasta

Kasutaja saab lisada raamatutele hinnanguid. Raamatute juures kuvatakse teiste kasutajate hinnangute keskmine. Kui jääb aega, siis kirjutame rakendusse ka lisafunktsiooni - Kasutajapoolseid avalikke arvustusi kuvatakse teistele kasutajatele vastava raamatu all.

Kasutajal on võimalik raamatu juurde teha ka märge “välja laenutatud”. Sinna saab juurde märkida, kes laenutas ja millal. Võib märkida ka tähtaja, kui laenajaga on nii kokku lepitud. See võimalus oleks mõeldud näiteks inimesele, kes sõbrale raamatu laenas ja tahab seda meeles pidada, mitte väikeraamatukogule. Välja laenutatud raamatuid on võimalik eraldi kuvada.

Rakendus ei ole piiratud ainult loetud raamatutega. Parasjagu pooleliolevat kirjandust on ka võimalik meelde jätta, tehes linnukese "currently reading" valikusse, ning täpsustades leheküljenumbri, kus lugemine pooleli jäi. Hiljem, avades rakenduse, on kasutajal vaade kõikide pooleliolevate raamatute nimistust. Sealt on võimalik ka raamat edasi "loetuks" muuta.

Kui muu töömaht võimaldab, seotakse rakendus Goodreadsi API-ga. See võimaldaks luua raamatute otsingusüsteemi, kus kasutaja saab enne raamatu lisamist selle kohta pikemalt lugeda ning paljud raamatud, mida kasutaja plaanib sisestada, tuleksid otsingust välja. Seal oleks kasutajal mugav ka uute raamatutega tutvuda ja lisada neid “To-Read” nimekirja. Võimalik, et ka kasutajal endal tekib pildi lisamise funktsioon.

Goodreadsi kodulehel kuvatava info kasutamise puhul on oluline järgida nende poolt sätestatud nõudeid. Muuhulgas tuleb jälgida, et meetodi päringud ei tohi toimuda tihemini kui kord sekundis, Goodreadsi logo tuleb kuvada sealt pärit info juures. Sealt pärinevat infot ei tohi säilitada üle 24h. Need on kõik piirangud, millega tuleb arvestada. Eriti probleemseks võib osutuda info säilitamise keeld üle 24h. Lisaks raamatutele saab kasutaja lisada ka filme. Üldine süsteem on sama mis raamatutel, kuid filmide puhul tuleb arvestada, et on natuke teistsugused kategooriad, näiteks animafilmid, puudub näiteks poeesia kategooria. Võimaluse korral püütakse filmide otsimise ja kuvamise süsteem ühildada IMDB api-ga.

Rakenduses pakutakse välja teatav hulk eelmääratud kategooriaid, näiteks filmidel, Action, Anima, Komöödia. Raamatute puhul näiteks seiklusjutud, armastusromaanid. Kasutaja saab kategooriaid juurde luua, et ta ta filmide ja raamatute nimistu oleks omanäolisem ja seda oleks parem hallata.

Nice-to have nimekirjas oleks, et kasutaja saab lisada rakendusse ka arvutimänge, mida ta on mänginud ning samamoodi anda neile hindeid, arvustusi ja sorteerida erinevate parameetrite alusel.

Meeskonna tööjaotuse osas on hetkel paika pandud niipalju, et kõik tegelevad programmeerimisega, projektijuhuks on Hando Laasmägi. Cathy Toomast võtab eeldatavalt disaini osas veidi kandvama rolli. Andmebaaside sisu ja struktuur on siiani valminud kõigi ühise panusena.

Kuna kasutatav tehnoloogia ja projekti maht on uus, siis on väike oht, et ülehindame oma võimeid ja alahindame keerukust ning midagi jääb “Must have “nimekirjast tegemata. Seda võib tasakaalustada tõik, et oleme seni enamik koolitöid ja programmeerimisülesandeid teinud iseseisvalt ja alahindame ka seda, kuivõrd kiiremini edeneb projekt kolmekesi kirjutades võrreldes individuaaltööga.

Arvestades projektiliikmete vähest kogemust suurte projektide ülesehitamise ning .NET raamistikuga, võib projekti üheks edasiseks raskuspunktiks kujuneda andmemahtude kasvamisel ning funktsioonide lisandumisel korrektse objektorienteeritud koodi ja hea struktuuri säilitamine. Siinkohal võiks olla oluline, vahepeal olukorda analüüsida ja vajadusel kaasata õppejõudu, kes võiks märgata varajasi märke, kui projekti ülesehitus on muutumas ebaotstarbekaks.


Rakenduses on olemas järgmised võimalused (Must have):

  • Kasutajaks registreerimine
  • Kasutaja sisselogimine
  • Kasutaja väljalogimine
  • Raamatute lisamise võimalus
  • Raamatutele hinnangute andmise võimalus
  • Raamatutele arvustuse kirjutamise võimalus
  • Filmide lisamine
  • Eelnevalt lisatud filmide ja raamatute otsimine otsinguriba kaudu.
  • Filmidele hinnangute andmine
  • Filmidele arvustuse kirjutamine
  • Raamatute ja filmide tähestikuline ja kronoloogiline järejstamine kasutaja poolt valitud parameetri alusel
  • Kasutaja filmide ja raamatute eraldi vaated
  • Saab kuvada korraga kõiki kasutajale lisatud filme ja raamatuid
  • Raamatute ja filmide otsing
  • Eelsätestatud kategooriate olemasolu.
  • Saab kuvada raamatu ja filmi infot, mille keegi kasutaja on juba lisanud (juures ka kirje, kes lisas)
  • Raamatu ja filmi kuvamisel on nurgas ka keskmine hinne kasutajate poolt
  • Lugemisel/vaatamisel olevate raamatute/filmide vaade
  • Parasjagu loetavatele raamatutele on võimalik lisada järjehoidjaid
  • Raamatute ja filmide laenutus sõbrale

Rakenduses võiksid olla lisavõimalused (Nice to have):

  • Saab lisada mänge
  • Saab anda mängule hinnangu
  • Mängule hinnangu andmise võimalus
  • Mängudele, filmidele ja raamatutele saab kategooriaid teha vastavalt enda eelistustelei
  • Kasutaja mängude vaade
  • Lisada mängude kuvamine kasutaja filmide ja raamatute hulka
  • On olemas mängude otsing
  • kommentaaride lisamise/ kuvamise võimalus
  • Raamatud on seotud Goodreads’ga
  • Filmid on seotud IMDB’ga
  • Andmebaasi andmete varundamine
  • Varukoopia ära kasutamine import võimalusena, et taastada kasutaja andmed nt teises arvutis.

Andmebaasiskeem

Csharp ab.png

Versioonihaldus

TFS: https://eikbomory.visualstudio.com/Bomory

Workload

09.10.2016

Loodud Wiki leht

21.10.2016

Wiki lehel täpsustatud liikmete rolle ja täpsustatud üldist kirjeldust.

22.10.2016

Loodud TFS ja õppejõule kutse saadetud

26.10.2016

Projekti esmane struktuur on paigas. Põhiline andmebaasimudel on paigas. Lahendatud on probleemid varasemalt gitiga tehtud projekti alguse TFSi saamine ja Visual Studio uude arvutisse pannes tekkis tihti salakavalat mingi lokaalne git repo. Palju tegemist oli andmebaasimudelite ja andmebaasi vastavusse viimisse erinevates arvutites. Mudelist Baasile üleminekul(või vastupidi) tekkis tabelinimedesse mitmust, kuigi vastavad seaded olid justkui eemaldatud ja koodiski ülekirjutatud. Taolised esmased suured probleemid on nüüdseks ületatud ja saab keskenduda koodi kirjutamisele.

26.10.2016

Kasutaja saab registreerida ja sisse logida. Loodud on mõned BO ja Regamiseks-logimiseks vajalikud serviced.

01.11.2016

Lõpetati analüüs ja saadeti see õppejõule

03.11.2016

Täiendati Wiki lehte ja lisati andmebaasiskeem.

01.12.2016

Prototüübi kaitsemine. Tagasiside oli, et kui lisanduvad näiteks arvutimängud, võiks kaaluda erinevate teavikute ning erinevate žanrite kategooriate ühildamist, lisaks peaks ViewModeleid rohkem kasutama.