% .tex-tiedosto projektin dokumenttien latomiseksi.

% Kirjoitelmaluokka, tässä käytetään projektien projdoc-luokkaa.
\documentclass[twoside]{projdoc}

\usepackage{paralist}
\usepackage{alltt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\usepackage{longtable}
\usepackage{tikz}
\usepackage{float}
\usepackage{array}
\usepackage{multirow}
\usepackage{paralist}
\usetikzlibrary{positioning,shapes,shadows,arrows}

\setlist[enumerate]{leftmargin=2cm}

\DeclareUnicodeCharacter{00A4}{ }

\newcommand{\comment}[1]{}
\newcommand{\NR}{Nuutti \newline Rantanen}


% Projektin nimi
\project{Kodavi}

% Luottamuksellisuus: käytä termiä 'Luottamuksellinen' tai 'Julkinen'
\publicity{Julkinen}

% Versionumero: numerointikäytäntö on projektikohtainen
\version{1.0.0}

% Dokumentin nimi
\title{Projektiraportti}

% Tekijät: huomaa aakkosjärjestys sukunimen mukaan
\author{Lauri Antila}{Outi Hilola}{Antti Kauppi}{Nuutti Rantanen}{Anne Vaarala}
% Puhelinnumerot: tekijöitä vastaava järjestys!
\authorphones{040-7261006}{040-7081261}{040-8406266}{045-1344922}{050-3744307}
% Sähköpostiosoitteet: tekijöitä vastaava järestys!
\authoremails{lauri.s.antila@student.jyu.fi}{outi.m.hilola@student.jyu.fi}{antti.p.kauppi@student.jyu.fi}{l.nuutti.a.rantanen@student.jyu.fi}{anne.m.vaarala@student.jyu.fi}
% Etu- ja sukunimen alkukirjaimet: tekijöitä vastaava järjestys!
\authorinitials{LA}{OH}{AK}{NR}{AV}

% Tiivistelmä dokumentista: tämä ei siis ole tiivistelmä projektista,
% vaan tämän ko. dokumentin tarkoituksesta. 
\docabstract{Kodavi-projekti kehitti vuonna 2020 Jyväskylän yliopiston liikuntatieteelliselle tiedekunnalle WWW-sovelluksen WHO-Koululaistutkimuksen datan havainnoillistamiseen. Projektiraportissa kuvataan sovellusprojektin tuloksia, läpivientiä haluttujen tulosten sekä projektin resurssien, käytänteiden, tehtäväjaon, työmäärien, aikataulun ja riskienhallinnan osalta.} 

% Tiivistelmä projektista
\projectabstract{Kodavi-projekti kehitti vuonna 2020 Jyväskylän yliopiston liikuntatieteelliselle tiedekunnalle WWW-sovelluksen WHO-Koululaistutkimuksen datan havainnoillistamiseen.}

% Avainsanat: dokumentin sisältöön liittyviä olennaisia asiasanoja: aakkosjärjestys, ensimmäinen sana isolla alkukirjaimella ja piste loppuun.
\keywords{Aikataulu, käytänteet, projektiorganisaatio, projektiraportti, prosessi, resurssit, riskienhallinta, taustaa, tavoitteet, tehtävät, tulokset, työmäärät, työnjako, visualisointisovellus, WWW-sovellus.}

% Varsinainen tulosteessa näkyvä ladonta alkaa
\begin{document}
	\sloppy
	
	% Tämä latoo versiohistorialle ympäristön, sen alapuolelle ladotaan
	% versiohistoriataulukko. Esimerkin vuoksi tehty. 
	\versionhistory
	
	\begin{tabular}{|c|r|p{9.0cm}|p{1.7cm}|}
		\hline
		\textbf{Versio} & \textbf{Päivämäärä} & \textbf{Muutokset} & \textbf{Tekijä} \\
		\hline \hline
		0.0.1    &  1.6.2020 & Pohjan luonti. & NR \\
		\hline 
		0.0.2    &  7.6.2020 & Johdanto. & NR \\
		\hline 
		0.0.3    &  8.6.2020 & Termien kartoitus. & NR \\ 		\hline 
		0.0.4    &  10.6.2020 & Luku 3 & NR \\ 		\hline 
		0.0.5    &  10.6.2020 & Luku 4 & NR \\
		\hline
		0.0.6    &  28.7.2020 & Korjauksia lukuun 1. & NR \\
		\hline
		0.0.7    &  31.7.2020 & Korjauksia lukuun 2. & NR \\
		\hline
		0.0.8    &  24.10.2020 & Lukuja 5,6 ja 7 kirjoitettu. & NR \\
		\hline
		0.0.9 	& 16.11.2020 & Riskien ja yhteenvedon kirjoitus. & NR \\
		\hline
		0.0.10  & 23.11.2020 & Korjauksia lukuun 5. & NR \\
		\hline
		0.0.11  & 24.11.2020 & Lisäyksiä lukuun 6. & NR \\
		\hline
		0.0.12  & 15.12.2020 & Aikataululuvun taulukoiden tekeminen. & NR \\ 
		\hline
		0.0.13  & 24.1.2021 & Hakemistorakenteen muokkaus vastaamaan todellisuutta. & NR \\ 		\hline
		0.0.14  & 8.2.2021 & Toteutuneen aikataulun kirjoittaminen. & NR \\ 		\hline
		0.0.15  & 5.7.2021 & Projektiraportin korjauksia ja viimeistelyä. & NR \\ \hline
		0.0.16  & 23.8.2021 & Projektiraportin korjauksia ja viimeistelyä. & NR \\ \hline
		0.0.17  & 13.9.2021 & Projektiraportin korjauksia ja viimeistelyä. & NR \\ \hline
		0.0.18  & 11.10.2021 & Projektiraportin korjauksia ja viimeistelyä. & NR \\ \hline
		0.0.19  & 17.10.2021 & Projektiraportin korjauksia ja viimeistelyä. & NR \\ \hline
		0.0.20  & 8.11.2021 & Projektiraportin korjauksia ja viimeistelyä. & NR \\ \hline
		1.0.0  & 20.12.2021 & Projektiraportin hyväksyminen. & NR \\ \hline
	\end{tabular}
	
	
	% \projectinfo latoo ympäristön projektin tiivistelmälle, joka on 
	% projektikohtainen.
	% Projektin tiivistelmä ja tekijöiden tiedot ladotaan automaattisesti sivun
	% alkuun. Eli lisättävä projektiorganisaation tiedot muiden kuin tekijäiden
	% osalta sekä tarvittavat yhteystiedot. Alla tämä on tehty esimerkin vuoksi.
	\projectinfo
	
	\textbf{Tilaaja:}
	
	\begin{tabular}{p{5cm}p{6cm}p{3cm}}
		~~~$\bullet$~~Nelli Lyyra & \texttt{nelli.lyyra@jyu.fi} \\
		~~~$\bullet$~~Kristiina Ojala & \texttt{kristiina.ojala@jyu.fi} \\
		~~~$\bullet$~~Jorma Tynjälä & \texttt{jorma.a.tynjala@jyu.fi} \\
		~~~$\bullet$~~Jari Villberg & \texttt{jari.j.villberg@jyu.fi} \\
	\end{tabular}
	
	\vspace{1truecm}
	\textbf{Ohjaajat:}
	
	\begin{tabular}{p{5cm}p{6cm}p{3cm}}
		~~~$\bullet$~~Jukka-Pekka Santanen & \texttt{santanen@mit.jyu.fi} \\
		~~~$\bullet$~~Enni Stylman & \texttt{enni.m.stylman@jyu.fi} \\
		~~~$\bullet$~~Arttu Ylä-Sahra & \texttt{arttu.e.yla-sahra@student.jyu.fi} \\
	\end{tabular}
	
	\vspace{1truecm}
	\textbf{Yhteystiedot:}
	
	\begin{tabular}{p{5cm}p{9cm}}
		~~~$\bullet$~~Sähköpostilistat: & \texttt{kodavi@korppi.jyu.fi} ja \newline \texttt{kodavi\_opetus@korppi.jyu.fi} \\
		~~~$\bullet$~~Sähköpostiarkistot: & \texttt{http://korppi.jyu.fi/kotka/servlet
			/list-archive/kodavi/} ja \newline \texttt{http://korppi.jyu.fi/kotka/servlet
			/list-archive/kodavi\_opetus/} \\ 
		~~~$\bullet$~~Työhuone: & Agora C225.4
	\end{tabular}
	
	%----------------------------------------------------------------------------
	% \mainmatter latoo automaattisesti sisällysluettelon ym. alkusivut, ja 
	%% sen jälkeen alkaa dokumentin sisällysluettelossa näkyvät luvut.
	\mainmatter
	
	% \chapter{Pääluvun nimi} aloittaa pääluvun, \section{Alaluvun nimi} alaluvun,
	% ja \subsection{Ala-alaluvun nimi} ala-alaluvun.
	\chapter{Johdanto}
	
	Kodavi-projekti kehitti Sovellusprojekti-kurssilla vuonna 2020 Jyväskylän yliopiston liikuntatieteelliselle tiedekunnalle kyselydatan visualisointisovelluksen. Sovellusta käytetään WHO--Koululaistutkimuksen datan visualisointiin. WHO--Koululaistutkimus toteutaan
	neljän vuoden välein.
	
	Projektissa   laadittu   vaatimusmäärittely ~\cite{vaatimusmaaritelma} kuvaa   toteutetun   sovelluksen   käyttäjille   ja tietojärjestelmille tarjoamat tiedot ja toiminnot sekä vaatimusten tilat projektin päättyessä sekä   mahdollisia puutteita ja jatkokehitysideoita. Sovellusraportti ~\cite{sovellusraportti} kuvaa toteutetun sovelluksen   toteutusratkaisuja   ja   käyttöliittymää sekä   mahdollisia puutteita ja jatkokehitysideoita.  Käytettävyystestausraportissa ~\cite{kaytettavyystestaus} kuvataan    käytettävyystestauksen tulokset. Järjestelmätestausraporteissa ~\cite{kaytettavyystestaus2}  kuvataan  järjestelmätestauksen testitapaukset ja niiden tulokset testauskerroilla.
		
	Projektiraportin laatimisessa on hyödynnetty Moveon projektiraporttia  ~\cite{moveoraportti} ja sovellusprojektien ohjetta ~\cite{sovellusprojektienohje}. Dokumentin pohjana on käytetty Kodaviprojektin projektisuunnitelmaa ~\cite{kodavisuunnitelma}.

	Projektiraportin luvussa 2 esitellään projektissa käytettyjä termejä. Luvussa 3 kuvataan projektin taustoja ja tavoitteita. Luvussa 4 esitellään projektiin osallistuneet henkilöt ja projektiryhmän resurssit. Luku 5 kuvaa projektin käytänteitä. Luku 6 kuvaa projektin jäsenien roolit, vastuualueet sekä tehtävät ja niiden työmäärät. Luvussa 7 kuvataan sovelluskehitysprosessia ja aikataulua. Luvussa 8 käydään läpi projektin läpivientiin vaikuttaneita riskejä sekä niiden vaikutuksia projektin läpivientiin sekä luvussa 9 jäsenten oppimaa ja kokemaa.
	
	\chapter{Termit}
	
	Luvussa kuvataan projektin aihealueeseen, tietojärjestelmään ja toteutustekniikoihin liittyviä termejä.
	
	\section{Aihealueen ja järjestelmän termejä}
	Projektin aihealueen ja kehitettävän visualisointijärjestelmän termejä ovat seuraavat:
	
	\begin{compactenum}[]
	\item 
	\begin{Ventry}{Ryhmäavaimella kirjautunut käyttäjä}
		% Termilistat ladotaan Ventry-ympäristöllä, parametrina pisin termi,
		% jolloin sisentyy oikein:
		\item[Hakutulokset] ovat sovelluksen tuottamia tuloksia käyttäjän haun mukaan.
		\item[Hakusivu] on sivu, jonka kautta käyttäjä voi toteuttaa mieleisensä haun. 		
		\item[Julkinen käyttäjä] on käyttäjä, joka ei ole kirjautunut sovellukseen.
		\item[Kaavio] on ohjemiston osa, millä esitetään hakuehtojen tulos taulukkona kuvaajan yhteydessäye.
		\item[Kirjautunut käyttäjä] tarkoittaa Peda.net-tunnuksella tai ryhmäavaimella kirjautunutta käyttäjää.  
		\item[Kuvaaja] on ohjelmiston osa, jolla esitetään visuaalisesti valittujen hakuehtojen tulos. 
	    \item[Käyttöliittymä] on ohjelmiston osa, jonka kautta käyttäjä käyttää ohjelmistoa.	
		\item[Opiskelija] on sovellusta käyttävä terveystiedon opettajaopiskelija.
		\item[Oppilas] on sovellusta käyttävä terveystiedon oppilas lukiossa tai yläkouluissa.
		\item[Pääkäyttäjä] on järjestelmää hallinnoivan käyttäjän nimi kehitettävässä järjestelmässä.
		\item[Sovellus] on tietojärjestelmän osa, joka sisältää tietokantasovelluksen ja käyttöliittymän sekä niiden väliset välityskerrokset.
		\item[Tietojärjestelmä] koostuu projektissa kehitettävästä sovelluksesta sekä tietokannanhallinta-
		järjestelmästä ja WWW-palvelinohjelmistosta.
		\item[Ryhmäavaimella kirjautunut käyttäjä] on kirjautunut tapahtumaan liitetyllä aktiivisella ryhmäavaimella. 
		\item[Visualisointi] on kyselyillä kerätyn datan muuntaminen visuaalisesti informatiivisiin kaavioihin ja kuvioihin. 
		\item[WHO-Koululaistutkimus] on neljän vuoden järjestetty koululaisten terveystutkimus. 
	\end{Ventry}
	\end{compactenum}
	
	\section{Ohjelmistoja ja teknisiä termejä}
	Ohjelmistoja ja teknisiä termejä ovat seuraavat:
	
	\begin{compactenum}[]
	\item 
	\begin{Ventry}{Peda.net \\ --kirjautuminen}
		\item[Apache Tomcat] on HTTP-palvelu, joka mahdollistaa Javan käytön WWW-selaimesta. Projektissa Apache Tomcattia on käytetty verkkoympäristössä. 
		%\item[Bootstrap] on WWW-dokumenttien ulkoasun muokkausta helpottava, HTML-kuvauskieltä ja CSS-tyylikieltä käyttävä kirjasto.
		%\item[CSS] on tyylikieli WWW-dokumenttien ulkoasun esittämiseen.
		\item[Excel] on taulukkolaskentaohjelma, jonka toiminta perustuu taulukon soluihin.
		\item[GanttProject] on vaiheiden ja tehtävien ajoittamisen havainnollistamistyökalu.
		\item[Git] on hajautettu versiohallintajärjestelmä. Käytetty projektissa versionhallintajärjestelmänä. 
		%\item[HTML5] on uusin versio WWW-dokumenttien HTML-kuvauskielestä.
		\item[TypeScript] on WWW-sovelluksissa käytetty dynaamisesti tyypitetty komentosarjakieli. Typescript--kieltä on käytetty projektissa käyttöliittymän ohjelmoinnissa.
		%\item[jQuery] on WWW-dokumenttien dynaamisen sisällön käsittelyä helpottava avoimen lähdekoodin lisenssin alainen JavaScript-kirjasto.
		\item[\LaTeX] on tekstinladontaohjelmisto.
		\item[Lähdekoodi] on tietokoneohjelman tekstimuotoinen ohjelmointikielinen listaus. Ennen varsinaista suorituskelpoista ohjelmaa lähdekoodi käännetään konekieliseksi ohjelmaksi.
		%\item[OAuth] on avoimen standardin mukainen protokolla käyttäjien autentikointiin.
		\item[PDF] eli Portable Document Format on PostScript-kieleen pohjautuva ohjelmistoriippumaton ja siirrettävä tiedostoformaatti.
		\item[Peda.net] on Suomen koulutuslaitosten käyttämä koulutusmateriaalin hallinta-- ja jakojärjestelmä. 
		\item[Peda.net \\ --kirjautuminen] on jatkokehitykseen sovittu kirjautumisrajapinta. 
		\item[PostgreSQL] on avoimen lähdekoodin tietokannan hallintajärjestelmä. Projektissa PostgreSQLää on käytetty tietokannan hallintaan.
		%\item[Pyramid] on Python-ohjelmointikielellä toteutettu WWW-sovelluskehys.
		\item[React] on WWW-sovelluksen dynaamisen sisällön käsittelyä helpottava JavaScript-kirjasto.
		\item[Spring boot] on taustaohjelmisto, jolla avulla pystytettiin taustaohjelmisto ohjelmistolle. 
	\end{Ventry}
	\end{compactenum}

	\section{Projektin hallinnan termejä}
	Projektin hallinnan termejä ovat seuraavat:
	
	\begin{compactenum}[]
	\item
	\begin{Ventry}{Käytettävyystestaus}
		\item[Järjestelmätestaus] sisältää testauksen, jolla varmistetaan kokonaan integroidun järjestelmän vastaavan sille asetettuja vaatimuksia.
		\item[Katselmointi] on tulosten tarkastamismenetelmä, jossa tarkastetaan alunperin suunnitelluista tuloksista eroavat toteutukset, sovelluksen laatu ja esitetään parannusehdotuksia ohjelmakoodiin ja ratkaisuihin. 
		\item[Käytettävyystestaus] sisältää toimenpiteet, joilla testataan järjestelmän olevan helppokäyttöinen. 
		\item[Palaveri] on projektiryhmän, tilaajan edustajien ja ohjaajien yhteinen dokumentoitu keskustelutilaisuus.
		\item[Tilakatsaus] on projektipäällikön esittelemä katsaus palavereissa, jossa raportoidaan projektin eteneminen.
	\end{Ventry}
		\end{compactenum}
	\chapter{Tavoitteiden toteutuminen ja tulokset}
	
	Luvussa käsitellään toteutetun sovelluksen kohdealuetta ja taustoja sekä projektiryhmälle ja muille tuloksille asetettuja tavoitteita ja niiden toteutumista. Projektiryhmän jäsenten oppimistavoitteet toteutuivat hyvin, mutta projektissa kehitetyt tulokset toteutuivat puutteellisesti ja osia sovelluksen kehityksestä sovittiin jatkokehitykseen sekä aikataulu viivästyi loppuvuoteen 2020.
	
	
	\section{Taustaa ja tuettava prosessi}
	
	Projektin tilaajana toimi Jyväskylän yliopiston liikuntatieteellinen tiedekunta. Sovellus toteutetaan helpottamaan terveystiedon opettajaksi opiskelevien ja valmistuneiden terveystiedon opettajien opetus- ja tutkimustyötä.
	
	Jyväskylän yliopistossa liikuntatieteellisen tiedekunnan terveystiedon pääainetta opettajaksi opiskelevien ja valmistuneiden mahdollisuutena on käyttää WHO--Koululaistutkimuksen dataa omissa tutkimuksissa, kursseilla ja opetustilanteissa ja Kodavi--projekti tuotti
	WHO--Koululaistutkimuksessa tuotetun datan visualisointisovelluksen. Data koostuu koululaisten vertailukelpoisista terveystottumuksista ja kokemuksistä. 
	
	Tilaajan toiveena oli, että sovellus toimisi Jyväskylän yliopisto opiskeleville ja jota pystyisi käyttämään myös valmistumisen jälkeen. Tavoitteena oli käyttäjäystävällinen sovellus, jolla voidaan luoda visuaalista dataa ja datan muuttujia on voitava muokata käyttäjäystävällisesti. 
	
	\section{Sovelluksen tavoitteet ja toiminnallisuudet}
	
	Sovelluksen alkuperäiset tavoitteet ja toiminnallisuudet olivat seuraavat. 
	Sovellusta voidaan käyttää ilman esitietoja tai tunnistautumista. Ennalta määritetyllä ryhmäavaimella käyttäjän voi käyttää ryhmäavaimen luojan määrittämiä muuttujia. Sovelluksessa on mahdollisuus vaihtaa sovelluksen kieltä suomen, ruotsin ja englannin kielten välillä. Ryhmäavaimen syöttämisen, Peda.net--kirjautuminen ja sovelluksen julkisen käyttäjän käyttöliittymä tulee onnistua suoraan sovelluksen etusivulta. Kirjautuminen on voitava tehdä myös muulla kuin Peda.net--tunnuksella, jotta peruskoulujen ja lukioiden opettajat voivat käyttää sovellusta kirjautuneina. Kirjautuneella käyttäjällä on mahdollisuus tehdä tehtäviä ryhmäavaimille. Kirjautuminen ja tehtävien laatiminen siirrettiin jatkokehitykseen. 
	
	Kirjautuneena käyttöliittymästä on voitava tallentaa hakutuloksia itselleen tai jaettaviksi ryhmäavaimella. Kirjautuneena on voitava tehdä omia hakuja tietokannasta omilla hakuehdoilla. Hakuehdoista on voitava valita yksi vastemuuttuja ja maksimissaan kolme luokittelevaa muuttujaa.
	
	Ryhmäavaimella on voitava saada ne muuttujat, jotka on määritetty ryhmäavaimessa. Ryhmäavaimia luovat kirjautuneet käyttäjät. 
	Ryhmäavaimia, tehtäviä kirjautumista eikä Peda.net--kirjautumista ei toteuttu projektissa.
	
	Julkisen käyttäjän käyttöliittymässä voidaan tehdä yksittäisiä hakuja. Julkinen käyttäjä ei voi tallentaa omia tuloksiaan itselleen. 
	
	Kehitettävän sovelluksen käyttöliittymän käyttäjille tarjoamat tiedot ja toiminnallisuudet on kuvattu tarkemmin vaatimusmäärittelyssä \cite{vaatimusmaaritelma}. Ainoastaan julkiselle käyttäjällä  toteutettiin käyttöliittymä ja muiden käyttäjäryhmien  sovittiin jatkokehitykseen. 
	
	\section{Kehitetty sovellus}
	
	
	Projektissa kehitettävä sovellus on WHO-Koululaistutkimuksen datan visualisointisovellus. Sovellus sisältää tietokannan, palvelinsovelluksen sekä WWW--käyttöliittymän. Tietokantaan on sisällettynä neljän vuoden välein kerättyä WHO--Koululaistutkimuksen dataa sekä varaus käyttäjärooleille.
	
	Sovelluksen tarkoituksena on esittää dataa kaavioin ja numeraalisesti käyttäen WWW-käyttöliittymää. Haun tulokset esitetään valituin graafein yhteenvetosivulla. Hakuun on valitaan käyttäjän mieleiset vaste- ja luokkittelumuuttujat. Tavoittena oli tuottaa miellyttävä ja helposti tulkittava yhteenveto hauista.
	
	Jatkokehitykseen siirrettiin käyttäjäroolit ja tulosten tallentaminen Excel-- ja CVS--muotoon. Käyttäjäroolit tulevat ylläpitäjän ja opettajan  opetuksillisiin tarpeisiin, että opettaja voi tallentaa ja jakaa tehtäviään ja hakutuloksia oppilaille sekä tarkastella oppilaiden palauttamia tehtäviä. 
	
	
	
	\newpage
	\section{Projektin tulokset}\label{tulokset}
	
	Sovelluksen ohella projektiryhmä toteutti seuraavat tulokset:
	\begin{compactenum}[here] %{Palaverien dokumentit}
		\vspace{-3mm}\item[-]\textbf{Ajankäyttöraportti} sisältää ryhmän jäsenten kirjaamat työtunnit sekä niiden jakautumisen eri tehtäväkokonaisuuksille ja tehtäville.
		\item[-]\textbf{Esittelymateriaalit} sisältävät väliesittelyn materiaalit ja muistiot.
		\item[-]\textbf{Itsearvioinnit} sisältävät ryhmän jäsenten arvioinnit omasta toiminnasta, onnistumisesta, kokemuksista ja oppimisesta.
		\item[-]\textbf{Lisenssisitoumus} määrittää avoimen lähdekoodin ja avointen dokumenttien lisenssit, joiden puitteissa ryhmän jäsenet antavat muille oikeuksia projektin tulosten hyödyntämiseen.
		\item[-]\textbf{Lähdekoodi} sisältää sovelluksen ohjelmointikielisen lähdekoodin kommentteineen.
		\item[-]\textbf{Palaverien dokumentit} sisältävät pidettyjen kokouksien esityslistat, pöytäkirjat ja tilakatsaukset.
		\item[] \textbf{palvelimen asennusohje} sisältää palvelimen asennusohjeet.
		\item[-]\textbf{Projektiraportti} kuvaa projektin toteutunutta läpivientiä ja asetettujen tavoitteiden saavuttamista sekä jäsenten kokemuksia ja oppimaa.
		\item[-]\textbf{Projektisuunnitelma} kuvaa projektin suunniteltua läpivientiä mm. tavoitteiden, resurssien, käytänteiden, tehtäväjaon ja niiden arvioitujen työmäärien, prosessin ja aikataulun sekä riskien hallinnan osalta. Projektisuunnitelma jäädytettiin huhtikuussa 2020.
		\item[-]\textbf{Sovellussuunnitelmat} sisältävät laaditut hahmotelmat käyttöliittymän, tietokannan ja rajapintojen osalta.
		\item[-]\textbf{Sovellusraportti} kuvaa toteutetun sovelluksen rakenteen, toiminnot,j äsenten kokemusten ja oppimisten kuvauksen, puutteelliset ja heikot toteutusratkaisut sekä jatkokehitysideat.
		\item[-]\textbf{Sähköpostiarkistot} sisältävät kaikki projektille perustetuilla sähköpostilistoilla projektiryhmän ja projektiorganisaation käymät keskustelut.
		\item[-]\textbf{Testausraportit} sisältävät projektissa suoritettujen testauskertojen tulokset.
		\item[-]\textbf{Testaussuunnitelmat} kuvaavat järjestelmätestauksen ja käytettävyystestauksen suunniteltua läpivientiä.
		\item[-]\textbf{Vaatimusmäärittely} kuvaa kehitettävän sovelluksen toiminnalliset ja tekniset vaatimukset, tavoitteet ja rajoitteet.
	\end{compactenum}
	\newpage
	
	Seuraavia tuloksia projektista ei suoritettu:
	\begin{compactenum}[here] %{Palaverien dokumentit}
		\item[-]\textbf{Luokkadokumentaatiota} ei toteuttu projektissa projektiryhmän toiveesta. 
		\item[-]\textbf{Käyttöohjetta} ei toteuttu osana projektia. 	
		\item[-]\textbf{Projektisuunnitelma} ei valmistunut ja se jäädytettiin huhtikuussa 2020.
 	\end{compactenum}
%	\newpage
%	\section{Jäsenten oppimistavoitteet}
	
	
	
%	Edellisten tavoitteiden lisäksi jäsenet ovat asettaneet seuraavia henkilökohtaisia tavoitteita:
%	\begin{compactenum}
%		\item[-] Lauri Antilan tavoitteena on saada käytännön kokemusta sovelluskehityksestä ja erityisesti web-ohjelmoinnista. Hän on kiinnostunut erilaisista teknologioista sekä projektityöskentelystä. Hän toivoo Sovellusprojektin antavan tarvittavaa kokemusta työelämään
%		\item[-] Outi Hilolan tavoitteena on oppia suunnittelemaan käytettävyydeltään laadukkaita ja käyttökokemukseltaan miellyttäviä käyttöliittymiä. Lisäksi Hilola haluaa kehittyä ohjelmoijana sekä saada kokemusta tietokannoista ja WWW-sovelluksen kehityksestä.
%		\item[-] Antti Kaupin tavoitteena on saada käytännön kokemusta ohjelmistokehitysprojektin läpiviennistä ja tehtäväkokonaisuuksista. Hän haluaa myös kehittää ohjelmointitaitojaan ja oppia käyttämään uusia teknologioita.
%		\item[-] Nuutti Rantasen tavoitteena on saada kokemusta projektiryhmän johtamisesta ja saada kokemusta sovelluskehitysprosessista. Hän haluaa myös saada kokemusta johtamiseen liittyvästä viestinnästä.
%		\item[-] Anne Vaaralan tavoitteena on saada kokemusta projektityöskentelystä ja kehittyä ohjelmoijana. Hän toivoo, että Sovellusprojektista olisi hyötyä työelämään siirtymisen kannalta.
		
	%\end{compactenum}
	
	\chapter{Organisaatio ja resurssit}
	
	Luvussa esitellään projektiorganisaatio, sen käytettävissä olleet resurssit ja projektiin liittyvät oheiskurssit ja perehdytykset. Luvussa kuvatut henkilöresurssit ja muut resurssit toteutuivat suunnitelman mukaisesti, mutta projektiryhmän tiloissa ja laitteissa oli puutteita projektin siirryttyä etätyöskentelyyn.
	
	
	\section{Projektiorganisaatio}\label{projektiorganisaatio}
	
	Kodavi-projektiryhmään kuului viisi tietotekniikan pääaineopiskelijaa: Lauri Antila, Outi Hilola, Antti Kauppi, Nuutti Rantanen ja Anne Vaarala. Projektipäällikkönä toimi Nuutti Rantanen ja varapäällikkönä Lauri Antila.
	
	Lauri Antila on suorittanut paperitekniikan insinööri(amk) -tutkinnon. Kyseisen tutkinnon tietotekniikan opinnot sisälsivät hieman automaatiota ja mallinnusta, sekä Office-ohjelmiston käyttöä. Antila pääsi tietotekniikan maisteriohjelmaan Jyväskylään. Ohjelmoinnin kurssien suorituksesta on vuosia aikaa. Antila oli kiinnostunut WWW-sovellusten kehityksestä. 
	
	Outi Hilola on valmistunut muotoilijaksi ammattikorkeakoulusta, teollisen muotoilun koulutusohjelmasta. Alemman korkeakoulututkinnon suorittamisen aikana hän on oppinut muun muassa graafista suunnittelua ja verkkosivulayoutien suunnittelua, joista on todennäköisesti hyötyä Sovellusprojektin aikana. Hilola opiskelee tietotekniikan maisteriohjelmassa toista vuotta. Tietotekniikan kurssien lisäksi Hilola on sisällyttänyt tutkintoonsa paljon kognitiotieteen opintoja. 
	
	Antti Kauppi on aiemmalta koulutukseltaan tradenomi, ja hän on aloittanut tietotekniikan opiskelun suoraan maisteriohjelmassa. Hän on suorittanut lähes kaikki tutkintoon sisältyvät täydentävät opinnot, joita ovat olleet mm. ohjelmointikurssit. 
	
	Nuutti Rantanen on valmistunut 2019 luonnontieteiden kandidaatiksi ja jatkanut suoraan maisteriopintoihin tietotekniikasta. Hän on suorittanut perus- ja aineopintotasoiset kurssit Jyväskylän yliopistossa. 

	Anne Vaaralan aiempi koulutus on filosofian maisteri, pääaineena molekyylibiologia. Hän on tähän mennessä suorittanut tietotekniikan täydentävät opinnot ja jonkin verran tietotekniikan syventäviä opintoja.
	Tämä on vasta hänen toinen opiskeluvuotensa, joten hän osaa lähinnä ohjelmistokehityksen perusteet. Hänen kehityskohteensa ovat siten kaikki ohjelmistokehityksen osa-alueet. Hän toivoo oppivansa paljon uusia asioita projektin aikana.
	
	Tilaajan edustajia ovat Nelli Lyyra, Kristiina Ojala ja Jorma Tynjälä. Vastaavana ohjaajina toimi Enni Stylman, vastaavan ohjaajan mentorina toimi Jukka-Pekka Santanen ja teknisenä ohjaajana Arttu Ylä-Sahra. Tilaajia piti olla vielä Jari Villberg, mutta hän ei päässyt osallistumaan projektiin. Peda.net yhteishenkilönä toimi Juha Lahti.
	
	\section{Projektin tilat, laitteet ja verkkolevyt}
	
	Informaatioteknologian tiedekunta tarjosi ryhmälle projektin ajaksi käyttöön lukittavan projektihuoneen AgC225.4. Projektin jäsenille annettiin projektihuoneeseen avaimet ja lisäksi RFID-avain, jolla pääsi Agoran sähkölukolla varustetuista ovista opiskelijoille tarkoitettuihin julkisiin tiloihin 5.30--23.00 välisenä aikana. Projektiryhmän jäsenillä oli käytössään viisi Windows 10 -käyttöjärjestelmällä varustettua tietokonetta ja toimistotarvikkeita, kuten nitoja, rei'itin, valkotaulu, valkotaulutusseja, valkotaulujen puhdistusnestettä, taulun pyyhintään sieni, kuulakärkikyniä ja paperia. Kuitenkin Covid--19--pandemian aikana pääsy projektiryhmän tilaan oli estetty ja projektiryhmä toteutti sovellusta etätyönä. Etätyöaikana projektiryhmällä oli käytettävissä omat mikrot sekä tarvittaessa yliopisto lainasi mikroja ja mikrojen näyttöjä projektiryhmäläisille. Ei ole varmassa tiedossa, että hyödynnettiinkö laitteiden lainausta.
	
	Projektiryhmällä oli mahdollisuus pyytää varaamaan yliopiston kokoustiloja Sovellusprojektin vastaavilta ohjaajilta projektipalavereita varten. Kaikissa tiloissa oli käytettävissä vaihtelevia varustuksia sisältäen ainakin videotykin, valkotaulun ja tietokoneen. Projektiryhmällä oli käyttävissään digitaalisanelin lähipalavereissä ja Teamsin tallennusominaisuus etäpalavereissa. Kokoukset etäaikana järjestettiin verkkokokouksina Teams--alustalla. Verkkokokousten kommunikaatio oli erilaista kuin paikan päällä, koska lähikontaktia muihin ei ollut ja eleitä oli erittäin vaikea tulkita.
	
	Sovellusprojektien ryhmän käytettävissä oli yliopiston ylläpitämiä monitoimitulostimia ennen Covid--19-pandemiaa. Ryhmän jäsenet pystyvät tulostamaan projektiin liittyvät dokumentit ilman heille henkilökohtaisesti aiheutuvia lisämaksuja. Ryhmällä oli mahdollisuus varata käyttöönsä videoprojektori ja Olympuksen digitaalisanelin. Aiemmille sovellusprojekteille hankitut satakunta kirjaa~\cite{projektikirjat} olivat myös käytettävissä, mutta kirjallisuutta ei käytetty projektissa. Projektiryhmän jäsenet voivat vapaasti käyttää omia laitteitaan.
	
	Projektilla oli käytössään ryhmän jäsenille yhteinen verkkolevy ja WWW-si\-vus\-to projektin tiedostojen säilytystä ja julkaisua varten. Verkkolevy on hakemistossa \texttt{http://sovellusprojektit.it.jyu.fi/kodavi/projekti/} ja julkinen WWW-sivusto osoitteessa \texttt{http://sovellusprojektit.it.jyu.fi/kodavi}.
	
	Projektiryhmällä oli käytettävissä projektihuoneen vieressä taukotila, jossa oli kahvinkeitin, vedenkeitin ja mikroaaltouuni. Informaatioteknologian tiedekunta tarjosi ryhmälle projektin ajaksi kahvit, kahvimaidot, teet ja mehut. Taukotila ja tarjoilut eivät olleet käytössä etäaikana. 
	
	\section{Dokumentointityökalut}
	
	Projektisuunnitelma, vaatimusmäärittely, projektiraportti, projektipalaverien pöytäkirjat, ja muut projektin läpivientiin liittyvät dokumentit laadittiin \LaTeX -tekstinladontaohjelmistolla ja vaihtoehtoisesti Word-tekstinkäsittelyohjelmalla suomen kielellä. Tarvitut li\-sä\-e\-si\-tys\-gra\-fii\-kat, kuten tilakatsaukset, laadittiin Microsoft PowerPoint--esitysgrafiikkaohjelmalla. Projektin läpiviennin aikataulusuunnitelma ja toteutunut ai\-ka\-tau\-lu laadittiin GanttProject-ohjelmalla.
	Kaikki laajemmat dokumentit dokumentit julkistettiin myös pdf-muodossa. Muut yksinkertaiset ja lyhyet tekstidokumentit, kuten esityslistat, laadittiin raakatekstimuodossa. 
	
	Ajankäytönseurantaan ryhmällä oli käytössään Petri Heinosen sovellusprojekteille toteuttama Excel-työkirjan pohja \cite{ajanseurantalahde}, johon kirjattiin Kodavi--projektin tunnin henkilökohtaisella tasolla työtehtävittäin \cite{aika_excel}. Tämän lisäksi kyseisestä ajankäytönseurantapohjasta saatiin tilakatsauksiin vaadittavat graafit. 
	
	\section{Ohjelmointityökalut ja versiohallinta}
	
	Sovelluksen kehityksessä käytettiin Spring Boot- ja React-ohjelmistokehystä. Pää\-a\-si\-al\-li\-se\-na ohjelmointikielenä käytettiin Javaa ja TypeScriptia. Kehitysvaiheessa Java-kielistä Hibernate\--työkalua käytettiin luokkarakenteen pohjalta tietokantarakenteen muodostamiseen. Tietokannanhallintajärjestelmänä käytettiin Hibernate- ja PostgreSQL-ohjelmistoa. WWW-käyttöliittymässä käytettiin HTML5-, CSS- ja TypeScript-ohjelmointikieliä sekä sopivaksi katsottuja apukirjastoja jQuery, React ja Bootstrap. WWW-käyttöliittymän kehitysympäristö oli JetBeansin IntelliJ IDEA 2020.2.2 sekä taustaohjelmiston ympäristönä oli Visual Studio. Sovelluksen lähdekoodin ryhmä sijoitti sovittavan avoimen lähdekoodin lisenssin alaisuuteen \cite{lisenssi}.

	
	Projektiryhmä käytti lähdekoodin versioiden hallintaan Git-ver\-sio\-hal\-lin\-ta\-oh\-jel\-mis\-to\-a. Dokumenttien versioiden hallintaan käytettiin projektiryhmän omaa verkkolevyä, Git-ver\-sio\-hal\-lin\-ta\-oh\-jel\-mis\-to\-a GitLab--ympäristössä ja Google Drivea.
	
	\section{Luennot ja perehdytykset}
	
	Projektin ohella ryhmän jäsenet suorittivat kaksi oheiskurssia. Viestintäkurssiin \textit{Projektiviestintä IT-alalla} kuuluvat kirjoitus- ja puheviestinnän luennot ja ryhmätyöt sekä viestintäkurssilla käsiteltävien dokumenttien kirjoitusasun ja rakenteen muokkauksen työtunnit. Projektin aikana järjestettiin yksi väliesittely, joka oli osa viestintäkurssia. 
	
	Kurssiin \textit{Projektiviestintä IT-alalla (3op)} sisältyvät seuraavat opetuskokonaisuudet:
	\begin{compactitem}
		\item vuorovaikutusosaaminen, ryhmäilmiöt, yhteistyötaidot ja ryhmän tehokkuus,
		\item projektiviestinnän tavoitteet ja muodot,
		\item kirjoittamisprosessi,
		\item palautetaidot sekä,
		\item viestinnän ymmärrettävyys ja tilanteenmukaisuus
	\end{compactitem}

	Kurssiin \textit{Sovellusprojektin hallintaa, viestintää ja työkaluja (1op)} sisältyvät seuraavat opetustapahtumat:
	\begin{compactitem}
		\item aloitusluento (2h),
		\item vaatimusmäärittely (2h),
		\item versiohallinta (2h),
		\item projektin johtaminen ja hallinta (4h),
		\item käytettävyyspäivä (6h) (Ei toteutunut) sekä
		\item tekijänoikeus ja sopimukset (2h).
	\end{compactitem}

	Oheiskurssien työtunnit kirjattiin omaksi tehtäväkokonaisuudekseen ajankäyttöraporttissa \cite{aika_excel}.
	
	%
	%    Käytänteet
	%
	\chapter{Käytänteet} \label{kaytanteet}
	
	Luvussa  kuvataan  projektissa  noudatettuja  käytänteitä  palaverien,  tiedottamisen,  tiedostojen nimeämisen,  hakemistorakenteen,  lähdekoodin,  testauksen,  versionhallinnan  ja  -numeroinnin, katselmointien ja tulosten hyväksymisen sekä tulosten koostamisen osalta. Luvussa kuvataan myös käytänneissä tapahtuneita muutoksia suunniteltuihin käytänteihin. 
	

	\section{Palaverit} \label{kaytanteet1}
	
	Projektiorganisaatio pyrki alkuvaiheessa pitämään yhteisen palaverin vähintään kerran viikossa.  Projektin edetessä sovelluskehityksen vaiheeseen palavereja pidetiin kerran kahdessa viikossa, kesällä tarpeen mukaan sekä loppuvaiheessa kerran kahdessa viikossa, näin keskityttiin enemmän kehitystyöhön. Seuraavan palaverin ajankohta päätettiin aina edellisessä palaverissa. Palavereissä oli noin kuukauden tauko kesällä 2020, koska muutamalla projektiorganisaation osallistuvilla henkilöillä oli kesälomaa heinäkuussa. 

	Palavereissa käsiteltiin edellisen palaverin jälkeen tapahtuneita asioita, jotka olivat vaikuttaneet projektin etenemiseen. Lisäksi palavereissa käsiteltiin tulevia toimenpiteitä ja tarvittavat päätökset. Jokaisessa palaverissa käytiin läpi edellisen palaverin pöytäkirjaan merkityt päätökset sekä osallistujille sovitut toimenpiteet ja tilat. 
	
	Projektipäällikkö, ja hänen estyessään varapäällikkö, esitti kussakin palaverissa lyhyen tilakatsauksen, jossa kuvattiin projektin tehtävien etenemistä edellisen palaverin jälkeen, mahdollisia kohdattuja ongelmia ja tulevia toimenpiteitä. Tilakatsauksessa esiteltiin lisäksi, miten projektiryhmän jäsenten käyttämät työtunnit jakautuivat projektin tehtäväkokonaisuuksiin sekä ryhmän jäsenten viikottaiset projektiin käytetyt tuntimäärät.
	
	
	Palavereissa keskusteltiin toteutettavan sovelluksen ominaisuuksista, tavoitteista ja vaatimuksista sekä niiden toteutusratkaisuista ja kehitystyökaluista. Palavereissa projektiryhmä esitti sovelluksen prototyyppejä ja demonstraatioita, esimerkiksi käyttöliittymää ja sovelluksen toimintaa.
	
	Palaverin puheenjohtajana ja sihteerinä toimivat vuorollaan jokainen projektiryhmän jäsen. Tehtäviä kierrätettiin jäsenten kesken sovitussa järjestyksessä, että kaikki saivat olla kerran puheenjohtaja sekä kerran sihteeri. Myöhemmin palaverien puheenjohtaja ja sihteeri valittiin sisäisissä palavereissa. Kunkin palaverin puheenjohtaja ja sihteeri pyrittiin sopimaan etukäteen, mutta valinnasta päätettiin virallisesti jokaisen palaverin alussa. 
	
	Puheenjohtaja johti palaverin keskustelua ja huolehti siitä, että palaveri eteni esityslistan mukaisesti. Sihteeri laati palaverin pöytäkirjan, jonka puheenjohtaja tarkasti ennen kun sihteeri julkisti sen projektiorganisaatiolle ja muille mahdollisille palaveriin osallistuneille. Kunkin jäsenen laatiman ensimmäisen pöytäkirjan tarkasti vastaava ohjaaja, ennen julkaisua projektiorganisaatiolle. Edellisen palaverin pöytäkirja hyväksytettiin seuraavassa palaverissa, jolloin siihen voitiin tarvittaessa esittää muutoksia. Kuitenkin, jos pöytäkirja ei ollut hyväksymiskunnossa, niin hyväksyminen tapahtui myöhemmässä palaverissa. 
	
	Palaverit toteutuivat suunnitelman mukaisesti keväällä. Kesän ja syksyn palavereja ei ollut suunniteltu etukäteen, joten ne eivät toteutuneet suunnitellun mukaan.  
	
	\section{Tiedotus} \label{kaytanteet2}
	
	Projektin tiedotuksesta projektiorganisaatiolle vastasi pääasiassa projektipäällikkö, mutta jokainen ryhmän jäsen vastasi oman sektorinsa tiedotuksesta. Ryhmän jäsenet kommunikoivat ensisijaisesti projektipäällikön kanssa, mutta omilla vastuualueillaan vapaasti välittivät oleelliset tiedotettavat asiat koko projektiorganisaatiolle. 
	
	Projektiorganisaation tiedotusta varten oli luotu kaksi erillistä sähköpostilistaa. Sähköpostilistojen sähköpostiarkistot eivät ole julkisia, vaan niihin vaaditiin kirjautuminen JYU-tunnuksilla.
	
	Projektiorganisaation sisäisessä viestinnässä oli käytössä sisäinen Whatsapp--ryhmä sekä Teams--keskustelusovellus. Teams--keskustelusovellusta käytettiin myös ohjaajien sekä koko projektiorganisaation keskinäiseen viestintään etätyön aikana.
	
	Pääasiallista sähköpostilistaa \texttt{kodavi@korppi.jyu.fi} käytetiin projektiryhmän jäsenten, ohjaajien ja tilaajan edustajien tiedotukseen. Sen jakelulistalle kuuluivat kaikki projektiorganisaation edustajat. Sen sähköpostiarkisto on osoitteessa 
	\texttt{https://korppi.jyu.fi/kotka/servlet/list-archive/kodavi}.
	
	Projektiryhmän jäsenten ja ohjaajien käyttöön oli perustettu sähköpostilista \\
	\texttt{kodavi\_opetus@korppi.jyu.fi}. Sen sähköpostiarkisto on osoitteessa \\
	\texttt{https://korppi.jyu.fi/kotka/servlet/list-archive/kodavi\_opetus/}.
	Sähköpostilistalla käsiteltiin sellaisia asioita, jotka eivät ole merkityksellisiä tilaajalle, karsien siten heille tarpeetonta sähköpostiliikennettä. Tällaisia asioita olivat esimerkiksi projektiryhmän sisäiset palaverit sekä erilaiset koulutukseen ja ohjelmiston toteutusratkaisuihin liittyvät asiat ja kohdatut ongelmat.

	Tiedottaminen toteutui suunnitelman mukaisesti.
		
	\newpage
	\section{Hakemistorakenne} \label{hakemistorakenne} 
	
	Projektin tuottamat tulokset tallennettiin CD-levylle, USB-tikulle tilaajaa varten ja projektin julkiseen WWW-hakemistoon päähakemiston alle seuraavan \textbf{hakemistorakenteen} mukaisesti:
	
	\begin{verbatim}  
	ajankäyttö
	|
	dokumentit
	|-- sovellusraportti
	|-- lisenssisitoumus
	|-- projektiraportti
	|-- projektisuunnitelma
	|-- palvelinohje
	|-- vaatimukset
	| 
	palaverit
	|-- katselmoinnit
	|-- poytakirjat
	|-- tilakatsaukset
	|
	käyttöliittymä
	|-- käyttöliittymäkuvat
	|-- rakennekaaviot
	|-- suunnitteluvaiheen hahmotelmat
	|
	sahkopostiarkistot
	|-- kodavi
	|-- kodavi_opetus
	|
	testaus
	|-- jarjestelmatestaus
	|-- kaytettavyystestaus
	tietokanta
	|
	väliesittelyt
	|
	\end{verbatim}	
	
	Hakemistorakennetta ei muodostettu suunnitelman mukaisesti, koska projektiryhmä ei käyttänyt projektisuunnitelman hakemistorakennetta pohjanaan. Se johtui siitä, että projektipäällikkö ei ollut mukana työstämässä kansiorakenteen mukaista hakemistoa.

	\section{Tiedostojen nimeäminen}

	Projektissa toteutetun sovelluksen lähdekooditiedostojen nimeämisessä käytettiin ohjelmointikielten yleisiä käytänteitä. Tiedostojen ja hakemistojen nimet kirjoitettiin englannin kielellä.  Tiedostojen ja hakemistojen nimet kirjoitettiin pienillä kirjaimilla ja välilyöntimerkin sijasta käytetään alaviivaa (\_). 

	 Dokumentit nimettiin niiden sisältöä kuvaavilla nimillä ja dokumentissa käytetyn kielen mukaisesti. Lisäksi jokaiseen julkistettuun dokumenttiin lisättiin juokseva versionumero luvussa~\ref{versiohallinta} esitettyjen käytänteiden mukaisesti. Esimerkiksi projektisuunnitelman eri versiot nimettiin \\ \texttt{kodavi\_projektisuunnitelma\_[nu\-me\-ro].[nu\-me\-ro].[nu\-me\-ro].pdf}.
	
	Tiedostojen nimeäminen toteutui suunnitelman mukaisesti.
	
	\section{Lähdekoodi}

	Sovelluksen lähdekoodin kommentit kirjoitettiin englannin kielellä. Aliohjelmien, luokkien ja muuttujien nimeämiseen käytettiin selkeitä ja kuvaavia nimiä, jotka ovat englanninkielisiä. Lähdekoodin kirjoittamisessa noudatettiin yleisiä TypeScript-, ja Java-ohjelmointikielten yleisiä hyviä käytänteitä. Lähdekoodin kommentoinnissa seurattiin niin ikään yleisiä Java- ja Typescript-ohjelmointikielen käytänteitä siten, että luokkadokumentaation tekeminen Javadoc-dokumentaatiogeneraattorilla oli mahdollista. Luokkadokumentaatiota ei tuotettu, koska sitä ei katsottu tarpeelliseksi. Muuten lähdekoodikäytäntöjä noudatetiin projektissa.
	
	\comment{
		Seuraava esimerkki havainnollistaa edellä esitettyjen hyvien käytänteiden mukaista Python-ohjelmakoodia.
		{\small
			\begin{verbatim}
			# -*- coding: utf-8 -*-
			
			"""
			reservation.py is a domain model to handle Reservation objects
			"""
			
			__author__  = "Joonas Konki \n Anu Koskela \n Mikko Kuhno \n \
			Henrik Paananen \n Atte Räty"
			__date__    = "28.2.2015"
			__version__ = "0.0.1"
			__licence__ = "BSD 3-clause, see LICENSE for more details."
			__copyright__ = "2015 Kepler project authors"
			
			import sqlalchemy
			
			from sqlalchemy import (
			Column,
			Integer,
			String,
			Boolean
			)
			
			class Reservation(Base):
			""" The SQLAlchemy declarative model class for a Reservation 
			object holds information about the user who made 
			the reservation and about the available shift where 
			the reservation was made.
			"""
			__tablename__ = 'reservations'
			id = Column(Integer, primary_key=True)
			shift_id = Column(Integer, nullable=False)
			user_id = Column(String, nullable=False)
			was_present = Column(Boolean, nullable=False, default=True)
			
			@classmethod
			def get_user_reservations(cls, user_id):
			""" Gets all the reservations of a user with the given 
			user ID. 
			
			Args:
			user_id (int): Specifies the user ID of the user.
			
			Return: 
			The query object that returns all 
			the reservations of the given user.
			"""
			return DBSession.query(User).filter(User.id == id)
			\end{verbatim}
		}
	}
		

	\section{Testaus}
	
	Ohjelmoija suoritti kirjoittamalleen lähdekoodille aina tarvittavat yksikkötestaukset, mutta yksikkötestejä ei laadittu osaksi lähdekoodia. Sovellusta koekäyttivät tilaajan edustajat ja ohjaajat. Toteutetun sovelluksen toiminnan laadunvarmistus tapahtui käytettävyys- ja järjestelmätestauksella. 
	
	Sovelluksen käyttöliittymää testattiin koko ajan toteutuksen aikana kaikkien jäsenten toimesta, jotta varmistuttiin sen lopullisen toiminnan laadusta. Käyttöliittymän testausta toteutettiin heuristisesti.
	
	Käytettävyystestauskertoja järjestettiin kerran terveystiedon- ja liikunan opiskelijoille ja järjestelmätestauskertoja järjestettiin kolme kertaa sovelluksen eri versioille eriteltynä näissä dokumenteissä ~\cite{kaytettavyystestaus2}. Sovelluksen käytettävyydestä haluttiin mahdollisimman selkeä ja käyttäjäystävällinen. Käytettävyystestauksen vastuuhenkilö laati testausraportin muiden ryhmän jäsenten tekemien testauskertojen suorittamisen jälkeen. Raportti kuvasi testin aikana ja sen jälkeen kirjatut huomiot käyttäjäkokemuksesta.
	
	Järjestelmätestauksessa testattiin sovelluksen toimintoja testitapauksilla, jotka oli tarkemmin määritelty vastuuhenkilön laatimassa testaussuunnitelmassa. Vastuuhenkilö laati testaussuunnitelmat ennen testauskertojen suorittamista.. Järjestelmätestaajat laativat testausraportit testauskertojen jälkeen. Testausraportissa kuvattiin testauskerran aikana tehdyt huomiot puutteista, tuloksista ja mahdollisista virhetilanteista.
	
	Järjestelmätestaus toteutui suunnitelman mukaan. Käytettävyystestaus toteutettiin suunnitelmasta poikkeavasti. Käytettävyystestauksen testaushenkilöinä käytettiin terveystiedon- ja liikunnan oppilaita ja raportissa kuvattiin heidän kokemuksiaan sovelluksen käytettävyydestä. Alkuperäinen suunnitelma oli testata käytettävyyttä ryhmän jäsenistä koostuvasta joukosta. 	
	
	Vastaava ohjaaja sekä tilaajan edustajat koekäyttivät sovellusta.  Sovelluksesta löytyi muutamia käyttöä haittaavia virheitä, jotka projektiryhmä korjasi. 
	
				
	\section{Versiohallinta ja -numerointi} \label{versiohallinta}
	
	Projektiryhmä käytti sovelluksen lähdekoodin versiohallintaan Git-ver\-sio\-hal\-lin\-ta\-oh\-jel\-mis\-to\-a. Dokumenttien ver\-sio\-hal\-lin\-taan käytettiin projektiryhmän verkkolevyä ja Git-ver\-sio\-hal\-lin\-ta\-oh\-jel\-mis\-to\-a. Git-ver\-sio\-hal\-lin\-ta\--järjestelmään, Gitlab, \cite{repo} perustettiin projektiryhmän jäsenille oma ryhmä (team), projekti ja tarvittavat tietovarastot. Tekniselle ohjaajalle sekä muille ohjaajillle järjestettiin pääsy lähdekoodiin. Kaikki projektiin ja sovellukseen liittyvät dokumentit säilyttettiin lisäksi projektin verkkolevyllä ja julkisella WWW-sivulla.
	
	Dokumenttien julkistetuissa versioissa käytettiin kolmiportaista versionumerointia. Ryhmän sisäisiä luonnoksia numeroidaan pienimmällä merkitsevällä numerolla (i.j.1), ja kunkin uuden julkistetun version kohdalla kasvatettiin numeroa yhdellä. Projektiorganisaatiolle julkistettuja versioita numeroitiin toisella merkitsevällä numerolla (i.1.j) ja projektiorganisaation hyväksymiä versioita ensimmäisellä merkitsevällä numerolla (1.i.j). Väliversioita voi olla yli kymmenen, kuten esimerkiksi ensimmäisen projektiorganisaatiolle julkistetun jälkeisessä neljännessätoista ryhmän sisäisessä versiossa 0.1.14. Ensimmäinen koko projektiorganisaation hyväksymä versio oli 1.0.0, ja tätä seuraavien hyväksyttyjen versioiden numerointia kasvatettiin toisen merkitsevän numeron osalta.
	
	Versiohallinta- ja numerointi toteutui suunnitelman mukaisesti.
	
	
	\section{Katselmoinnit ja tulosten hyväksyminen}
	
	Projektissa toteutettavan sovelluksen lähdekoodi katselmoitiin kaksi kertaa projektin aikana \cite{katse}. Katselmoinneissa projektin tekninen ohjaaja kommentoi lähdekoodia sekä antoi vinkkejä ja ehdotuksia sen parantamiseen. Katselmointiin osallistuivat tekninen ohjaaja, muut ohjaajat ja lisäksi koko projektiryhmä. Katselmoinnissa tehdyt havainnot kirjattiin muistioksi. Ensimmäisen katselmoinnin muistion laati projektiryhmä ja toisen katselmoinnin muistion laati tekninen ohjaaja.  
	
	Tekninen ohjaaja hyväksyi lähdekoodin viimeisessä katselmoinnissa. Vastaava ohjaaja ja tilaajan edustajat hyväksyivät keskeisimmät laaditut dokumentit, joita olivat projektiraportti, sovellusraportti sekä vaatimusmäärittely.
	
	Katselmoinnit ja tulosten hyväksyntä toteutuivat suunnitelman mukaisesti.
	
	\section{Tulosten koostaminen ja toimittaminen}
	

	Projektiryhmän jäsenet kokosivat luvussa~\ref{tulokset} kuvatut projektin tulokset sekä tulostettuina projektikansioon että tallennettuina CD-levylle luvussa~\ref{hakemistorakenne} kuvatun hakemistorakenteen mukaisesti. CD-levy koostettiin, kun kaikki projektissa laaditut tulokset oli hyväksytty. Tulokset toimitettiin tilaajalle USB-tikulla ja omana projektikansionaan. Informaatioteknologian tiedekunnalle toimitettiin projektikansio ja koostettu CD-levy, jotka sijoitettiin projekteille tarkoitettuun varastoon. Tiedekunnan arkistoon toimitettiin lisäksi yksi CD-levy.
	Vastaava ohjaaja tulosti osan viimeisistä projektikansion
	sisällöistä sekä tallensi tiedostot CD-levylle ja muistitikuille.
	Koronatilanteen takia vastaava ohjaaja Stylman hoiti projektiryhmän puolesta myös tulosten toimittamisen tiedekunnalle sekä tilaajille.

	Tulosten koostaminen ja toimittaminen toteutuivat suunnitelman mukaisesti paitsi projektiraporttin osalta, joka toimitettiin projektin päätymisestä vuoden myöhässä.

	\newpage
	%
	%    Tehtävät, työmäärät ja tehtävänjako
	%
	\chapter{Roolit, vastuualueet ja tehtävät}
	
	Luvussa esitellään projektiryhmän jäsenistä projektipäällikkö ja varapäällikkö, heidän tehtävänsä sekä projektiryhmän toteuttamien tulosten vastuuhenkilöt. Lisäksi esitellään tehtäväkokonaisuuksien  jakautuminen  eri  tehtäviin  sekä  eri  tehtävien  suunnitellut  ja  toteutuneet työmäärät ja tehtäväjako.
	
	
	\section{Roolit ja vastuualueet}
	
	Projektipäällikkönä toimi Nuutti Rantanen, ja varapäällikkönä toimi Lauri Antila. Projektipäällikölle ei tullut projektin aikana odottamattomia poissaoloja, joten varapäällikön ei tarvinnut toimia projektipäällikön sijaisena missään vaiheessa projektia. 
	
	Projektipäällikön vastuulle kuuluivat projektin suunnitteleminen ja hallinta, projektin tilan seuraaminen ja raportointi, jäsenten ajankäytön seuranta, tiedotus ja tehtävienjako. Projektipäällikkö vastasi käytännössä projektisuunnitelman ja -raportin laatimisesta.
	
	Projektiryhmässä toteutetut keskeisimmät tulokset ja vastuuhenkilöt on esitetty taulukossa \ref{vastuualueet}. Vastuuhenkilö ei ollut vastuussa koko tuloksen toteuttamisesta itsenäisesti, mutta vastasi sen laadusta ja valmistumisesta sovitussa aikataulussa. Vastuuhenkilö toimitti tuloksen tarkastettavaksi ja vastaa tarpeellisten muokkausten toteutuksesta. Vastuuhenkilö tiedotti projektiorganisaatiota vastuullaan olevien tulosten etenemisestä. Projektin edetessä vastuualueita siirrettiin toisille jäsenille, että työtaakka tasaantuisi ja projekti valmistuisi ajallaan.
	\newpage
	\begin{center}
		\begin{table}[]
			\centering \resizebox{\textwidth}{!}{%
			\begin{tabular}{| l | l | l |}
				\hline
				\textbf{Tulos} & \textbf{Suunniteltu vastuuhenkilö} & \textbf{Toteutunut vastuuhenkilö} \\
				\hline \hline
				Projektisuunnitelma    & Nuutti Rantanen & Nuutti Rantanen\\
				\hline
				Projektiraportti       & Nuutti Rantanen & Nuutti Rantanen \\
				\hline
				Vaatimusmäärittely     & Outi Hilola  & Outi Hilola\\
				\hline
				Hakusivu & Lauri Antila & Lauri Antila \\
				\hline
				Etusivu       & Outi Hilola & Lauri Antila \\
				\hline
				Käyttöliittymä     & Outi Hilola & Lauri Antila\\
				\hline
				Käyttäjäroolit ja niiden toiminnot & Anne Vaarala & Ei toteutunut \\
				\hline				
				Taustaohjelmisto (backend) & Anne Vaarala & Anne Vaarala\\
				\hline
				Yhteenvetosivu    & Lauri Antila & Ei toteutunut \\
				\hline
				Palvelimen asennusohjeet & Ei suunniteltu &  Outi Hilola\\
				\hline
				Tietokanta   & Antti Kauppi & Antti Kauppi \\
				\hline
				Sovellusraportti       & Nuutti Rantanen & Outi Hilola\\
				\hline
				Järjestelmätestaus       & Antti Kauppi & Antti Kauppi\\
				\hline
				Käytettävyystestaus       & Lauri Antila & Outi Hilola \\
				\hline
			\end{tabular} }
			\caption{tulosten ja vastuuhenkilöiden toteutuma verrattuna
				suunnitelmaan.} \label{vastuualueet}
		\end{table}
	\end{center}\vspace{-10mm}

	Loppuliseen vastuuhenkilöjakoon (ks. taulukko \ref{vastuualueet}) vaikuttivat projektiryhmän sisäinen vastuualueiden jako sekä työn tasaaminen ryhmäläisen välille. Etusivun ja käyttöliittymän toteutuksen vastuu siirtyi Hilolalta Antilalle, koska Hilola keskittyi vaatimusmäärittelyyn projektin alussa. Sovellusraportin vastuu siirtyi projektin lopussa Hilolalle, koska hänellä oli aikaa sen työstämiseen. Muut vastuunsiirrot johtuivat, kun jokin ryhmän jäsen oli ottanut toisen vastuun itselleen. 
	
	\newpage
	\section{Tehtävien työmäärät ja työnjako}	
	
	Tehtävien työmäärien suunnittelussa hyödynnettiin aiempien sovellusprojektien (mm. Moveo)
	suunniteltuja   ja toteutuneita työtunteja. Työtuntien suunnittelussa
	huomioitiin myös projektiryhmän jäsenten aiempia taitoja. Tehtäväjako pyrittiin sopimaan siten, että kokonaistuntimäärä olisi jakautunut tasaisesti ryhmän jäsenten kesken.
	
	Projektiryhmän jäsenet eivät kirjanneet työtunteja yhtä tarkasti kuin projektisuunnitelmassa suunniteltiin, sillä he tekivät useampaa tehtävää samaan aikaan eikä työtuntien erittely onnistunut. Tämä johti siihen, ettei projektin lopussa voitu nähdä, mihin työtunnit  oli tarkalleen ottaen käytetty. Työtuntien kirjaus tehtäväkokonaisuuksittain onnistui kuitenkin hyvin, joten työmäärää voi analysoida luotettavasti tehtäväkokonaisuuksien toteutuneista tunneista.
	
	Projektiryhmän tavoitteena oli käyttää 20 viikkotyötuntia jokaista projektiryhmän jäsentä kohti toukokuun loppuun saakka, mutta projektin edetessä tuntimäärät eivät pysyneet tasaisina. Projektin keston oli tarkoitus olla 17 viikkoa, mutta projekti viivästyi vuoteen 2021 ja se valmistui viimeistä hyväksyntää myöten kesällä 2021.
	
	Sovellusprojektille  varatut  työtunnit,  oheiskurssit  pois  lukien,  ylittyivät  koko  projektiryhmän osalta noin 1112 tunnilla (ks. taulukko~\ref{tyomaarat}). Työtuntien ylitys johtui lähinnä projektin viivästymisestä, projektin etätyöluonteesta sekä projektiryhmän kokemattomuutta. Viivästyminen lisäsi tunteja palavereihin sekä muihin etätapaamisiin, etätyö aiheutti epätasaisia tunteja päivien välillä. 
	
	Työtunnit  jakaantuivat  melko epätasaisesti projektiryhmän jäsenten  kesken. Eniten ja vähiten työtunteja kirjanneiden osalta työtuntierot olivat noin 180 tuntia, joka vastaa vajaan yhdeksän viikon työtunteja yhdeltä projektin jäseneltä.
	
	Projektille suunnitellut työtunnit ylittyivät projektin jäsenten osalta hieman eri aikaan. Sovelluksen toteutukseen  osallistuneet   projektin jäsenet ylittivät suunnitellut työtunnit aikaisemmin. Projektipäällikön  työtunnit  kasvoivat  projektin loppua kohden,  jolloin suunnitellut työtunnit ylittyivät viikolla 44. Projektipäällikön työtunnit koostuivat loppuvaiheessa projektin viimeistelystä ja projektiraportin kirjoittamisessa.
	
	\section{Työtuntien jakautuminen tehtäväkokonaisuuksittain}
	
	Tässä luvussa käydään läpi tuntiaikaseuranta ja analysoidaan eroja suunniteltuun. Tuntiaikaseurannasta on jaoteltu tehtäväkokonaisuuksien mukaan, joka hieman eroaa Excel--taulukkoon \cite{aika_excel} merkatuista tunneista, koska Excel--taulukossa on merkattu tunteja suunnitelmasta poikkeavalla tavalla. 
	
	\begin{center}
		\begin{table}[H]
			\centering			\resizebox{\textwidth}{!}{%
			\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}

				 & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{AK}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
				& S & T & S & T & S & T & S & T & S & T & S & T \\
				\hline \hline
				Projektin hallinta & 115 & 169:35 & 16 & 36:19 & 10 & 32:35 & 10 & 71:30 & 10 & 45:00 & 161 & 358:59\\
				\hline
				Palaverit     &50 & 201:55 & 36 & 165:31 & 36 & 175:45 & 36 & 191:25 & 36 & 173:00 & 199 & 914:21\\
				\hline
				Esitutkimus &29  & 5:00 & 45 & 153:20 & 45 & 142:05 & 45 & 9:15 & 45 & 60:50 & 209 & 379:30\\
				\hline
				Vaatimusmäärittely       & 1  & 0:00 & 1& 0:00& 1&0:00 &1 & 101:28 & 26 & 0:00 &30 & 101:28 \\
				\hline
				Suunnittelu     & 7  & 0:00 & 19 & 12:20 & 21 & 17:15 & 44 & 101:25 & 18 & 65:00 & 109 & 156:40\\
				\hline
				Toteutus &14 & 0:00 & 107 & 215:59 & 131 & 111:05 & 104 & 0:45 & 124 & 65:45 & 480 & 393:34 \\
				\hline				
				Järjestelmätestaus & 9 & 8:45 & 9 & 3:25 & 7 & 12:40 & 7 & 0:50 & 35 & 22:55 & 67 & 48:05\\
				\hline
				Käytettävyystestaus    & 9 & 1:30 & 35 & 1:30 & 7 & 0:00 & 7 & 33:00 & 7 & 1:30 & 65 & 37:30\\
				\hline
				Viimeistely   & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & --  \\
				\hline
				Oheiskurssi     &  74 & 36:30 & 74 & 44:30 & 74 & 34:55 & 74 & 49:55 & 74 & 38:15 & 371 & 204:05 \\
				\hline
				
				     &  & & & & & & & & & & &\\
				\hline
				Projektin tunnit yhteensä   & 280  & 428:35 & 280 & 607:04 & 278 & 504:40 & 281 & 539:58 & 306 & 447:35 &  1415 & 2527:52\\
				\hline
				      &  & & & & & & & & & & & \\
				\hline
				Projektin ja  &  & & & & &  & & & & & & \\
				
				oheiskurssien tunnit yhteensä & 354 & 465:05 & 364 & 651:34 & 352 & 539:53 & 350 & 589:53 & 368 &485:50 &   1788 & 2731:57 \\
				\hline
			\end{tabular} }
			\caption{Yhteenveto toteutuneista työmääristä tehtäväkokonaisuuksittain.} \label{tyomaarat}
		\end{table}
	\end{center}\vspace{-10mm}
	
	
	\textbf{Projektin hallintaan} käytetyt työtunnit \\
	
	Projektin hallintaan käytetyistä työtunneista valtaosa osui Rantaselle ja Hilolalle raportointitöiden, kuten projektisuunnitelma, projektiraportti sekä sovellusraportti, osalta. Muiden projektiryhmän jäsenten töistä valtaosa oli raportointia ja muita tehtäviä, kuten
	tiedotusta. Muut tehtävät kuvastavat satunnaisia tai heikosti merkattuja työtunteja tuntikirjanpidossa. Osaan osa-alueeseen oli suunniteltu tunteja, mutta tunnit lopullisessa tuntikirjanpidossa oltiin merkattu yhteisen otsakeen alle.
	

		\begin{center} 
		\begin{table}[H]
			\centering
			\resizebox{\textwidth}{!}{%
			\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
				\cline{1-13}
				\multirow{2}{*}{}
				\textbf{Projektin hallinta} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{AK}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
				& S & T & S & T & S & T & S & T & S & T & S & T \\
				\hline \hline
				Projektisuunnitelma     & 35 & -- & 1 & -- & 1 & -- & 1 & -- & 1 & -- & 39 & --\\
				\hline
				Projektiraportti     & 35 & -- & 2 & -- & 2 & -- & 2 & -- & 2 & -- & 43 & --\\
				\hline
				Seuranta ja hallinta &  15 & 88:15 & 4 & 2:15 & 0 & 12:05 & 0 & 1:45 & 0 & 10:40 & 19 & 115:00\\
				\hline
				Tiedotus       & 10 & 4:00 & 4 & 0:00 & 4 & 1:40 & 4 & 8:00 & 4 & 0:00 & 26 & 13:40 \\
				\hline
				Raportointi     & --   & 59:05 & -- & 32:24 & -- & 7:30 &  --& 25:15 & -- & 39:30 & --  & 163:44\\
				\hline
				Tulosten viimeistely ja kokoaminen & 20 & -- & 5 & -- & 3 & -- & 3 & -- & 3 & -- & 34 & -- \\
				\hline	Muut tehtävät & -- & 18:15 & -- & 3:55 & -- & 12:45 & -- & 29:10 & -- & 5:30 & -- & 68:30\\ \hline			
				\textbf{Yhteensä} & 115 & 169:35 & 16 & 36:19 & 10 & 32:35 & 10 & 71:30 & 10 & 45:00 & 161 & 358:59\\
				\hline
			\end{tabular} }
			\caption{Projektin hallinnan suunniteltu ja toteutunut työmäärä.} \label{proj_hal}
		\end{table}
	\end{center}\vspace{-10mm}


	\textbf{Palaverit} käytetyt työtunnit \\
	
	Palavereihin projektiryhmä käytti suunniteltua enemmän aikaa, koska projekti venyi yli vuoden mittaiseksi ja Covid--19--pandemia pakotti ryhmän viestimään sisäisten palaverien avulla. Tästä johtuu, että sisäisten palavereihin käytettiin noin 100 tuntia. Epätasaisuudet sisäisissä palavereissä johtuu laiskasta tuntien kirjaamisesta sekä sellaisista sisäisitä palavereistä, missä keskusteltiin vain muutamaa ryhmäläistä koskevasta asiasta, kuten kehitystyöpalaverit. Sisäsiin palavereihin ei oltu suunniteltu tunteja, koska projektin alussa etätyötä ei oltu suunniteltu.


\begin{center}
	\begin{table}[H]
		\centering
		\resizebox{\textwidth}{!}{%
		\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}
			\textbf{Palaverit} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{AK}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
			& S & T & S & T & S & T & S & T & S & T & S & T \\
			\hline \hline
			Esityslistat     & 5 & 17:45 & 1 & 2:15 & 1 & 3:45 & 1 & 4:55 & 1 & 3:00 & 9 & 31:40\\
			\hline
			Palaverit     & 20 & 30:05 & 20 & 38:25 & 20 & 32:10 & 20 & 36:05 & 20 & 44:05 & 100 & 180:05\\
			\hline
			Pöytäkirjat & 15 & 30:30 & 15 & 19:20 & 15 & 28:25 & 15 & 48:00 & 15 & 36:45 & 75 & 163:00\\
			\hline
			Tilakatsaukset       & 10 & 16:30 & 0 & 0:00 & 0 & 0:00 & 0 & 0:00 & 0 & 0:00 & 15 & 16:30\\
			\hline
			Sisäiset palaverit & --  & 94:00 & -- & 103:16 & -- & 106:35 & -- & 95:20 & -- & 86:40 & -- & 485:51 \\ \hline
			Muut tehtävät & -- & 13:00 & -- & 2:15 & -- & 4:50 & -- & 12:00 & -- & 5:50 & -- & 39:05\\
			\hline
		%	Aihealueeseen tutustuminen     &  & & & & & & & & & &  &\\
		%	\hline			
			\textbf{Yhteensä} & 50 & 201:55 & 36 & 165:31 & 36 & 175:45 & 36 & 191:25 & 36 & 173:00 & 199 & 914:21\\
			\hline
		\end{tabular}
		}
		\caption{Palaverien suunniteltu ja toteutunut työmäärä. } \label{proj_pala}
	\end{table}
\end{center}\vspace{-10mm}


	\textbf{Esitutkimukseen} käytetyt työtunnit
	
	Projektiryhmä käytti aihealueeseen tutustumiseen suunniteltua vähemmän aikaa, koska projektiryhmä omaksui aihealueen nopeasti. Työkaluihin tutustuminen vei suunniteltua paljon enemmän aikaa, koska työkalut uusia projektin jäsenille. Tunnit Antilan ja Vaaralan osalta ylittyivät noin 100 tunnilla, koska uudet työkalut tarvitsivat suunniteltua enemmän tutustumista.

\begin{center}
	\begin{table}[H]
		\centering 		\resizebox{\textwidth}{!}{%
		\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}
			\textbf{Esitutkimus} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{AK}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
			& S & T & S & T & S & T & S & T & S & T & S & T \\
			\hline \hline
			Aihealueeseen tutustuminen     & 25 & -- & 30 & 1:00 & 30 & 10:00  & 30 & 5:00 & 30 & 2:30 & 145 & 18:30\\
			\hline
			Työkaluihin tutustuminen     & 4 & 5:00 & 15 & 152:20 & 15 & 132:05 & 15 & 4:15 & 15 & 58:20 & 64 & 352:00\\
			\hline
			\textbf{Yhteensä} & 29  & 5:00 & 45 & 153:20 & 45 & 142:05 & 45 & 9:15 & 45 & 60:50 & 209 & 379:30\\
			\hline
		%	Taustaohjelmisto (backend) &  & & & & &  & & & & & &\\
		%	\hline
		\end{tabular} }
		\caption{Esitutkimuksen suunniteltu ja toteutunut työmäärä.} \label{proj_esitut}
	\end{table}
\end{center}\vspace{-10mm}


	\textbf{Vaatimusmäärittelyyn} käytetyt työtunnit	\\

 	Hilola toteutti vaatimusmäärittelyn, joten hänellä on ainoastaan tunteja. Tunnit ylittivät suunnitellun reilusti, koska vaatimusmäärittelyä piti täydentää ja päivittää	projektin edetessä. Tunnit vaatimusmäärittelyssä ylittyivät noin 80 tunnilla, koska vaatimusmäärittelyä muokattiin läpi koko projektin.

\begin{center}
	\begin{table}[H]
		\centering
		\resizebox{\textwidth}{!}{%
		\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}
			\textbf{Vaatimusmäärittely} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{AK}  & \multicolumn{2}{ c|}{Kaikki}   \\ \cline{1-13}
			& S & T & S & T & S & T & S & T & S & T & S & T \\
			\hline \hline
			Suunnittelu     & 1  & 0:00 & 1 & 0:00 & 1 & 0:00 & 6 & 1:40 & 1 & 0:00 &10 & 1:40\\
			\hline
			Raportointi     & 0 & 0:00 & 0&0:00 & 0& 0:00&20 & 99:38 &0 &0:00 & 20& 99:38\\
			\hline			
			\textbf{Yhteensä} & 1  & 0:00 & 1& 0:00& 1&0:00 &1 & 101:28 & 26 & 0:00 &30 & 101:28\\
			\hline
		\end{tabular} }
		\caption{Vaatimusmäärittelyn suunniteltu ja toteutunut työmäärä.} \label{proj_vaat}
	\end{table}
