Difference between revisions of "H2I"

From ICO wiki
(Tehnoloogiad)
(Nice To Have funktsionaalsused)
Line 52: Line 52:
 
* Rakendust saab kasutada ka sisse logimata, kui on vaja kogutavate nimekirjale kiiresti pilk peale heita.
 
* Rakendust saab kasutada ka sisse logimata, kui on vaja kogutavate nimekirjale kiiresti pilk peale heita.
 
* Rakendust saab kasutada läbi Interneti.
 
* Rakendust saab kasutada läbi Interneti.
* Wishlistis olevate teoste kohta kuvatakse lisainfot (wikipedia, goodreads vms), mis scrape’itakse otse vastava teose wikipedia lehelt.
+
* Wishlistis olevate teoste kohta kuvatakse lisainfot (wikipedia, goodreads vms), mis ''scrape''’itakse otse vastava teose wikipedia lehelt.
 
* Wishlistis olevate teoste jaoks pakutakse viide saidile, kust antud teost osta saaks (näiteks eBay, Amazon vms)
 
* Wishlistis olevate teoste jaoks pakutakse viide saidile, kust antud teost osta saaks (näiteks eBay, Amazon vms)
  

Revision as of 20:45, 5 November 2017

Projekt õppeaines "Programmeerimine C# keeles"

Meeskond

  • Ingvar Lukas - projektijuht
  • Helen Oppar
  • Hardi Tiitus

Tehnoloogiad

  • C#
  • .NET
  • WPF
  • MS SQL Server
  • git

Analüüs

Meeskonna H2I projekti eesmärgiks on luua WPF rakendus, mis on suunatud kogujatele (hetkel keskendume raamatute kollektsioneerimisele). Rakendus võimaldaks kasutajal leida kiiresti infot selle kohta, millised teosed tal mingist seeriast juba olemas on ja mis on veel puudu (st milliseid teoseid sooviks kasutaja omale saada). Kasutaja peab saama oma kogu suurendades muuta teoste saatust. Eesmärgiks oleks, et kasutaja saaks kiire ülevaade teostest, mida ta sooviks omale saada (nö wishlist). Kasutajal on võimalus näha oma olemasoleva kogu rahalist väärtust.

Rakendus sisaldab ”Minu kogu” vaadet, otsinguvaadet ning wishlist-vaadet.

“Minu kogu” vaade (vaade 1) võimaldab kasutajal näha tema loodud kogusid, lisada uut kogu kogule nime andmise kaudu, muuta olemasoleva nime või kustutada terve kogu.

Kui “Minu kogu” vaates (vaade 1) klikkida valitud kogu peale, siis tekib uus vaade (vaade 2), milles on näidatud kogus leiduvad eksemplarid ning kus olemasolevad ja mitteolemasolevad selgelt eristatud on. Minu kogu (vaade 2) võiks näidata olemasoleva kogu rahalist väärtust.

Konkreetse kogu nimele klikkamine võimaldab kasutajal näha kogus olevaid eksemplare (vaade 2). Konkreetse kogu vaates (vaade 2) saab lisada kogusse uusi eksemplare ning muuta sisse kantud teoste andmeid. Teine lisamine (vaates 2) võimaldab lisada konkreetsesse kogusse teoseid, märkides ära teose pealkirja (not null), autori (not null), väljalaskeaasta, staatuse (jah/ei) (not null), koguse, seisukorra (suurepärane, hea, rahuldav, halb - hinnangu annab kogu omanik), hinnangulise väärtuse, kas suunata wishlisti või mitte.

Otsinguvaates (vaade 3) saab kasutaja otsida teost nime, autori või väljalaskmise aasta järgi. Eesmärk on anda tagasiside kasutajale, kas otsitav toode on andmebaasis ning mis on selle staatus (olemas, ei ole olemas, wishlistis). Klikates juba eksisteeriva teose peale, tekib nupp, mis võimaldab muuta varem sisestatud andmeid.

