Meeskond: TTT (Trellid Teevad Tugevaks): Difference between revisions

From ICO wiki
Jump to navigationJump to search
Otiks (talk | contribs)
Otiks (talk | contribs)
Line 16: Line 16:
Kasutaja, kes soovib raamatut laenutada, kasutab rakenduses otsingut kas raamatu pealkirja, autori nime või kategooria järgi. Otsingutulemustes kuvatakse välja vaid teoseid, mille kohta on aktiivne kirje teise kasutaja (raamatu omaniku) poolt loodud. Kui kasutaja leiab tulemustest sobiva raamatu, mida ta soovib laenutada, siis ta avab rakenduses selle raamatu lisainfo, kus kuvatakse kõiki kasutajate raamatuid valitud raamatu kohta ning mittelaenutatud kasutajate raamatute juures on võimalus alustada laenutamist. Laenutuse vaikimisi pikkuseks on määratud 14 päeva, mida saab vajadusel ka manuaalselt muuta. Juhul kui raamat on parasjagu juba välja laenutatud, siis kuvatakse jooksva laenutusperioodi lõpu kuupäeva koos selgitava infoga, et see konkreetne eksemplar on juba välja laenutatud. Uue laenutuse algkuupäev saab olla üks päev pärast jooksva laenutuse lõppemist. Raamatu tagastamisel märgib raamatu omanik süsteemi, et raamat on tagastatud ning võib raamatu jälle uuesti laenutamiseks valmis panna.  
Kasutaja, kes soovib raamatut laenutada, kasutab rakenduses otsingut kas raamatu pealkirja, autori nime või kategooria järgi. Otsingutulemustes kuvatakse välja vaid teoseid, mille kohta on aktiivne kirje teise kasutaja (raamatu omaniku) poolt loodud. Kui kasutaja leiab tulemustest sobiva raamatu, mida ta soovib laenutada, siis ta avab rakenduses selle raamatu lisainfo, kus kuvatakse kõiki kasutajate raamatuid valitud raamatu kohta ning mittelaenutatud kasutajate raamatute juures on võimalus alustada laenutamist. Laenutuse vaikimisi pikkuseks on määratud 14 päeva, mida saab vajadusel ka manuaalselt muuta. Juhul kui raamat on parasjagu juba välja laenutatud, siis kuvatakse jooksva laenutusperioodi lõpu kuupäeva koos selgitava infoga, et see konkreetne eksemplar on juba välja laenutatud. Uue laenutuse algkuupäev saab olla üks päev pärast jooksva laenutuse lõppemist. Raamatu tagastamisel märgib raamatu omanik süsteemi, et raamat on tagastatud ning võib raamatu jälle uuesti laenutamiseks valmis panna.  


Esialgu realiseerime projekti WPF rakendusena, mis tähendab, et iga kasutaja peab selle oma arvutisse paigaldama. WPF rakenduse loomisel kasutame MVVM arendusmustrit, hoides üksteisest lahus andmed ja äriloogika, kasutajaliidese loogika ja presentatsiooni loogika. Andmebaasi teostame MS SQL tehnoloogial. Edaspidi on mõeldav ka süsteemi laiendamine veebi ja ASP.NET tehnoloogia rakendamine, et kasutajad ei peaks hankima spetsiifilist rakendust, vaid saaksid kõiki toiminguid teostada vabalt valitud veebibrauseris. Selleks tuleb programmile täiendavad osad juurde kirjutada.
Esialgu realiseerime projekti WPF rakendusena, mis tähendab, et iga kasutaja peab selle oma arvutisse paigaldama. WPF rakenduse loomisel kasutame MVVM arendusmustrit, hoides üksteisest lahus andmed ja äriloogika, kasutajaliidese loogika ja presentatsiooni loogika. Andmebaasi realiseerime MS SQL tehnoloogial. Edaspidi on mõeldav ka süsteemi laiendamine veebi ja ASP.NET tehnoloogia rakendamine, et kasutajad ei peaks hankima spetsiifilist rakendust, vaid saaksid kõiki toiminguid teostada vabalt valitud veebibrauseris. Selleks tuleb programmile täiendavad osad juurde kirjutada.