\end{center}\vspace{-10mm}

	\textbf{Suunnitteluun} käytetyt työtunnit 
	
	Projektiryhmä käytti suunnitteluun suunniteltua enemmän aikaa, koska sovellus toteutettiin alusta loppuun. Suunnitteluun kuuluivat käyttöliittymän suunnitelmat, taustaohjelmiston suunnittelu sekä tietokannan suunnittelu. Suunnittelun tunneista Hilolla meni noin 40 tuntia suunniteltua enemmän, koska suunnittelu oli alimitoitettu. Osaan osa-alueeseen oli suunniteltu tunteja, mutta tunnit lopullisessa tuntikirjanpidossa oltiin merkattu yhteisen otsakeen alle.

\begin{center}
	\begin{table}[H]
		\centering 	\resizebox{\textwidth}{!}{%
		\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}
			\textbf{Suunnittelu} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{AK}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
			& S & T & S & T & S & T & S & T & S & T & S & T \\
			\hline \hline
			Graafikan esityssivu & 1 & -- & 5  & -- & 2 & -- & 12 &  -- & 2 &  -- & 22 & --\\ \hline
			Yhteenvetosivu & 1 & -- & 2  &-- & 2 & -- & 5  & -- & 2 & -- & 12 & --\\ \hline
			Käyttöliittymä & 1 & 0:00 & 5 & 10:05  & 2 & 0:00 & 20 & 58:35  & 2 & 0:00 &30 & 68:40\\ \hline
			Käyttäjäryhmien määrittely & 1 & -- & 2 & -- & 5 & -- & 2 & -- & 2 & -- & 12& --\\ \hline
			Taustaohjelmisto (backend) & 1 & 0:00 & 0 & 0:00 & 5 & 8:45 & 0 & 0:00 & 5 & 6:45 & 11 & 15:30 \\ \hline
			Tietokanta & 1 & 0:00 & 0 & 1:15 & 5 & 8:30 & 0 & 4:30 & 5 & 58:15 & 11 & 72:30\\ \hline
			Hallintasivu & 1 & -- & 5 & -- & 0 &-- & 5 & -- & 0 & -- & 9 & -- \\ \hline
			\textbf{Yhteensä} & 7  & 0:00 & 19 & 12:20 & 21 & 17:15 & 44 & 101:25 & 18 & 65:00 & 109 & 156:40\\ \hline
		\end{tabular} }
		\caption{Suunnittelun suunniteltu ja toteutunut työmäärä. } \label{proj_suun}
	\end{table}
