H2I: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 14: Line 14:


== Analüüs ==
== 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.
On teadatuntud tõsiasi, et inimestele meeldib koguda erinevaid esemeid. Mõni kogub raamatuid, mõni münte. Oleks väga kasulik, kui igal kogujal oleks väike programm, mille abil saaks hõlpsasti oma kogu hallata, ehk näha, mis esemed tal juba olemas on, mida tahaks kindlasti kiiremas korras omandada, ning kui palju võiks ta kogu rahaline väärtus olla. Meeskonna H2I projekti eesmärgiks on luua WPF rakendus, mis on suunatud kogujatele (esialgu keskendume raamatute kollektsioneerimisele).  


Rakendus sisaldab ”Minu kogu” vaadet, otsinguvaadet ning wishlist-vaadet.
Meie looda 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). Eesmärgiks oleks, et kasutaja saaks kiire ülevaate teostest, mida ta sooviks omale saada (nö ''wishlist''). Lisaks sellele peaks kasutajal olema võimalus oma kogu suurendades muuta teoste staatust. Hea oleks, kui kasutaja saaks näha oma olemasoleva kogu rahalist väärtust.
 
Meie rakendus koosneb neljast vaatest (kolm põhivaadet ja üks alamvaade). Põhivaated on ”Minu kogu” vaade, otsinguvaade 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.  
“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.  
Line 22: Line 24:
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.
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.
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. On võimalik 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.
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, ''wishlist''is). 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.
''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.
Rakendus luuakse kasutades C# keelt, .NET raamistikku, MS SQL Server andmebaasi ning järgides MVVM (Model-View-ViewModel) arendusmustrit.


==== Milliste osade realiseerimine võib osutuda problemaatiliseks? ====
==== Milliste osade realiseerimine võib osutuda problemaatiliseks? ====
Problemaatiliseks võib osutuda:
Problemaatiliseks võib osutuda:
* rakenduse multifunktsionaalseks muutmine (kogutakse münte, marke jmt), olgugi, et projekti seisukohalt on see ”nice to have”,
* 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,
* 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,
* kasutajasõbraliku liidese loomine, lähtudes kaasaegse UX’i olemusest, kuna ühelgi liikmel meeskonnas pole eelnevat kogemust kasutajasõbraliku liidese disainiga,
Line 56: Line 58:


==== Tööjaotus ====
==== Tööjaotus ====
Täpsem tööjaotus võib töö käigus muutuda (kõik teevad kõike). Hetkel on tööjaotus selline:
Täpsem tööjaotus võib töö käigus muutuda (kõik teevad kõike). Algselt on planeeritud tööjaotus selline:
* Ingvar Lukas – projekti juhtimine ja andmebaasid
* Ingvar Lukas – projekti juhtimine ja andmebaasid
* Hardi Tiitus - backend
* Hardi Tiitus - backend

Revision as of 20:59, 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

On teadatuntud tõsiasi, et inimestele meeldib koguda erinevaid esemeid. Mõni kogub raamatuid, mõni münte. Oleks väga kasulik, kui igal kogujal oleks väike programm, mille abil saaks hõlpsasti oma kogu hallata, ehk näha, mis esemed tal juba olemas on, mida tahaks kindlasti kiiremas korras omandada, ning kui palju võiks ta kogu rahaline väärtus olla. Meeskonna H2I projekti eesmärgiks on luua WPF rakendus, mis on suunatud kogujatele (esialgu keskendume raamatute kollektsioneerimisele).

Meie looda 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). Eesmärgiks oleks, et kasutaja saaks kiire ülevaate teostest, mida ta sooviks omale saada (nö wishlist). Lisaks sellele peaks kasutajal olema võimalus oma kogu suurendades muuta teoste staatust. Hea oleks, kui kasutaja saaks näha oma olemasoleva kogu rahalist väärtust.

Meie rakendus koosneb neljast vaatest (kolm põhivaadet ja üks alamvaade). Põhivaated on ”Minu kogu” vaade, otsinguvaade 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. On võimalik 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 C# keelt, .NET raamistikku, MS SQL Server andmebaasi ning järgides 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. Lihtsamal juhul võiks rakendus suunata lihtsalt Google'i otsingusse, kus automaatselt tehakse vastava teose autori ja pealkirjaga otsing.
  • 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). Algselt on planeeritud 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