Coder Social home page Coder Social logo

urheilutapahtumajarjestelma's Introduction

Urheilutapahtumajärjestelmä

Tehtävänä on tehdä urheilutapahtumajärjestelmä tapahtumien, tapahtumiin osallistujien ja osallistujien tulosten hallintaan. Erilaisia tapahtumia ovat hiihto, pyöräily, soutu ja hölkkä. Osallistujat ilmoittautuvat tapahtumien sarjoihin, esimerkiksi lyhyeen, normaalin tai pitkän matkan pyöräilyyn. Osallistuja voi myös halutessaan ilmoittautua useampaan sarjaan samassa tapahtumassa.

Osallistujista tallennetaan etunimi, sukunimi, sähköposti, puhelinnumero, postinumero, postitoimipaikka, suoritukset ja osallistumiset. Jokaiselle osallistujalle arvotaan jokaisen tapahtuman kohdalla uniikki kilpailunumero, mutta soudussa on muista tapahtumista poiketen joukkueet, joten kaikilla samassa veneessä olevilla osallistujilla on yhteinen kilpailunumero.

Tapahtumasarjoista tulisi tallentaa sarjan nimi, tapahtuman nimi, päivämäärä, lähtöaika ja matka. Myös väliaikoja ja väliaikapaikkojen etäisyyksiä lähtöpaikasta tulisi voida tallentaa. Maali olisi väliaikapaikan erityistapaus.

Osallistujista tulisi myös tarjota tulostietoja, esimerkiksi osallistujan lähtöaika, väliajat, maaliintuloaika, tulosaika, sijoitus ja luonnollisesti mahdollisuudet näiden tietojen lisäämiseen tai muokkaamiseen tapahtuman aikana. Osallistujista tarjotaan myös historiatietoja, kuten hiihto, pyöräily, soutu ja hölkkäkerrat, osallistumiskerrat, "kierrosten" määrä, joita saa yhden aina kun on osallistunut kaikkiin neljään tapahtumaan samana vuonna.

Lähtökohtaisesti koko sovelluksen käyttäminen tulisi olla mahdollista vain henkilökunnan tunnuksilla. Jatkokehityksessä voitaisiin osallistujille tarjota kirjautumismahdollisuus, joilla katsoa ja muokata omia tietojaan ja nähdä omat tulokset ja suoritushistorian.

Toiminnot:

  • Osallistujien tietojen lisääminen, muokkaaminen, poistaminen ja tarkistaminen
  • Osallistujien osallistumisen lisääminen, muokkaaminen, poistaminen ja tarkistaminen
  • Osallistujien tulostietojen lisääminen, muokkaaminen ja tarkistaminen
  • Pääsy sovellukseen vain tapahtuman henkilökunnan tunnuksilla kirjautumalla

Linkit

Projektin branchit

urheilutapahtumajarjestelma's People

Contributors

lamiika avatar lentsku avatar

urheilutapahtumajarjestelma's Issues

Koodikatselmointi

Projekti ladattu 05.05 07:00

Toiminnalisuus

Osallistujien tietojen lisääminen, muokkaaminen, poistaminen ja tarkistaminen toimi hyvin.
Osallistujien osallistumisen lisääminen toimi, mutta muokkaamiseen tai poistamiseen ei löytynyt ominaisuutta.
Tulostiedoille ei löytynyt ominaisuutta.
Käyttäjän autorisointi toimi hyvin.
Sivulle rekisteröityminen ja kirjautuminen toimi hyvin.
Henkilöiden etsiminen nimen perusteella toimi erinomaisesti.

Bugeja

people/views.py

Globaalien muuttujien käyttäminen on yleensä erittäin huono käytäntö. Käyttäjä lisätään aina siihen tapahtumaan, mikä seriesIdGlobal on. Tapahtumaan lisäämisessä jos olet valinnut selectSeriesForm arvoksi A, mikä muuttaa seriesIdGlobal arvoksi 1 ja ennen kuin ehdit painaa Lisää Tapahtumaan nappia, joku toinen käyttäjä vaihtaa selectSeriesForm arvoksi B, mikä muuttaa seriesIdGlobal arvoksi 2 niin henkilö lisätään tapahtumaan B.

series/models.py

Tapahtumien listaus ei toiminut Herokussa, mutta toimii lokaalisti. Tämä johtuneen Sqliten ja Postgresql eroista. Postgresql on case insensitive ellet erikseen laita nimiä lainausmerkkien sisään. Eli komento SELECT Item.Name FROM Item muuttuu muotoon SELECT item.name FROM item. Koodissasi osa nimistä on lainausmerkkien sisällä ja osa ei. Hyvä käytäntö Postgresql käyttäessä on, että kaikki taulujen ja sarakkeiden nimet kirjoitetaan pienellä ja sanat erotellaan alaviivalla niin ei tule outoja bugeja. Lisää infoa aiheesta: https://blog.xojo.com/2016/09/28/about-postgresql-case-sensitivity/

