Talk:Agraarbeib: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mputsepp (talk | contribs)
Created page with "Projekti analüüs retsenseerimiseks broneeritud võistkonna EasyDesk poolt."
 
Mjaager (talk | contribs)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Projekti analüüs retsenseerimiseks broneeritud võistkonna EasyDesk poolt.
== Analüüsi retsensioon ==
Meeskond Agraarbeib on teinud väga põhjaliku analüüsi oma projektile. Valmiva rakenduse idee on arusaadav -  tehakse talutoodete müügikeskkond, kus ühel poolel on taluomanikud, kes rakenduse abiga müüvad oma kaupu ja teisel pool ostjad, kes rakendust kasutades saavad talukaupu tellida.
 
 
''Must have'' ja ''nice to have'' funktsionaalsused sobituvad rakenduse juurde ja on käesoleva kooliprojekti jaoks kindlasti piisavad. Funktsionaalsused on läbi kasutajalugude põhjalikult kirjeldatud.  Mulle meeldis, et kasutajaliidesest on valmistatud prototüüp, seega on põhjalikult mõeldud ka front-endi peale.
 
 
Analüüsi juurde kuulub ka andmebaasiskeem, mis minu meelest võimaldab kirjeldatud funktsionaalsuse saavutamist. Andmebaasitabelite ja tabeliväljade nimetamisel võiks olla rohkem loomingulisem. Sellise nimesüsteemi tagajärjeks on pikad ja kohmakad nimed (nt talu_kasutaja_kasutajaid). Milleks on vaja „Talu_kasutaja“ tabelit, kui need seosed saaks ära kirjeldada ka Talu tabelis? Nt Talu tabelis on viit kasutajale. „Kasutaja“ tabelis on väljad „kasutaja_roll“ ja „Roll_roll_id“. Kas need viitavad samale rollile või erinevatele?
 
 
Meeskond on välja toonud, et projekti skoop võib osutuda liiga suureks. Selle lahendamiseks soovitaksin ma  kõigepealt loobuda talude sisestamisest. Teha projekt põhimõttel, et ühele talupidajale luuakse keskkond oma toodete müümiseks.
 
 
Kokkuvõtteks võib öelda, et üldmulje on väga hea. Läbi on mõeldud kõik erinevad rakenduse aspektid (kasutajaliides, funktsionaalsused, andmemudel). Kindlasti on analüüs suureks abiks rakenduse realiseerimisel.
 
''Retsenseeris meeskond EasyDesk 13.11.2016''
 
== Lõpptoote retsensioon ==
 
'''Rakenduse kirjeldus kasutajate vaatenurgast'''
 
Kõnealune meeskond on loonud vahendussüsteemi, mille abil saaks kokku viia talutoodete müüjad ja tarbijad. Tarbija saab loodud konto abil süsteemi sisse logida, misjärel avaneb võimalus järgnevaid vaateid kuvada:
 
• Uudiste vaade. RSS-i abil kuvatavaid põllumajandusuudiste pealkirju.
 
• Toodete vaade. Saab vaadata kaupu toodete järgi. Toote pildile klikkides avaneb uus aken, kus on võimalik näha erinevate talude pakkumisi soovitud tootele. Välja on toodud selles vaates talu nimetus, hind, ühik millele hind kehtib, soovitud tellimiskogus ja tellimuse äramärkimiseks vastavad checkboxid. Lõpuks saab ostja valitud kaubad oma ostukorvi suunata.
 
• Talude vaade. Talu ikoonile klikkides saab vaadata kaupu talude järgi. Avanevas vaates on näha kõikide selle talu poolt pakutavate tooteartiklite nimetused, hinnad ja ühikud, tellitava koguse sisestamise lahter ja tellimust kinnitavad checkboxid. Viimaks saab ostja samuti oma valitud kaubad ostukorvi suunata.
 
• Minu ostude vaade. Selle vaate seis peegeldab tarbija ostukorvi sisu. Tabel kirjeldab tellimuste veergusid eraldi toodete kaupa. Välja on toodud kaubaartikli nimetus, talu nimi, tellimuse kogus ja ühik, toote hind ja summa. Samuti võib eraldi lahtris näha kokkuvõtvat ostukorvi sisu kogumaksumust.
 
