Talk:Skeddl

From ICO wiki
Jump to navigationJump to search

Retsensioon veebiteenusele

Meeskond Skeddl on loonud oma eelmise semestri projekti edasiarenduse, mis võimaldab hallata kooliülesannete to-do liste. Teenust saab pruukida ainult registreeritud kasutaja, anonüümse kasutaja funktsionaalsust ei ole (v.a. sisselogimine/kasutajaks registreerimine). Teenuse keskel on veebipõhine andmebaas, mis võimaldab kasutajal jagada oma tegevust teiste kasutajatega. Veebiteenusele retsensiooni koostamise aluseks on võetud õppeaine “Võrgurakendused II: hajussüsteemide ehitamine” kodutöö Wiki leheküljel retsensiooni koostamise juhend ja veebiteenusele esitatud tingimused.

Aine kodutöö nõuetes on toodud, et veebiteenus peab võimaldama teenuse pakkumist. Antud veebiteenus pakub kooliülesannete haldamise funktsionaalsust, s.h. ülesannete loomist, vaatamist, redigeerimist ja kustutamist, kusjuures kustutamisel päriselt eemaldatakse kirje andmebaasist. Samuti veebiteenuses on teostatud kasutajate tuvastamine ja haldamine. Loodud veebiteenus toetab mitme kasutaja võimalust. Uus kasutaja saab luua endale konto. Administraator saab kasutajate kontosid üle vaadata ja hallata. On võimaldatud ka ligipääsu piiramine kindlatele kasutajatele administraatori poolt, samas ei ole teostatud pöördumiste arvu piiramise toetust. Tehnilise poole pealt rakendus on loodud kasutades ASP.NET MVC Web API tehnoloogiat.ja andmebaasi minimaalse mahu nõue (9 olemit) on täidetud. Olemite atribuudid mudelis on põhjalikult annoteeritud.

Retsenseerimise juhendi järgi tuleb hinnata ka koodi kvaliteedi, s.h. loetavuse ja kommenteerituse. Kuigi nii veebiteenus, kui ka klientrakendus asuvad ühes solutionis, need on selgelt projektideks jagatud ja semantiliste nimedega tähistatud, seega solutioni osade vahel liikumises ei teki probleemi. Projekti aluseks on kasutatud aine baasprojekt. Kood on projekti sees mõistlikult struktureeritud. Puuduseks on see, et projektidesse on jäänud mõned baasprojekti failid/klassid, mida ei kasutata. Koodi struktureerimisel on kasutatud aine raames õpitud arendusmustreid.

Kood on mugavalt loetav, kuid vaid mõõdukalt kommenteeritud. Meeskonna Wiki lehel on olemas põhjalik funktsionaalsuse analüüs ja andmebaasi skeem, kuid me ei leidnud eraldi dokumentatsiooni API’le.

Kokkuvõteks, oma kodutöös meeskond Skeddl näitab, et on omandanud aines käsitletud materjali ja oskab seda praktiliselt rakendada. Loodud veebiteenus on igapäevases elus kasulik üsna laiale sihtrühmale: õpilased, tudengid ja ka muud ühise eesmärgiga meeskonnad.

Retsenseeris Meeskond "Symphony No. 7 in C-sharp minor"


Retsensioon klientrakendusele

Meeskond Skeddl on loonud klientrakenduse enda veebiteenusele, mis võimaldab registreeritud kasutajal hallata tööülesannete loendi. Antud klientrakendusele retsenseerimises on aluseks kasutatud õppeaine “Võrgurakendused II: hajussüsteemide ehitamine” kodutöö Wiki leheküljel klientrakendusele esitatud tingimused ja retsensiooni koostamise juhend.

Erinevalt veebiteenuse nõuetest, kodutöö juhend ei sätesta konkreetseid nõudeid klientrakendusele - ainuke piirang on vormile. Antud juhul on klientrakendus on teostatud veebirakendusena, seega kõik formaalsed tingimused on täidetud.