\end{center}


\textbf{Toteutukseen} käytetyt työtunnit

Antila toteutti käyttöliittymän, Vaarala ja Kauppi toteuttivat taustaohjelmiston sekä Kauppi toteutti tietokannan ja datan siirron tietokantaan. Käyttöliittymän ohjemointiin meni noin 100 tuntia suunniteltua enemmän ja se kasautui Antilalle sekä loppuvaiheessa Vaarala auttoi Antilaa viimeistelemään käyttöliittymän. Taustaohjelmistokin kasautui pääosin Vaaralan harteille ja hän teki noin 50 tuntia suunniteltua enemmän.

\begin{center}
	\begin{table}[H]
		\centering 	\resizebox{\textwidth}{!}{%
		\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}
			\textbf{Toteutus} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{Ak}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
			& S & T & S & T & S & T & S & T & S & T & S & T \\
			\hline \hline
			Graafikan esityssivu     & 2 & -- & 13 & -- & 2 & -- & 10 & -- & 2 & -- & 26 & --\\
			\hline
			Yhteenvetosivu     & 2 & -- & 2 & -- & 2 & -- & 2 & -- & 40 & -- & 48 & --\\
			\hline			
			Käyttöliittymä & 2 & 0:00 & 50 & 215:59 & 0 & 13:05 & 50 & 0:45 & 0 & 0:00 & 102 & 229:49\\
			\hline
			Käyttäjäryhmien määrittely     & 2 & -- & 2 & -- & 30 & -- & 2 & -- & 2 & -- & 38 & --\\
			\hline
			Taustaohjelmisto (backend)     & 2 &  0:00 & 0 &  0:00 & 50 & 98:00 & 0 &  0:00 & 35 & 15:00 & 87 & 113:00 \\
			\hline			
			Tietokanta & 2 & 0:00 & 0 & 0:00 & 47 & 0:00 & 0 & 0:00 & 45 & 12:30 & 97 & 12:30\\
			\hline	
			Datan siirto tietokantaan & 0 & 0:00 & 0 & 0:00 & 10 & 0:00 & 0 & 0:00 & 10 & 38:15 & 20 & 38:15\\
			\hline		
			Hallintasivu & 2 & -- & 40 & -- & 0 & -- & 40 & -- & 0 & -- & 82 & --\\
			\hline	
			\textbf{Yhteensä} & 14 & 0:00 & 107 & 215:59 & 131 & 111:05 & 104 & 0:45 & 124 & 65:45 & 480 & 393:34 \\
			\hline
		\end{tabular} }
		\caption{Toteutuksen suunniteltu ja toteutunut työmäärä.} \label{proj_tot}
	\end{table}
