Postininjojen havaintopalvelu

Samankaltaiset tiedostot
Keskustelusivusto. Suunnitteludokumentti

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1. MafiaTools

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

CMS Made Simple Perusteet

Informaatiotekniikan kehitysyksikkö

NTG CMS. Julkaisujärjestelm. rjestelmä

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

Uuden Peda.netin käyttöönotto

Hallintaliittymän käyttöohje

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Juricon Nettisivu Joomlan käyttöohjeet

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Ylläpito toimittaa sinulla sähköpostiisi käyttäjätunnuksen ja salasanan. Tässä esimerkissä

opiskelijan ohje - kirjautuminen

SALITE.fi -Verkon pääkäyttäjän ohje

INTINU13A6 Java sovellukset

Westiekerho.fi päätoiminnallisuudet

AC Hannes Statistics Tool. Ilkka Hakkarainen

SQL Buddy JAMK Labranet Wiki

2 Yleiskuvaus järjestelmästä. 2.1 Käyttötapauskaavio

Kokoelmakilpailu Lomakeohje, Laji.fi-sarja 1. Rekisteröityminen

24h Admin V / 24h_Admin_v100.pdf 1/9

Nettisivujen Päivitysohje

Sisältö. Päivitetty viimeksi Sivu 2 / 14

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

NTG Kuvapankissa yhdistyvät kuvagallerian ja verkkokaupan toiminnot. NTG Kuvapankki soveltuu samanaikaisesti sekä kuluttaja- että tukkukauppaan.

Oma kartta Google Maps -palveluun

EDUBOX opetusvideopalvelu

Googlen pilvipalvelut tutuksi / Google Drive

Meeting Plannerin käyttöohje

Troijan hevosen tapahtumakalenteri ja jäsentietojärjestelmä. Käyttöohje

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Päänäkymä Opiskelijan ohjeet Kurssin suorittaminen Opettajan ohjeet kurssin teko

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

1 Johdanto. 2 Kirjautuminen. Sisällysluettelo. Kanakoirakerho - websivujen ylläpito

Ylläpitodokumentti Mooan

Vehmaan kunta. Wordpress käyttöopas. Betta Digital Oy

Wordpress. Bloggaamisen perusteet tekniset minimitoimet, joilla pääset alkuun

KYMP Webmail -palvelu

Valppaan asennus- ja käyttöohje

Selaimen kautta käytettävällä PaikkaOpin kartta-alustalla PaikkaOppi Mobiililla

JAKELUPISTE KÄYTTÖOHJE 2/6

Vaatimusdokumentti Labra

Osallistavan suunnittelun kyselytyökalu

Tietokantasovellus: drinkkiarkisto

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

1 Kirjautuminen ja Käyttöliittymä Kirjautuminen Käyttöliittymä Uuden varauksen tekeminen Normaali varaus...

Punomo Blogit BLOGIN LUOMINEN WORDPRESS-ALUSTALLA. Kirjaudu -palveluun osoitteessa tunnuksellasi.

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Pika-aloitusopas. Sisältö: Projektin luominen Projektin muokkaaminen ja hallinnointi Projektin/arvioinnin tulosten tarkastelu

ETAPPI ry JOOMLA 2.5 Mediapaja. Artikkeleiden hallinta ja julkaisu

Sisällysluettelo 1 Johdanto Root, koko Opalan pääkäyttäjä

Sähköisen Markkinoinnin Koulutus Kotisivutyöpaja. Julkaisujärjestelmän ohje

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

JOVISION IP-KAMERA Käyttöohje

Tapahtumakalenteri & Jäsentietojärjestelmä Toteutus

tempus.kpedu.fi Tuntitietojen kirjausjärjestelmän Ohje Versio 3.3 päivitetty KPAO Juha Kykyri

EnterQ Johtamisportaali

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

SilvaToiminta Versio 1.0. SilvaToiminta. Pikaohje Versio Oy Silvadata Ab Pikaohje 1

Tietokantasovelluksen määrittelydokumentti

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Webpalvelin muistitikulle - Ohje

ProTieto Oy. Verottajan ilmoitus. Käyttöohje alihankkijoille

BLOGGER. ohjeita blogin pitämiseen Googlen Bloggerilla

ejuttu ohjeet kuinka sitä käytetään.

VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE

Formaalit menetelmät: Kirjaston formalisointi Z-kuvauskielellä

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

ohjeita kirjautumiseen ja käyttöön

Kommenttiseinä -palvelun käyttöopas

Wuudis Pro. Mobiilisovellus

opiskelijan ohje - kirjautuminen