Klientrakendus on jagatud kolmeks põhimõtteliseks piirkonnaks: pealeht, administraator-kasutaja vaade ja tavakasutaja vaade. Nagu ka meeskonna Wikis mainitud, anonüümse kasutajana teenust pakkuda ei ole võimalik, seeda pealeht ei paku midagi muud, kui sisselogimise ja uue kasutaja registreerimise võimalust. Uue kasutaja registreerimisel, tekib käsitlemata InvalidOperationException, kuigi tegelikkuses regitsratsioon õnnestub.

Tavakasutaja saab liituda õppeainega etteantud nimekirjast, vaadata detaile ja eemaldada ennast nimekirjast. Vastavalt valitud õppeainetele kuvatakse kasutajale selle ainega seotud taske. Kasutaja saab luua/muuta/kustutada gruppe, kuid grupi vaatamise katsel saadakse veateadet. Oma konto haldamise poolest tavakasutaja saab muuta parooli, Samas uus kasutaja ei saa lisada oma andmetesse nime ja perenime, seega rühmade koosseisus kuvatakse neid tühjade ridadena.

Administraator-kasutaja piirkond sisaldab sama funktsionaalsist, mis tavakasutaja, ja lisaks mõned erifunktsioonid. Admin saab hallata õppeainete nimekirja, õppejõu nimekirja ja saab vaadata süsteemi logi kuupäevade lõikes. Admin saab hallata süsteemi kasutajaid (sh. lisada uutele kasutajatele nime ja piirata konkreetsete kasutajate ligipääsi rakendusele). Rakendus võimaldab ka kasutajate kustutamist, kuid, kuna tegemist on kirje kustutamisega andmebaasist (mitte loogilise kustutamisega), ei ole töödeldud seotud kirjade käitumine, mis tekitab vea välisvõtmetega. Mõned rakenduse menüü punktid tekitavad NotImplementedException’i.

Osa funktsioone on klientrakendusest ligipääsetavad, kuid andmete muutmine/kustutamine ei jõua andmebaasi, mis on eksitav. Näiteks ei õnnestunud meile õppeaine nime korrigeerida, kuid samas õppejõu muutmine samast vormist töötas korrektselt.

On positiivne, et rakendus toetab mitmekeelsust ja lokalisatsioon on põhifunktsionaalsuse raames kvaliteetne.

Võrreldes meeskonna klientrakenduse analüüsiga wikis, retsensiooni kirjutamise hetkeks ei olnud valmis kõik loetletud funktsioonid. Näiteks puudub taskide kalendervaatega seotud funktsionaalsus, etteteatamine ja otsing kõikide väljade järgi. Kalendrivaate puudumist saaks osaliselt kompenseerida sorteerimise funktsiooniga tabeli veergudes, kuid see võimalus kahjuks puudub.

Turvalisuse pool ei ole lõpuni läbi mõeldud. Näiteks rakenduse kasutamise käigus õnnestus meil muuta teise kasutaja kommentaari teksti. Märkuseks veel, et esitatud .zip arhiivis olid puudu osa faile bower_components kataloogist, mis tekitasid vaateid ilma css’ita.

Retsenseerimise juhendi järgi tuleb hinnata ka koodi, s.h. loetavuse ja kommenteerituse. Klientrakenduse lähtekood on loogiliselt kihtideks jaotatud. Samas natuke segadust tekitavad failid projektides, mis ei kuulu antud projekti skoobi, ja on tõenäoliselt jäänud alles alusprojektist (ContactsController, PersonsController jt). Kasutatud on soovituslikke arendusmustreid - veebiteenusega suhtlemiseks on olemas repositooriumid ja Unit of Work’id. Kood on üldiselt loetav ja vähesel määral kommenteeritud. Kontrollerites on kasutatud ka annotatsioone.

Kokkuvõteks, esitatud klientrakendus ei ole veel lõpetatud “toode”. See nõuab veel lihvimist nii UI kui ka loogika poolest.

Retsenseeris Meeskond "Symphony No. 7 in C-sharp minor"