Giter VIP home page Giter VIP logo

karaokepal's People

Contributors

apndx avatar

karaokepal's Issues

Koodikatselmointi

Ladattu 27.8.2018 klo 00:15

Katselmointi piti sisällään

  1. rekisteröitymisen kokeileminen,
  2. perus- ja pääkäyttäjänä toimintojen kokeilu,
  3. käyttötapausten läpikäyminen,
  4. AChecker ja
  5. koodin läpikäynti.

Katso havainnot alla.

  1. Rekisteröityminen toimii hyvin.
  2. Sovellus on erittäin toimiva. Kaikki painikkeet läpi käymällä löysin muutaman bugin:
  • sivulla /songs painike Choose kaataa ohjelman, jos laulu on jo valittu
  • Käyttäjän poistaminen ei onnistu
  • jos laulu ei ole yhdelläkään listalla, se ei näy statistiikoissa sivulla /songs/stats (kts. kohta 5)
  1. Käyttötapausten toteutus on hyvällä mallilla. Sovelluksessa näyttäisi olevan toiminnallisuuksia, joita ei ole luoteltu käyttötapauksissa, joten harkitse käyttötapausten päivittämistä. /songs sivulla oli alkuun epäselvää mitä tapahtuu, jos valitsen choose. Harkitse nimen vaihtamista, esim. add to karaokelist
  2. Html-sivut on rakennettu hyvin. Achecker löysi kaiken kaikkiaan kolme saavutettavuus ongelmaa tiedostoista
  • admintools.html ja
  • layout.html (vinkki: korjaa virhe määrittelemällä kieli. Toisin sanoen lisää lang="en")
  1. Koodi on kirjoitettu hyvin. Erityisen hyvää on se, että kukin metodi vastaa yhdestä toiminnalisuudesta. Korjattavaa löytyy /songs/models -tiedoston metodista how_many_have_this() (kts. Kohta 2). Autorisointia on aloitettu, mutta se ei ole toiminnassa: peruskäyttäjä pääsee tekemään pääkäyttäjän toimintoja.

Kaiken kaikkiaan hyvää jälkeä!

Koodikatselmointi

Projekti ladattu 13.8. klo 10

Herokussa toimiva versio sovelluksesta näyttää hyvältä ja toteuttaa kaikki viikon 3 käyttötapaustavoitteet; kappaleeseen liittyy täysi CRUD ja uusia käyttäjiä voi rekisteröidä, sekä rekisteröitynyt käyttäjä voi kirjautua sisään.

Selkeitä bugeja tuotantoversiossa ei ilmennyt. Esiin nousi kuitenkin yksi mahdollinen käytettävyysparannus lomakkeiden validoinnin suhteen: Mikäli kappaleen tietoja päivittäessä toisen kentistä 'name' tai 'description' jättää tyhjäksi ja tallentaa päivitetyt tiedot, tietokantaan tallentuu tyhjä merkkijono kentän osoittamaan muuttujaan, eli esim. kappaleen nimi on mahdollista pyyhkiä tietokannasta vahingossa. Käytettävyys paranisi käyttäjän selkeällä ohjeistuksella tai lomakkeen validoinnilla, jolloin kentän ollessa tyhjä tietokantataulun attribuutti pysyisi ennallaan.

Lähdekoodissa kävin läpi sovelluksen perusrakenteen, routetuksen ja toiminnallisuudet, sekä html-tiedostot. Yleisesti ottaen projektin rakenne näytti hyvältä ja selkeältä: tiedostojen ja hakemistojen nimentä oli selkeää ja kuvasi hyvin tarkoitusta. Myös sovelluksen routet olivat selkeästi nimettyjä ja tämä näkyi positiivisesti myös tuotantoversion käyttökokemuksessa. Koodi noudatti hyvin kurssin clean code -periaatteita ja nimentä oli kohdallaan myös html-tiedostoissa sekä funktioissa.
Huomautettavaa jäi ainoastaan seuraavista seikoista:

  • Lomakkeet oli toteutettu ohjeistuksen mukaan erillisillä luokilla, mutta kaikkiin lomakkeisiin ei liitetty varsinaisia validointeja (esim. nyt rekisteröityessä on teoriassa mahdollista lähettää tietokantaan yli 144 merkkiä pitkä merkkijono, jota tietokanta ei hyväksy talletettavaksi ja seuraa käsittelemätön virhetilanne)
  • Tiedostossa songs/views.py oli osassa funktioita käytetty välioperaatioissa hieman huonon periaatteen mukaista yhden satunnaisen kirjaimen nimentää tyyliin
t = song.query.get(song_id)
t.description = ... 

Tässä tilanteessa toki on selvää mitä koodissa tapahtuu, mutta yleisemmin ajatellen selkeämpi nimentä voisi tulla kyseeseen.

Kaikenkaikkiaan projekti näyttää oikein hyvältä ja etenevän suunnitelmien mukaan.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.