Projekt teostatakse Visual Studio Online keskkonnas, kasutades Git versioonihaldustarkvara.
Projekt teostatakse Visual Studio Online keskkonnas, kasutades Git versioonihaldustarkvara.

Revision as of 23:04, 1 November 2015

Meeskond ja rollid

  • Kaidar Viikman - Wiki pidaja
  • Joonatan Uusväli - Projektijuht
  • Ave Karjus
  • Oliver Tiks

Idee

Luua rakendus, kus kasutajad loovad ise omale profiili ning sisestavad raamatute info, mida nad pakuvad teistele laenutamiseks. Samuti on võimalik laenutada teiste kasutajate sisestatud raamatuid.

Analüüs

Käesoleva projekti eesmärgiks on luua Visual Studio arenduskeskkonna võimalusi kasutades C# programmeerimiskeeles rakendus, mis võimaldab kasutajatel isiklikke raamatuid välja laenutada ning samuti ise laenutada teiste kasutajate raamatuid. See on mõeldud koduseks kasutamiseks ning sobiks hästi näiteks ühes piirkonnas elavatele inimestele, et hõlbustada ning populariseerida raamatute lugemist. Peamine idee on see, et kõik rakenduse kasutajad loovad omale kasutajakontod ning need, kes soovivad raamatuid välja laenutada, peavad lisama endale kuuluvate raamatute info andmebaasi. Kasutajad, kes soovivad raamatuid laenutada, saavad valida nende kirjete hulgast raamatuid ning alustada aktiivset laenutust.

Esimest korda rakendust lavades peab kasutaja looma omale kasutajakonto. Profiili salvestatakse andmed kasutaja kohta (nimi, parool (SHA-1 räsi), emaili aadress, telefoninumber). Pärast profiili loomist on võimalik rakendusse sisse logimine, kus kasutaja saab hakata lisama endale kuuluvaid raamatuid. Täielik raamatute andmebaas on süsteemi eelnevalt sisestatud. Selleks tuleb hankida täielik bibliograafia ja seda perioodiliselt uuendada. Kasutaja sisestab endale kuuluvate raamatute info valides juba eelnevalt andmebaasis eksisteeriva raamatu kirje. Lisatavate raamatute maht ei ole piiratud. Kogumike korral on kasutajal võimalik süsteemi sisestada ka raamatus sisalduvate artiklite kirjed. Kõik kasutaja lisatud raamatud kuvatakse edaspidi rakenduses menüüpunkti “Minu raamatud” all ning samuti on peale raamatu lisamist ka teistel kasutajatel võimalik nende raamatute laenutamine.

Kasutaja, kes soovib raamatut laenutada, kasutab rakenduses otsingut kas raamatu pealkirja, autori nime või kategooria järgi. Otsingutulemustes kuvatakse välja vaid teoseid, mille kohta on aktiivne kirje teise kasutaja (raamatu omaniku) poolt loodud. Kui kasutaja leiab tulemustest sobiva raamatu, mida ta soovib laenutada, siis ta avab rakenduses selle raamatu lisainfo, kus kuvatakse kõiki kasutajate raamatuid valitud raamatu kohta ning mittelaenutatud kasutajate raamatute juures on võimalus alustada laenutamist. Laenutuse vaikimisi pikkuseks on määratud 14 päeva, mida saab vajadusel ka manuaalselt muuta. Juhul kui raamat on parasjagu juba välja laenutatud, siis kuvatakse jooksva laenutusperioodi lõpu kuupäeva koos selgitava infoga, et see konkreetne eksemplar on juba välja laenutatud. Uue laenutuse algkuupäev saab olla üks päev pärast jooksva laenutuse lõppemist. Raamatu tagastamisel märgib raamatu omanik süsteemi, et raamat on tagastatud ning võib raamatu jälle uuesti laenutamiseks valmis panna.

