Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Harjoitustyö, vaihe 3

Aikaisempien osien perusteella sinulla pitäisi olla sovelluksen runko valmiina. Tässä vaiheessa toteutetaan harjoitustyön toiminnallisuudet, eli kytketään tietomalli käyttöliittymään.

Tässä vaiheessa kunkin tehtävän kohdalle palautetaan kyseiseen tehtävään liittyvä URL-osoite, joka sisältää niin sanotun commit hashin. Tällä tavalla ohjaaja pääsee tarvittaessa tarkastelemaan juuri tiettyyn vaiheeseen liittyvää koodia.

Commit hash

Commit hash on Gitin muodostama yksilöllinen tunniste yksittäiselle commitille. Se näyttää yleensä pitkältä merkkijonolta, kuten a1b2c3d4..., ja sen avulla voidaan viitata täsmällisesti juuri tiettyyn projektin tilaan.

Commitin tarkoitus on tallentaa yksi versio projektista versionhallintaan. Commit hash taas kertoo, mikä näistä tallennetuista versioista on kyseessä. Kun tehtävän palautuksessa annetaan commit hash, ohjaaja voi avata juuri sen hetken koodin, jossa tehtävä on ollut valmiina.

Commit hash ei edusta vain yksittäistä tiedostoa tai muutosta, vaan commit-oliota, joka sisältää metatietoa yhdestä commitista: Näitä ovat esimerkiksi viesti ("message"), tekijä ("author"), viittaus projektin hakemistorakenteeseen ("tree") sekä viittaus edelliseen commitiin ("parent").

GitLab- ja GitHub-palveluissa on mahdollisuus tarkastella committeja siten, että hash-arvo on suoraan URL-osoitteessa.

Commit hash -osoitteen esimerkki GitLabissa

  1. Kirjaudu GitLabiin ja avaa projektisi.
  2. Klikkaa vasemmalta Code Commits.
  3. Näet listan commiteista. Valitse se commit, joka liittyy tehtävän palautukseen. Klikkaa sitä.
  4. Osoiterivillä näkyy URL-osoite, joka sisältää commit hash -arvon. Kopioi tämä URL-osoite ja liitä se tehtävän palautukseen.

Commit hash -osoitteen esimerkki GitHubissa

  1. Kirjaudu GitHubiin ja avaa projektisi.
  2. Klikkaa vihreän Code-kuvakkeen alta NNN Commits, jossa NNN on committien määrä.
  3. Näet listan commiteista. Valitse se commit, joka liittyy tehtävän palautukseen. Klikkaa sitä.
  4. Osoiterivillä näkyy URL-osoite, joka sisältää commit hash -arvon. Kopioi tämä URL-osoite ja liitä se tehtävän palautukseen.

Tehtävät

Kuhunkin tehtävään palautetaan URL-osoite, joka vie commitiin etävarastossasi. Jos olet tehnyt omaa työtäsi hieman eri rytmissä kuin tässä vaiheistuksessa on esitetty, palauta URL-osoite siihen commitiin joka parhaiten edustaa kyseisen tehtävän vaatimuksia.

Tehtävä 11.1: Tiedon lisääminen. 1 p.

Toteuta tiedon lisääminen. Lisäämisen jälkeen ohjelman tulee näyttää lisätty tieto sovelluksen käyttöliittymässä. Validointia ei tarvitse vielä tehdä. Tässä kohden riittää, että dataa syntyy sovellukseen.

Tee tehtävä TIMissä
Tehtävä 11.2: Poistaminen. 1 p.

Toteuta tiedon poistaminen. Poistamisessa tulee huomioida ja käsitellä myös muut mahdolliset oliot, jotka viittaavat poistettuun olioon. Esimerkiksi, jos poistat Kategoria-olion Kulujenseuranta-sovelluksessa, pitää poistaa (asettaa null-arvioon tai Optional.empty()-arvoon) kategoria kaikilta niiltä Tapahtuma-olioilta, jotka siihen viittaavat. Poistamisessa on myös hyvä olla varmistusdialogi esimerkiksi Alert-luokan avulla, jotta vahingossa tapahtuneet klikkaukset eivät tuhoa dataa.

Tee tehtävä TIMissä
Tehtävä 11.3: Tallentaminen ja lukeminen tiedostosta. 1 p.

Toteuta tiedon tallentaminen ja lukeminen tiedostosta.

Tee tehtävä TIMissä
Tehtävä 11.4: Tiedon muokkaaminen. 1 p.

Toteuta tiedon muokkaaminen. Muokkauksen tulee tallentua välittömästi sekä tietomalliin että tiedostoon. Kuten poistamisessa, myös muokkaamisessa tulee huomioida muokattuun olioon viittaavat oliot.

Tee tehtävä TIMissä
Tehtävä 11.5: Validointi. 1 p.

Toteuta tiedon validointi. Sovelluksessa ei saa olla mahdollista syöttää selkeästi virheellistä tietoa.

Tee tehtävä TIMissä
Tehtävä 11.6: Yksikkötestit. 1 p.

Toteuta tietomallille yksikkötestejä JUnitilla.

Tee tehtävä TIMissä
Tehtävä 11.7: README-tiedosto. 1 p.

Täydennä README-tiedosto. Lisää siihen kuvaus toteuttamistasi toiminnallisuuksista sekä ohjeet sovelluksen käyttämiseen. Ota kuvakaappaukset eri näkymistä ja selitä, miten eri toiminnot toimivat.

Tee tehtävä TIMissä
Tehtävä 11.8: Bonus: Näytä vaihe ohjaajalle. 1 p.

Näytä vaihe ohjaajalle.

Tee tehtävä TIMissä