\end{center}

\textbf{Järjestelmätestauksen} käytetyt työtunnit 

Kauppi laati järjestelmätestaussuunnitelman. Antila, Rantanen sekä
Vaarala suorittivat järjestelmätestauksen testauskerrat, sekä laativat
testauskertojen raportit, Rantasen järjestelmätestauksen raporttia ei viimeistelty, joten sitä ei ole voitu hyväksyä, niin sitä ei ole sisälletytty projektin tuloksiin.

\begin{center}
	\begin{table}[H]
		\centering \resizebox{\textwidth}{!}{%
		\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}
			\textbf{Järjestelmätestaus} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{AK}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
			& S & T & S & T & S & T & S & T & S & T & S & T \\
			\hline \hline
			Suunnittelu     & 2  & 0:00 & 2 & 0:00 & 2 & 0:00 & 2 & 0:50 & 10 & 22:55 & 18 & 23:15 \\
			\hline
			Testauskerrat   & 5 & 3:15 & 5 & 2:35 & 5 & 4:10 & 5 & 0:00 & 5 & 0:00 & 25 & 10:00\\
			\hline
			Raportointi     & 2  & 5:30 & 2 & 0:50 & 0 & 8:30 & 0 & 0:00 & 20 & 0:00 & 24 & 14:50\\
			\hline			
			\textbf{Yhteensä} & 9 & 8:45 & 9 & 3:25 & 7 & 12:40 & 7 & 0:50 & 35 & 22:55 & 67 & 48:05\\
			\hline
		\end{tabular} }
		\caption{Järjestelmätestauksen suunniteltu ja toteutunut työmäärä.} \label{proj_jtest}
	\end{table}