Esialgu realiseerime projekti WPF rakendusena, mis tähendab, et iga kasutaja peab selle oma arvutisse paigaldama. WPF rakenduse loomisel kasutame MVVM arendusmustrit, hoides üksteisest lahus andmed ja äriloogika, kasutajaliidese loogika ja presentatsiooni loogika. Andmebaasi realiseerime MS SQL tehnoloogial. Edaspidi on mõeldav ka süsteemi laiendamine veebi ja ASP.NET tehnoloogia rakendamine, et kasutajad ei peaks hankima spetsiifilist rakendust, vaid saaksid kõiki toiminguid teostada vabalt valitud veebibrauseris. Selleks tuleb programmile täiendavad osad juurde kirjutada.

Projekt teostatakse Visual Studio Online keskkonnas, kasutades Git versioonihaldustarkvara.

Must have” funktsionaalsused:

  • Kasutajate registreerimine (loob uue kirje tabelisse USER)
  • Kasutajatel on võimalus sisse logida
  • Kasutajatel on võimalik lisada endale kuuluvaid raamatuid
  • Kasutaja saab alustada laenutust
  • Kasutaja saab lõpetada laenutust
  • Kasutaja näeb infot enda aktiivsete laenutuste kohta (välja antud ja sisse laenatud)
  • Raamatute otsimise võimalus
  • Raamatu laenutamise tähtaeg vaikimisi 14 päeva
  • Laenutamise tähtaja manuaalse muutmise võimalus
  • Väljalaenutatud raamatute juures kirje laenutustähtaja kohta

Nice to have” funktsionaalsused:

  • Saab UI-st lisada raamatuid
  • Kasutajaid saab hinnata
  • Raamatuid saab hinnata
  • Kasutaja raamatuid saab hinnata
  • Kasutajaid saab kommenteerida
  • Raamatuid saab kommenteerida
  • Kasutaja raamatuid saab kommenteerida
  • Laenutuse lõppemise hoiatuse saatmine emailile
  • Madala kasutaja või kasutaja raamatu puhul vastav hoiatus
  • Võimalus mitte lubada laenata enda raamatuid liiga madala hinnanguga kasutajatel
  • Parooli reset-imise võimalus
  • Top X raamatute(laenutuste) list viimasel kuul
  • X viimati lisatud uut raamatut
  • Liidestus Facebookiga/sõprade kutsumise võimalus
  • Raamatute nimekirja automaatne uuendamine välistest andmebaasidest
  • Kasutajate õiguste piiramine/kasutajate haldus
  • Täiuslik ACL
  • Raamatute graafiline materjal

Andmebaasi ülesehitus

Andmebaas koosneb seitsmest põhitabelist, mis peavad kindlasti olema tehtud, et tagada süsteemi “must have” funktsionaalsuste toimimine:

  • USER - kasutaja andmed ja parool
  • USER_BOOK - kasutaja raamatukogu, kus kasutaja ID seotakse raamatu ID-ga
  • BOOK - bibliograafia, kust võetakse raamatute kirjed kasutaja raamatukogu jaoks, raamatud seotakse kategooria ID-ga
  • ARTICLE - artiklite kirjed, mis seotakse raamatu ID-ga
  • RENT - laenutus, kus seotakse kasutaja (laenutaja) ID laenutatud raamatu ID-ga
  • CATEGORY - raamatute kategooriad
  • RENT_STATUS - laenutuse staatus, laenutuse ID seotakse hetkeajaga

Nice to have” funktsionaalsuste lisamise korral tuleb teha täiendavaid tabeleid (kommentaarid, hinded jm).

Võimalikud probleemid

  • Bibliograafia leidmine, mis hõlmaks kõiki võimalikke kasutaja raamatuid
  • Tegijate vähene kogemus C# programmeerimiskeelega
  • Rakenduse laiendamine veebi ja sobitamine Asp.Net tehnoloogiaga

Projekti kirjeldus

Tehnoloogiad

Arendusmustrid

  • MVVM
  • võimalikud ASP.NET arendusmustrid

Versioonikontroll

Koodi stiilireeglid

Litsents

Avaldatud failid

Arendusprotsess

  • 29.09.2015 - grupi kokkupanek ning idee arutamine
  • 20.10.2015 - wiki lehe loomine. Esialgse idee sõnastamine
  • 21.10.2015 - grupiliikmete kogunemine. Idee täpsem sõnastamine. Esialgse analüüsi teostamine

Lisad