toto-betting's Issues
Vertaisarviointi 2
Projektin lataus
- Latasin ohjelman ohjeiden mukaisesti (latausohjeisiin voisi lisätä vielä komennon:
source venv/bin/activate
- ennen riippuvuuksien lataamista. Tämä kuitenkin siis onnistui hyvin.
Käyttäjätestaus
- Kun suoritin ohjelman, tuli selaimeen saman tien sqlalchemysta operation error "no such column: true". Tarkemmin virhe tulee riviltä:
SELECT COUNT(bet.betid)
FROM bet INNER JOIN race ON race.raceid = bet.raceid
WHERE race.isopen IS true
- Tämä korjautui osaltani niin, että muutin modelsiin SQL-kyselyyn "...WHERE race.isopen = 1" ja viewsiin place_bet -metodiin:
db.create_all()
seuraavan sijaan:
db.session().add(bet)
-
Omalla koneellani ongelmia tuli siis niissä kohdissa, joissa SQL-kyselyssä oli boolean-attribuutteja käsitelty muuten kuin 0 tai 1. Bets-luokan models.py -tiedostossa oli kaksi moista kohtaa.
-
Yllämainittujen korjausten jälkeen sain ohjelman käyntiin ja loin itselleni tunnukset, jolle tein admin-oikeudet ohjeiden mukaisesti. Tämä onnistui hyvin.
-
Admin-oikeuksillani loin uusia raceja. Tämä onnistui hyvin. Huomasin, että "Add races" -nappi näkyi ainoastaan pääkäyttäjälle, mikä oli kätevää.
-
Uuden kisan lisättyä tuli alle lista kisoista. Listalta pystyy muuttamaan kisan statusta ja poistamaan kisan. Yksi CRUD-ominaisuus siis on olemassa ja toimii hyvin.
-
Sitten lisäsin vetoja kahdelle luomalleni racelle, mutta ne eivät näkyneet "Current bets" -taulukossa vielä.
-
Sitten kirjauduin pääkäyttäjältä ulos, loin uuden käyttäjätunnuksen ja kirjauduin sisään. Tällöin avautui "Available races" -lista, josta pääsi kätevästi vedonlyöntiin. Uusia kisoja ei pystynyt käyttäjällä luomaan (hyvä), eikä ylävalikossa edes ollut tähän ominaisuuteen painiketta (hyvä).
-
Etusivulla näkyy vedonlyönnin jälkeenkin vielä "Bets in total: 0, open bets in total: 0" jne. Tähän ei vielä ole linkitetty yhteenvetokyselyä?
Koodi
-
Luokat vastaavat tietokantakaaviota
-
Koodi on selkeää lukea ja metodien nimet loogisia
-
Muuttujien nimet ovat kuvaavia
-
horses/form.py -tiedostossa on rivi 8 jäänyt hieman kesken
-
Herokussa sovellus bugii kun yrittää lyödä vetoa - Internal Server Error
Muuta
-
Dokumentointi on kivasti tehty - lyhyt, mutta ytimekäs.
-
Käyttöliittymä tyylit ovat yhtenäiset ja käyttöliittymä on hyvin intuitiivinen käyttää.
Vertaisarviointi
Vertaisarviointi
Lataamisen ja arvioinnin aikaleima: 31.03.2020 - 15:30
Sovelluksen Toiminta
Sovellus oli arviointivaiheessa hyvin barebones-muodossa, tuettuja toimintoja olivat käyttäjän luominen ja luodulle käyttäjälle kirjautuminen. Molemmat toiminnot toimivat kuitenkin mallikkaasti. Käyttäjän luominen on yksinkertaista, kaikki lomakkeen kentät on validoitu ja kahden salasanakentän sisältöjen samuus tarkistetaan ennen käyttäjän luomista. Käyttäjän luomisen jälkeen sovellus ohjautuu takaisin etusivulle, joten myös saavutettavuuden puolesta toiminnallisuus on kunnossa.
Myös kirjautuminen toimii odotettavasti. Lomake on validoitu, ja kirjautumisen onnistuttua sovellus ohjautuu jälleen etusivulle. Kirjautuminen myös kestää sivun uudelleenlataamiset.
Lyhyesti: Toiminnallisuus on rajoitettua, osasyynä tosin vertaisarvion aikaisuus. Toteutettu toiminnallisuus toimii kuitenkin erinomaisesti.
Rakenne ja Ohjelmakoodi
Projektin rakenne on kaikkiaan selkeä. Tällä hetkellä ainoa muualle eriytetty luokka on auth, mutta näiltä osin eri osille on omat kansionsa, ja tiedostot on nimetty kuten pitääkin. Myös .gitignore on kunnossa, ja projektia kloonatessa "ylimääräisenä" mukaan tulee vain juurihakemiston .idea, joka sekin on omalla tavallaan hyödyllinen jos kloonaaja sattuu Ideaa käyttämään.
Samoin ohjelmakoodi on selkeää ja helppolukuista. Perustoiminnallisuudet on toteutettu kuten kurssimateriaalissa, ja ylimääräiset omaksi toteutukseksi jätetyt osat kuten salasanakenttien syötteiden samuuden ja olemassa olevien käyttäjätunnusten tarkistus sekä salasanojen salaaminen bcrypt:n avulla ovat onnistuneet mallikkaasti.
Ainoa ongelma projektin rakenteessa kloonaushetkellä oli dokumentaation niukkuus. Tietokantakaavio on olemassa ja se on selkeä, mutta esimerkiksi määrittelydokumentti ja käyttötapaukset puuttuvat kokonaan. Tästä siis huomautus, muuten tämän osuuden osalta asiat hyvässä kunnossa.
Lyhyesti: Projekti on selkeä sekä rakenteeltaan että ohjelmakoodiltaan. Dokumentaatiossa kuitenkin puutteita.
Yhteenveto
Projekti on tosiaan hyvin alkuvaiheessa. Kuitenkin kaikki tähän mennessä toteutettu toimii kuten pitääkin ja projekti on rakenteeltaan ja koodiltaan selkeä. Suurin osa dokumentaatiosta puuttuu vielä, mutta tämä onkin oikeastaan projektin ainoa varsinainen ongelma. Kaikkiaan hyvää työtä.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.