\end{center}

\textbf{Käytettävyystestauksen} käytetyt työtunnit 

Käytettävyystestaus toteutettiin käytettävyyspäivänä Ojalan kurssilla. Hilola laati raportin päivän kulusta ja palautteista, johon kului noin 10 suunniteltua enemmän, raportointi oli suunniteltu Antilalle. Suunnittelussa ei ole työtunteja, koska suunnittelu tapahtui sisäisessä palaverissa. Suunnitteluun kuului tehtävien laatiminen sekä raportinlaatijan valinta.

\begin{center}
	\begin{table}[H]
		\centering \resizebox{\textwidth}{!}{%
		\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}
			\textbf{Käytettävyystestaus} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{AK}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
			& S & T & S & T & S & T & S & T & S & T & S & T \\
			\hline \hline
			Suunnittelu     & 2 & -- & 10 & -- & 2 & -- & 2 & -- & 2 & -- & 18 & --\\
			\hline
			Testauskerrat   & 5 & 1:30 & 5 & 1:30 & 5 & 0:00 & 5 & 1:30 & 5 & 1:30 & 25 & 6:00\\
			\hline
			Raportointi     & 2 & 0:00 & 20 & 0:00 & 0 & 0:00 & 0 & 31:30 & 0 & 0:00 & 22 & 31:30\\
			\hline			
			\textbf{Yhteensä} & 9 & 1:30 & 35 & 1:30 & 7 & 0:00 & 7 & 33:00 & 7 & 1:30 & 65 & 37:30\\
			\hline
		\end{tabular} }
		\caption{Käytettävyystestauksen suunniteltu ja toteutunuttyömäärä.} \label{proj_ktest}
	\end{table}
\end{center}

\textbf{Viimeistelyyn} käytetyt työtunnit

Viimestelyyn käytettyjä työtunteja ei ole merkattu työajanseurantaan, koska ne tunnit ovat sisällettynä muihin tunteihin. Täten viimeistelystä ei ole pohdintaa vaikka viimeistelyyn oli suunniteltu tunteja.

\begin{center}
	\begin{table}[H]
		\centering
		\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}
			\textbf{Viimeistely} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{AK}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
			& S & T & S & T & S & T & S & T & S & T & S & T \\
			\hline \hline
			Sovellusraportti     & 40  & --  & 2 & -- & 2 & -- & 2 & -- & 2 & & 38 & --\\
			\hline 
			Käyttöohjeet   & 0 & -- & 2 & -- & 0 & -- & 2 & -- & 0 & -- & 4 & --\\
			\hline
			Kehitys- ja tuotantoympäristön asennusohjeet     &  0 & -- & 0 & -- & 10 & -- & 0 & -- & 10 & -- & 20 & --\\
			\hline			
			Katselmoinnit     & 4 & -- & 4 & -- & 4 & -- & 4 & -- & 4 & -- & 20 & --\\
			\hline
			Lähdekoodin viimeistely   & 0 & -- & 4 & -- & 4 & -- & 4 & -- & 4 & -- & 16 & --\\
			\hline
			Sovelluksen luovutus     & 2 & -- & 2 & -- & 2 & -- & 2 & -- & 2 & -- & 10 & --\\
			\hline
			%Käyttöliittymä   &  & & & & & & & & & & &\\
			%\hline
			%Taustaohjelmisto (backend)   &  & & & & & & & & & & &\\
			%\hline
			\textbf{Yhteensä} & 46  & -- & 12 & -- & 20 & -- & 12 & -- & 20 & -- & 100 &--\\
			\hline
		\end{tabular}
		\caption{Viimeistelyn suunniteltu ja toteutunut työmäärä. } \label{proj_viim}
	\end{table}
\end{center}



\textbf{Oheiskurssien} työtunnit

Ryhmän tunnit oheiskurssien käytettyyn aikaan jäi noin puolta pienemmäksi odotetusta. Kurssien tuntitavoitteet olivat suoraan ohjeista, joten ne oltiin arvioitu liian korkeiksi.

\begin{center}
	\begin{table}[H]
		\centering \resizebox{\textwidth}{!}{%
		\begin{tabular}{| l | l | l | l | l | l | l | l | l | l | l | l | l |}
			\cline{1-13}
			\multirow{2}{*}{}
			\textbf{Oheiskurssit} & \multicolumn{2}{ c|}{NR} & \multicolumn{2}{ c|}{LA}  & \multicolumn{2}{ c|}{AV}   & \multicolumn{2}{ c|}{OH}  & \multicolumn{2}{ c|}{Ak}  & \multicolumn{2}{ c|}{Kaikki}   \\				\cline{1-13}
			& S & T & S & T & S & T & S & T & S & T & S & T \\
			\hline \hline
			Kirjoitusviestintä     & 25 & -- & 25 & -- & 25 & -- & 25 & -- & 25 & -- & 125 & --\\
			\hline
			Puheviestintä   & 25 & -- & 25 & -- & 25 & -- & 25 & -- & 25 & -- & 125 & --\\
			\hline
			Projektiviestintä IT-alalla     & --  & 23:00 & -- & 24:15 & -- & 21:20 & -- & 28:00 & -- & 21:15 & -- & 118:15\\
			\hline
			Sovellusprojektin hallinta   & 24 & 13:30 & 24 & 20:15 & 24 & 13:35 & 24 & 21:55 & 24 & 17:00 & 121 & 86:15\\
			\hline
			\textbf{Yhteensä} & 74 & 36:30 & 74 & 44:30 & 74 & 34:55 & 74 & 49:55 & 74 & 38:15 & 371 & 204:05\\
			\hline
		\end{tabular} }
		\caption{Oheiskurssien suunniteltu ja toteutunut työmäärä.} \label{proj_oheis}
	\end{table}
\end{center}
\newpage
	\section {Projektiryhmän työtunnit tehtäväkokonaisuuksittain}
	
	%\vspace{-6cm}
	
	Työtunnit  tehtäväkokonaisuuksittain  on  esitetty  kuvassa  ~\ref{fig:proj_aika}.  Sovelluskehitykseen  käytetty  osuus kokonaistuntimäärästä on yhteensä noin 44\%, josta 4\% on käytetty vaatimusmäärittelyyn, 7\% on käytetty sovelluksen suunnitteluun, 15\% on käytetty sovelluksen toteutukseen, 2\% on käytetty  järjestelmätestaukseen   ja   1\%   käytettävyystestaukseen.   Projektinhallintaan   käytetty   osuus kokonaistuntimäärästä on noin 13\% ja palavereihin 33\%. 
	

	\begin{figure}[H]
	\includegraphics[scale=0.3, height=10cm, width=\linewidth]{vaiheet.png}	\caption{Projektiryhmän työtunnit tehtäväkokonaisuuksittain.}\label{fig:proj_aika}
	\end{figure}

\newpage
	\section {Lauri Antilan työtunnit tehtäväkokonaisuuksittain}
	
	Antila toimi varapäällikkönä koko projektin ajan. Antila vastasi pääosin sovelluksen käyttöliittymän ohjelmoinnista. Antila myös suorittia kaksi järjestelmätestauskertaa ja laati järjestelmätestausraportteja kaksi kappaletta. Antilan työtunnit painoittuvat esitutkimukseen, työkaluihin tutustumiseen sekä toteutukseen, koska Antilan päävastuu oli käytettävien teknologioiden selvittäminen ja käyttöliittymän toteuttaminen. 
	
	\begin{figure}[H]
		\includegraphics[scale=0.3, height=10cm, width=\linewidth]{vaiheet_antila.png}	\caption{Antilan työtunnit tehtäväkokonaisuuksittain.}\label{fig:proj_aika_antila}
	\end{figure}
\newpage	
	\section {Outi Hilolan työtunnit tehtäväkokonaisuuksittain}
	
	Hilola vastasi projektissa käyttöliittymän suunnittelusta, vaatimusmäärittelyn laatimisesta, palvelimen asennusohjeista, tulosten kokoamisesta ja projektin viimeistelystä sekä käytettävyystestauksen raportista. Hilolan tunneissa näkyy hänen panostuksensa vaatimusmäärittelyyn, projektin hallintaan sekä käyttöliittymähahmotelmien luomiseen.

	\begin{figure}[H]
	\includegraphics[scale=0.3, height=10cm, width=\linewidth]{vaiheet_hilola.png}	\caption{Hilolan työtunnit tehtäväkokonaisuuksittain.}\label{fig:proj_aika_hilola}
	\end{figure}
\newpage	
	\section {Antti Kaupin työtunnit tehtäväkokonaisuuksittain}
	
	Kauppi vastasi projektin aikana sovelluksen tietokannan suunnittelusta ja toteutuksesta sekä järjestelmätestaussuunnitelman laatimisesta. Kaupin tunneissä näkyy hänen panostuksensa tietokannan suunnitteluun ja esitutkimukseen sekä tietokannan ja taustaohjelmiston toteutukseen. 
	
	\begin{figure}[H]
	\includegraphics[scale=0.3, height=10cm, width=\linewidth]{vaiheet_kauppi.png}	\caption{Kaupin työtunnit tehtäväkokonaisuuksittain.}\label{fig:proj_aika_kauppi}
	\end{figure}
\newpage	
	\section {Nuutti Rantasen työtunnit tehtäväkokonaisuuksittain}
	
	Rantanen toimi projektipäällikkönä koko projektin ajan. Rantanen laati projektisuunnitelmaa, projektiraportin ja vastasi viestinnästä, lähetti palaverikutsut, ylläpiti sisäisiä viestintä kanavia sekä otti yhteyttä Peda.net--yhdyshenkilöön, sekä laati tilakatsaukset palavereihin. Rantasen tunneissa näkyy hänen panostukseensa projektin hallintaan sekä palavereihin. 
	
	\begin{figure}[H]
	\includegraphics[scale=0.3, height=10cm, width=\linewidth]{vaiheet_rantanen.png}	\caption{Rantasen työtunnit tehtäväkokonaisuuksittain.}\label{fig:proj_aika_rantanen}
	\end{figure}		