Süsteemi oluliseks osaks on administreerivat tüüpi konto, tema vaadete ja õiguste olemasolu. Sellise kontoga sisse logimisel avanevad järgmised vaated:
 
• Talude toodete vaade. See vaade võimaldab administraatoril sisestada süsteemi toodete ja neid müüvate talude vahelisi seoseid. Ära märgitakse ka esmane hinnatase, mida küll kaupleja ise edaspidi muuta saab. Antud seosetabelisse valitakse nii tooted kui ka talud juba varem sisestatud talude ja toodete etteantud valikmenüüst.
 
• Toodete vaade. Siin on nähtavad kõik juba varem lisatud tooted koos infoga toote nimetuse, kirjelduse, kategooria, koguse ühiku ja väljanägemise kohta (pilt). Uute toodete lisamiseks avaneb vastavale nupule vajutamisel uus aken.
 
• Talude vaade. Siin on nimekirjana välja toodud tooteid pakkuvad talud koos talu nimetuse, aadressi, emaili, telefoninumbri ja pildiga.
 
• Tellimuste vaade. Siin on näha kõik olemasolevad tarbijate tellimused taludele.
 
• Rollide vaade. Siin on võimalik kirjeldada uusi süsteemiosaliste rolle.
 
Kauplemisplatvormi teise osapoole moodustavad ostjate kõrval müüjad, kes siis talude toodangut müüvad. Müüjate kontole sisselogimisel avanevad järgmised vaated:
 
• Uudiste vaade. RSS-i abil kuvatavaid põllumajandusuudiste pealkirju.
 
• Toodete vaade. Saab vaadata konkreetse talu poolt pakutavaid kaupu toodete järgi. Toote pildile klikkides avaneb uus aken, kus on võimalik muuta toote hinda.
 
• Talude vaade. Siin on võimalik näha pakutavaid tooteid talude lõikes. See tähendab, et üks müüja võib müüa mitme erineva talu tooteid. Muuta saab siin ka toodete hindu.
 
• Tellimuste vaade. Siit saab müüja näha talle esitatud tellimusi koos tellimuse numbriga.
 
 
'''Kas esialgne eesmärk on täidetud?'''
 
Peaaegu kõik analüüsi etapis püstitatud ''must have'' ja ''nice to have'' funktsionaalsused on realiseeritud. Eranditeks olid näiteks tellimuste jälgimine ja toodete koguste haldamise funktsionaalsus. Eeldame siinjuures, et toodete koguse all mõeldakse müügis oleva toote laoseisu kaalu/muu ühiku järgi. Samuti on olemas ka müüjate jaoks tellimuste vaatamise funktsionaalsus, kuid tellimusi ei saa käesolevas versioonis kinnitatuks märkida.
 
 
'''Koodi iseloomustus'''
 
Käesolev projekt on WPF rakendus, kasutab andmebaasi ja ''Entity Frameworki'' ning on loodud kasutades ''code first'' lähenemist. Tehtavad tegevused ka logitakse vastavasse andmebaasi tabelisse. Projekti moodulid on jaotatud ühe solutioni alla neljaks erinevaks omavahel seotud projektiks. Üks sisaldab äriobjekte, teine ''service''’eid ja ''migration''’eid, kolmas domeenimudeleid ja viimane projekt omakorda muuhulgas vaateid ja vaatemudeleid. See tagab lahenduse eri osade vahel hästi väljapaistva eraldatuse. Projekti realisatsioon vastab MVVM mustri eeskirjadele. Eraldi folderites on tavalised ''view''d ja uutes aknates avanevad ''view''d. Kood on selgelt loetav ja reeglipärane ning muutujate ja funktsioonide nimetused on nimetatud läbivalt eestikeelselt. Paljudes kohtades on olemas sisestatud väärtuse kontroll. Näiteks tellimuse esitamisel kontrollitakse, et kas on tegemist ikka numbrilise kogusega.
Samas oleks võinud olla kood rohkem kommenteeritud. Koodi on sisse ununenud ka mõningad väljakommenteeritud koodiread ning xaml.cs failides esineb kohati mittemidagitegevaid funktsioone. Näiteks MyyjaTellimused.xaml.cs on sisse ununenud tühi mitte midagi tegev meetod GridKoikTellimused_SelectionChanged, lisaks TaluToode.xaml.cs meetod LboxTaluTooted_SelectionChanged.
Samuti esines programmi töös viga juhul, kui tellimuse kinnitamisel mõned lahtrid tühjaks jäid. Müüja vaates ei toimi toodete vaates toodete hindade muutmine. Samuti ei kontrollita, kas sisestatud on ikka numbrilised väärtused. Samas aga toimib hindade muutmine talude vaates. ''Textbox''ides lisatavaid väärtusi mõnel juhul ei kontrollita. Näiteks administraatori vaates talude lisamisel telefoninumbri lisamisel. Kui administraatori vaates muuta talude kohta käivat infot ning muudatusi salvestada, lähevad valeks talu kohta käivate pildifailide URL-id. Pilte enam muudes vaadetes selle tagajärjel näha ei ole.
 
 
'''Soovitused'''
 
