wiki:harjoitustyöt/kirjanpitaja-web
Last modified 3 years ago Last modified on 2014-11-25 18:02:26

Sami Kallio - sami.m.j.kallio at jyu

Harjoitustyöni aihe liittyy suoraan TIEA212-kurssilla tekemääni Android sovellus-harjoitustyöhön Kirjanpitajaan ja keskustelimme siitä kurssin ohjaajan kanssa jo alustavasti.

Tarkoitus olisi tehdä Kirjanpitajaan, henkilökohtaisten menojen seurantaan tehtyyn sovellukseen, maksullinen web-lisäpalvelu, jossa Kirjanpitajaan syötettyjä tietoja voisi tarkastella myös selaimella, ja palvelussa olisi myös lisätilastoja ja raportteja tarjolla. Palvelu tarjoaisi samalla myös tietojen varmuuskopioinnin, eikä käyttäjän tarvitsisi enää itse huolehtia siitä. Kirjanpitaja itsessään toimisi kuitenkin samalla tavoin kuin ennenkin, lisään siihen vain toiminnallisuuden, joilla tietoja ladataan palvelimeen REST-rajapintaa hyödyntäen.

Toteutan web-sovelluksen, jonka työnimenä on kirjanpitaja-web, Java EE 7-ympäristössä, Red Hatin avoimen lähdekoodin Wildfly -sovelluspalvelimessa. Wildfly pyörii Red Hatin OpenShift Online -pilvipalvelussa, näin kehitystyön aikana niin pienin voimavaroin kuin se maksuttomana tarjoaa. Kehitystyö tapahtuu lokaalissa virtuaalikoneessa, ja lisään osoitteen pilvipalvelimeen myöhemmin pilvipalvelun osoite on http://kirjanpitaja-phinaliumz.rhcloud.com/kirjanpitaja/. Osoite on käytössä siihen asti, kunnes harjoitustyö on hyväksytty. Tietokantapalvelimeksi tulee PostgreSQL, joka myös pyörii pilvipalvelimessa.

Alunperin syksyn opiskeluaikataulu näytti pettävän rauhalliselta, mutta taisin (jälleen) ahnehtia kursseja, joten suunnittelen harjoitustyön aikataulun väljäksi. Olen tehnyt Java EE-sovelluksia ennenkin, joten en epäile onnistumisen mahdollisuuksia. Aion panostaa tällä kertaa enemmän suunnitteluun, olioanalyysi/-suunnittelu -kurssien opetuksen mukaisesti, ja rakentaa sovellukseni niin, että sitä pystyy suhteellisen helposti laajentamaan myöhemmin. Hyödynnän harjoitustyössäni HTML5:sta ja Javascriptia siinä määrin, missä katson tarkoituksenmukaiseksi, graafisia jippoja tai multimediaa ei tämänkaltaisessa työssä tarvita, mutta paikallista (selaimen) tietokantaa offline-työskentelyä varten ja Javascriptin tuomaa käyttöliittymän dynaamisyytta kylläkin. Javascriptin suhteen hyödynnän niin pitkälle kuin mahdollista JQuery -kirjastoa, ja etsin myös taulukoita & diagrammeja varten jonkin vapaan kirjaston.

140 tunnin työmäärän olen suunnitellut jakautuvan seuraavasti:

  • 36 tuntia olioanalyysiin ja -suunnitteluun, painottaen erityisesti skaalautuvaa arkkitehtuuria ja laajennettavuutta.
  • 6 tuntia käyttöliittymän suunnitteluun niin että se skaalautuu myös mobiililaitteiden näytöille käytettävällä tavalla.
  • 80 tuntia ohjelmointiin, ml. Java, Javascript, HTML5 ja CSS3.
  • 16 tuntia testaamiseen.
  • 2 tuntia dokumentointiin, sisältäen tuntikirjanpidon puhtaaksikirjoittamisen ja ajankäytöstä raportoinnin.

Pyrin työskentelemään päivittäin, mutta käytännön syistä eniten viikonloppuisin. Kehityskoneena toimiva virtuaalikone on viritetty kuntoon "kesäloman" aikana, pilvipalvelimen osoite on varattu ja skeleton-koodi ladattu Bitbucketin git-varastoon.

Työvaiheiden suunnitellut alkamis-ja päättymisajankohdat:

  • Olioanalyysi ja -suunnittelu: 2.9 -15.9.2014
  • Käyttöliittymän suunnittelu: 15.9 - 17.9.2014
  • Ohjelmointi: 18.9 - 16.11.2014
  • Testaaminen: 17.11 - 21.11.2014
  • Dokumentointi 22.11.2014

Jätän suunnitelmaan pelivaraa 8 päivää, ml. viikonloput, muiden kurssien tentteihin valmistautumista varten, joten harjoitustyön palautuspäivämääräksi asetan 30.11.2014. Koska työ on laaja, ja se tähtää hyödylliseen lisäpalveluun jo olemassaoleville käyttäjille asetan tähtäimen arvosanaan 5.