\newpage		
	\section {Anne Vaaralan työtunnit tehtäväkokonaisuuksittain}
	
	Vaarala vastasi taustaohjelmiston ohjelmoinnista, käyttöliittymän erikielisistä versioista. Vaaralan tunneissa näkyy hänen panostuksensa teknologioiden esitutkimuksessa sekä taustaohjelmiston sekä käyttöliittymän toteutuksen auttamisessa.
	
	\begin{figure}[H]
		\includegraphics[scale=0.3, height=10cm, width=\linewidth]{vaiheet_vaarala.png}	\caption{Vaaralan työtunnit tehtäväkokonaisuuksittain.}\label{fig:proj_aika_vaarala}
	\end{figure}

	\chapter{Prosessi ja aikataulu}
	
	Luvussa  kuvataan projektin läpiviennissä käytettyä  ohjelmistokehitysprosessia  ja  toteutunutta aikataulua. Suunnitelman  mukaista  prosessia  noudatettiin  projektin  läpiviennissä  ja  sovelluksen kehittämisessä.
	
	Projektin suunniteltu aikataulu oli realistinen, muttei kuitenkaan toteutunut ja projekti viivästyi yhdeksällä kuukaudella. Projektiryhmä aloitti työskentelyn hitaasti, koska neljä projektiin osallistunutta eivät olleet aikaisemmin tehneet mitään laajempaa sovellusta. 
	

	
	\section{Prosessi}
	
	Projektin ensimmäisessä vaiheessa kartoitettiin toteutettavan ohjelman vaatimuksia, minkä perusteella laadittiin vaatimusmäärittelyä, käyttöliittymän hahmotelmia ja suunniteltiin sovelluksen rakenne. Lisäksi projektin läpivienti suunniteltiin. Esitutkimuksen aikana selvitettiin ja päätettiin lisäksi sovelluksen toteuttamiseen parhaiten soveltuvat kehitystyökalut.
	
	Ensimmäisen vaiheen jälkeen kehitetiin useassa vaiheessa sovelluksen käyttöliittymä, tietokantarakenne ja toiminnallisuudet. Kehitysvaiheiden aikana suunniteltiin ja toteutettiin käytettävyys-- ja järjestelmätestauksen testauskerrat. 
	
	Viimeisessä vaiheessa laadittiin sovellusraportti, projektikansiot, toinen kooodikatselmointi, palvelimen asennusohjeet sekä viimeisteltiin sovellus ja lähdekoodi tilaajalle luovutusta varten. Projektiraportti aloitetiin ennen kesää ja sitä työstetiin syksyyn 2021 asti.
	
	Projektin läpiviennissä hyödynnetiin Scrum-kehityksestä räätälöityä prosessia, jossa yhdisteltiin sekä inkrementaalista että iteratiivista lähestymistapaa. Kehitysvaiheissa kehitystä tehtiin kolmessa hyvin eripituisessa sykleissä niin, että toiminnallisuuksia lisättiin ohjelmaan vaatimusmäärittelyn prioriteettien, ohjaajien neuvojen sekä palavereissa sovittujen toimien mukaisesti. Kehitysvaiheita oli useita, joiden alussa ryhmä asetti itselleen tavoitteet lisättävistä, korjattavista tai parannettavista toiminnallisuuksista. Projektipalaverissa tarkastettiin saavutetut tulokset sekä päätettiin kesken jääneiden tavoitteiden toteuttamisesta ja uusista lisättävistä ominaisuuksista.
	
	\newpage
	\section{Aikataulu}\label{aikataulutus}
	
	Projekti alkoi torstaina 30.1.2020, ja se päättyi projektiraporttia lukuunottamatta 1.3.2021. Projektin läpiviennin suunniteltu aikataulu on esitetty tärkeimpien tehtäväkokonaisuuksien ja toteutettavien tulosten osalta kuvassa~\ref{fig:aikataulu} ja ja totetunut aikataulu on esitetty kuvassa ~\ref{fig:aikataulu_toteutunut}. 
	
	Tehtävien aikataulu ei toteutunut suunnitelman  mukaisesti. Taustaohjelmiston, tietokannan, käyttöliittymäsivun ja haun tulossivu kehitys toteutui suunniteltua hitaammin, sillä ominaisuuksia toteutettiin osittain  samaan  aikaan ja osa-alueiden tekijöiden keskinäinen viestintä oli hidasta. Tämän takia niiden kehitystä jatkettiin useammassa  kehitysvaiheessa. Myös vaatimusten tarkentamista jatkettiin suunnitelmasta poiketen koko projektin ajan. Tämä johtui aikataulun  suunnitteluvirheestä, sillä projektin vaatimukset täydentyivät koko projektin ajan.

	Sovellus hyväksyttiin 6.11.2020, joten sovelluksen  valmistuminen viivästyi noin kuudella kuukaudella suunnitellusta. Lokakuu koostui pienistä käytettävyyteen ja ulkoasuun liittyvistä korjauksista. Sovellusprojektin loppuminen viivästyi suunnitellusta noin yhdeksällä kuukaudella, sillä projektiryhmän kokemattomuus ja etätyö sekä kahden jäsenen kesätyöt hidastavat sovelluksen kehittämistä sekä syksyllä projektin jäsenten muut velvollisuudet. Lähdekoodin ja loppukatselmoinnin hyväksyminen tapahtui 21. palaverissa 6.11.2020. Sovellusraportin hyväksyminen tapahtui 17.12. ja projektiraportin hyväksyminen tapahtui 20.12.2021. Projektitraportti viivästyi projektipäälliköllä oli muita velvollisuuksia. 
	
\newpage
	\begin{figure}[H]
		\centering
		\scalebox{0.65}{\includegraphics[width=2\textwidth,height=\textheight, angle=90]{aikataulu2.png} }
		\caption{Projektin suunniteltu aikataulu} \label{fig:aikataulu}
	\end{figure}
	
	
\newpage
	\begin{figure}[H]
		\centering
		\scalebox{0.65}{\includegraphics[width=2\textwidth,height=\textheight, angle=90]{kodavi_aikataulu_toteutunut.png} }
		\caption{Projektin toteutunut aikataulu} \label{fig:aikataulu_toteutunut}
	\end{figure}
	
\newpage
	\section{Viikottaiset tunnit}
	
	Ryhmän työtuntien jakautuminen eri viikoille on esitetty kuvassa ~\ref{fig:viikot}. Sovellusprojektille suunniteltu kunkin jäsenen työtuntimäärä oli noin 20 työtuntia viikossa,eli koko projektiryhmältä yhteensä 100 tuntia viikossa, kuitenkaan tämä ei toteutunut siirryttyä etätyöhön sekä tuntien jäätyä suunniteltua alhaisimmiksi ennen etätyötä. Oheiskurssit lisäsivät projektijäsenten työtunteja noin 2 tunnilla viikossa. 
	
	\begin{figure}[H]
		\includegraphics[scale=0.5, height=10cm, width=\linewidth]{viikot.png}	\caption{Projektiryhmän yhteiset tunnit.}\label{fig:viikot}
	\end{figure}

	Projekti lähti heti alusta alkaen kohtalaisesti liikkeelle esitutkimuksineen sekä työkaluihin tutustumisiin, mutta siirryttyä etätyöhön projekti hidastui ja viivästyi vuoden 2021 maaliskuuhun ja sovelluksen kehitys päättyi marraskuussa 2020 ja sitä hienosäädettiin tammikuulle 2021. Alkuvaiheessa ryhmällä ei ollut tietoa niistä teknologioista, mitä tultaisiin projektissa käyttämään sekä ryhmän piti tutustua aihealueeseen. Nämä veivät projektin alusta aikaa ja siirryttyä etätöihin projektiryhmän oli selvitettävä työkalujen toimivuus kotimikroilla.  Vasta etätöissä ryhmä pystyi aloittamaan sovelluksen toteutuksen, mutta sitä hidastivat esimerkiksi jäsenten kokemattomuus, ohjaukseen hakemisen korkea kynnys sekä heikko sisäinen viestintä, joka aiheutti hidastuksia projektin etenemisessä. Viikko 12 oli ensimmäinen etätyöviikko ja ryhmä ei ollut valmistautunut etätyöhön, joten viikkolla 12 on muita kevään viikkoja vähemmän tunteja. Keskimäärin projektiryhmä käytti noin 53 tuntia viikossa projektin työstämiseen. Keväällä ennen etätöitä rymä teki noin 81 tuntia viikossa ja etätyöaikana  Kesällä 2020 tunteja tuli noin 34 viikossa ja syksyllä 40 tuntia viikossa. Tavoitteet oli noin 100 tuntia viikossa koko ryhmänä, mutta kesällä ja syksyllä ryhmä jäi noin 60 tuntia tavoiteesta, koska ryhmäläisten motivaatio projektia kohtaa oli heikentynyt sekä projektiryhmäläisten muut velvollisuudet.

	Kesäaikana projektiryhmä työskenteli Teams--alustalla aktiivisesti noin kerran viikkoon, mutta projekti eteni hitaasti kesäaikana. Vasta syksyllä ryhmä sai toteutettua toimivia ratkaisuja esiteltäväksi tilaajalle ja ohjaajille. 
	Projektin viimeistely tapahtui marras-- ja joulukuussa, kun ryhmä oli saanut vaaditut dokumentit poislukien projektiraportin hyväksyttävään muotoon.
\newpage

	\section{Antilan viikottaiset tunnit}
	Antilan työtunnit jakautuivat alkuprojektiin sekä loppuvaiheen ohjelmointiin sekä testaukseen. Antila teki valinnat työkaluista ja johti käyttöliittymäkehitystä projektin aikana. Antila pysyi ennen etätyötä hyvin 20 tunnin tavoitteessa, mutta kesän aikana hänen viikoittaiset työtuntinsa putosivat noin 10 tuntiin. Keväällä ennen etätyötä Antila teki keskimäärin noin 18 tuntia viikossa ja etätyöaikana noin 19 tuntia viikossa, molemmat olivat lähellä 20 tunnin viikkotavoitetta. Kesällä Antila teki keskimäärin noin 10 tuntia viikossa ja syksyllä noin 10 tuntia. Koko projektin aikana keskimääräiset tunnit olivat noin 13 tuntia viikossa, joka jäi hieman vajaaksi 20 tunnin viikkotavoitteesta. Tämä johtui pääosin pitkittyneen projektin aiheuttamasta motivaatiopulasta sekä Antilan kesän ja syksyn muista velvollisuuksista.
	
	\begin{figure}[H]
		\includegraphics[scale=0.5, height=10cm, width=\linewidth]{viikot_antila.png}	\caption{Antilan viikottaiset tunnit tunnit.}\label{fig:viikot_antila}
	\end{figure}
\newpage

	\section{Hilolan viikottaiset tunnit}
	Hilolan vastuulla olivat vaatimusmäärittely, sovelluksen ulkoasun suunnittelu sekä käytettävyystestauksen raportointi. Tämä näkyy projektin alkupään tunteina, koska Hilola oli vahvasti mukana suunnittelussa sekä projektin loppupuolen tunneissa näkyy hänen osallistumisensa testaukseen ja projektin läpiviemiseen sovellusraportin sekä tulosten kokoamisen osalta. Hilola pysyi ennen etätyötä hyvin 20 tunnin tavoitteessa, etätyöaikana ennen kesää Hilola teki noin 17 tuntia viikossa, mutta kesän aikana hänen viikoittaiset työtuntinsa putosivat muutamaan tuntiin ja syksyllä palasivat yli 10 tuntiin. 

	\begin{figure}[H]
			\includegraphics[scale=0.5, height=10cm, width=\linewidth]{viikot_hilola.png}	\caption{Hilolan viikottaiset tunnit tunnit.}\label{fig:viikot_hilola}
	\end{figure}
\newpage

	\section{Kaupin viikottaiset tunnit}
	Kauppi suunnitteli ja toteutti tietokannan ja auttoi taustaohjelmiston luonnissa. Tämä näkyy merkittävinä tunteina projektin alkuvaiheessa. Loppuvaiheessa Kauppi laati järjestelmätestaussuunnitelman. Kauppi jäi projektin alussa kesään asti 20 tunnin tavoitteesta noin 5 tuntia jälkeen sekä noin 4 tuntia etäaikana, Kauppi teki keskimäärin  noin 15 tuntia viikossa ennen etäaikaa ja noin 16 tuntia etäaikana ennen kesää, noin 5 tuntia viikossa kesällä ja syksyllä 7 tuntia viikossa. Tämä johtuu motivaation puutteesta, muista velvollisuuksista ja projektin pitkittymisestä, että kesän ja syksyn tunnit jäävät alhaisiksi.
	
	\begin{figure}[H]
		\includegraphics[scale=0.5, height=10cm, width=\linewidth]{viikot_kauppi.png}	\caption{Kaupin viikottaiset tunnit tunnit.}\label{fig:viikot_kauppi}
	\end{figure}
\newpage
	
	\section{Rantasen viikottaiset tunnit}
	Rantanen suunnitteli projektin etenemisen sekä tuotti projektisuunnitelman ensimmäisen version projektin alussa sekä loi git--repositorion projektin käyttöön. Rantanen laati yhden julkaisemattoman version järjestelmätestausraportista sekä projektiraportin projektin loppuvaiheessa. Rantasen tunnit keväällä ennen etä olivat noin 20 tuntia viikossa ja etäaikana noin 13 tuntia ja kesällä tunnit olivat noin 4 tuntia ja syksyllä nousivat 8 tuntiin viikossa. Tämä johtui muista velvollisuuksista ja motivaation puutteesta.
	\begin{figure}[H]
		\includegraphics[scale=0.5, height=10cm, width=\linewidth]{viikot_rantanen.png}	\caption{Rantasen viikottaiset tunnit tunnit.}\label{fig:viikot_rantanen}
	\end{figure}