Toodete tellimiseks ja hindade muutmiseks on vaja avada uued aknad. Neid samu aknaid saab aga avada mitmeid kordi üksteise peale. Peaks saama avada vaid ühe samasuguse akna. Uudised võiksid olla avatavad ja loetavad. Ehk oleks kasutajasõbralikum, kui ostukorvi sisukokkuvõtet (ostusumma, objektide arv) kuvataks lehe päises? Kas tellimuse esitamisel vastava linnukese kasti olemasolu on ilmtingimata vajalik? Ehk piisaks vaid sellest, kui vastavasse lahtrisse on juba sisestatud kogus.
 
 
'''Kokkuvõte'''
 
Kokkuvõtvalt võib öelda, et tegemist on väga asjaliku projektiga ning ka äriidee poolest on lahendus leidlik. Projekti realisatsioon on üles ehitatud väga läbimõeldult ning kasutades code first lähenemist. Projekt vastab MVVM eeskirjadele. Projekt on loodud lähtudes juba varasemalt valmis disainitud andmebaasi skeemist, mis kindlasti aitas kaasa lõpptoote toimivusele ning olemuse läbimõeldusele.
 
 
''Retsenseeris meeskond DevHelp 01.02.2017''

Latest revision as of 12:01, 1 February 2017

Analüüsi retsensioon

Meeskond Agraarbeib on teinud väga põhjaliku analüüsi oma projektile. Valmiva rakenduse idee on arusaadav - tehakse talutoodete müügikeskkond, kus ühel poolel on taluomanikud, kes rakenduse abiga müüvad oma kaupu ja teisel pool ostjad, kes rakendust kasutades saavad talukaupu tellida.


Must have ja nice to have funktsionaalsused sobituvad rakenduse juurde ja on käesoleva kooliprojekti jaoks kindlasti piisavad. Funktsionaalsused on läbi kasutajalugude põhjalikult kirjeldatud. Mulle meeldis, et kasutajaliidesest on valmistatud prototüüp, seega on põhjalikult mõeldud ka front-endi peale.


Analüüsi juurde kuulub ka andmebaasiskeem, mis minu meelest võimaldab kirjeldatud funktsionaalsuse saavutamist. Andmebaasitabelite ja tabeliväljade nimetamisel võiks olla rohkem loomingulisem. Sellise nimesüsteemi tagajärjeks on pikad ja kohmakad nimed (nt talu_kasutaja_kasutajaid). Milleks on vaja „Talu_kasutaja“ tabelit, kui need seosed saaks ära kirjeldada ka Talu tabelis? Nt Talu tabelis on viit kasutajale. „Kasutaja“ tabelis on väljad „kasutaja_roll“ ja „Roll_roll_id“. Kas need viitavad samale rollile või erinevatele?


Meeskond on välja toonud, et projekti skoop võib osutuda liiga suureks. Selle lahendamiseks soovitaksin ma kõigepealt loobuda talude sisestamisest. Teha projekt põhimõttel, et ühele talupidajale luuakse keskkond oma toodete müümiseks.