Teams-ohjelman asennus- ja käyttöohje vertaisohjaajille

Kuopio, Käyttöohje,

Kurssien lukulistojen ylläpito Nellissä ja siirto Moodleen

VAAKAPESÄSEURANNAN KÄYTTÖOHJEET

Lyseopaneeli 2.0. Käyttäjän opas

Lohtu-projekti. Testaussuunnitelma

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

Lipas- järjestelmän tallennusohjeet, käyttöohjeet-kansio. Lipas- järjestelmä löytyy myös osoitteesta

Turnitin-ohjelma käyttö opettajana Turnitin.comissa

EVTEK-PROJEKTORI KÄYTTÖOHJE Tekijä: Teemu Tammivaara VBP04S

Office 365 palvelujen käyttöohje Sisällys

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola

Lupapiste käyttöönottokoulutus. Palvelun esittely

UTIFLEET-VARAUSJÄRJESTELMÄ KÄYTTÄJÄN OHJE. Gospel Flight ry

Liferay CE KÄYTTÖOHJE PÄIVITTÄJÄLLE. Content Manager. Ambientia Oy TM Ambientia

Ohje vanhemmille - näin alkuun Päikyssä

Kangasniemen yrityshakemisto KÄYTTÖOHJE YRITTÄJÄLLE. KANGASNIEMEN KUNTA yrityshakemisto.kangasniemi.fi

PELAAJAPROFIILI Mobiilisovellus

Seutudokumenttien pä ivittä misohje

Ensimmäisessä vaiheessa ladataan KGU tietokanta Hallitse tietokantoja toiminnon avulla.

RATKI 1.0 Käyttäjän ohje

LINUX-HARJOITUS, MYSQL

Perustietoja Mietoisten kyläportaalista Yhdistyksen ylläpitäjän kirjautuminen Yhdistyksen etusivun muokkaaminen... 2

Transkriptio:

Tietokantasovellus Antti Myyrä 014012055 Tietojenkäsittelytieteen laitos Helsingin Yliopisto Postininjojen havaintopalvelu 1. Johdanto Järjestelmän tarkoituksena on toimia postininjojen havainnoista ilmoittamisille, havaintojen erityispiirteiden raportoinnille sekä aiempien havaintojen selaamiselle. Postininjat ovat Itellan (ent. Posti) tavarantoimituksen erikoisjoukkoja, joita on vuosikaudet koulutettu lähes äänettömään ja näkymättömään liikkumiseen. Usein ainoa merkki postininjasta on havaitsijalle ovesta tullut lappu tai merkintä sähköiseen järjestelmään saapuvan lähetyksen toimitusyrityksestä vaikka olisi ollut kotona odottamassa saapuvaa pakettia. Yksi tiedustelu ja keskustelua postininjoista löytyy mm. erään havaitsijan kertomuksesta osoitteesta https://www.facebook.com/posti.fi/posts/551563268210869. Lukuisista havainnoista huolimatta postininjojen määrää ja levinneisyyttä ei kuitenkaan tunneta eikä ole tietoa keskittyvätkö ninjat erityisesti kaupunkeihin vai haja-asutusalueille. Luotavan järjestelmän tavoitteena onkin auttaa kokonaiskuvan muodostamisessa ja alustavan tietopohjan kokoamisessa myöhempää tutkimusta varten. Työ toteutetaan Apache-palvelinympäristössä käyttäen ohjelmointikielenä PHP:ta ja tietokantana MySQL:ää. Ympäristö ei ole Tietojenkäsittelytieteen laitoksen, vaan oma palvelimeni. PHP:n valitsin kieleksi sen vuoksi että ratkon lähes päivittäin työssäni erilaisia PHP:hen liittyviä koodiongelmia, mutten ole ikinä itse toteuttanut tällä kielellä mitään. Korkea aika siis aloittaa. Erillisiä frameworkkejä (esim. Zend) en aio käyttää. Selaimelta vaaditaan Javascript-tukea, sillä osa havaintojen visualisoinneista esitetään käyttäen Google Maps APIn avulla luotuja karttoja, jotka luodaan juuri Javascriptin avulla. Sivuston muotoilujen vuoksi selaimessa on oltava myös CSS-tuki.

Palvelimelta vaaditaan web-palvelimen lisäksi asennettuna PHP-tulkki sekä MySQL-tietokanta. Palvelu on helposti siirrettävissä toisaalle kloonaamalla Github-repositorion, määrittämällä uudella palvelimella tietokannan asetukset ja siirtämällä tietokantadumpin uudelle tietokantapalvelimelle. 2. Yleiskuva järjestelmästä Käyttötapauskaavio Kuva 1, Käyttötapauskaavio Käyttäjäryhmät Vierailija Vierailijalla tarkoitetaan ketä tahansa erikseen rekisteröitymätöntä sivuilla kävijää. Vierailijoita ovat myös sivuilla saapuvat rekisteröityneet kävijät, jotka eivät ole vielä kirjautuneet sisään.