\newpage

	\section{Vaaralan viikottaiset tunnit}
	Vaarala vastasi projektissa taustaohjelmistosta ja sen suunnittelusta. Vaarala myös toteutti ja raportoi järjestelmätestauksen suorituskerran. Vaarala pysyi hyvin 20 tunnin tavoitteessa ennen kesää, mutta kesällä työtunnit tippuivat noin 10 tuntiin ja syksyllä tunnit pysyivät kymmenessä tunnissa. 

	\begin{figure}[H]
		\includegraphics[scale=0.5, height=10cm, width=\linewidth]{viikot_vaarala.png}	\caption{Vaaralan viikottaiset tunnit tunnit.}\label{fig:viikot_vaarala}
	\end{figure}
	%\setcounter{anothercounter}{%
	%\numexpr\value{countername}+10\relax%
	%	}
	%\roman{countername}
	%\arabic{anothercounter}


	

	%
	%    Riskit ja niiden hallinta
	%
	\chapter{Riskit ja niiden hallinta} \label{riskit}
	
	Luvussa kuvataan projektissa ennakoituja riskejä sekä niiden todennäköisyyksiä ja vaikutuksia projektin läpivientiin ja tuloksiin. Lisäksi esitellään toimenpiteitä riskien ehkäisemiseen, ennakoimiseen ja niistä toipumiseen. Pahimmaksi osoittunut riski oli Covid--19 pandemian aiheuttama etätyö.
	
	\section{Riskien todennäköisyydet ja haittavaikutukset}
	
	Arvioidut ja toteutuneet projektin läpivientiä hidastaneet, estäviä tai toteutuneita riskejä on listattu taulukkossa~\ref{riskitaulukko}. Riskien toteutumisen todennäköisyyksiä ja haittavaikutuksia on arvioitu asteikolla matala, keskitaso ja korkea. 
	\begin{center}
		\begin{table}[ht]
			\centering 	\resizebox{\textwidth}{!}{%
			\begin{tabular}{| p{8cm} | c | c | c |}
				\hline
				\textbf{Riski} & \textbf{Arvioitu} & \textbf{Arvioitu} & \textbf{Toteutunut} \\
				 &  \textbf{Todennäköisyys} &  \textbf{Haittavaikutus} & \textbf{vakavuus} \\
				\hline \hline
				Tavoitteiden rajaus ja muutokset & keskitaso & korkea &  matala \\ \hline
				Jäsenten tietotaitojen puutteet & keskitaso & korkea & keskitaso \\ \hline
				Projektinhallinnan kokemattomuus & keskitaso & pieni & matala \\ \hline
				Vuorovaikutuksen puuteet ja virheet & matala & keskitaso & matala \\ \hline
				Jäsenten poissaolot ja muut velvoitteet & matala & keskitaso & keskitaso \\ \hline
				Tilaajan edustajien tai ohjaajien poissaolot & matala & keskitaso & ei toteutunut\\ \hline
				Mahdollinen etätyö & korkea & keskitaso & keskitaso \\ \hline
			\end{tabular} }
			\caption{Riskien toteutumisen todennäköisyys ja haittavaikutus.} \label{riskitaulukko}
		\end{table}
	\end{center}
	
	Luvuissa~\ref{rajaus}--\ref{etatyo} arvioidaan esiteltyjä riskien vaikutusta projektin läpivientiin ja tuloksiin.
	
	\section{Tavoitteiden rajaus ja muutokset} \label{rajaus}
	
	Tilaajan tavoitteet olivat yhteneviä ja suurelta osin selkeästi määritelty. Vaatimusmäärittelyn laatiminen näiden pohjalta oli suoraviivaista, mutta kuitenkin vaatimusmäärittelyyn tuli projektin edetessä muokkauksia tilaajan tarpeiden mukaan.
	
	Riskin ehkäisemiseksi ryhmän jäsenet muodostivat nopeasti keskenään yhtenevän ja tilaajien toiveita vastaavan näkemyksen tavoitteista. Tähän tarvittiin projektin aihealueeseen tutustumisessa riittävä työmäärä, joka toteutui esitutkimuksena. Ryhmän jäsenet kommunikoivat säännöllisesti ja aktiivisesti tilaajan edustajien kanssa, joten näkemykset tavoitteista olivat yhtenäisiä. Vaatimusmäärittelyn toiminnallisuuksien priorisointi oli tehtävä huolella, jotta oleellisimmat vaatimukset saadaan toteutettua projektin aikana ja saatiin sovittua ominaisuuksia jatkokehitykseen. Tilaajan kanssa sovittujen tavoitteiden muuttuessa sovittiin vaatimusmäärittelyn vaatimusten priorisoinnista ja siirrettin joitain vaatimuksia alemmalle prioriteetille tai kokonaan jatkokehityksessä toteutettavaksi. Osa projektin alussa sovituista tavoitteista ja toiminnallisuuksista ei toteutunut projektin aikana. Projektin toiminnalisuuksia rajattiin läpi projektin, mutta lopullinen kehys rajaukselle tuli 19.5.2020.
	
	\section{Jäsenten tietotaitojen puutteet}
	
	Projektissa toteutettavan WWW-sovelluksen kehittämisessä käytettiin useita projektiryhmän jäsenille uusia työkaluja,
	ohjelmointikieliä ja niiden kirjastoja sekä tekniikoita. Osalla jäsenistä oli osin aiempaa kokemusta käytetyistä ohjelmointikielistä ja WWW-sovelluksien toteuttamisesta sekä tietokantojen ja rajapintojen suunnittelusta ja käytöstä. Tietotaidon ja aiempien kokemusten puutteet vaikeuttivat asetettujen tavoitteiden saavuttamista projektin suunnitellussa aikataulussa.
	
	Yksittäisten ryhmän jäsenten erityisosaamista tietyistä työkaluista ja menetelmistä voitiin hyödyntää muiden jäsenten opastamisessa ja kohdattujen ongelmien ratkaisemisessa. Kehitysvaiheiden ongelmia pystyttiin ennakoimaan ja ehkäisemään valitsemalla käytettävät työkalut ja menetelmät aiemmin hyvin tunnetuista vaihtoehdoista. Projektin tekniseltä ohjaajalta kysyttiin neuvoa ohjelmistotuotannon ongelmatilanteissa ja projekti etenemisessä muilta ohjaajilta, joka auttoi projektiryhmää eteenpäin työskentelyssä. Projektiryhmä hyödynsi teknistä ohjaajaa projektin aikana ainakin työkalujen käytössä sekä ohjelmakoodin katselmoinneissa. Vastaavaa ohjaajaa hyödynnettiin vähemmän kuin teknistä ohjaaja, koska projektiryhmän kynnys yksinkertaisten kysymysten esittämiseen oli liian suuri, koska viestintäkanavat miellettiin kankeiksi. Projektiryhmän tavoitteena oli toimia ohjelmointipareina, että ongelmat voidaan ratkaista toverin kanssa ja tämä toteutui vain taustaohjelmiston kehittämisessä. Käyttöliittymän ohjelmoinnista vastasi vain Antila, joten ongelmatilanteet olivat vain hänelle ja hän pystyi niitä ratkaisemaan teknisen ohjaajan kanssa. 
	
	\newpage
	\section{Projektinhallinnan kokemattomuus}
	
	Osalla projektiryhmän jäsenistä oli aiempaa kokemusta pienimuotoisten projektien suunnittelusta, läpiviennistä ja hallinnasta. Projektipäälliköllä ei ollut aiempaa kokemusta projektin johtamisesta. 
	
	Projektinhallinnan kokemattomuudesta seurasi se, että projektin läpiviennille ja eri vaiheille toteutunut aikataulu ja työmäärä ei vastaa suunniteltua aikataulua. Tehtävien jako tasaisesti ryhmän jäsenten kesken ja jäsenten erityisosaamisen hyödyntäminen tuottivat myös vaikeuksia, koska projektinhallinta osoittautui etätyöskentelyn
	aikana hankalaksi. Projektinhallinnan kokemattomuuden, tehottoman ajankäytön sekä motivaation puutteen takia projektin läpiviennin aikataulu viivästyi tai tarpeellisia toiminnallisuuksia jäi toteuttamatta.
	
	Riskin ehkäisemiseksi huomattivat ryhmän jäsenet, jos he havaitsivat ongelmia projektin etenemisessä tai tehtävien suorittamisessa ja tämä auttoi projektia päättymään. Varapäällikkö ja projektiryhmän muut jäsenet avustivat ja neuvoivat projektipäällikköä hänen tehtävissään. Projektipäällikön ja kaikkien muiden ryhmän jäsenten tehtäviin kuului osaltaan oppia projektin hallintaa ja johtamista. 
	
	\section{Vuorovaikutuksen puutteet ja virheet}
	
	Tiedotus ja tiedonkulku olivat erittäin tärkeä osa projektin hallintaa sekä oleellisia koko projektiorganisaation toiminnalle. Hidas tiedonkulku projektiorganisaation jäsenten välillä vaikutti toteutusratkaisuihin, koska kehitystä tehtiin paljon yksin sekä kasvatti työmäärää, kun piti keskustella uudestaan samat asiat projektiryhmän kanssa, aiheuttaen projektin aikataulun viivästymisen. Tiedonkulku oli hidasta etätyöaikana, koska sisäisiä palavereja ei ollut joka päivä ja niiden kesto oli noin kaksi tuntia. 
	
	Tiedonkulun puutteisiin liittyvää riskiä pyrittiin ehkäisemään sopimalla tiedotuksen käytänteistä yhdessä projektiorganisaation kesken. Projektiryhmän jäsenet tiedottivat valmistuneista tehtävistä muille. Palavereissa esitettiin tilakatsaus projektin tilasta. Näin kaikki osapuolet olivat ajantasalla projektin tilasta ja etenemisestä. Projektiryhmän kokoontivat sisäisiin palavereihin riittävän usein, 2--3 kertaa viikossa, varsinkin etätyöaikana. Kehitysvaiheissa työn tekeminen yhteisessä projektihuoneessa nopeutti tiedonkulkua ja siten ongelmien ratkaisua, mutta etätyön alkaessa ryhmällä ei ollut pääsyä projektihuoneeseen, joten viestintää hoidettiin lähinnä Whatsapp--viestintäsovelluksella sekä Teams--alustalla ja nämä välineet riittivät projektiryhmälle.
	

	\section{Jäsenten poissaolot ja muut velvoitteet}
	 
	Projektiryhmän jäsenillä oli suunniteltuja ja ennakoimattomia poissaoloja projektin aikana. Ennakoimattomia poissaoloja olivat muihin kursseihin tai työtehtäviin liittyvät odottamattomat velvoitteet. Jäsenten heikko sitoutuminen projektiin kesällä viivästyttivät projektin etenemistä merkittävästi erityisesti kehitysvaiheissa.  
	
	Ryhmän jäsenillä Lauri Antila ja Outi Hilola oli projektin aikana kesätyöt välillä kesäkuu ja elokuu sekä Vaaralalla oli lyhyt kesäloma kesällä. Ryhmän projektipäällikkö Nuutti Rantasella eikä Kaupilla ollut pidempiä poissaoloja kesällä. 
	
	Projektiryhmässä oli enemmän jäseniä kuin monessa aiemmin läpiviedyssä sovellusprojektiryhmässä. Antilan ja Hilolan kesätyöt ja muiden jäsenten motivaatio viivästyttivät projektia hieman kesällä. Syksyllä jäsenten motivaatio projektia kohtaan oli laskenut merkittävästi sekä jäsenten muut velvollisuudet viivästyttivät projektia.  
	
	Odottamattomia poissaoloja oli erittäin vaikea ennakoida tai ehkäistä. Poissaoloriskin ehkäisemiseksi ja siitä toipumiseksi työtunnit ja tehtävät jaettiin tasaisesti ryhmän jäsenten kesken, kuitenkin työtunnit jakautuivat epätasaisesti johtuen heikosta työtehtävien jaosta. Tehtävien jaossa pyrittiin lisäksi siihen, että useammalla kuin yhdellä jäsenellä on tietoa sovelluksen keskeisimmistä toiminnoista ja toteutusratkaisuista, kuitenkin ainoastaan Antilalla oli tietoa käyttöliittymän ohjelmoinnista, joten hänen panoksensa projektiin kesällä viivästytti käyttöliittymän valmistumista vain kesän ajan. 
	
	Projektiryhmän jäsenten lyhytkestoiset poissaolot suunniteltiin huomioitavan työtuntien tasaamisella poissaolon jälkeen. Työtunteja suunniteltiin tasattavan myös etukäteen, jos poissaolo oli etukäteen ja hyvissä ajoin tiedossa. Ei ole varmuutta toteutuiko työtuntien tasaus suunnitelman mukaisesti, koska oli erittäin haastavaa seurata yksittäisen jäsenen todellista työajankäyttöä etäaikana. Poissaolot eivät vaikuttaneet merkittävästi projektin läpivientiin. Kuitenkin muut velvollisuudet aiheuttivat epäjatkuvuutta projektityöskentelyssä ja siksi projektia täytyi viivästyttää syksylle ja se taas puolestaan aiheutti motivaatiovajetta ryhmän jäsenissä.
	
	
	\section{Tilaajan edustajien tai ohjaajien poissaolot}\label{poissaolot}
	
	Projektiorganisaation muilla jäsenillä eli tilaajan edustajilla ja ohjaajilla ei ollut ennakoimattomia poissaoloja, mutta tilaajat sekä ohjaajista Santanen olivat kesälomalla heinäkuussa 2020. Vastaava ohjaaja ja tekninen ohjaaja olivat käytettävissä koko kesän. Tilaajan edustajien tai ohjaajien poissaolot eivät merkittävästi hidastaneet projektin etenemistä.
	
	Tilaajan edustajilla ja ohjaajilla ei ollut projektin alkaessa tiedossa suunniteltuja pidempiaikaisia poissaoloja paitsi kesäloma heinäkuussa 2020. Poikkeuksena tilaajan edustaja Jani Villbergin sairasloma ja Villberg ei osallistunut
	projektiin. Kaikki tilaajan edustajat eivät pystyneet aina olemaan paikalla tai osallistumaan jokaiseen palaveriin muiden työvelvoitteidensa vuoksi. Palavereihin osallistumista pyrittiin helpottamaan sopimalla palaverin ajankohdat kaikille sopiviksi. Tilaajan edustajat olivat lisäksi yliopiston sisältä, mikä helpottaa palavereihin osallistumista ja yhteydenpitoa. 
	
	Palavereista kirjoitettiin selkeät ja kattavat pöytäkirjat parantavat tiedotusta ja vähentävät poissaoloista aiheutuvia seurauksia ja uhkia projektin läpiviennille. Pöytäkirjoja lukemalla palaveriin osallistumattomat voivat seurata projektin etenemistä. Mikäli poissaolot tulivat projektiorganisaation tietoon hyvissä ajoin, niin niihin voitiin varautua ryhmän työtehtävien jaossa ja aikataulutuksessa. 
	
	\section{Etätyö}\label{etatyo}
	
	Projektiorganisaatiolle tuli suositus pysyä kotonaan kansainvälisen COVID--19--pandemian johdosta. Tämä tarkoitti, että ryhmän yhteinen työhuone ei ollut käytettävissä, yliopiston kokoustilat eivät olleet käytettävissä ja projektiryhmän mikrot eivät olleet käytössä vaan projektiryhmä toteutti projektin kotimikroillaan ja etätyönä. Etätyöhön siirtymisestä syntyi viikon viive, koska ohjelmistot oli asennettava kotimikroille, joka ei tuottanut jäsenille ongelmia. 

	Riskiä hallittiin projektiryhmän sisäisillä etäpalavereilla, projektiorganisaation palaverit siirrettiin etäpalavereiksi. Teams--alustalla käytävää viestintää hyödynnetään ohjaajiin ja tilaajiin entistä suuremmalla painoarvolla, kuten vaikka siirtämällä projektipalaverit ja koodikatselmoinnit kokonaan Teams--alustalle. Sähköpostilla toimitettiin viralliset dokumentit sekä esityslistat palavereihin ja Teams--alustalla jaettiin tiedostoja projektiorganisaation käyttöön sekä palaverit järjestettiin etäaikana Teams--alustalla. 
	
	Yleiseksi haittatekijäksi muodosti rauhallisen työtilan löytäminen, mikä haittasi yhtenäisen työjakson suorittamista, koska ympärillä olivia häiriötekijöitä oli liikaa. 

	\chapter{Jäsenten kokemuksia ja oppimaa}

	\section{Lauri Antilan kokemuksia ja oppimaa}
	
	Sovellusprojektiin hakiessani kirjoitin olevani kiinnostunut oppimaan WWW-sovellusten kehitystä, mutta käytännössä en omaa mitään tarvittavaa osaamista. Olin kuullut kaveriltani, että projektiin tulee tekninen ohjaaja, joka kyllä opastaa ongelmien ilmetessä. Teknistä ohjaajaa ei kuitenkaan löytynyt meille projektin ensimmäisten viikkojen aikana.
	
	Ehdotin projektiryhmällemme, että voisin vastata toteutettavan sovelluksen frontendista. Toiseksi frontend -kehittäjäksi valikoitui Hilola, jolla on entuudestaan graafista osaamista. Graafinen puoli ei ole koskaan ollut vahvuuksiani, joten olin erittäin tyytyväinen valintaan.
	
	Olen seurannut web-teknologioita jonkun aikaa. Edellisen liikuntatieteelliselle tiedekunnalle kehitetyn sovelluksen teknologiat vaikuttivat vanhentuneelta. Teknisen ohjaajan puuttuessa jonkun tuli päättää mitä teknologioita alamme tutkia. Tiesin, että React on ollut pinnalla jo pidempään ja on erittäin suosittu teknologia frontend-kehitykseen. Backendin teknologiaksi Spring Boot tuntui hyvältä vaihtoehdolta, sillä tiimimme backend-kehittäjillä oli kokemusta Javasta ohjelmointikielenä.
	
	Tutustuessani Reactiin tajusin hyvin nopeasti, että Javascript-osaamiseni ei ollut tarvittavalla tasolla. Opiskelin eri ECMAScript-versioiden tuomia ominaisuuksia. Jossain vaiheessa totesin, etten voi kuitenkaan oppia kaikkea, vaan minun täytyy vain siirtyä Reactin opetteluun. Yritin lähestyä Reactia erilaisten tutoriaalien ja Udemy-kurssien kautta. Useissa tutoriaaleissa käytettiin Reactin vanhempia versioita ja käytänteitä. Tämä aiheutti ongelmia koodin ja rakenteen hahmottamisessa.
	
	Sovelluksemme piti alun perin olla kohtuullisen yksinkertainen tietokannasta haettavan datan visualisointisovellus. Projektin edetessä uusia ominaisuuksia ja vaatimuksia tuli kuin sieniä sateella. Minua hirvitti, ja esitin huomioita rajallisista taidoistamme. Santanen kuitenkin uskoi vahvasti, että voimme toteuttaa mitä tahansa.
	
	Saimme projektiin teknisen ohjaajan, jolla oli osaamista backendista ja Javasta, mutta jolle React ei ollut kovin tuttu. Tämä oli minulle kieltämättä pettymys, sillä ajattelin, että joudun ongelmatilanteissa turvautumaan jatkossakin intialaisiin Youtube-videoihin ja blogikirjoituksiin. Samaan aikaan kävi ilmi, että vaatimusmäärittely sekä käyttöliittymän graafinen suunnittelu vievät kaiken Hilolan ajan, eikä hänellä ole juuri mahdollisuutta frontendin kehittämiseen kanssani.
	
	Sovellukseen haluttujen ominaisuuksien määrä kasvoi, ja sitä myötä myös käyttöliittymän vaatimukset muuttuivat. Hilola teki useita hahmotelmia, ja yritin parhaani mukaan toteuttaa näitä koodilla. Samalla yritin saada sovelluksen sivurakenteesta järkevää kokonaisuutta Reactia käyttäen. Sovelluksen eri käyttäjäroolit ja tehtäväominaisuudet määräsivät osaltaan koodin vaatimuksia ja rakennetta.
	
	Koronaepidemian aiheuttama uusi etätyöskentelytapa ja projektiryhmän kokemattomuus johtivat stressin kertymiseen viikkojen edetessä. Toukokuun alussa aloimme projektiryhmän sisäisesti keskustella sovelluksen supistamisesta kunnianhimoisesta opetustyökalusta takaisin alun perin suunnitellun kaltaiseksi visualisointisovellukseksi. Olin muuttamassa Tampereelle kesätöiden takia, ja tiesin työtahtini hidastuvan merkittävästi. Lähetimme tilaajan edustajille sähköpostia toiveistamme sovelluksen vaatimuksiin liittyen. Tilaajan edustajat osoittivat ymmärrystä. Meillä oli yhteinen tavoite saada toimiva sovellus aikaiseksi, vaikka se olisikin suppeampi kuin oli ehditty haaveilla. Tämä oli helpotus, mutta samalla tuntui, että jos olisimme aiemmin keskittyneet tilaajien alkuperäiseen näkemykseen, sovellus olisi jo paljon paremmalla mallilla.
	
	Projektiryhmän backendia hoitaneet Kauppi ja Vaarala suoriutuivat tehtävästään todella hienosti ja vauhtiin päästessään ohittivat frontendin kehityksen tasolla. Oli selvää, että projekti valmistuisi aikaisintaan kesän loppupuolella. Kesän aikana työskentelyni projektin parissa oli satunnaista ja tökkivää. Edistys käyttöliittymässä oli erittäin hidasta. Backendin frontendille tarjoaman vastausdatan rakenne tuotti suurta päänvaivaa taulukon muodostuksessa. Tehtiin päätös, ettei backendia enää muokata tältä osin, vaan data pitää käsitellä frontendissa.
	
	Syyskuun alussa muutin takaisin Jyväskylään ja pääsin keskittymään projektiin huomattavasti paremmin. Edistystä alkoi tulla, kun työskentelyni ei ollut niin katkonaista. Backendin tarjoama data vaati monimutkaisia algoritmeja, jotta data saatiin taulukkoon oikeassa muodossa. Tämä ei ollut ehkä oikeaoppisin tapa, sillä käsittääkseni tavallisesti sovelluksissa backend tarjoaa datan oikeassa muodossa frontendille. Graafin kanssa oli myös haasteita, sillä käytetty Recharts.js-kirjasto soveltuu lähes mihin tahansa, mutta vaati paljon yritystä ja erehdystä.
	
	Sovellus saatiin palvelimelle täysin teknisen ohjaajamme Ylä--Sahran ansiosta. Ilman osaavaa teknistä ohjaajaa sovelluksen laitto palvelimelle olisi vaatinut viikkojen opiskelua. Palvelimelle laiton jälkeen sovelluksen toiminnassa oli vielä korjattavaa. Projektin viimeiset pari kuukautta kuluivat sovellusta hioessa ja raportteja kirjoittaessa.
	
	Sovellusprojekti on ollut varmasti haastavin ja opettavin kokemus yliopiston aikana. Sovellusprojekti kattoi kaikki sovelluskehityksen vaiheet. Yhteistyö ja kommunikaatio olivat tärkeässä asemassa projektin edetessä. Teknisen ohjaajan puoleen tuli käännyttyä selkeästi liian harvoin. Sovellusprojektin haasteet aikataulussa ja vaatimusten muuttumisessa vastaavat kuulemaani ammattilaisten työelämän projekteista. Uskon, että sovellusprojekti antaa hyvät valmiudet työelämää ajatellen. Sovellusprojekti on ollut pitkä ja raskas, mutta lopulta palkitseva kokemus.

	\section{Outi Hilolan kokemuksia ja oppimaa}
	
	Sovellusprojektin alussa toiveenani oli oppia suunnittelemaan käytettävyydeltään laadukkaita ja käyttökokemukseltaan miellyttäviä käyttöliittymiä. Minulla oli kokemusta käyttöliittymäsuunnittelusta aiemmasta tutkinnostani muotoilijana (AMK) ja olin tietotekniikan maisteriopinnoissa suorittanut myös useita kognitiotieteen opintojaksoja. Halusin kuitenkin syventää taitojani ja yhdistää teoriaosaamista käytäntöön. Projektin ohjaajalta sain kuulla, että minut oli valittu projektiin nimenomaan suorittamieni kognitiotieteen opintojen perusteella, koska tilaajan edustajat olivat korostaneet kehitettävän sovelluksen käytettävyyden tärkeyttä. Vastasinkin projektissa käyttöliittymän suunnittelusta ja sain toivomaani kokemusta.
	
	Opin paljon uutta myös tilaajan kanssa työskentelystä. Etenkin projektin alussa pyrin aktiivisesti selvittämään, mitkä tilaajan tarpeet ja toiveet sovelluksen suhteen olivat. Kirjasin toiveita ja vaatimuksia ylös, ja pian vaatimusmäärittely päätyi luontevasti minun vastuulleni. Se osoittautui huomattavasti haastavammaksi ja työläämmäksi tehtäväkokonaisuudeksi kuin osasin etukäteen odottaa. Ennen Sovellusprojektin alkamista olin toivonut kehittyväni myös ohjelmoijana kurssin aikana. Huomasin kuitenkin projektin edetessä, että olin ottanut vastuulleni kaksi laajaa tehtäväkokonaisuutta, joten luovuin toiveestani kehittää ohjelmointitaitojani projektissa.
	
	Opin uutta myös projektityöskentelystä, vaikka minulla olikin hieman aiempaa kokemusta siitä. Etenkin viestinnän ja suunnitelmallisuuden tärkeys korostui mielestäni projektin aikana. Ryhmätyöskentelyssä pidin erityisesti siitä, että projektiryhmän jäsenistä oli helppo saada vertaistukea uuden tilanteen edessä. Suurin oppimisen hetki projektissa oli mielestäni se, kun projektiryhmän jäsenet joutuivat myöntämään työmäärän kasvaneen liian suureksi. Asia tuotiin projektiorganisaation tietoon, ja tilaajan edustajat ymmärsivät tilanteen hyvin. Tilanteen seurauksena tärkeimmät sovelluksen ominaisuudet päätettiin toteuttaa projektissa ja muut sovittiin jatkokehitykseen.
	
	Oppimiskokemusten ohella kohtasimme projektissa myös haasteita. Maaliskuussa koronapandemia pakotti projektiryhmän etätyöskentelyn pariin, ja jouduimme omaksumaan täysin uudet työskentelytavat. Etätyöskentely oli mielestäni epämotivoivaa ja sai minut pysymään entistä tarkemmin omalla mukavuusalueellani. Koin, että uusien asioiden opettelu itsenäisesti olisi ollut liian haastavaa poikkeuksellisessa tilanteessa. Koko projektiryhmän työtahti hidastui ja projekti venyi kesäkuukausien puolelle, jolloin kävin myös kesätöissä. Kesäsitoumukset venyttivät projektin valmistumista entisestään ja vasta syyslukukauden puolella työtahti palautui kevään tasolle.
	
	Haasteista huolimatta sain kuitenkin hyvän yleiskatsauksen sovelluskehityksen osa-alueista sekä näkökulmaa siihen, mitkä seikat voivat hidastuttaa ja vaikeuttaa projektin läpivientiä. Kehitimme projektissa täysin uutta sovellusta, joten työtä oli paljon, koska kaikki täytyi aloittaa tyhjästä. Lähtökohdat antoivat kuitenkin vapautta työskentelyyn ja saimme paljon kokemusta etenkin sovelluksen suunnittelusta. Olen ylpeä siitä, että onnistuimme kehittämään toimivan tuotantoversion, vaikka jouduimmekin rajaamaan ominaisuuksia alkuperäisestä suunnitelmasta.
	
	\section{Antti Kaupin kokemuksia ja oppimaa}

	Odotin sovellusprojektin alkamista mielenkiinnolla ja hieman myös jännityksellä, koska minulla ei ollut
	aikaisempaa kokemusta vastaavista projekteista. Lähdin projektiin avoimella ja ennakkoluulottomalla
	asenteella tietämättä yhtään siitä, millaista sovellusta pääsisin projektissa kehittämään. Osaamiseni kehittyi
	projektin aikana huimasti monella eri osa-alueella, ja koen ehdottomasti projektista olevan hyötyä
	tulevaisuutta ajatellen.
	
	Olennaisimmat vastuualueeni projektissa olivat sovelluksen tietokannan suunnittelu ja toteutus sekä
	järjestelmätestauksen suunnittelu. Osallistuin hieman myös palvelinpuolen taustaohjelmiston
	ohjelmointiin, ja toimin useissa projektipalavereissa sihteerinä. Sovelluksen dokumentointia jaettiin
	projektiryhmän jäsenten kesken siten, että kukin jäsen dokumentoi omien vastuualueidensa
	toteutusratkaisuja.
	
	Projektin alkaessa minulla ei ollut kovin selkeää käsitystä siitä, miten WWW-sovelluksia käytännössä
	kehitetään. Projektin edetessä käsitykseni sovelluksen eri komponenttien yhteistoiminnasta selkiytyi
	kuitenkin koko ajan. Syntyneen osaamisen ansiosta on helpompaa aloittaa esimerkiksi omia
	ohjelmistoprojekteja tulevaisuudessa.
	
	Suoriuduin mielestäni omilla vastuualueillani varsin mainiosti, vaikka toki jälkiviisaana tekisin joitain asioita
	nyt toisin. Esimerkiksi tietokannan toteutuksessa kohdattiin tiettyjä haasteita, joita ei suunnitteluvaiheessa
	osattu ennakoida. Vastuualueeni olivat itselleni mieluisia, mutta olisin halunnut perehtyä enemmän muun
	muassa käyttöliittymän toteutukseen. Käyttöliittymän eli frontendin ohjelmointiin haluankin perehtyä
	enemmän tulevissa projekteissa.
	
	Mielestäni voimme olla erittäin tyytyväisiä lopputulokseen, vaikka projektin päättyminen viivästyikin varsin
	paljon suunnitellusta aikataulusta. Viivästymiseen vaikutti varmasti moni eri osatekijä, joista merkittävin oli
	keväällä alkanut koronavirusepidemia. Tähän emme voineet itse vaikuttaa. Etenkin kesällä myös
	projektiryhmän jäsenten muut sitoumukset hidastivat projektin etenemistä. Vastuualueiden
	onnistuneemmalla jakamisella ja tiukemmalla aikataulutuksella projekti olisi saatu päätökseen aiemmin.
	
	Koronatilanteen vuoksi etätyöskentelyyn siirtyminen ei tuottanut itselläni suurempia haasteita. Tosin
	varsinkin ohjelmointivaiheessa olisi ollut paljon helpompaa pohtia asioita kasvotusten ohjelmointiparin ja
	teknisen ohjaajan kanssa. Sopeuduimme ryhmänä nopeasti etätyöskentelyyn, ja ryhmätyöskentely sujui
	kaiken kaikkiaan erittäin hyvin. Ryhmän jäsenet kantoivat hyvin vastuun heille osoitetuista tehtävistä.

	
	\section{Nuutti Rantasen kokemuksia ja oppimaa}

	Olin projektin aikana projektipäällikkö ja vastasin projektin läpiviennistä, projektin dokumenttien valmistelusta sekä viestinnästä. Projektin alussa töihini kuuluivat projektisuunnitelman kirjoittaminen. Alussa myös ohjailin projektin jäsenet heille suunnattuihin työtehtäviin. 
	
	Korona--aikana projektiin käyttämäni aika hajautui ja minulle tuli haasteita toimia etänä ja johtaa projektin etenemistä. Kuitenkin saimme projektiryhmänä projektin etenemään hitaasti ennen kesää ja kesällä projekti ei edennyt. Tähän olisin voinut järjestää projektin jäsenet paremmin, ettei tärkeät työt lankea samalle henkilölle, joka ei voinut hoitaa niitä tehtäviä kesällä. 
	
	Kun projekti jatkui syksylle ja projektille ei näkynyt loppua niin oma motivaationi laski. Opin, että pitkittyneet projektit ovat niin kauheita, että en enää halua olla mukana pitkittyneessä projektissa vaan pyrin tulevaisuudessa viemään projektit loppuun asti ajallaan. Projektin venyminen mielestäni vaikutti myös muiden ryhmäläisten motivaatioon. Koko ryhmän motivaation lasku vaikutti myös omaan panokseen projektin suhteen sekä omaan motivaationi, vähän niinkuin loputun itseäänruokkiva spiraali. 
	
	Etätyöskentely oli toinen mikä tuotti haasteita, kuten ajanlöytäminen ja oikean elämän häiriötekijät. Olisi pitänyt löytää rauhallinen tila, missä olisi voinut työskennellä rauhassa, mutta projektihuone oli koronapandemian vuoksi kiinni ja muut vastaavat tilat olivat kiinni samasta syystä. 

	\section{Anne Vaaralan kokemuksia ja oppimaa}
	
	Vastuualueeni projektin aikana oli sovelluksen taustaohjelmiston ja käyttöliittymän erikielisten
	versioiden toteutus. Projektin alussa ryhmämme ei heti saanut teknistä ohjaajaa, joten projekti
	lähti aika hitaasti liikkeelle. Aluksi keskityin tutkimaan taustaohjelmiston toteuttamiseen
	valitsemiamme teknologioita, ja tähän menikin huomattavan paljon aikaa. Sovelluksen
	toteutukseen päästiin vasta maaliskuun puolessa välissä. Taustaohjelmisto oli käytännössä valmis
	jo kesän alussa, vaikkakin siihen tehtiin syksyn aikana pieniä viilauksia. Erikieliset käyttöliittymät
	toteutettiin vasta syksyn alussa, koska siinä tarvittavien teknologioiden opettelussa meni oma
	aikansa.
	
	Projektin aikana olen saanut kuvan siitä, mitä kaikkea sovelluksen kehitysprosessiin kuuluu. Olen
	myös oppinut, miten sovelluksen taustaohjelmisto kannattaa toteuttaa, jotta se olisi helposti
	ylläpidettävä. Lisäksi olen saanut käsityksen siitä, miten sovelluksen vaatimukset ja tilaajan toiveet
	voivat muuttua projektin aikana. Olen myös huomannut, että aikataulupaineet voivat vaikuttaa
	sovelluksen kehitykseen siten, että monet tilaajan toivomat ominaisuudet joudutaan siirtämään
	jatkokehitykseen.
	
	Koronapandemia ja sen tuomat muutokset projektin kulkuun ovat olleet suurimpia haasteita
	sovellusprojektin aikana. Etätyöskentely tilanteessa, jossa monet sovelluskehitykseen liittyvät asiat
	ovat olleet uusia, on hidastanut sovelluksen toteutusta merkittävästi. Tämä johtikin siihen, että
	joitakin sovelluksen ominaisuuksia jouduttiin siirtämään jatkokehitykseen. Myös teknisen ohjaajan
	myöhäinen valinta hidasti projektin etenemistä projektin alussa. Olisin kaivannut
	yksityiskohtaisempia neuvoja käyttämiemme teknologioiden suhteen etenkin sovelluksen
	toteutusvaiheen alussa.
	
	Ryhmän sisäinen vuorovaikutus ja projektin vastuualueiden jakaminen onnistui mielestäni hyvin.
	Jokainen projektiryhmän jäsen sai itselleen miellyttävän tehtävän, mikä lisäsi ryhmän jäsenten
	motivaatiota projektin alku- ja keskivaiheessa, vaikka projektin venymisen vuoksi jäsenten
	motivaatio alkoikin projektin loppuvaiheessa laskea.
	
	Minulla oli suuret ennakko-odotukset sovellusprojektin suhteen erityisesti työelämässä
	tarvittavien taitojen oppimista varten. Ennen projektin alkamista ajattelin, että projektin jälkeen
	minulla olisi tarvittavaa osaamista sovelluskehityksestä työelämää varten ja näin projektin
	loppuvaiheessa olen ilokseni huomannut, että näin on myös käynyt. Toki opeteltavaa riittää
	edelleen. Kokonaisuutena pidän projektia erittäin hyödyllisenä ja uskon siitä olevan hyötyä
	työelämään siirtymisen kannalta.
	
	\chapter{Yhteenveto}
	
	Kodavi-projekti kehitti vuoden 2020 Sovellusprojekti-kurssilla WWW-sovelluksen Jyväskylän yliopiston liikuntatieteelliselle
	tiedekunnalle WHO-Koululaistutkimuksen datan visualisointiin. Sovelluksen avulla terveystiedon opettajaopiskelijat ja terveystiedon opettajat voivat visualisoida WHO-Koululaistutkimuksen dataa omaan ja jaettavaan käyttöön. Sovelluksessa voi luoda hakuja kirjautumatta palveluun soveluksen hakusivun avulla. Käyttöliittymä ei tarjoa mahdollisuutta tallentaa tehtyjä hakuja eikä tallentaa hakutuloksia. Muuten sovellukselle asetut rajoitetut tavoitteet toteutuivat hyvin ja projektiryhmä oli tyytyväinen rajauksen jälkeiseen lopputulokseen. Sovellus täyttää sovellukselle määrittellyt ja priorisoidut vaatumukset.  
	
	Projektin haasteena oli tehdä sovelluksesta niin laadukas ja monipuolinen, että sen jokapäiväinen käyttö on opiskelijoille ja ohjaajille helppoa ja nopeaa. Lisäksi haluttiin, että sovellus tarvittaessa tukee mahdollisimman pienin muokkauksin seuraavien kyselykertojen datan lisäämistä tietokantaan, kuitenkaan dataa ei voi lisätä tietokantaan käyttöliittymän kautta sovelluksen
	nykyisessä versiossa. 
	
	Projektin tuloksista luovutettiin sovellus tilaajalle 1.12.2020 ja projektikansio maaliskuussa 2021. Sovellusta käytettiin ensimmäistä kertaa opetuskäytössä 2.10.2020. Projektin läpiviennin suurimmat riskit liittyivät ryhmän tietotaitoihin ja koronapandemiaan. 
	
	Sovellusprojekti-kurssi tarjosi ryhmän jäsenille projektimuotoisen työskentelyn ja työtapojen opettelun lisäksi käytännön kokemusta ohjelmistoprojektin läpiviennin suunnittelusta ja hallinnasta. Sovelluksen kehittämisessä jäsenet pääsivät soveltamaan aiemmilla kursseilla opittuja asioita käytännössä.
	
	
	%LÄHTEET
	\begin{thebibliography}{1}
		%Katso kirjoitusohjeen luku 2.3 ja 2.4.
		
		
		\bibitem{moveoraportti}
		Karoliina Lappalainen, Tuomas Moisio, Visa Nykänen ja Petra Puumala,
		''Moveo-projekti, Projektiraportti'',
		saatavilla PDF-muodossa <URL: \texttt{http://sovellusprojektit.it.jyu.fi/moveo/dokumentit/\\projektisuunnitelma/Moveo\_Projektiraportti\_1.0.0.pdf}>,
		\linebreak Jyväskylän yliopisto,
		Informaatioteknologian tiedekunta,
		3.4.2019.
		
		
		\bibitem{ajanseurantalahde}
		Petri Heinonen, 
		''Ajankäytönseurantasovellus'',
		saatavilla Excel-muodossa <URL: \texttt{http://appro.mit.jyu.fi/tools/ajankaytto/\\ajankaytonseuranta.xls}>,
		Jyväskylän yliopisto,
		informaatioteknologian tiedekunta, 
		viitattu 28.2.2014.
		
		
		\bibitem{projektikirjat}
		Jukka-Pekka Santanen,
		''Tietotekniikan Sovellusprojektien käytössä olevat kirjat'',
		saatavilla HTML-muodossa
		<URL: \texttt{http://www.mit.jyu.fi/palvelut/sovellusprojektit/\\projkirjat.html}>,
		Jyväskylän yliopisto,
		informaatioteknologian tiedekunta, 
		30.1.2014.
		
		\bibitem{sovellusprojektienohje}
		Jukka-Pekka Santanen,
		''Tietotekniikan Sovellusprojektien ohje'',
		saatavilla PDF-muodossa <URL: \newline
		\texttt{http://www.mit.jyu.fi/opetus/sovellusprojektit/projohje.pdf}>,
		\linebreak Jyväskylän yliopisto,
		tietotekniikan laitos,
		27.1.2015. 
		
		\bibitem{vaatimusmaaritelma}
		Outi Hilola, 
		''Vaatimusmäärittelydokumentti'',
		saatavilla pdf-muodossa <URL: \texttt{http://sovellusprojektit.it.jyu.fi/kodavi/dokumentit}>,
		Jyväskylän yliopisto,
		informaatioteknologian tiedekunta, 
		Versio 1.0.0,
		9.11.2020.
		
		\bibitem{kodavisuunnitelma}
		Nuutti Rantanen, 
		''Projektisuunnitelma'',
		saatavilla pdf-muodossa <URL: \texttt{http://sovellusprojektit.it.jyu.fi/kodavi/dokumentit}>,
		Jyväskylän yliopisto,
		informaatioteknologian tiedekunta, 
		Versio 0.1.8,
		26.4.2020.
		
		 \bibitem{sovellusraportti}
		Kodavi--projektiryhmä, 
		''Sovellusraportti'',
		saatavilla pdf-muodossa <URL: \texttt{https://sovellusprojektit.it.jyu.fi/kodavi/projekti/Dokumentit\\/Sovellusraportti/kodavi\_sovellusraportti\_1\_0\_0.pdf}>,
		Jyväskylän yliopisto,
		informaatioteknologian tiedekunta, 
		Versio 1.0.0,
		17.12.2020.
		
		\bibitem{kaytettavyystestaus}
		Outi Hilola, 
		''Käytettävyystestausraportti'',
		saatavilla pdf-muodossa <URL: \texttt{https://sovellusprojektit.it.jyu.fi/kodavi/projekti/Testaus\\/Kaytettavyystestaus/kodavi\_kaytettavyystestausraportti\_1\_0\_0.pdf}>,
		Jyväskylän yliopisto,
		informaatioteknologian tiedekunta, 
		Versio 1.0.0,
		13.11.2020.
		
		\bibitem{kaytettavyystestaus2}
		Useita tekijöitä, 
		''Järjestelmätestausraportit'',
		saatavilla pdf-muodossa <URL: \texttt{https://sovellusprojektit.it.jyu.fi/kodavi\\/projekti/Testaus/Järjestelmätestaus/}>,
		Jyväskylän yliopisto,
		informaatioteknologian tiedekunta, 
		Useita dokumenttejä.
		
		\bibitem{aika_excel}
		Useita tekijöitä, 
		''ajankaytonseuranta\_kodavi'',
		saatavilla pdf-muodossa <URL: \texttt{https://sovellusprojektit.it.jyu.fi/kodavi\\/projekti/Ajankaytto/ajankaytonseuranta\_kodavi.xlsx}>,
		Jyväskylän yliopisto,
		informaatioteknologian tiedekunta.

		\bibitem{lisenssi}
		Nuutti Rantanen, 
''lisenssisitoumus'',
saatavilla pdf-muodossa <URL: \texttt{https://sovellusprojektit.it.jyu.fi/kodavi\\/projekti/Dokumentit/Lisenssisitoumus/lisenssisitoumus.pdf}>,
Jyväskylän yliopisto,
informaatioteknologian tiedekunta, 
23.08.2021.
		
		\bibitem{katse}
Useita tekijöitä, 
''Katselmoinnit'',
saatavilla pdf-muodossa <URL: \texttt{https://sovellusprojektit.it.jyu.fi \\/kodavi/projekti/Palaverit/Katselmoinnit/}>,
Jyväskylän yliopisto,
informaatioteknologian tiedekunta, 
23.08.2021.

		\bibitem{repo}
Useita tekijöitä, 
''Git--osoite'',
saatavilla www-muodossa <URL: \texttt{https://gitlab.jyu.fi/kodavi}>

	\end{thebibliography}
	
	
	
	%LIITTEET
	%\begin{appendix}
	
	%\chapter{Ensimmäinen liite}
	
	%Tänne tarvittaessa liitteitä.
	
	%\end{appendix}
	
	% Dokumentin  lopetus
\end{document}
