Difference between revisions of "H2I"

From ICO wiki
(Versioonihaldus ja lõpp-produkt)
(Blanked the page)
(Tag: Blanking)
 
Line 1: Line 1:
= Projekt õppeaines "Programmeerimine C# keeles" =
 
  
== Meeskond ==
 
* Ingvar Lukas - projektijuht
 
* Helen Oppar
 
* Hardi Tiitus
 
 
== Tehnoloogiad ==
 
* C#
 
* .NET
 
* WPF
 
* MS SQL Server
 
* git
 
 
== Versioonihaldus ja lõpp-produkt ==
 
Not available
 
 
== 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 loodav 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 ''wishlist''i 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, ''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.
 
 
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.
 
* ''Wishlist''is 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.
 
* ''Wishlist''is 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 <br>
 
'''13.10''' Idee lõplik valik, esialgse tööjaotuse paikapanemine <br>
 
'''31.10''' Wiki lehe ja bitbucketi repo loomine <br>
 
'''04.11''' Analüüsi lisamine wiki lehele <br>
 
'''11.11''' Meeskonna koosolek ja retsensiooni koostamine <br>
 
'''12.11''' Retsensiooni esitamine <br>
 
'''24.11''' Andmebaasi setup (domeenimudel + kood) <br>
 
'''29.11''' Valmis vaated <br>
 
'''30.11''' Esimeste äriloogika meetodite lisamine <br>
 
'''17.12''' Prototüüp valmis, 75% must have funktsionaalsustest olemas <br>
 

Latest revision as of 14:59, 14 February 2020