Käyttäjä Käyttäjä on sivustolle rekisteröitynyt ja sisään kirjautunut kävijä. Käyttäjä voi kirjata havaintoja ja kommentoida nykyisiä. Myös ylläpitäjät ovat sivuston käyttäjiä. Ylläpitäjä Ylläpitäjä on sivuston hallinnoija, joka voi poistaa väärät havainnot ja valvoo keskustelua. Käyttötapauskuvaukset Vierailijan käyttötapaukset Havaintojen selaus: Kuka tahansa sivustolla kävijä voi selata havaintoja ajankohdan tai paikkakunnan perusteella sekä tarkastella havaintoihin tehtyjä kommentteja sekä niihin liitettyjä kategorioita. Muita käyttötapauksia: rekisteröityminen, kirjautuminen Käyttäjän käyttötapaukset Havaintojen kirjaus: Käyttäjät voivat kirjata järjestelmään havaintojaan. Havaintoon kirjataan sijainnin lisäksi ajankohta sekä siihen mahdollisesti liittyvät kategoriat (ns. tagit) Havaintojen kommentointi: Havaintoihin voi kirjoittaa kommentteja havainnon tarkentamiseksi tai kyseenalaistamiseksi. Kommentit mahdollistavat myös keskustelun havainnoista ja niihin liitetyistä kategorioista. Omien tietojen muokkaaminen: Käyttäjällä on tiedoissaan mm. nimi ja salasana, joita on mahdollista muokata. Myös ylimääräiset käyttäjätiedot, kuten kuva ja käyttäjän kuvaus itsestään, on mahdollista lisätä myöhemmin. Kategorioiden lisäys, poisto ja muokkaus: Havaintoihin liittyviä kategorioita on mahdollista lisätä, poistaa ja muokata myös havainnosta käytävän keskustelun edetessä. Havaintoon voidaan

esimerkiksi liittää Epävarma -kategoria mikäli havaintopaikkakunnalla tai sen läheisyydessä ei ole aiemmin tehty postininjahavaintoja. Ylläpitäjän käyttötapaukset Havaintojen poistaminen ja muokkaus: Ylläpitäjän on mahdollista poistaa vääriä havaintoja tai muokata havainnon sijaintia mikäli se on alunperin virheellinen. Poistettaessa poistuvat myös havaintoon liittyvät kommentit. Kommenttien poistaminen ja muokkaus: Ylläpitäjä voi poistaa havaintoihin tehtyjä asiattomia kommentteja tai tarvittaessa muokata niitä esimerkiksi kirjoitusvirheiden tai kirosanojen poistamiseksi. Käyttäjien poistaminen ja muokkaus: Ylläpitäjä voi poistaa häiriköivän käyttäjän tai tietojensa poistoa pyytäneen käyttäjän. Poistettaessa käyttäjän tekemät havainnot ja lisäämät kommentit eivät kuitenkaan välttämättä poistu. 3. Järjestelmän tietosisältö Kuva 2, Käsitekaavio

Tietokohde: Käyttäjä Attribuutti Arvojoukko Kuvailu id Kokonaisluku Käyttäjän numeerinen tunniste Nimi Merkkijono, max. 64 Käyttäjän nimi tai nimimerkki (kumpaa tahtookaan käyttää) Salasana Merkkijono, max. 256 Käyttäjän salasana, joka on salattu hajauttamalla ja ylimääräisellä satunnaismerkkijonolla (salt) Salt Merkkijono, max. 32 Satunnaismerkkijono, jolla hajautuksesta saadaan varmempi Kuvaus Merkkijono, max. 512 Käyttäjän kuvaus itsestään Tyyppi Kokonaisluku Käyttäjän status (1: käyttäjä, 2: ylläpitäjä) Käyttäjät ovat palvelun sisällöntuottajia. Käyttäjä voi lisätä omia uusia havaintoja, kommentoida omia ja muiden havaintoja sekä lisätä havaintoihin kategorioita (ns. tageja). Tietokohde: Havainto Attribuutti Arvojoukko Kuvailu id Kokonaisluku Havainnon numeerinen tunniste Havaitsija Kokonaisluku Havaitsijan numeerinen tunniste (käyttäjän id) Aika Ajankohta Havainnon ajankohta Sijainti Merkkijono, max. 32 Paikkakunta Merkkijono, max. 32 Otsikko Merkkijono, max. 32 Kuvaus Merkkijono, max. 1024 (24-04-2014 14:23:15) Havainnon sijainti, Googlen Maps API:n koordinaatit Koordinaateista saatu paikkakunta Havaitsijan havainnolle antama otsikko Havaitsijan havainnon tarkempi kuvailu