Wishlist-vaade (vaade 4) võimaldab kasutajal lisada andmebaasi eksemplare, mida ta sooviks omandada ning mis on kasutaja jaoks tähtsaimad ehk siis sellised, mida ta sooviks esmalt oma kogusse. Peaks olema ka võimalus märkida lisatud teose prioriteet (näiteks viiepallisüsteemis: hinne 5 – teost on kiiresti oma kogusse vaja, hinne 1 – teost oleks kogusse vaja, aga sellega pole kiiret). Kõik teosed, millel on konkreetsesse kogusse teose lisamise ajal lisatud wishlist jah, kantakse siia.

Rakendus luuakse kasutades MVVM (Model-View-ViewModel) arendusmustrit.

Milliste osade realiseerimine võib osutuda problemaatiliseks?

Problemaatiliseks võib osutuda:

  • rakenduse multifunktsionaalseks muutmine (kogutakse münte, marke jmt), olgugi, et projekti seisukohalt on see ”nice to have”,
  • erinevate vaadete vahel navigeerimine ning vaadete ja andmebaaside probleemivaba sidumine,
  • kasutajasõbraliku liidese loomine, lähtudes kaasaegse UX’i olemusest, kuna ühelgi liikmel meeskonnas pole eelnevat kogemust kasutajasõbraliku liidese disainiga,
  • programmeerimine, lähtudes MVVM printsiipidest, kuna tahes tahtmata võib tekkida olukordi, kus mitu loogikat ühte klassi kokku kirjutatakse.

Must Have funktsionaalsused

  • Andmebaas teostest. Sisaldab andmeid ja olekut teoste kohta.
  • Kogude lisamine. Võimalik on rakendusse lisada uusi kogusid, andes neile vabalt valitud nime (raamatuseeria nimi, autori nimi, väljalaskeaasta jmt).
  • Kogude kustutamine. Kogu saab täielikult kustutada ehk siis kustutatakse kogu ja selles olevad teosed korraga.
  • Teoste lisamine. Konkreetsesse kogusse saab lisada teoseid, kusjuures kindlasti peab väärtuse saama teose pealkiri, autor ning olek.
  • Teoste kustutamine. Teos ning kõik selle kohta käiv info kustutatakse kogust.
  • Teoste wishlist. Nagu nimigi ütleb, kuuluvad siia teosed, mida kasutaja eriti omada soovib.
  • Ülevaade kogude kaupa. Vaade, kus on esitatud kõik kogusse kuuluvad eksemplarid ning nende kohta käiv info.
  • Otsingufunktsioon. Otsida saab, sisestades teose pealkirja või autori. Otsingu tulemus annab teada, kas teos eksisteerib andmebaasis ning mis on selle olek.

Nice To Have funktsionaalsused

  • Sisselogimisvõimalus ning n + 1 kasutajat. Rakendusel saavad olla erinevad kasutajad, kes omavad erinevaid kogusid. Selleks on vaja teha registreerimine, kasutajate andmebaas.
  • Rakendus on multifunktsionaalsem – ei keskendu ainult raamatute kogujatele, vaid üleüldse kogujatele. Näiteks on ühel inimesel kogud raamatutest „Seiklusjutte maalt ja merelt“, kuid samal ajal on tal ka teine kogu, mis koosneb müntidest.
  • Rakendust saab kasutada ka sisse logimata, kui on vaja kogutavate nimekirjale kiiresti pilk peale heita.
  • Rakendust saab kasutada läbi Interneti.
  • Wishlistis olevate teoste kohta kuvatakse lisainfot (wikipedia, goodreads vms), mis scrape’itakse otse vastava teose wikipedia lehelt.
  • Wishlistis olevate teoste jaoks pakutakse viide saidile, kust antud teost osta saaks (näiteks eBay, Amazon vms)

Tööjaotus

Täpsem tööjaotus võib töö käigus muutuda (kõik teevad kõike). Hetkel on tööjaotus selline:

  • Ingvar Lukas – projekti juhtimine ja andmebaasid
  • Hardi Tiitus - backend
  • Helen Oppar - frontend ja disain

Blogi

17.09 Meeskonna kokkupanek
13.10 Idee lõplik valik, esialgse tööjaotuse paikapanemine
31.10 Wiki lehe ja bitbucketi repo loomine
04.11 Analüüsi lisamine wiki lehele