isopoju / tyoaikaseuranta

Tietokantasovellus harjoitustyö, alkukesä 2020
0 stars 0 forks source link

Koodikatselmointi #2

Open elmanevala opened 4 years ago

elmanevala commented 4 years ago

Koodikatselmointi

Sovellus ladattu 16.6.2020 noin klo 12.30.

Toimiva sovellus, jolla selkeä ja helppolukuinen koodi! Sovellusta oli helppo käyttää ja dokumentaatio ajantasalla.

Sovelluksen käyttäminen

Kaikki dokumentaation käyttäjätarinat testattu ja ne toimivat oikein mallikkaasti, en siis löytänyt sovelluksesta yhtään bugia. Käyttäjien syöttämät tiedot validoidaan hyvin ja käyttäjä saa vääristä syötteistä selkeät virheviestit.

Kuten jo mainitsin sovellus on selkeä ja käyttäjä ymmärtää miten sovellusta tulee käyttää myös ilman käyttöohjeita. Muutamat lisäykset kuitenkin parantaisivat käyttökokemusta. Nyt projektin omistaja joutuu klikkaamaan projektin auki nähdäkseen, onko hän projektin omistaja. Olisi kätevää, jos tämä näkyisi jo projektien listauksessa. Olisi mukavaa nähdä omat tietonsa vielä rekisteröinnin jälkeen ja ehkä jopa muokata niitä. Tästä olikin jo maininta sovelluksessa, mutta olisi hienoa, jos omat tuntikirjaukset voisi nähdä jossain.

Sovelluksen saavutettavuus on hyvä. AChecker huomautti vain näytönlukuohjelmalle tarvittavan lang-attribuutin puutteesta. Attribuutti tulee layout-tiedoston html-tagiin:

<html lang="fi">

Autorisointi ja tietoturvallisuus

Sovelluksessa on selkeästi jonkinasteisia eri käyttäjäryhmiä ja siinä myös käytetään metodia @login_required(role="ADMIN"). Kaikki käyttäjät kuitenkin saavat auth/models.py-tiedoston metodissa roles roolin admin, joten adminin rooli tuntuu jotenkin turhalta. En myöskään sovellusta käyttäessä tai dokumentaatiota lukiessa havainnut selkeää admin-roolia, sillä kaikki käyttäjät voivat "muuttaa itsensä" admineiksi luodessaan projektin. Olisiko mahdollista, että olisi esimerkiksi yksi admin, joka voi listata käyttäjät ja poistaa niitä? Admin-roolia varten on kuitenkin sovelluksessa jo selkeä runko.

Käyttäjätarinoissa sanotaan, että vain projektin omistaja voi nähdä projektin tuntiraportin. Nyt sen voi kuitenkin nähdä kaikki käyttäjät, jotka kirjoittavat osoitteeksi /project/hourly_report/projektin_id. Tämän ongelman voi helposti korjata metodin alkuun laitettavalla if-lauseella. Sovelluksessa on samankaltainen tarkistus jo projects/views.py-tiedoston metodin project_view alussa.

Koodin laatu

Yleisesti ottaen koodi oli hyvin laadukasta. Minun oli helppo ymmärtää sovelluksen eri tiedostojen ja metodien suhteet sillä ne oli nimetty selkeästi. Ylipäätään koko sovelluksen rakenne oli hyvä ja eri kokonaisuudet oli jaettu omiin paketteihinsa.

Koodissa ei ollu toisteisuutta tai liian pitkiä metodeja ja kaikki metodit hoitivat selkeästi yhden tehtävän. Myös init.py-tiedoston kommentit olivat selkeitä.

Kaiken kaikkiaan hyvä ja toimiva sovellus, jonka koodia oli mukava lukea. Olit myös toteuttanut salasanojen kryptaamisen kätevästi ja ajattelinki ottaa siitä hieman mallia omaan sovellukseeni!

isopoju commented 4 years ago

Kiitos hyödyllisestä ja hyvin tehdystä katselmoinnista!