Postininjoista tehdyt havainnot ovat palvelun sisältö, jonka ympärille muut toiminnot rakentuvat. Havaintoon kirjataan havainnon ajankohta, havaintopaikka sekä tarkempi kuvaus havainnosta. Havaintoa voi myös kommentoida ja siihen voi lisätä kategorioita. Tietokohde: Kommentti Attribuutti Arvojoukko Kuvailu id Kokonaisluku Kommentin numeerinen tunniste Havainto Kokonaisluku Havainnon, johon kommentti liittyy, numeerinen tunniste (id) Kommentoija Kokonaisluku Kommentoijan numeerinen tunniste (id) Aika Ajankohta Kommentin ajankohta (2014-04-24 14:23:15) Kommentin sisältö Kommentti Merkkijono, max. 512 Havaintomuokkaus Totuusarvo Merkintä onko kyseessä ko. havaintoon tehty muokkaus, esim. lisätty kategoria Kommenttiin liittyvät niin kommentoija kuin myös kommentoitava havainto, sekä kommentin ajankohta. Kommentista löytyy sen sisällön lisäksi vielä totuusarvo Havaintomuokkaus, joka kuvaa kertooko kommentti jostain havaintoon tehdystä muokkauksesta (esim. kategorian lisäyksestä), jolloin kommenttia käsitellään hiukan eri tavalla. Tietokohde: Kategoria Attribuutti Arvojoukko Kuvailu Id Kokonaisluku Kategorian numeerinen tunniste Kategorian nimi Nimi Merkkijono, max. 32 Pisteet Kokonaisluku Kategoriasta saatavat pisteet, joilla voi antaa havainnoille pisteytyksiä

Kategoriat ovat niinsanottuja tageja, joilla voidaan paremmin hahmottaa havainnon samankaltaisuutta muihin havaintoihin nähden. Havaintojen erityispiirteitä voidaan näin paremmin dokumentoida ja vertailla näitä muihin samoja kategorioita saaneisiin havaintoihin. Tietokohde: Havaintokategoria Attribuutti Arvojoukko Kuvailu Havainto Kokonaisluku Havainnon numeerinen tunniste (id) Kategoria Kokonaisluku Kategorian numeerinen tunniste (id) Havaintokategoriat ovat apuväline many-to-many-relaation toteuttamiseen havaintojen ja kategorioiden välillä. Tästä tietokantataulusta voidaan hakea joko tiettyyn havaintoon liittyvät kategoriat tai vaihtoehtoisesti tiettyyn kategoriaan liittyvät havainnot. 4. Relaatiotietokantakaavio Kuva 3, Relaatiokaavio

5. Järjestelmän yleisrakenne Järjestelmä on toteutettu kurssin suositteleman MVC-mallin mukaisesti. Kontrollerit sijaitsevat juurihakemistossa, näkymät hakemistossa views ja mallit hakemistossa libs/models. Muut järjestelmän käyttämät yleistiedostot, kuten tietokantayhteyteen liittyvät seikat, löytyvät libs-hakemiston tiedostosta yleiset.php. Tietokanta-asetukset löytyvät libs-hakemistosta tiedostosta authconf.php. Järjestelmässä käytetään javascriptiä Googlen karttojen generointiin mm. etusivulla ja havaintoa lisättäessä. Muuten järjestelmä on PHP:ta, ja HTML:ää sekä CSS-muotoiluja käytetään vain näkymissä. Järjestelmä käyttää istuntoja tallentaessaan kirjautuneen käyttäjän sessiontauluun nimellä kirjautunut. 6. Käyttöliittymä Kuva 4, Käyttöliittymäkaavio