Kokkuvõtteks võib öelda, et üldmulje on väga hea. Läbi on mõeldud kõik erinevad rakenduse aspektid (kasutajaliides, funktsionaalsused, andmemudel). Kindlasti on analüüs suureks abiks rakenduse realiseerimisel.

Retsenseeris meeskond EasyDesk 13.11.2016

Lõpptoote retsensioon

Rakenduse kirjeldus kasutajate vaatenurgast

Kõnealune meeskond on loonud vahendussüsteemi, mille abil saaks kokku viia talutoodete müüjad ja tarbijad. Tarbija saab loodud konto abil süsteemi sisse logida, misjärel avaneb võimalus järgnevaid vaateid kuvada:

• Uudiste vaade. RSS-i abil kuvatavaid põllumajandusuudiste pealkirju.

• Toodete vaade. Saab vaadata kaupu toodete järgi. Toote pildile klikkides avaneb uus aken, kus on võimalik näha erinevate talude pakkumisi soovitud tootele. Välja on toodud selles vaates talu nimetus, hind, ühik millele hind kehtib, soovitud tellimiskogus ja tellimuse äramärkimiseks vastavad checkboxid. Lõpuks saab ostja valitud kaubad oma ostukorvi suunata.

• Talude vaade. Talu ikoonile klikkides saab vaadata kaupu talude järgi. Avanevas vaates on näha kõikide selle talu poolt pakutavate tooteartiklite nimetused, hinnad ja ühikud, tellitava koguse sisestamise lahter ja tellimust kinnitavad checkboxid. Viimaks saab ostja samuti oma valitud kaubad ostukorvi suunata.

• Minu ostude vaade. Selle vaate seis peegeldab tarbija ostukorvi sisu. Tabel kirjeldab tellimuste veergusid eraldi toodete kaupa. Välja on toodud kaubaartikli nimetus, talu nimi, tellimuse kogus ja ühik, toote hind ja summa. Samuti võib eraldi lahtris näha kokkuvõtvat ostukorvi sisu kogumaksumust.

Süsteemi oluliseks osaks on administreerivat tüüpi konto, tema vaadete ja õiguste olemasolu. Sellise kontoga sisse logimisel avanevad järgmised vaated:

• Talude toodete vaade. See vaade võimaldab administraatoril sisestada süsteemi toodete ja neid müüvate talude vahelisi seoseid. Ära märgitakse ka esmane hinnatase, mida küll kaupleja ise edaspidi muuta saab. Antud seosetabelisse valitakse nii tooted kui ka talud juba varem sisestatud talude ja toodete etteantud valikmenüüst.

• Toodete vaade. Siin on nähtavad kõik juba varem lisatud tooted koos infoga toote nimetuse, kirjelduse, kategooria, koguse ühiku ja väljanägemise kohta (pilt). Uute toodete lisamiseks avaneb vastavale nupule vajutamisel uus aken.

• Talude vaade. Siin on nimekirjana välja toodud tooteid pakkuvad talud koos talu nimetuse, aadressi, emaili, telefoninumbri ja pildiga.

• Tellimuste vaade. Siin on näha kõik olemasolevad tarbijate tellimused taludele.

• Rollide vaade. Siin on võimalik kirjeldada uusi süsteemiosaliste rolle.

Kauplemisplatvormi teise osapoole moodustavad ostjate kõrval müüjad, kes siis talude toodangut müüvad. Müüjate kontole sisselogimisel avanevad järgmised vaated:

• Uudiste vaade. RSS-i abil kuvatavaid põllumajandusuudiste pealkirju.

• Toodete vaade. Saab vaadata konkreetse talu poolt pakutavaid kaupu toodete järgi. Toote pildile klikkides avaneb uus aken, kus on võimalik muuta toote hinda.

• Talude vaade. Siin on võimalik näha pakutavaid tooteid talude lõikes. See tähendab, et üks müüja võib müüa mitme erineva talu tooteid. Muuta saab siin ka toodete hindu.

• Tellimuste vaade. Siit saab müüja näha talle esitatud tellimusi koos tellimuse numbriga.