forms.py

Tekstikenttien maksimi pituutta ei validoida. Päivämääriä ei validoida tarpeeksi. Esim syntymäpäiväksi voi valita päivämäärän mikä on tulevaisuudessa ja tilaisuuden lähtöajaksi ajan mikä on menneisyydessä.

templates/people/list.html

Riviltä 4 puuttuu formin lopusta puuttuu > merkki <form method="POST" action="{{ url_for('person_search') }}"

Sivun ulkoasu ja käytettävyys

Päivämääriä ja aikoja annettaessa voisi antaa vihjeen missä muodossa se pitäisi antaa esim (yyyy-mm-dd hh:mm:ss)

Sivun ulkoasu on siisti ja sitä on helppo navigoida.

Käyttäjän lisääminen johonkin tapahtumaan on hieman epäselvä. Tämän helpottamiseksi voisi tehdä omat näkymät käyttäjien listaamiseen ja käyttäjän lisäämisen tapahtumaan.

Koodikatselmointi

Koodikatselmointi, viikko 5

Projekti ladattu 24.4.2018 klo 17:00

Hei!

Katselin työsi läpi, ja minusta se näyttää edenneen hyvin. Aihe vaikuttaa sopivan monipuoliselta. Minulla oli ongelmia saada zip-tiedostona laataamaani projektia pyöritettyä omalla koneella, joten käytin sovellusta nyt ainoastaan Herokussa. Katsoin myös kirjoittamasi koodin ja dokumentaation läpi. Tässä tekemiäni huomioita.

Toiminnallisuudet

  • Henkilöiden selailu, lisäys ja haku toimii Herokussa ilman kirjautumista
  • Kirjautumisen jälkeen toimii myös henkilöiden tietojen muokkaus ja poisto sekä henkilön lisääminen tapahtumaan
  • Tapahtumien listaus ja henkilön poistaminen tapahtumasta ei toiminut, kun kokeilin
  • User storyistä tapahtumia ja suorituksia koskevia toimintoja ei vielä kaikkia ole toteutettu
  • Henkilötietojen näkyvyys (puhelinnumerot, sähköpostit yms.) voisi olla hyvä rajoittaa vain kirjautuneille käyttäjille

Ulkoasu, loogisuus ja käytettävyys

  • Elementtien sijoittelua voisi väljentää, esim. napit henkilöiden listaussivulla
  • Ajattelin ensin, että henkilölistauksen vasemmassa yläkulmassa oleva valintalaatikko tarkoittaa sitä, minkä tapahtuman osallistujat listataan. Sikäli laatikko voi olla vähän harhaanjohtava.
  • Listaussivulla jäi myös vähän epäselväksi mitä "valitse" nappula tapahtumanvalintaboksin jälkeen tekee.
  • Samoin "lisää tapahtumaan" -nappi aiheutti pohdintaa, lisätäänkö henkilö siis yllä olevassa laatikossa näkyvillä olevaan tapahtumaan. Jos henkilölistaus on pidempi, yllä oleva valintalaatikko ei myöskään näy alas, jolloin lisääminen ei ole niin kätevää.
  • Ehkä yksi ratkaisu olisi että henkilöiden lisäys tapahtumiin voisi olla omalla sivullaan?
  • Uuden henkilön lisäyksessä voisi olla ohje tai virheilmoituksessa voitaisiin kertoa, missä muodossa syntymäaika pitää antaa.

Rakenne

  • Tietokantakaavio näyttää järkevältä
  • Se tuli mieleen, että Historia-tauluahan ei välttämättä tarvitse, kun suoritusten yms. määrät voidaan hakea tietokantakyselyillä muista tauluista. Silloin historia-taulua ei tarvitsisi aina päivittää kun henkilön tietoja lisätään/muokataan/poistetaan. Mutta voihan se nopeuttaa tiedonhakua jos tilastointia varten saa tiedot yhdestä taulusta.

Koodi

  • Koodi on mielestäni selkeää ja metodit nimetty järkevästi. En löytänyt koodista virheitä.
  • Sitä jäin miettimään, mikä on domain-kansion tarkoitus, ts. minkä takia siellä olevat erilliset metodit on koottu tällä tavalla erikseen eikä muun koodin joukkoon? Voi olla että siihen on joku hyvä syy! Minulle vain tulisi ensimmäisenä mieleen, että esim. prefillPersonForm-metodi sijaitsisi samassa paikassa muun henkilöihin liittyvän koodin kanssa. Siis jossain People-kansion alla missä PersonForm myös sijaitsee.

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.