% .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{array}
\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{0.1.8}

% Dokumentin nimi
\title{Projektisuunnitelma}

% 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 kehittää keväällä 2020 Jyväskylän yliopiston liikuntatieteelliselle tiedekunnalle WWW-sovelluksen WHO-Koululaistutkimuksen datan havainnoillistamiseen. Projektisuunnitelmassa kuvataan sovellusprojektin suunniteltua 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 kehittää keväällä 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, projektin läpiviennin suunnitelma, 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    &  6.2.2020  & Dokumentin pohja luotiin ja kirjoittaminen aloitettiin. & \NR\\ \hline
		0.0.2    &  7.2.2020  & Lukujen 1 ja 4 kirjoittaminen aloitettiin. & \NR\\
		\hline
		0.0.3    &  10.2.2020  & Lukujen 3 ja 5 kirjoittaminen aloitettiin. & \NR\\
		\hline
		0.0.4    &  11.2.2020  & Luvun 6 kirjoittaminen aloitettiin. & \NR\\
		\hline
		0.0.5    &  13.2.2020  & Luvun 8 kirjoittaminen aloitettiin. & \NR\\
		\hline
		0.0.6    &  14.2.2020  & Luvun 7 kirjoittaminen aloitettiin. & \NR\\
		\hline
		0.0.7    &  17.2.2020  & Luvun 2 kirjoittaminen aloitettiin  ja ensimmäinen projektiryhmälle julkaistu kommenttiversio. & \NR\\
		\hline		
		0.0.8    &  19.2.2020  & Ulkoasua ja sisältöä siistitty. & \NR\\
		\hline
		0.1.0    &  19.2.2020  & Ensimmäinen ohjaajille julkaistu versio. & \NR\\
		\hline
		0.1.1    &  26.2.2020  & Suunnitelman hiominen aloitettiin ohjaajien kommenttien pohjalta. & \NR\\		
		\hline
		0.1.2    &  10.3.2020  & Aikataulutuksen hiominen. & \NR\\		
		\hline
		0.1.3    &  12.3.2020  & Riskien hiominen. & \NR\\
		\hline
		0.1.4    &  3.4.2020  & Taustojen ja tavoitteiden hiominen. & \NR\\
		\hline
		0.1.5    &  8.4.2020  & Taustojen ja tavoitteiden hiominen. & \NR\\
		\hline
		0.1.6    &  15.4.2020  & Luvun 2 korjaukset. & \NR\\
		\hline
		0.1.7    &  21.4.2020  & Luvun 6 korjaukset. & \NR\\
		\hline
		0.1.8    &  26.4.2020  & Viimeiset korjaukset ja jäädytys. & \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 kehittää Sovellusprojekti-kurssilla keväällä 2020 Jyväskylän yliopiston liikuntatieteelliselle tiedekunnalle datalla kerättävän kyselydatan visualisointisovelluksen. Sovellusta käytetään neljän vuoden välein järjestettävän WHO-Koululaistutkimuksen visualisointiin. 
	
	Projektisuunnitelman lisäksi projektiryhmä laatii \textbf{vaatimukset} dokumentiksi.  \textbf{Sovellusraportissa} kuvataan sovelluksen toteutusratkaisuja ja käyttöliittymää sekä mahdollisia puutteita ja jatkokehitysideoita. \textbf{Projektiraportissa} tarkastellaan projektin toteutunutta läpivientiä projektin toteuman eroja suunnitelmaan. Kaikista projektin palavereista laaditaan \textbf{pöytäkirjat}.
	
	Projektisuunnitelman luvussa 2 esitellään projektissa käytettäviä termejä. Luvussa 3 kuvataan projektin taustoja ja tavoitteita. Luvussa 4 esitellään projektiin osallistuvat henkilöt ja projektiryhmän resurssit. Luku 5 kuvaa projektin käytänteitä. Luku 6 kuvaa projektin jäsenten rooleja, vastuualueet sekä tehtävät ja niiden arvioidut työmäärät. Luvussa 7 kuvataan sovelluskehitysprosessia ja aikataulua. Luvussa 8 käydään läpi projektin läpivientiin mahdollisesti vaikuttavia riskejä sekä keinoja ehkäistä ja toipua niistä. 
	
	Projektisuunnitelman laatimisessa on hyödynnetty Kepler-, Moveo- ja Moveatis projektisuunnitelmia ~\cite{keplersuunnitelma}, ~\cite{moveosuunnitelma}, ~\cite{moveatissuunnitelma} ja sovellusprojektien ohjetta ~\cite{sovellusprojektienohje}. Dokumentin pohjana on käytetty Kepler-, Moveatis- ja Moveo-projektin projektisuunnitelmia.
	
	\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}{Tietojärjestelmä}
		% Termilistat ladotaan Ventry-ympäristöllä, parametrina pisin termi,
		% jolloin sisentyy oikein:	
	    \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ä-asteella.
		\item[Pääkäyttäjä] on pääkäyttäjän käyttäjäroolin 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ä] on ihmisistä, tietojenkäsittelylaitteista, tiedonsiirtolaitteista ja sovelluksista koostuva järjestelmä, jonka tarkoituksena on tietojen käsittelyn avulla tehostaa, nopeuttaa tai helpottaa jotain toimintoa tai tehdä se mahdolliseksi.
		\item[Visualisointi] on kyselyillä kerätyn datan muuntaminen visuaalisesti informatiiviseen muotoon.
	\end{Ventry}
	\end{compactenum}
	
	\section{Ohjelmistoja ja teknisiä termejä}
	Ohjelmistoja ja teknisiä termejä ovat seuraavat:
	
	\begin{compactenum}[]
	\item 
	\begin{Ventry}{Apache Tomcat}
		\item[Apache Tomcat] on HTTP-palvelu, joka mahdollistaa Javan käytön WWW-selaimesta.
		%\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ä.
		\item[Hibernate] on Java-pohjainen tietokantatyökalu, jota käytetään tietokannan hallintaan.
		%\item[HTML5] on uusin versio WWW-dokumenttien HTML-kuvauskielestä.
		\item[TypeScript] on WWW-sovelluksissa käytetty dynaamisesti tyypitetty komentosarjakieli.
		%\item[jQuery] on WWW-dokumenttien dynaamisen sisällön käsittelyä helpottava avoimen lähdekoodin lisenssin alainen JavaScript-kirjasto.
		\item[Korppi] on Jyväskylän yliopiston poistuva opintotietojärjestelmä.
		\item[\LaTeX] on tekstinladontaohjelmisto.
		\item[Liquibase] on versiohallintatyökalu tietokannoille.
		\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[PostgreSQL] on avoimen lähdekoodin tietokannan hallintajärjestelmä
		%\item[Pyramid] on Python-ohjelmointikielellä toteutettu WWW-sovelluskehys.
		\item[React] on WWW-dokumenttien dynaamisen sisällön käsittelyä helpottava JavaScript-kirjasto.
		\item[Spring boot] on taustaohjelmisto, jolla avulla pystytetään taustaohjelmisto.
	\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. 
		\item[Käytettävyystestaus] sisältää toimenpiteet, joilla varmistetaan käyttöliittymän olevan helppokäyttöinen.
		\item[Palaveri] on projektiryhmän, tilaajan edustajien ja ohjaajien yhteinen dokumentoitu keskustelutilaisuus.
		\item[Tilakatsaus] on projektipäällikön esittelemä viikottainen katsaus, jossa raportoidaan projektin eteneminen.
	\end{Ventry}
		\end{compactenum}
	\chapter{Taustaa ja tavoitteita}
	
	Luvussa käsitellään Kodavi-projektissa toteutettavalle sovellukselle ja muille tuloksille sekä projektiryhmän jäsenille asetettuja tavoitteita ja taustatietoja. 
	
	
	\section{Taustaa ja tuettava prosessi}
	
	Projektin tilaajana toimii 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 tuottaa WHO-Koululaistustutkimuksesta tuotetun datan visualisointisovelluksen toimivaksi WWW-sovelluksena.
	
	Tilaajan toiveena on, että sovellus toimisi Jyväskylän yliopisto opiskeleville ja jota pystyisi käyttämään myös valmistumisen jälkeen. Tavoitteena on käyttävä ystävällinen sovellus, jolla voidaa luoda visuallista dataa ja datan muuttujia on voitava muokata käyttäjä ystävällisesti. 
	
	
	\section{Kehitettävä sovellus}
	
	
	Projektissa kehitettävä sovellus on WHO-Koululaistutkimuksen datan visualisointisovellus. Sovelluksen tulee sisältää tietokanta, palvelinsovelluksen ja WWW-käyttöliittymä. 
	
	Sovelluksen tulee esittää dataa kaavioin ja numeraalisesti käyttäen web-käyttöliittymää. Haun tulokset tulee esittää valituin graafein yhteenvetosivulla, josta tulokset voidaan ladata Excel- tai CSV-muotoisina tai kuvatiedostona. Hakuun on voitava valita käyttäjän mieleiset vaste- ja luokkittelumuuttujat. Tiettyjen käyttäjäroolien on voitava tallentaa tulokset myöhempää käyttöä varten. 
	
	\section{Sovelluksen tavoitteet ja toiminnallisuudet}
	
	Sovellusta tulee voida 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. Ryhmäavaimen syöttämisen, JYU-tunnistautumisen ja sovelluksen julkisen käytön tulee onnistua suoraan sovelluksen etusivulta. Kirjautuminen on voitava tehdä myös muulla kuin JYU-tunnuksella, jotta peruskoulujen ja lukioiden opettajat voivat käyttää sovellusta kirjautuneina.
	
	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. 
	
	Vierailijan käyttöliittymässä on voitava tehdä yksittäisiä hakuja. Vierailija ei saa 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}. Tietojärjestelmän kokonaisrakenne on esitetty kuvassa \ref{fig:rakenne}.
	
	\newpage
	\section{Projektin tulokset}\label{tulokset}
	
	Sovelluksen ohella projektiryhmä toteuttaa 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äliesittelyiden ja loppuesittelyn materiaalit ja muistiot.
		\item[-]\textbf{Itsearvioinnit} sisältävät ryhmän jäsenten arvioinnit omasta toiminnasta, onnistumisesta, kokemuksista ja oppimisesta.
		\item[-]\textbf{Käyttöohje} sisältää ohjeita sovelluksen käyttämiseen.
		\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{Luokkadokumentit} sisältävät lähdekoodista generoidut luokkien kuvaukset.
		\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{Projektiraportti} kuvaa projektin toteutunutta läpivientiä ja asetettujen tavoitteiden saavuttamista.
		\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.
		\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, 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
	\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ä olevat resurssit ja projektiin liittyvät oheiskurssit ja perehdytykset.
	
	
	\section{Projektiorganisaatio}\label{projektiorganisaatio}
	
	Kodavi-projektiryhmään kuuluu viisi tietotekniikan pääaineopiskelijaa: Lauri Antila, Outi Hilola, Antti Kauppi, Nuutti Rantanen ja Anne Vaarala. Projektipäällikkönä toimii 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öä. Tästä huolimatta Antila pääsi ilman pääsykoetta tietotekniikan maisteriohjelmaan Jyväskylään. Ohjelmoinnin kurssien suorituksesta on vuosia aikaa ja taidot ovat vähäiset. Antila on kiinnostunut WWW-sovellusten kehityksestä, mutta hänellä ei ole siitä aiempaa kokemusta, eikä hän ole käynyt WWW-kehitystä opettavia kursseja. Projektiin valitut teknologiat ovat Antilalle  siten käytännön tasolla vieraita, mutta niiden opettelu on hänelle mielenkiintoista. Antila korostaa, että opettelu vaatii paljon aikaa. Hän kuitenkin opettelee näitä taitoja myös työelämää varten, eikä vain tämän kurssin takia, joten motivaatio on korkealla.
	
	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. Ensimmäisenä lukuvuotenaan hän suoritti paljon tietotekniikan täydentäviä opintoja, koska hänellä ei ollut aiempaa tietoteknistä koulutusta. Tietotekniikan kurssien lisäksi Hilola on sisällyttänyt tutkintoonsa paljon kognitiotieteen opintoja, koska käytettävyys on lähellä hänen sydäntään. Hänen haaveenaan olisi yhdistää aiempaa muotoilijan osaamistaan tietotekniikan osaamiseensa, ja tässä projektissa onkin paljon mahdollisuuksia siihen. Hilola on innoissaan Sovellusprojektin tarjoamasta mahdollisuudesta oppia lisää ohjelmoinnista ja ohjelmistokehityksestä.
	
	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. Ennen opintojen aloittamista Kaupilla ei ollut juurikaan osaamista tietotekniikassa, jos tietokoneen peruskäyttöä ei oteta huomioon. Opintojen aikana taidot ovat kehittyneet paljon. Kauppi kokee kuitenkin, että hänellä on edelleen paljon kehitettävää kaikilla osa-alueilla. Sovellusprojektissa Kaupin tavoitteena on saada kokonaiskuva siitä, miten ohjelmistoja todellisuudessa tehdään.
	
	Nuutti Rantanen on valmistunut 2019 luonnontieteiden kanditaatiksi ja jatkanut suoraan maisteriopintoihin tietotekniikasta. Hän on suorittanut perus- ja aineopintotasoiset kurssit Jyväskylän yliopistossa. Rantanen hakee projektikurssilta osaamista projektityöskentelystä, asiakkaan kanssa kommunikoinnista ja ohjemointityöskentelystä. 

	Anne Vaaralan aiempi kouluts 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 Kehityskohteiteet ovat siten kaikki ohjelmistokehityksen osa-alueet. Hän toivoo oppivansa paljon uusia asioita projektin aikana.
	
	Tilaajan edustajia ovat Nelli Lyyrä, Kristiina Ojala, Jorma Tynjälä ja Jari Villberg. Vastaavina ohjaajina toimivat Jukka-Pekka Santanen ja Enni Stylman ja teknisenä ohjaajana Arttu Ylä-Sahra. 
	
	\section{Projektin tilat, laitteet ja verkkolevyt}
	
	Informaatioteknologian tiedekunta tarjoaa ryhmälle projektin ajaksi käyttöön lukittavan projektihuoneen AgC225.4. Projektin jäsenille annetaan projektihuoneeseen avaimet ja lisäksi RFID-avain, jolla pääsee Agoran sähkölukolla varustetuista ovista opiskelijoille tarkoitettuihin julkisiin tiloihin 5.30--23.00 välisenä aikana. Projektiryhmän jäsenillä on 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.
	
	Projektiryhmällä on mahdollisuus pyytää varaamaan yliopiston kokoustiloja Sovellusprojektin vastaavilta ohjaajilta projektipalavereita varten. Kaikissa tiloissa on käytettävissä vaihtelevia varustuksia sisältäen ainakin videotykin, valkotaulun ja mikron.
	
	Sovellusprojektien ryhmän käytettävissä on yliopiston ylläpitämiä monitoimitulostimia. Ryhmän jäsenet pystyvät tulostamaan projektiin liittyvät dokumentit ilman heille henkilökohtaisesti aiheutuvia lisämaksuja. Ryhmällä on mahdollisuus varata käyttöönsä videoprojektori ja Olympuksen digitaalisanelin. Aiemmille sovellusprojekteille hankitut satakunta kirjaa~\cite{projektikirjat} ovat myös käytettävissä. Projektiryhmän jäsenet voivat vapaasti käyttää omia laitteitaan.
	
	Projektilla on 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{ } ja julkinen WWW-sivusto osoitteessa \texttt{http://sovellusprojektit.it.jyu.fi/kodavi}.
	
	Projektiryhmällä on käytettävissä projektihuoneen vieressä taukotila, jossa on kahvinkeitin, vedenkeitin ja mikroaaltouuni. Informaatioteknologian tiedekunta tarjoaa ryhmälle projektin ajaksi kahvit, kahvimaidot, teet ja mehut. Mikäli edellä mainituista tarvikkeista ilmenee puutteita, niistä tulee ilmoittaa projektin vastaavalle ohjaajalle.
	
	
	\section{Dokumentointityökalut}
	
	Projektisuunnitelma, vaatimusmäärittely, projektiraportti, projektipalaverien pöytäkirjat, ja muut projektin läpivientiin liittyvät dokumentit laaditaan \LaTeX -tekstinladontaohjelmistolla tai vaihtoehtoisesti Word-tekstinkäsittelyohjelmalla suomen kielellä. Tarvittavat li\-sä\-e\-si\-tys\-gra\-fii\-kat, kuten tilakatsaukset, laaditaan Microsoft PowerPoint esitysgrafiikkaohjelmalla. %Projektin läpiviennin aikataulusuunnitelma ja toteutunut ai\-ka\-tau\-lu laaditaan GanttProject-ohjelmalla sekä tehtävätaulukko LibreOfficen Calc-tau\-luk\-ko\-las\-ken\-ta\-oh\-jel\-mal\-la.
	Kaikki dokumentit pyritään julkistamaan myös pdf-muodossa. Kaikki muut yksinkertaiset ja lyhyet tekstidokumentit, kuten esityslistat, laaditaan raakatekstimuodossa.
	
	Ajankäytönseurantaan ryhmällä on käytössään Petri Heinosen sovellusprojekteille toteuttama Excel-työkirja \cite{ajanseurantalahde}. Tämän lisäksi kyseisestä ajankäytönseurantapohjasta saadaan tilakatsauksiin vaadittavat graafit.
	
	\section{Ohjelmointityökalut}
	
	Sovelluksen kehitykseen käytetään Spring Boot- ja React-ohjelmistokehystä. Pää\-a\-si\-al\-li\-se\-na ohjelmointikielenä käytetään Javaa ja TypeScriptia. Kehitysvaiheessa Java-kielistä Hibernate\--työkalua käytetään luokkarakenteen pohjalta tietokantarakenteen muodostamiseen. Tietokannanhallintajärjestelmänä käytetään Hibernate- tai PostgreSQL-ohjelmistoa. WWW-käyttöliittymässä käytetään HTML5-, CSS- ja TypeScript-ohjelmointikieliä ja sopivaksi katsottuja apukirjastoja, kuten jQuery, React ja Bootstrap. Sovelluksen lähdekoodin ryhmä sijoittaa sovittavan avoimen lähdekoodin lisenssin alaisuuteen.
	
	\section{Versiohallinta}
	
	Projektiryhmä käyttää lähdekoodin versioiden hallintaan Git-ver\-sio\-hal\-lin\-ta\-oh\-jel\-mis\-to\-a. Dokumenttien versioiden hallintaan käytetään projektiryhmän omaa verkkolevyä.
	
	\section{Luennot ja perehdytykset}
	
	Projektin ohella ryhmän jäsenet suorittavat 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ärjestetään kaksi väliesittelyä, jotka ovat 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) sekä
		\item tekijänoikeus ja sopimukset (2h).
	\end{compactitem}

	Oheiskurssien työtunnit kirjataan omaksi tehtäväkokonaisuudekseen työajanseurantasovelluksessa \cite{ajanseurantalahde}.
	
	%
	%    Käytänteet
	%
	\chapter{Käytänteet} \label{kaytanteet}
	
	Luvussa käydään läpi projektin käytänteitä. Käytänteiden noudattaminen mahdollistaa projektin läpiviennin aikataulussaan, asetettujen tavoitteiden saavuttamisen ja laadukkaiden tulosten toteutumisen.
	
	\section{Palaverit} \label{kaytanteet1}
	
	Projektiorganisaatio pyrkii alkuvaiheessa pitämään yhteisen palaverin vähintään kerran viikossa.  Projektin edetessä sovelluskehityksen vaiheeseen palavereja pidetään kerran kahdessa viikossa, ja keskittyä enemmän kehitystyöhön. Jos käsiteltäviä asioita on niin vähän, ettei palaverin pitäminen ole tarpeellista tai projektiorganisaatioon kuuluvilla on muita sitoumuksia, niin palavereja voidaan järjestää harvemmin. Seuraavan palaverin ajankohta päätetään aina edellisessä palaverissa. 
	
	Tulevasta palaverista projektiryhmä toimittaa esityslistan projektiorganisaatiolle vähintään vuorokausi etukäteen, jotta osallistujien on mahdollista valmistautua palaveriin kunnolla. Palaveri katsotaan päätösvaltaiseksi silloin, kun paikalla on vähintään yksi projektiryhmän jäsen, tilaajan edustaja ja projektin vastaava ohjaaja.
	
	Palavereissa käsitellään edellisen palaverin jälkeen tapahtuneita asioita, jotka ovat vaikuttaneet projektin etenemiseen. Lisäksi palavereissa käsitellään tulevia toimenpiteitä ja tarvittavat päätökset. Projektin läpivientiin liittyvät käytänteet sovitaan yhteisissä palavereissa. Jokaisessa palaverissa käydään läpi edellisen palaverin pöytäkirjaan merkityt päätökset sekä osallistujille sovitut toimenpiteet ja tilat.
	
	Projektipäällikkö esittää kussakin palaverissa lyhyen tilakatsauksen, jossa kuvataan projektin tehtävien etenemistä edellisen palaverin jälkeen, mahdollisia kohdattuja ongelmia ja tulevia toimenpiteitä. Tilakatsauksessa esitellään lisäksi, miten projektiryhmän jäsenten käyttämät työtunnit jakautuvat projektin tehtäväkokonaisuuksiin sekä ryhmän jäsenten viikottaiset projektiin käytetyt tuntimäärät.
	
	Palavereissa keskustellaan toteutettavan sovelluksen ominaisuuksista, tavoitteista ja vaatimuksista sekä niiden toteutusratkaisuista ja kehitystyökaluista. Palavereissa projektiryhmä esittää 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ätetään jäsenten kesken sovitussa järjestyksessä. Kunkin palaverin puheenjohtaja ja sihteeri pyritään mahdollisuuksien mukaan sopimaan etukäteen, mutta valinnasta päätetään jokaisen palaverin alussa. 
	
	Puheenjohtaja johtaa palaverin keskustelua ja huolehtii siitä, että palaveri etenee esityslistan mukaisesti. Sihteeri laatii palaverin pöytäkirjan, jonka puheenjohtaja tarkastaa ennen sen julkistamista projektiorganisaatiolle ja muille mahdollisille palaveriin osallistuneille. Kunkin jäsenen laatiman ensimmäisen pöytäkirjan tarkastaa vastaava ohjaaja, ennen julkaisua projektiorganisaatiolle. Edellisen palaverin pöytäkirja hyväksytetään seuraavassa palaverissa, jolloin siihen voidaan tarvittaessa esittää muutoksia.
	
	\section{Tiedotus} \label{kaytanteet2}
	
	Projektin tiedotuksesta projektiorganisaatiolle vastaa pääasiassa projektipäällikkö. Ryhmän jäsenet kommunikoivat ensisijaisesti projektipäällikön kanssa, mutta voivat omilla vastuualueillaan vapaasti välittää oleelliset tiedotettavat asiat koko projektiorganisaatiolle. Projektipäällikkö toimittaa tilakatsauksen sähköpostilla projektiorganisaatiolle sellaisten viikkojen aikana, jolloin ei pidetä palaveria.
	
	Projektiorganisaation tiedotusta varten on luotu kaksi erillistä sähköpostilistaa. Sähköpostilistojen sähköpostiarkistot eivät ole julkisia, vaan niihin vaaditaan kirjautuminen JYU-tunnuksilla.
	
	Pääasiallista sähköpostilistaa \texttt{kodavi@korppi.jyu.fi} käytetään projektiryhmän jäsenten, ohjaajien ja tilaajan edustajien tiedotukseen. Sen jakelulistalle kuuluvat 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 on 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äsitellään sellaisia asioita, jotka eivät ole merkityksellisiä tilaajalle, karsien siten heille tarpeetonta sähköpostiliikennettä. Tällaisia asioita ovat esimerkiksi projektiryhmän sisäiset palaverit sekä erilaiset koulutukseen ja ohjelmiston toteutusratkaisuihin liittyvät asiat ja kohdatut ongelmat.
	
	\newpage
	\section{Hakemistorakenne} \label{hakemistorakenne} 
	
	Projektin tuottamat tulokset tallennetaan CD-levylle ja projektin julkiseen WWW-hakemistoon päähakemiston alle seuraavan \textbf{hakemistorakenteen} mukaisesti:
	
	\begin{verbatim}  
	application
	|-- class_documentation
	|-- source_code
	|-- kaytto-ohje
	|
	dokumentit
	|-- ajankaytto
	|-- sovellusraportti
	|-- esittelyt
	|-- itsearvioinnit
	|-- lisenssisitoumus
	|-- projektiraportti
	|-- projektisuunnitelma
	|-- sovellussuunnitelmat
	|-- vaatimusmaarittely
	| 
	palaverit
	|-- esityslistat
	|-- katselmoinnit
	|-- poytakirjat
	|-- tilakatsaukset
	|
	sahkopostiarkistot
	|-- kodavi
	|-- kodavi_opetus
	|
	testaus
	|-- jarjestelmatestaus
	|-- kaytettavyystestaus
	\end{verbatim}
	\newpage
	\section{Tiedostojen nimeäminen}

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

	 Dokumentit nimetään niiden sisältöä kuvaavilla nimillä ja dokumentissa käytetyn kielen mukaisesti. Lisäksi jokaiseen julkistettuun dokumenttiin lisätään juokseva versionumero luvussa~\ref{versiohallinta} esitettyjen käytänteiden mukaisesti. Esimerkiksi projektisuunnitelman eri versiot nimetään \\ \texttt{kodavi\_projektisuunnitelma\_[nu\-me\-ro].[nu\-me\-ro].[nu\-me\-ro].pdf}.
	
	\section{Lähdekoodi}
	
	Sovelluksen lähdekoodin kommentit kirjoitetaan englannin kielellä. Aliohjelmien, luokkien ja muuttujien nimeämiseen käytetään selkeitä ja kuvaavia nimiä, jotka ovat englanninkielisiä. Lähdekoodin kirjoittamisessa noudatetaan yleisiä TypeScript-, ja Java-ohjelmointikielten yleisiä hyviä käytänteitä. Lähdekoodin kommentoinnissa seurataan niin ikään yleisiä Java- ja Typescript-ohjelmointikielen käytänteitä siten, että luokkadokumentaation tekeminen Javadoc-dokumentaatiogeneraattorilla on mahdollista.
	\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 suorittaa kirjoittamalleen lähdekoodille aina tarvittavat yksikkötestaukset, mutta yksikkötestejä ei laadita osaksi lähdekoodia. Sovellusta koekäyttävät tilaajan edustajat ja ohjaajat. Lisäksi sen versioista pyydetään palautetta haastatelluilta muiden tahojen edustajilta. Toteutetun sovelluksen toiminnan laadunvarmistus tapahtuu käytettävyys- ja järjestelmätestauksella. Käytettävyys- ja järjestelmätestauskertoja järjestetään molempia ainakin kerran.
	
	Sovelluksen käyttöliittymää testataan koko ajan toteutuksen aikana kaikkien jäsenten toimesta, jotta varmistutaan sen lopullisen toiminnan laadusta. Sovelluksen käytettävyydestä halutaan mahdollisimman selkeä ja käyttäjäystävällinen. Käytettävyystestauksen vastuuhenkilö laatii testaussuunnitelmat varsinaisille testauskerroille ja testausraportit testauskertojen suorittamisen jälkeen. Suunnitelma sisältää valittujen käyttäjien suoritettavat toimenpiteet, sekä raportti kuvaa testin aikana ja sen jälkeen kirjatut huomiot käyttäjäkokemuksesta.
	
	Järjestelmätestauksessa testataan sovelluksen toimintoja testitapauksilla, jotka on tarkemmin määritelty vastuuhenkilön laatimassa testaussuunnitelmassa. Vastuuhenkilö laatii testaussuunnitelmat ennen testauskertojen suorittamista, vastaa testauskertojen suorittamisesta ja laatii testausraportit testauskertojen jälkeen. Testausraportissa kuvataan testauskerran aikana tehdyt huomiot puutteista, tuloksista ja mahdollisista virhetilanteista.
	
	
	\section{Versiohallinta ja -numerointi} \label{versiohallinta}
	
	Projektiryhmä käyttää sovelluksen lähdekoodin versiohallintaan Git-ver\-sio\-hal\-lin\-ta\-oh\-jel\-mis\-to\-a. Dokumenttien ver\-sio\-hal\-lin\-taan käytetään projektiryhmän verkkolevyä. Git-ver\-sio\-hal\-lin\-ta\-oh\-jel\-mis\-toon-järjestelmään perustetaan projektiryhmän jäsenille oma ryhmä (team), projekti ja tarvittavat tietovarastot. Ohjaajille järjestetään pääsy lähdekoodiin. Kaikki projektiin ja sovellukseen liittyvät dokumentit tullaan säilyttämään lisäksi projektin verkkolevyllä ja julkisella WWW-sivulla.
	
	Dokumenttien julkistetuissa versioissa käytetään kolmiportaista versionumerointia. Ryhmän sisäisiä luonnoksia numeroidaan pienimmällä merkitsevällä numerolla (i.j.1), ja kunkin uuden julkistetun version kohdalla kasvatetaan numeroa yhdellä. Projektiorganisaatiolle julkistettuja versioita numeroidaan 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 on 1.0.0, ja tätä seuraavien hyväksyttyjen versioiden numerointia kasvatetaan toisen merkitsevän numeron osalta.
	
	\section{Katselmoinnit ja tulosten hyväksyminen}
	
	Projektissa toteutettavan sovelluksen lähdekoodi katselmoidaan vähintään kaksi kertaa projektin aikana. Katselmoinneissa projektin tekninen ohjaaja kommentoi lähdekoodia sekä antaa vinkkejä ja ehdotuksia sen parantamiseen. Katselmointiin osallistuvat tekninen ohjaaja ja lisäksi koko projektiryhmä. Katselmoinnissa tehdyt havainnot kirjataan muistioksi. 
	
	Tekninen ohjaaja hyväksyy lähdekoodin viimeisessä katselmoinnissa tai sen jälkeen sähköpostitse. Vastaava ohjaaja ja tilaajan edustajat hyväksyvät keskeisimmät laaditut dokumentit, joita ovat ainakin projektisuunnitelma, projektiraportti, sovellusraportti ja vaatimusmäärittely.
	
	\section{Tulosten koostaminen ja toimittaminen}
	
	Projektiryhmän jäsenet kokoavat luvussa~\ref{tulokset} kuvatut projektin tulokset sekä tulostettuina projektikansioon että tallennettuina CD-levylle luvussa~\ref{hakemistorakenne} kuvatun hakemistorakenteen mukaisesti. Lähdekoodi tulostetaan tarvittaessa. CD-levy koostetaan vasta sitten, kun kaikki projektissa laaditut tulokset on hyväksytty. Tulokset toimitetaan tilaajalle CD-levyllä tai erikseen sovitussa tallennusmuodossa. Informaatioteknologian tiedekunnalle toimitetaan projektikansio ja koostettu CD-levy, jotka sijoitetaan projektitilan kokoushuoneessa sijaitsevaan hyllyyn. Laitoksen arkistoon toimitetaan lisäksi yksi CD-levy.
	
	\newpage
	%
	%    Tehtävät, työmäärät ja tehtävänjako
	%
	\chapter{Tehtävät, työmäärät ja tehtävänjako}
	
	Luvussa määritellään ryhmän jäsenistä projektipäällikkö ja varapäällikkö, heidän tehtävänsä sekä projektiryhmässä toteutettavien tulosten vastuuhenkilöt. Lisäksi esitellään tehtäväkokonaisuuksien jakautuminen tehtäviin sekä eri tehtävien työmäärät ja työnjako.
	
	
	\section{Vastuualueet tulosten osalta}
	
	Projektipäällikkö on Nuutti Rantanen, ja varapäällikkö on Lauri Antila. Mikäli projektipäällikkö ei pysty hoitamaan jotain hänelle kuuluvaa tehtävää poissaolon tai kiireiden takia, niin varapäällikkö hoitaa ko. tehtävää siihen asti, kunnes projektipäällikkö voi ottaa tehtävän hoitaakseen.
	
	Projektipäällikön vastuulle kuuluvat projektin suunnitteleminen ja hallinta, projektin tilan seuraaminen ja raportointi, jäsenten ajankäytön seuranta, tiedotus ja tehtävienjako. Projektipäällikkö vastaa käytännössä projektisuunnitelman ja -raportin laatimisesta.
	
	Projektiryhmässä toteutettavat keskeisimmät tulokset ja vastuuhenkilöt on esitetty taulukossa \ref{vastuualueet}. Vastuuhenkilö ei ole vastuussa koko tuloksen toteuttamisesta itsenäisesti, mutta vastaa sen laadusta ja valmistumisesta sovitussa aikataulussa. Vastuuhenkilö toimittaa tuloksen tarkastettavaksi ja vastaa tarpeellisten muokkausten toteutuksesta. Vastuuhenkilö tiedottaa projektiorganisaatiota vastuullaan olevien tulosten etenemisestä.
	\newpage
	\begin{center}
		\begin{table}[]
			\centering
			\begin{tabular}{|  l | l |}
				\hline
				\textbf{Tulos} & \textbf{Vastuuhenkilö}\\
				\hline \hline
				Projektisuunnitelma    & Nuutti Rantanen\\
				\hline
				Projektiraportti       & Nuutti Rantanen\\
				\hline
				Vaatimusmäärittely     & Outi Hilola\\
				\hline
				Graafikan esityssivu & Lauri Antila \\
				\hline
				Etusivu       & Outi Hilola\\
				\hline
				Käyttöliittymä     & Outi Hilola\\
				\hline
				Käyttäjäroolit ja niiden toiminnot & Anne Vaarala \\
				\hline				
				Taustaohjelmisto (backend) & Anne Vaarala \\
				\hline
				Yhteenvetosivu    & Lauri Antila \\
				\hline
				Tietokanta   & Antti Kauppi \\
				\hline
				Sovellusraportti       & Nuutti Rantanen \\
				\hline
				Järjestelmätestaus       & Antti Kauppi \\
				\hline
				Käytettävyystestaus       & Lauri Antila \\
				\hline
			\end{tabular}
			\caption{Toteutettavat tulokset ja niiden vastuuhenkilöt.} \label{vastuualueet}
		\end{table}
	\end{center}\vspace{-10mm}

	\section{Tehtävien arvioidut työmäärät ja työnjako}	
	
	Projektiin ja oheiskursseihin käytettävät työtunnit sekä työnjakoa tehtäväkokonaisuuksittain on arvioitu kuvassa~\ref{vastuualueet} ja taulukossa~\ref{tyomaarat}. Tehtävät on jaettu ottamalla huomioon projektiryhmän jäsenten vastuualueet sekä suunnittelun ja toteutuksen osalta erityisosaaminen. Työnjako on pyritty tekemään siten, että kokonaistuntimäärä jakautuu tasaisesti ryhmän jäsenten kesken.
	
	 Laadittavien dokumenttien työmäärien arviointi perustuu edellisten sovellusprojektien, Moveo ja Moveatis ~\cite{moveosuunnitelma}~\cite{moveatissuunnitelma}, toteutuneisiin työtunteihin. Suunnittelun ja toteutuksen tehtäväkokonaisuuksien jakautuminen tehtäviin on tehty alustavan vaatimusmäärittelyn ja esitutkimusvaiheessa laadittujen ajatuskarttojen perusteella. Suunnittelun, toteutuksen ja muiden tehtävien työmäärät on arvioitu tehtävien haastavuuden sekä ryhmän jäsenten aiemman osaamisen perusteella.
	
	Kunkin ryhmän jäsenen tavoitteena on käyttää Sovellusprojektiin noin 20 työtuntia viikossa. Alustavan työtuntien arvioinnin mukaan Sovellusprojektin läpivientiin tarvitaan taulukon~\ref{tyomaarat} mukaan yhteensä noin 1435 tuntia. Projektin ohella suoritettaviin oheiskursseihin on laskettu työtunnit erikseen.
	
	%\begin{table}[htp]
		%\centering % trim : vasen, ala, oikea, ylä ?
		% \scalebox{0.8}{\includegraphics[trim = 25mm 29mm 25mm 10mm, clip, angle=0]{tyotunnit.pdf} }
		%\caption{Tehtävien arvioidut työmäärät tunteina.} \label{tyomaarat}
	%\end{table}

	%
	%    Prosessi ja aikataulu
	%
	\chapter{Prosessi ja aikataulu}
	
	Luvussa kuvataan projektin läpiviennissä käytettävää prosessia ja suunniteltua aikataulua.
	
	\section{Prosessi}
	
	Projektin ensimmäisessä vaiheessa kartoitetaan toteutettavan ohjelman vaatimuksia, minkä perusteella laaditaan vaatimusmäärittely, käyttöliittymän hahmotelmia ja suunnitellaan sovelluksen rakenne. Lisäksi projektin läpivienti suunnitellaan. Esitutkimuksen aikana selvitetään ja päätetään lisäksi sovelluksen toteuttamiseen parhaiten soveltuvat kehitystyökalut. 
	
	Ensimmäisen vaiheen jälkeen kehitetään useassa vaiheessa sovelluksen käyttöliittymä, tietokantarakenne ja toiminnallisuudet. Kehitysvaiheiden aikana suunnitellaan ja toteutetaan käytettävyys- ja järjestelmätestauksen testauskerrat. 
	
	Viimeisessä vaiheessa laaditaan projektiraportti ja sovellusraportti sekä viimeistellään sovellus, lähdekoodi ja dokumentaatio tilaajalle luovutusta varten.
	
	Projektin läpiviennissä hyödynnetään Scrum-kehityksestä räätälöityä prosessia, jossa yhdistellään sekä inkrementaalista että iteratiivista lähestymistapaa. Kehitysvaiheissa kehitystä tehdään kahden tai kolmen viikon mittaisissa sykleissä niin, että toiminnallisuuksia lisätään ohjelmaan vaatimusmäärittelyn prioriteettien mukaisesti. Kehitysvaiheita on useita, joiden alussa ryhmä asettaa itselleen tavoitteet lisättävistä, korjattavista tai parannettavista toiminnallisuuksista. Kunkin kehitysvaiheen jälkeen projektipalaverissa tarkastetaan saavutetut tulokset sekä päätetään uudelle kehitysvaiheelle siirrettävistä kesken jääneistä tavoitteista ja uusista lisättävistä ominaisuuksista.
	
	\newpage
	\section{Aikataulu}\label{aikataulutus}
	
	Projekti alkoi torstaina 30.1.2020, ja se päättyy viimeistään toukokuun puolessa välissä. Projektin läpiviennin suunniteltu aikataulu on esitetty tärkeimpien tehtäväkokonaisuuksien ja toteutettavien tulosten osalta kuvassa~\ref{fig:aikataulu}. Helmikuu käytetään ensimmäiseen vaiheeseen. Kehitysvaiheisiin siirrytään mahdollisimman nopeasti vaatimusmäärittelyn ja kehitystyökalujen valinnan jälkeen. Kehitysvaiheet aloitetaan viimeistään maaliskuun alussa, ja ne jatkuvat huhtikuun puoleen väliin, poislukien pääsiäislomaviikko kuukausien vaihteessa. Huhtikuun viimeiset kaksi viikkoa on varattu viimeiselle vaiheelle, jossa viimeistellään tulokset. Toukokuun loppuun on varattu noin kaksi viikkoa pelivaraa, jos aikataulu viivästyy.
	
	
	

	
	%\setcounter{anothercounter}{%
	%\numexpr\value{countername}+10\relax%
	%	}
	%\roman{countername}
	%\arabic{anothercounter}
	
	

	
	\begin{center}
		\begin{table}
			\centering
			\newcounter{countername}
			\setcounter{countername}{0}
			
			\newcounter{anothercounter}
			\setcounter{anothercounter}{0}
			\begin{tabular}{| p{9cm} | c | c | c | c | c | c | }
				%\begin{tabular}{lllllll}
				%	\cline{1-7}	

				\hline \multicolumn{1}{|l}{\textbf{Projektin hallinta}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				Projektisuunnitelma & \addtocounter{countername}{35}\addtocounter{anothercounter}{35}35 & \addtocounter{countername}{1}1 & \addtocounter{countername}{1}1 & \addtocounter{countername}{1}1 & \addtocounter{countername}{1}1 & \arabic{countername} \\ \cline{1-7}
				Projektiraportti & \setcounter{countername}{0}\addtocounter{anothercounter}{35}\addtocounter{countername}{35}35 & \addtocounter{countername}{2}2 & \addtocounter{countername}{2}2 & \addtocounter{countername}{2}2 & \addtocounter{countername}{2}2 & \arabic{countername} \\ \hline
				Seuranta ja hallinta & \setcounter{countername}{0}\addtocounter{anothercounter}{15}\addtocounter{countername}{15}15 & \addtocounter{countername}{4}4 & \addtocounter{countername}{0}0 & \addtocounter{countername}{0}0 & \addtocounter{countername}{0}0 & \arabic{countername} \\ \hline
				Tiedotus & \setcounter{countername}{0}\addtocounter{anothercounter}{10}\addtocounter{countername}{10}10 & \addtocounter{countername}{4}4 & \addtocounter{countername}{4}4 & \addtocounter{countername}{4}4 & \addtocounter{countername}{4}4 & \arabic{countername} \\ \hline
				Tulosten viimeistely ja kokoaminen &\setcounter{countername}{0} \addtocounter{countername}{20}\addtocounter{anothercounter}{20}20 & \addtocounter{countername}{5}5 & \addtocounter{countername}{3}3 & \addtocounter{countername}{3}3 & \addtocounter{countername}{3}3 & \arabic{countername} \\ \hline
				\textbf{Yhteensä} & \textbf{\arabic{anothercounter}} & \textbf{16} & \textbf{10} & \textbf{10} & \textbf{10} & \textbf{161} \\ \hline
				\multicolumn{1}{|l}{\textbf{}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\multicolumn{1}{|l}{\textbf{Palaverit}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				Esityslistat & 5 & 1 & 1 & 1 & 1 & 9 \\ \hline
				Palaverit & 20 & 20 & 20 & 20 & 20 & 100 \\ \hline
				Pöytäkirjat & 15 & 15 & 15 & 15 & 15 & 75 \\ \hline
				Tilakatsaukset & 10 & 0 & 0 & 0 & 0 & 0 \\ \hline
				\textbf{Yhteensä} & \textbf{50} & \textbf{36} & \textbf{36} & \textbf{36} & \textbf{36} & \textbf{194} \\ \hline	
				
				\multicolumn{1}{|l}{\textbf{}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\multicolumn{1}{|l}{\textbf{Esitutkimus}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				Aihealueeseen tutustuminen & 25 & 30 & 30 & 30 & 30 & 145 \\ \hline
				Työkaluihin tutustuminen & 4 & 15 & 15 & 15 & 15 & 64 \\ \hline
				\textbf{Yhteensä} & \textbf{29} & \textbf{45} & \textbf{45} & \textbf{45} & \textbf{45} & \textbf{209} \\ \hline	
				
				\multicolumn{1}{|l}{\textbf{}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\multicolumn{1}{|l}{\textbf{Vaatimusmäärittely}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				Suunnittelu & 1 & 1 & 1 & 6 & 1 & 10 \\ \hline
				Raportointi & 0 & 0 & 0 & 20 & 0 & 20 \\ \hline
				
				\textbf{Yhteensä} & \textbf{1} & \textbf{1} & \textbf{1} & \textbf{26} & \textbf{1} & \textbf{30} \\ \hline
				
			\end{tabular}
		\end{table}
	\end{center}		
	
	%\newpage
	\begin{center}
		\begin{table}
			\centering
			
			\begin{tabular}{| p{9cm} | c | c | c | c | c | c | }
				\hline
				\multicolumn{1}{|l}{\textbf{Suunnittelu}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				Graafikan esityssivu & 1 & 5 & 2 & 12 & 2 & 22 \\ \hline
				Yhteenvetosivu & 1 & 2 & 2 & 5 & 2 & 12 \\ \hline
				Käyttöliittymä & 1 & 5 & 2 & 20 & 2 & 30 \\ \hline
				Käyttäjäryhmien määrittely & 1 & 2 & 5 & 2 & 2 & 12 \\ \hline
				Taustaohjelmisto (backend) & 1 & 0 & 5 & 0 & 5 & 11 \\ \hline
				Tietokanta & 1 & 0 & 5 & 0 & 5 & 11 \\ \hline
				Hallintasivu & 1 & 5 & 0 & 5 & 0 & 9 \\ \hline
				\textbf{Yhteensä} & \textbf{7} & \textbf{19} & \textbf{21} & \textbf{44} & \textbf{18} & \textbf{109} \\ \hline
				
				\multicolumn{1}{|l}{\textbf{}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\multicolumn{1}{|l}{\textbf{Toteutus}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				Graafikan esityssivu & 2 & 13 & 2 & 10 & 2 & 26 \\ \hline
				Yhteenvetosivu & 2 & 2 & 2 & 2 & 40 & 48 \\ \hline
				Käyttöliittymä & 2 & 50 & 0 & 50 & 0 & 102 \\ \hline
				Käyttäjäryhmien määrittely & 2 & 2 & 30 & 2 & 2 & 38 \\ \hline
				Taustaohjelmisto (backend) & 2 & 0 & 50 & 0 & 35 & 87 \\ \hline
				Tietokanta & 2 & 0 & 47 & 0 & 45 & 97 \\ \hline
				Datan siirto tietokantaan & 0 & 0 & 10 & 0 & 10 & 20 \\ \hline
				Hallintasivu & 2 & 40 & 0 & 40 & 0 & 82 \\ \hline
				\textbf{Yhteensä} & \textbf{14} & \textbf{107} & \textbf{131} & \textbf{104} & \textbf{124} & \textbf{480} \\ \hline
				
				\multicolumn{1}{|l}{\textbf{}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\multicolumn{1}{|l}{\textbf{Järjestelmätestaus}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				Suunnittelu & 2 & 2 & 2 & 2 & 10 & 18 \\ \hline
				Testauskerrat & 5 & 5 & 5 & 5 & 5 & 25 \\ \hline
				Raportointi & 2 & 2 & 0 & 0 & 20 & 24 \\ \hline
				\textbf{Yhteensä} & \textbf{9} & \textbf{9} & \textbf{7} & \textbf{7} & \textbf{35} & \textbf{67} \\ \hline
				
				\multicolumn{1}{|l}{\textbf{Käytettävyystestaus}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				Suunnittelu & 2 & 10 & 2 & 2 & 2 & 18 \\ \hline
				Testauskerrat & 5 & 5 & 5 & 5 & 5 & 25 \\ \hline
				Raportointi & 2 & 20 & 0 & 0 & 0 & 22 \\ \hline
				\textbf{Yhteensä} & \textbf{9} & \textbf{35} & \textbf{7} & \textbf{7} & \textbf{7} & \textbf{65} \\ \hline
			\end{tabular}
		\end{table}
	\end{center}
	
	\newpage
	\begin{center}
		\begin{table}
			\centering
			
			\begin{tabular}{| p{9cm} | c | c | c | c | c | c | }	
				
				\hline
				\multicolumn{1}{|l}{\textbf{Viimeistely}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				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
				\textbf{Yhteensä} & \textbf{46} & \textbf{12} & \textbf{20} & \textbf{12} & \textbf{20} & \textbf{100} \\ \hline
				
				
				\multicolumn{1}{|l}{\textbf{}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Projektin tunnit} & \textbf{280} & \textbf{280} & \textbf{278} & \textbf{281} & \textbf{306} & \textbf{1415} \\ \hline \hline
				\multicolumn{1}{|l}{\textbf{}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				
				
				\multicolumn{1}{|l}{\textbf{Oheiskurssit}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Tehtävät} &\textbf{NR}  & \textbf{LA}  & \textbf{AV}  & \textbf{OH}  & \textbf{AK} & \textbf{Kaikki} \\ \cline{1-7}
				Kirjoitusviestintä & 25 & 25 & 25 & 25 & 25 & 125 \\ \hline
				Puheviestintä & 25 & 25 & 25 & 25 & 25 & 125 \\ \hline
				Sovellusprojektin hallinta & 24 & 24 & 24 & 24 & 24 & 121 \\ \hline
				\textbf{Yhteensä} & \textbf{74} & \textbf{74} & \textbf{74} & \textbf{74} & \textbf{74} & \textbf{371} \\ \hline	
				
				\multicolumn{1}{|l}{\textbf{}} & \multicolumn{1}{l}{}  & \multicolumn{1}{l}{}   &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \multicolumn{1}{l}{}  &  \\ \hline
				\textbf{Projektin ja oheiskurssien tunnit} & \textbf{354} & \textbf{364} & \textbf{352} & \textbf{350} & \textbf{368} & \textbf{1788} \\ \hline	
			\end{tabular}				
		\caption{Projektin suunniteltu aikataulu} \label{tyomaarat}
		\end{table}			

	\end{center}


	
	\begin{figure}[ht]
	\centering
	\scalebox{0.65}{\includegraphics[width=2\textwidth,height=\textheight, angle=90]{aikataulu2.png} }
	\caption{Projektin suunniteltu aikataulu} \label{fig:aikataulu}
	\end{figure}
	
	%
	%    Riskit ja niiden hallinta
	%
	\chapter{Riskit ja niiden hallinta} \label{riskit}
	
	Luvussa kuvataan projektissa mahdollisesti kohdattavia 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.
	
	\section{Riskien todennäköisyydet ja haittavaikutukset}
	
	Arvioituja projektin läpivientiä hidastavia tai estäviä 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
			\begin{tabular}{| p{8cm} | c | c |}
				\hline
				\textbf{Riski} & \textbf{Todennäköisyys} & \textbf{Haittavaikutus}\\
				\hline \hline
				Tavoitteiden rajaus ja muutokset & keskitaso & korkea \\  \hline
				Jäsenten tietotaitojen puutteet & keskitaso & korkea \\ \hline
				Projektinhallinnan kokemattomuus & keskitaso & pieni \\ \hline
				Vuorovaikutuksen puuteet ja virheet & matala & keskitaso \\ \hline
				Jäsenten poissaolot ja muut velvoitteet & matala & keskitaso \\ \hline
				Tilaajan edustajien tai ohjaajien poissaolot & matala & keskitaso \\ \hline
				Mahdollinen etätyö & korkea & 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 sekä esitetään keinoja niiden ehkäisemiseksi ja niistä toipumiseen.
	
	\section{Tavoitteiden rajaus ja muutokset} \label{rajaus}
	
	Tilaajan tavoitteet ovat yhteneviä ja suurelta osin selkeästi määritelty. Vaatimusmäärittelyn laatiminen näiden pohjalta on suoraviivaista, mutta siihen on kiinnitettävä paljon huomiota, jotta kehitysvaiheissa ei tarvita tarpeettoman suuria muutoksia sovelluksen rakenteeseen tai toteusratkaisuihin. 
	
	Riskin ehkäisemiseksi ryhmän jäsenten on muodostettava nopeasti keskenään yhtenevä ja tilaajien toiveita vastaava näkemys tavoitteista. Tähän tarvitaan projektin aihealueeseen tutustumisessa riittävä työmäärä. Ryhmän selkeä näkemys tavoitteista edesauttaa projektin läpivientiä aikataulussaan, koska se nopeuttaa kehitystä. Vaatimusmäärittelyn toiminnallisuuksien priorisointi on tehtävä huolella, jotta oleellisimmat vaatimukset saadaan toteutettua projektin aikana. Ryhmän jäsenten on kommunikoitava säännöllisesti ja aktiivisesti tilaajan edustajien kanssa, jotta näkemykset tavoitteista olisivat yhtenäisiä. Tilaajan kanssa sovittujen tavoitteiden muuttuessa on sovittava vaatimusmäärittelyn vaatimusten priorisoinnista uudelleen ja siirrettävä mahdollisesti joitain vaatimuksia alemmalle prioriteetille tai kokonaan jatkokehityksessä toteutettavaksi.
	
	\section{Jäsenten tietotaitojen puutteet}
	
	Projektissa toteutettavan WWW-sovelluksen kehittämisessä käytetään useita uusia työkaluja, ohjelmointikieliä ja niiden kirjastoja sekä tekniikoita, jotka ovat  uusia monille projektiryhmän jäsenille. Osalla jäsenistä on osin aiempaa kokemusta käytetyistä ohjelmointikielistä ja WWW-sovelluksien toteuttamisesta sekä tietokantojen ja rajapintojen suunnittelusta ja käytöstä. Tietotaidon ja aiempien kokemusten puutteet voivat vaikeuttaa asetettujen tavoitteiden saavuttamista projektin suunnitellussa aikataulussa.
	
	Yksittäisten ryhmän jäsenten erityisosaamista tietyistä työkaluista ja menetelmistä voidaan hyödyntää muiden jäsenten opastamisessa ja kohdattujen ongelmien ratkaisemisessa. Kehitysvaiheiden ongelmia pystytään ennakoimaan ja ehkäisemään valitsemalla käytettävät työkalut ja menetelmät aiemmin hyvin tunnetuista vaihtoehdoista. Projektin tekniseltä ohjaajalta voidaan kysyä neuvoa ongelmatilanteissa. Projektiorganisaation ulkopuolisia henkilöitä on hyvä konsultoida, mikäli jokin uusi valittava työkalu tai tekniikka ei ole ryhmälle ennestään tuttu. Projektiryhmän tavoitteena on toimia ohjelmointipareina, että ongelmat voidaan ratkaista toverin kanssa.
	
	\newpage
	\section{Projektinhallinnan kokemattomuus}
	
	Osalla projektiryhmän jäsenistä on aiempaa kokemusta pienimuotoisten projektien suunnittelusta, läpiviennistä ja hallinnasta. Projektipäälliköllä ei ole aiempaa kokemusta projektin projektiryhmän johtamisesta. 
	
	Projektinhallinnan kokemattomuudesta voi seurata 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 saattavat tuottaa myös vaikeuksia. Edellä mainituista syistä projektin läpiviennin aikataulu voi viivästyä tai pahimmassa tapauksessa tarpeellisia toiminnallisuuksia jää toteuttamatta.
	
	Riskin ehkäisemiseksi täytyy ryhmän jäsenten huomauttaa, jos he havaitsevat ongelmia projektin etenemisessä tai tehtävien suorittamisessa. Riskin toteutuessa voivat varapäällikkö ja projektiryhmän muut jäsenet tarvittaessa avustaa ja neuvoa projektipäällikköä hänen tehtävissään. Projektipäällikön ja kaikkien muiden ryhmän jäsenten tehtäviin kuuluu osaltaan oppia projektin hallintaa ja johtamista. 
	
	\section{Vuorovaikutuksen puuteet ja virheet}
	
	Tiedotus ja tiedonkulku ovat erittäin tärkeä osa projektin hallintaa sekä oleellisia koko projektiorganisaation toiminnalle. Puutteellinen tiedonkulku projektiorganisaation jäsenten välillä voi virheellisenä vaikuttaa toteutusratkaisuihin sekä kasvattaa työmäärää, aiheuttaa projektin aikataulun viivästymisen sekä väärinkäsityksiä tilaajan tarpeista ja vaatimuksista.
	
	Tiedonkulun puutteisiin liittyvää riskiä pyritään ehkäisemään sopimalla tiedotuksen käytänteistä yhdessä projektiorganisaation kesken sekä noudattamalla  luvuissa~\ref{kaytanteet1} ja \ref{kaytanteet2} määriteltyjä käytänteitä. Projektiryhmän jäsenten on tiedotettava valmistuneista tehtävistä muille. Palavereissa esitetään tilakatsaus projektin tilasta, ja tilakatsaus toimitetaan lisäksi väliviikoin tarvittaessa sähköpostitse. Näin kaikki osapuolet ovat ajantasalla projektin tilasta ja etenemisestä. Projektiryhmän on kokoonnuttava sisäisiin palavereihin riittävän usein. Kehitysvaiheissa työn tekeminen yhteisessä projektihuoneessa nopeuttaa tiedonkulkua ja siten ongelmien ratkaisua.
	\newpage
	Riskin toteutuessa on projektiorganisaation jäsenten tiedotettava havaitsemistaan ongelmista lisäksi projektipäällikön on  korjattava toimintatapa pyytämällä asianomaisia parantamaan tiedotustaan.

	\section{Jäsenten poissaolot ja muut velvoitteet}
	
	Projektiryhmän jäsenillä voi olla suunniteltuja tai ennakoimattomia poissaoloja projektin aikana. Ennakoimattomia poissaoloja voivat olla esimerkiksi sairastumiset tai muihin kursseihin tai työtehtäviin liittyvät odottamattomat velvoitteet. Yhden tai useamman jäsenen poissaolot voivat viivästyttää projektin etenemistä merkittävästi erityisesti kehitysvaiheissa.  
	
	Ryhmän jäsenillä ei ole projektin alkuvaiheessa tiedostettuja pidempiä poissaoloja. Ryhmän projektipäällikkö Nuutti Rantasella ei ole tiedostettuja pidempiä poissaoloja. 
	
	Projektiryhmässä on enemmän jäseniä kuin monessa aiemmin läpiviedyssä sovellusprojektiryhmässä. Odottamattoman poissaolon sattuessa työtehtäviä on siten helpompi jakaa uudelleen ryhmän muiden jäsenten kesken. Siksi järkevästi ennakoimalla yhden henkilön lyhytaikainen poissaolo ei vaikuta suuresti projektin läpivientiin. Näin ollen, riskin toteutumisen 
	
	Odottamattomia poissaoloja on erittäin vaikea ennakoida tai ehkäistä. Poissaoloriskin ehkäisemiseksi ja siitä toipumiseksi työtunnit ja tehtävät jaetaan tasaisesti ryhmän jäsenten kesken. Tehtävien jaossa pyritään lisäksi siihen, että useammalla kuin yhdellä jäsenellä on tietoa sovelluksen keskeisimmistä toiminnoista ja toteutusratkaisuista. 
	
	Projektiryhmän jäsenten lyhytkestoiset poissaolot huomioidaan työtuntien tasaamisella poissaolon jälkeen. Työtunteja voidaan tasata myös etukäteen, jos poissaolo on etukäteen ja hyvissä ajoin tiedossa. Pidemmissä poissaolotilanteissa on oltava yhteydessä projektin vastaavaan ohjaajaan. Jos poissaolot vaikuttavat merkittävästi projektin läpivientiin, täytyy vaatimusmäärittelyn priorisoinnista sekä sen tai aikataulun mahdollisista muutoksista neuvotella uudelleen tilaajan edustajien kanssa.
	
	
	\section{Tilaajan edustajien tai ohjaajien poissaolot}\label{poissaolot}
	
	Projektiorganisaation muilla jäsenillä eli tilaajan edustajilla ja ohjaajilla voi projektiryhmän jäsenten tavoin olla suunniteltuja ja ennakoimattomia poissaoloja. Ongelmatilanteita voi muodostua, jos tilaaja tai ohjaaja ei ole tavoitettavissa jollain oleellisia päätöksiä tai lisätietoja vaativalla hetkellä. Tilaajan edustajien tai ohjaajien poissaolot voivat viivästyttää projektin etenemistä.
	
	Tilaajan edustajilla ja ohjaajilla ei ole projektin alkaessa tiedossa suunniteltuja pidempiaikaisia poissaoloja. Poikkeuksena tilaajan edustaja Jani Villbergin sairasloma. Kaikki tilaajan edustajat eivät välttämättä pysty aina olemaan paikalla tai osallistumaan jokaiseen palaveriin muiden työvelvoitteidensa vuoksi. Palavereihin osallistumista pyritään helpottamaan sopimalla palaverin ajankohdat kaikille sopiviksi. Tilaajan edustajat ovat lisäksi yliopiston sisältä, mikä helpottaa palavereihin osallistumista ja yhteydenpitoa. 
	
	Palavereista kirjoitettavat 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ä. Tarvittaessa sähköpostitse toimitetuilla tilakatsauksilla pidetään projektiorganisaation jäsenet tietoisina projektin etenemisestä myös palaverittomilla viikoilla. Mikäli poissaolot tulevat projektiorganisaation tietoon hyvissä ajoin, niin niihin voidaan varautua ryhmän työtehtävien jaossa ja aikataulutuksessa, tai esimerkiksi palautteen pyytämisen ajankohtien ennakoinnilla. 
	
	\section{Mahdollinen etätyö}\label{etatyo}
	
	Projektiorganisaatiolle voi tulla määräys tai suositus pysyä kotonaan kansainvälisen Covid19-pandemian johdosta. Tämä tarkoittaa, että ryhmä yhteinen työhuone ei ole käytettävissä, yliopiston kokoustilat eivät ole käytettävissä ja projektiryhmän mikrot eivät ole käytössä vaan projektiryhmä toteuttaa projektin kotimikroillaan. 

	Riskiä hallitaan projektiryhmän sisäisillä etäpalavereilla, projektiorganisaation palaverit siirrettään etämuotoon ja sähköpostiviestintään hyödynnetään ohjaajiin ja tilaajiin entistä suuremmalla painoarvolla. 
	
	Yleiseksi haittatekijäksi voi muodostua rauhallisen työtilan löytäminen, mikä haittaa yhtenäisen työjakson suorittamista. 

	\chapter{Yhteenveto}
	
	Kodavi-projekti kehittää kevään 2020 Sovellusprojekti-kurssilla WWW-sovelluksen Jyväskylän yliopiston liikuntatieteelisen tiedekunnan WHO-Koululaistutkimuksen datan visualisointiin. Sovelluksen avulla terveystiedon opettajaopiskelijat ja terveystiedon opettajat voivat visualisoida WHO-Koululaistutkimuksen dataa omaan ja jaettavaan käyttöön. Kirjautuneet käyttäjät pysytyvät jakamaan hakuparametreja muille ryhmäavainten avulla. Kehitettävä sovellus tulee luomaan WWW-selaimella käytettävän datan visualisointisovelluksen.
	
	Projektin haasteena on tehdä sovelluksesta niin laadukas ja monipuolinen, että sen jokapäiväinen käyttö on opiskelijoille, ohjaajille ja pääkäyttäjälle helppoa ja nopeaa. Lisäksi halutaan, että sovellus tarvittaessa tukee mahdollisimman pienin muokkauksin seuraavien kyselykertojen datan lisäämistä tietokantaan.
	
	Projektin tulokset luovutetaan tilaajalle toukokuun aikana. Projektin läpiviennin suurimmat riskit liittyvät tavoitteiden rajaukseen . 
	
	Sovellusprojekti-kurssi tarjoaa 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ääsevät soveltamaan aiemmilla kursseilla opittuja asioita käytännössä.
	
	
	%LÄHTEET
	\begin{thebibliography}{1}
		%Katso kirjoitusohjeen luku 2.3 ja 2.4.
		
		\bibitem{keplersuunnitelma}
		Joonas Konki, Anu Koskela, Mikko Kuhno, Henrik Paananen ja Atte Räty,
		''Kepler-projekti, Projektisuunnitelma'',
		saatavilla PDF-muodossa 
		<URL: \texttt{http://sovellusprojektit.it.jyu.fi/kepler/dokumentit/\\projektisuunnitelma/kepler\_projektisuunnitelma\_1.0.0.pdf}>,
		\linebreak Jyväskylän yliopisto,
		tietotekniikan laitos,
		24.3.2015.
		
		\bibitem{moveosuunnitelma}
		Karoliina Lappalainen, Tuomas Moisio, Visa Nykänen ja Petra Puumala,
		''Moveo-projekti, Projektisuunnitelma'',
		saatavilla PDF-muodossa <URL: \texttt{http://sovellusprojektit.it.jyu.fi/moveo/dokumentit/\\projektisuunnitelma/Moveo\_Projektisuunnitelma\_1.0.0.pdf}>,
		\linebreak Jyväskylän yliopisto,
		Informaatioteknologian tiedekunta,
		3.4.2019.
		
		\bibitem{moveatissuunnitelma}
		Jarmo Juujärvi, Sami Kallio, Kai Korhonen, Juha Moisio ja Ilari Paananen
		''Moveatis-projekti, Projektisuunnitelma'',
		saatavilla PDF-muodossa <URL: \texttt{http://sovellusprojektit.it.jyu.fi/moveatis/dokumentit/\\projektisuunnitelma/Moveatis\_Projektisuunnitelma\_1.0.0.pdf}>,
		\linebreak Jyväskylän yliopisto,
		tietotekniikan laitos,
		11.4.2016.
		
		\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{muut-tyylit}
		The jQuery Foundation,
		''jQuery’s Style Guides'',
		saatavilla HTML-muodossa
		<URL: \texttt{http://contribute.jquery.org/style-guide}>,\\
		viitattu 28.2.2015.  
		
		
		\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 0.2.3,
		2.4.2020.
		
		
	\end{thebibliography}
	
	
	
	%LIITTEET
	%\begin{appendix}
	
	%\chapter{Ensimmäinen liite}
	
	%Tänne tarvittaessa liitteitä.
	
	%\end{appendix}
	
	% Dokumentin  lopetus
\end{document}