Kas esialgne eesmärk on täidetud?

Peaaegu kõik analüüsi etapis püstitatud must have ja nice to have funktsionaalsused on realiseeritud. Eranditeks olid näiteks tellimuste jälgimine ja toodete koguste haldamise funktsionaalsus. Eeldame siinjuures, et toodete koguse all mõeldakse müügis oleva toote laoseisu kaalu/muu ühiku järgi. Samuti on olemas ka müüjate jaoks tellimuste vaatamise funktsionaalsus, kuid tellimusi ei saa käesolevas versioonis kinnitatuks märkida.


Koodi iseloomustus

Käesolev projekt on WPF rakendus, kasutab andmebaasi ja Entity Frameworki ning on loodud kasutades code first lähenemist. Tehtavad tegevused ka logitakse vastavasse andmebaasi tabelisse. Projekti moodulid on jaotatud ühe solutioni alla neljaks erinevaks omavahel seotud projektiks. Üks sisaldab äriobjekte, teine service’eid ja migration’eid, kolmas domeenimudeleid ja viimane projekt omakorda muuhulgas vaateid ja vaatemudeleid. See tagab lahenduse eri osade vahel hästi väljapaistva eraldatuse. Projekti realisatsioon vastab MVVM mustri eeskirjadele. Eraldi folderites on tavalised viewd ja uutes aknates avanevad viewd. Kood on selgelt loetav ja reeglipärane ning muutujate ja funktsioonide nimetused on nimetatud läbivalt eestikeelselt. Paljudes kohtades on olemas sisestatud väärtuse kontroll. Näiteks tellimuse esitamisel kontrollitakse, et kas on tegemist ikka numbrilise kogusega. Samas oleks võinud olla kood rohkem kommenteeritud. Koodi on sisse ununenud ka mõningad väljakommenteeritud koodiread ning xaml.cs failides esineb kohati mittemidagitegevaid funktsioone. Näiteks MyyjaTellimused.xaml.cs on sisse ununenud tühi mitte midagi tegev meetod GridKoikTellimused_SelectionChanged, lisaks TaluToode.xaml.cs meetod LboxTaluTooted_SelectionChanged. Samuti esines programmi töös viga juhul, kui tellimuse kinnitamisel mõned lahtrid tühjaks jäid. Müüja vaates ei toimi toodete vaates toodete hindade muutmine. Samuti ei kontrollita, kas sisestatud on ikka numbrilised väärtused. Samas aga toimib hindade muutmine talude vaates. Textboxides lisatavaid väärtusi mõnel juhul ei kontrollita. Näiteks administraatori vaates talude lisamisel telefoninumbri lisamisel. Kui administraatori vaates muuta talude kohta käivat infot ning muudatusi salvestada, lähevad valeks talu kohta käivate pildifailide URL-id. Pilte enam muudes vaadetes selle tagajärjel näha ei ole.


Soovitused

Toodete tellimiseks ja hindade muutmiseks on vaja avada uued aknad. Neid samu aknaid saab aga avada mitmeid kordi üksteise peale. Peaks saama avada vaid ühe samasuguse akna. Uudised võiksid olla avatavad ja loetavad. Ehk oleks kasutajasõbralikum, kui ostukorvi sisukokkuvõtet (ostusumma, objektide arv) kuvataks lehe päises? Kas tellimuse esitamisel vastava linnukese kasti olemasolu on ilmtingimata vajalik? Ehk piisaks vaid sellest, kui vastavasse lahtrisse on juba sisestatud kogus.


Kokkuvõte

Kokkuvõtvalt võib öelda, et tegemist on väga asjaliku projektiga ning ka äriidee poolest on lahendus leidlik. Projekti realisatsioon on üles ehitatud väga läbimõeldult ning kasutades code first lähenemist. Projekt vastab MVVM eeskirjadele. Projekt on loodud lähtudes juba varasemalt valmis disainitud andmebaasi skeemist, mis kindlasti aitas kaasa lõpptoote toimivusele ning olemuse läbimõeldusele.


Retsenseeris meeskond DevHelp 01.02.2017