Käyttöliittymäkaaviosta löytyy suurempi versio työn dokumentaatiokansiosta. Kaavion lisäksi käyttöliittymään kuuluu myös navigaatiopalkki, josta löytyy pääsy etusivulle, havaintoihin, kirjautuneille omiin käyttäjätietoihin sekä ylläpitäjän tapauksessa vielä erilliseen ylläpitonäkymään. 7. Asennustiedot Asennus aloitetaan kopioimalla järjestelmän tiedostot haluttuun kansioon. Tämä onnistuu helpoiten esim. lataamalla pakatun zip-tiedoston osoitteesta https://github.com/ajmyyra/postininjat/archive/master.zip ja purkamalla tämän ko. kansioon. Ympäristön MySQL:n versiolla ei ole väliä(suosituksena silti 5.5), mutta PHP:n on oltava versio 5.5 tai uudempi. Kun tiedostot on purettu, on oikeat tietokanta-asetukset määritettävä vielä tiedostoon auth-conf.php hakemistosta libs. Esimerkkitiedosto löytyy samasta hakemistosta nimellä auth-conf.php.example. Kun asetukset ovat kunnossa, täytyy alustaa vielä tietokanta. Tarvittavat tiedostot tähän löytyvät sql-kansiosta. Ensin ajetaan tiedoston createtables.sql sisältö ja tämän jälkeen tiedosto add-initial-data.sql. Tämä alustaa tarvittavan kannan ja lisää sinne ylläpitotunnuksen käyttäjänimellä admin ja salasanalla n6#oa+9w (molemmat ilman -merkkejä). Sekä käyttäjänimi että salasana kannattaa muuttaa sisäänkirjautumisen jälkeen joksikin toisiksi. Tämän jälkeen voit aloittaa järjestelmän käytön. Mene selaimella kansioon johon järjestelmän tiedostot purit, luo tunnus ja ala kirjaamaan havaintoja. 8. Käynnistys- ja käyttöohje Järjestelmä löytyy oletustunnuksin osoitteesta http://ninjat.derppaus.info. Oletuskäyttäjää ei ole, mutta tällaisen voi hyvin luoda rekisteröitymällä. Ylläpitäjän tunnukset löytyvät kappaleesta Asennustiedot. Itse järjestelmän käyttö on helppoa. Ja sivulta toiselle navigointi onnistuu näppärästi sivun ylälaidassa olevan menun avulla. Ylläpitäjällä on tavalliseen käyttäjään nähden hiukan ylimääräisiä valintoja, mutta nämä ovat helppoja ymmärtää. Esimerkiksi käyttäjän poistaminen onnistuu tämän tietojen muokkauksesta (johon pääsee hallinnan käyttäjälistauksen kautta).

9. Testaus, tunnetut bugit ja puutteet sekä jatkokehitys Järjestelmää on testattu joukkoistettuna tuttujen kesken (Nixun penetraatiotestaajalle on aina hyvä uhota että järjestelmä on täysin varma. Ei ollut), sekä sqlmap-työkalulla (http://sqlmap.org), joka on ajettu automatisoidusti sovellusta vasten aina uuden pushin yhteydessä tuotantoon. Syötteet on pyritty tarkistamaan varmuuden vuoksi useassa kohtaa: sekä tietokantaan tallennettaessa että sivuja näyttäessä. Järjestelmässä ei ole tunnettuja bugeja, mutta uusia ominaisuuksia olisi vielä lisättävänä ja käytettävyyttä paranneltavana. Esimerkiksi paikkakunnan voisi havaintoa kirjattaessa hakea suoraan sijaintitiedosta eikä sitä tarvitsisi erikseen kirjoittaa. Kategorioissa jo nyt olevat pisteet jäävät tällä hetkellä vielä käyttämättä, eikä niillä voi esimerkiksi listata eniten pisteitä saaneita havaintoja. Samoin sijaintidata jää etusivun karttaa lukuunottamatta monin paikoin hyödyntämättä (esim. läheisten havaintojen näyttäminen). Näitä on tarkoitus lisätä mikäli sovellus saa käyttäjiä. 10. Omat kokemukset Aloittaessani tietokantasovellustani en ollut ikinä koodannut yli kolmea riviä PHP:ta. Projekti olikin siis melkoinen sukellus syvään päähän, mutta uskoisin tämän aikana oppineeni merkittävästi lisää PHP:sta sekä Googlen Maps APIsta ja hiukan lisää myös Javascriptistä ja SQL:stä. Kurssi oli melko työläs, mutta todella mielenkiintoinen! Nyt pystyn tarvittaessa luomaan kaikenlaista webissä toimivaa. Ensi kerralla aion tosin käyttää apuna jotakin frameworkkiä. Ongelmien kannalta kurssin irkkikanava oli todella hyödyllinen lähde ja täältä sai apua joskus myös yön pimeinä tunteina. Samoin myös assari auttoi pyydettäessä, joten en kokenut olevani ongelmieni kanssa yksin. Erityisen hyvänä koin kurssia varten pystytetyn Advanced Kittenry sivuston. Ilman näitä olisin voinut olla hyvin hukassa.