SportPug ry on talvella 2002 perustettu rekisteröity yhdistys, joka on tarkoitettu kaikille Peugeot harrastajille. Yhdistyksen tarkoituksena on ylläpitää kattavaa internet-sivustoa, levittää sivuston kautta ohjeita ja vinkkejä Peugeot-henkilöautojen korjauksesta ja virittämisestä, järjestää erilaisia tapahtumia ja ennen kaikkea koota Peugeot-henkiset ihmiset yhteen. (SportPug ry 2009)
Yhdistyksen toiminta
Yhdistyksen toiminnan voi jakaa kahteen pääluokkaan. Tapahtumien järjestäminen ja verkkopalvelun ylläpitäminen. Verkkopalvelu sisältää keskustelupalstan, joka on jaettu useaan eri aihealueeseen. Alueita ovat hallituksen palsta, jäsenaluee ja kaikille avoin alue, joka jakautuu yleisiin keskusteluihin sekä tekniikkaan, myyntiin ja projekteihin keskittyviin ala-alueisiin. Verkkopalvelu sisältää keskustelun lisäksi myös jäsenistön kirjoittamia artikkeleita. Käytännössä tapahtumien järjestäminenkin nojaa pitkälti verkossa olevaan keskustelupalstaan, jonka avulla tapahtuman suunnittelu ja ilmoittautumiset otetaan vastaan.
Koska yhdistys on verkkoa aktiivisesti käyttävien nuorien perustama, niin verkkopalvelut ovat hyvin olennainen osa yhdistyksen toimintaa. Yhdistyksellä ei ole esimerkiksi kerholehteä, vaan kaikki tiedonvaihto kokoontumisia lukuunottamatta tapahtuu verkossa.
Yhdistyksen verkkopalvelun nykytila
Nykyinen verkkopalvelu on rakennettu jo kerhon toiminnasta poistuneiden henkilöiden toimesta, joten sivuston ylläpito on jäänyt vähemmälle huomiolle. Nykyisen verkkopalvelun tekninen toteutus perustuu PHP:lla luotuisin sivupohjiin, joten sivuston toiminta on kyseistä ohjelmointikieltä osaavalle helppo omaksua. Artikkeleiden hallintaan on itse tehty MySQL-tietokantaa hyödyntävä julkaisujärjestelmä.
Nykyisen verkkopalvelun heikko puoli on järjestelmän kehityksen pysähtyminen. Alkuperäiset tekijät eivät ole enää mukana kerhon toiminnassa ja keskustelualueen tuottavan ohjelmistonkin kehitys on lopetettu (YaBB SE 2009). Sivuston lähdekoodi on vanhaa HTML:ää, eikä se noudata nykyisiä verkkosivujen tekemiseen tarkoitettujen tekniikoiden tiukkaa oikeanmukaisuutta.
Verkkopalvelun nykyisten palveluiden vastaavuus Drupalissa
Uuden verkkopalvelun toteuttamiseen valittu Drupal tarjoaa suoraan kaksi päätoiminnallisuutta. Keskustelualue, eli foorumi ja artikkeleiden teko. Näiden lisäksi palvelu tarjoaa käyttäjien hallinnan ja lisäosat mahdollistavat käyttäjien ryhmittelemisen eri rooleihin.
Drupalin foorumi ja artikkeleiden teko.
Kehitysjärjestelmän pystyttäminen
Drupal-järjestelmän asentaminen tarvitsee vaatimuksissa mainitun alustan toiminnalleen. Vaatimusten ollessa kunnossa, palvelun perustajalla pitäisi olla käyttöoikeus palvelinkoneen komentokehoitteeseen tai vastaavaat toiminnot tarjoavaan graafiseen käyttöliittymään ja asennettavalle järjestelmälle annettavan tietokantayhteyden sijaintitieto, käyttäjätunnus ja salasana. Tässä tapauksessa kyse on testialustasta, joten palvelimen Drupal-järjestelmän asentaja ja palvelimen ylläpitäjä ovat sama henkilö.
Drupal-järjestelmän eri versiot on ladattavissa Drupal.org -verkkosivustolta. Tähän projektiin liittyvä asennus tehtiin Drupal versiolla 6. Asennuspaketin voi ladata omalle koneelle ja siirtää siitä palvelimelle, mutta tässä tapauksessä nähtiin parhaimmaksi ladata se suoraan palvelimelle ja purkaa siellä. Järjestelmä on pakattu Unix-maailmasta tuttuun tar.gz -pakettiin, joka on helposti purettavissa yleisillä komentorivityökaluilla kuvan 1 mukaisesti.
Kun paketti on purettu lopulliseen sijoituspaikkaansa, joka useinmiten on palvelimella kyseiseen tarkoitukseen tarkoitettu public_html -hakemisto, voidaan järjestelmän käyttöönotto aloittaa menemällä siihen www-osoitteeseen joka on sidottu www-palvelimen asetuksissa kyseiseen public_html-hakemistoon. Loput asennuksesta pääsee tekemään suoraan Drupalin omasta asennuskäyttöliittymästä.
Mikäli Drupal-järjestelmää halutaan käyttää jollain muulla kielellä kuin Englanniksi, kannattaa kielipaketit purkaa paikalleen, ennen asennuksen aloittamista, jolloin asennuksenkin pääsee tekemään halutulla kielellä. Kielipakettien asennus menee teknisesti samalla tavalla kuin itse järjestelmän asennus. Kielipaketeille on omat alihakemistonsa, johon paketti purkaa itsensä.
Drupalissa on olemassa tietoturvasyystä rajoitus, joka estää viemästä asennusta eteenpäin, ennen kuin asennuspaketissa oleva asetustiedosto uudelleennimetään ja sille annetaan kirjoitusoikeudet. Drupal ilmoittaa ja ohjeistaa tekemään tämän, eikä annan asennuksen mennä eteenpäin ennen kuin tarvittavat muutokset on tehty kuten kuvassa 2 on nähtävissä.
Asennuksen seuraavassa vaiheessa käydään läpi tietokanta-asetukset. Tietokannan perusasetukset ovat tietokannan nimi, käyttäjätunnus ja salasana. Nämä ovat pakolliset tiedot tietokantayhteyden käyttöön. Näiden tietojen antaminen riittää silloin kun tietokantaohjelmisto on samassa palvelinjärjestelmässä kuin itse sivustoa tarjoava web-palvelin. Edistyneissä valinnoissa tarjotaan mahdollisuutta määrittää erikseen tietokantapalvelin, joka muuten oletuksena on localhost, eli paikallinen järjestelmä.
Vaikka kyseessä olisikin paikallinen järjestelmä, niin edistyneiden valintojen taulun etuliite -asetuksella on mahdollista määrittää jokaiselle tietokantataululle Drupal-järjestelmäkohtainen etuliite. Tämä on melkeinpä pakollista silloin kun sama tietokanta halutaan jakaa useamman eri ohjelmiston välillä. Mikäli näin ei ole, niin etuliitteen asettamisesta ei ole haittaakaan, koska se voi myöhemmin muodostua hyväksi ominaisuudeksi, mikäli tietokantaa tarvitsee siirtää tai yhdistellä.
Tietokanta-asetusten jälkeen Drupal-järjestelmä asentaa itsensä sekä valmistelee käännökset. Nämä kuvan 3 esittämät vaiheet ovat täysin automaattisia, eivätkä vaadi asentajalta mitään toimenpiteitä.
Asennuksen jälkeen asennusnäkymässä tehdään vielä sivuston perusasetukset. Tässä vaiheessa Drupal muistuttaa ja ohjeistaa aikaisemmassa vaiheessa asennusta tehdyn kirjoitusoikeuden poistamisesta. Drupal-järjestelmän perusasetuksiin kuuluu järjestelmän tarjoavan sivuston nimi ja sähköpostiosoite. Sähköpostiosoitetta käytetään silloin kun järjestelmä lähettää käyttäjilleen sähköpostiviestejä. Mikäli yhdistyksellä on oma verkkotunnus ja sähköpostipalvelut, niin sivuston sähköpostiosoitteena voi käyttää esimerkiksi webmaster@yhdistys.fi -osoitetta, jota sivuston ylläpitäjä seuraa.
Järjestelmälle on luotava tässä asennuksen vaiheessa myös käyttäjätunnus ylläpitoa varten. Kyseinen tunnus saa kaikki oikeudet järjestelmään ja sitä ei ole yleisen ja hyvän tietoturvakäytännön vuoksi suositeltavaa käyttää mihinkään muuhun kuin ylläpidollisiin toimiin.
Palvelinasetuksista määritellään järjestelmälle oletusaikavyöhyke ja asentaja antaa myös ottaa käyttöön niin sanotut siistityt osoitteet, jolloin osoiterivillä näkyvä osoite saadaan ihmisystävällisempään muotoon. Tämä ominaisuus on hyvä ottaa käyttöön, mikäli palvelinohjelmisto tukee sitä.
Kun asennus on saatettu loppuun, avautuu sivusto automaattisesti ylläpitäjän tunnuksin ja aloitussivu opastaa muokkaamaan Drupalia käyttäjän haluamaan muotoon kuvan 4 kaltaisesti.
Toiminnallisuuksien käyttöönotto
Lisäosien hakeminen, tutkiminen ja asentaminen on tehty erittäin helpoksi. Lisäosien, eli moduuleiden etsimiseen on oma haku- ja selailusivusto Drupal.org -sivustolla. Lisäosia voi hakea hakusanalla, eritellä versioyhteensopivuuden mukaan ja listata julkaisupäivämäärän mukaan. Osa lisäosista on lähes välttämättömyyksiä sivuston rakentamisen kannalta, ja tietyt lisäosat tulevatkin asennuspaketin mukana. Jotkut lisäosat antavat vain pientä viihdearvoa.
Kun halutun oloinen lisäosa löytyy, voi siitä löytyä lisätietoa kuvakaappauksia myöten. Tämä helpottaa päätöksentekoa lisäosan hyödyllisyyttä punnitessa. Lisäosa on ladattavissa samaiselta sivulta. Lisäosa voi olla julkaisu useammalle eri Drupal-järjestelmän versiolle, joten tässä vaiheessa on tiedettävä oman Drupal-järjestelmän versio. Version tarkan tiedon saa tarkastamalla se järjestelmän asennushakemistossa olevasta CHANGELOG.txt -tiedostosta.
Lisäosien asennus menee lähtökohtaisesti samalla tavoin kuin itse järjestelmän asennus. Lisäosa ladataan palvelimelle ja puretaan sille lisäosia varten olevaan hakemistoon, jonka jälkeen se tulee näkyviin järjestelmän hallintaliittymään. Hallintaliittymästä lisäosa voidaan kytkeä päälle ja muokata sen asetuksia.
Tässä projektissa haluttuja lisäosia olivat käyttöoikeusmäärittelyt, laajempien käyttäjätietojen käsittelyn mahdollistava toiminto, asianmukaisen tunnistautumisen varmistusmenetelmä ja hakusanojen käytön mahdollistava järjestelmä. Sivustolle käyttöön tuleva keskustelualue on itseasiassa myöskin lisäosa, mutta se tuli perusasennuksen mukana. Se on kuitenkin kytkettävissä päälle ja pois kuten mikä tahansa muukin lisäosa.
Käyttöoikeusmäärittelyt luotiin ACL -lisäosalla. Lyhenne tulee sanoista Access Control List eli käytönhallintalista. Käyttöoikeusmäärittelyt mahdollistavat tässä tapauksessa erilaisten käyttöoikeuksien määrittelyn eri rooleissa oleville henkilöille. Roolit ovat Drupal-järjestelmään kuuluva ominaisuus, joissa oletuksena on anonyymi tai sisäänkirjautunut käyttäjä, mutta yhdistyksen toimintaa mukaillen rooleiksi lisättiin myös jäsenyys tai hallituksen jäsenyys.
Käyttöoikeusmääritysten esimerkkinä voisi olla se, että sisäänkirjautuneella käyttäjällä ei ole oikeutta kirjoittaa keskustelualueen jäsenille tarkoitettuihin ryhmiin, eikä taas jäsenillä hallitukselle tarkoitettuihin ryhmiin. Myös muut julkaisutavat on mahdollista rajata käyttöoikeusmäärittelyjen avulla.
Käyttäjän tietojen käsittelyä ja keräämistä varten valittiin Addresses -niminen lisäosa. Addresses toimii käytännössä niin, että käyttäjätilin lisäksi käyttäjällä on mahdollista lisätä tietojaan käyttäjätiedot kohtaan. Käyttäjätilin tiedot ovat käyttäjätunnukseen, salasanaan, tunnuksen tilaan ja rooliin liittyvä, kun käyttäjätiedot taas sisältävät käyttäjän nimen, osoitteen, puhelinnumeron ja yhdistyksen toiminnan kannalta oleellisen tiedon käyttäjän auton mallista. Tällä tavoin käyttäjä voi itse ylläpitää yhteystietojaan, eikä hänen tarvitse lähettää niitä sähköpostilla hallitukselle, joskin tämä toimintatapa vaatii sen, että käyttäjän tiedot haetaan suoraan tämän järjestelmän kannasta, eikä toista rinnakkaista yhteystietotietuetta ylläpidetä ristiriitojen välttämiseksi.
Captcha toiminnallisuus esittää sivuston käyttäjälle kysymyksiä, joihin oikein vastaaminen vaatii hieman älyä. Kysymykset eivät ole välttämättä yhteenlaskutoimituksia vaikeampia, mutta se on riittävän vaikea netissä sivustoille rekisteröityville automaattisille järjestelmille, jotka hyödyntävät keskustelu ja julkaisujärjestelmiä roskapostitukseen. Captcha -toiminnallisuuden tehtävä on ainoastaan selvittää onko käyttäjä oikeasti ihminen (Drupal.org 2009 2). Tällä sivustolla tätä toimintoa käytetään uusien käyttäjien rekisteröitymisen yhteydessä.
Eri järjestelmien väliset liitokset
Pohdintaa eri järjestelmien yhteensulauttamisesta, esim. käyttäjätietokannan osalta.
Tätä projektia aloittaessani pohdin järjestelmäkokonaisuuden rakentamista useasta eri osajärjestelmästä. Esimerkiksi foorumisovellus ja artikkeleiden julkaisujärjestelmä olisivat olleet eri sovelluksia, joiden olisi kuitenkin pitänyt käyttää yhteistä käyttäjätietokantaa. Tällaisia kokonaisuuksia on käytössä joissain palveluissa ja niiden toimivuus on hyvä, mutta haittapuolena on suurempi ylläpidon tarve. Kun yhtä osajärjestelmää päivitetään, niin ylläpitäjä joutuu myös huolehtimaan sen vaikutukset mahdollisiin muihin järjestelmiin.
Yhdistyksen, jonka toimintaan ei liity oleellisesti web-järjestelmien ylläpito, kehitys tai muu tietotekniikkaan tai -jätestelmiin liittyvä toiminta, on helpompi valita yksi järjestelmä, jonka kehittäjät ottavat huomioon järjestelmän eri osa-alueiden yhteensopivuuden muiden osa-alueiden kanssa.
Kuten edellisen luvun lopussa todettiin, olisi käyttäjän yhteystietojen hakeminen jäsentietokantaan Drupal-järjestelmästä hyvä asia. Drupal käyttää tietojen tallennukseen MySQL-tietokantaa (Kuva 5), joten käytännössä tietojen hakuun tarvitaan vain järjestelmä, joka on suunniteltu niin, että se osaa hakea kyseisen käyttäjän tunnistenumeron perusteella tietoja Drupal-järjestelmän kannasta. Se ei vaadi siis mitään muutoksia itse Drupal-järjestelmään, joten sen toimintaan saattaminen ei vaadi Drupal-järjestelmän tai sen osien muuttamista itse. Muutos taas vaatisi jatkuvan toiminnallisuuden seurannan ja muutoksiin tarvittavan osaamisen, mikäli järjestelmää tai sen osia joudutaan päivittämään.
Tiedon tuominen muista järjestelmistä
Yhdistyksen nykyisessä järjestelmässä on noin 7500 käyttäjää. Jäseniä yhdistyksessä on hieman toista sataa, joten suurin osa käyttäjistä on yhdistyksen tarjoaman keskustelualueen käyttäjiä. Käyttäjätiedot olisi hyvä tuoda uuteen järjestelmään mahdollisimman muuttumattomina, jotta siirtyminen olisi käyttäjille mahdollisimman helppo. Kaikista järjestelmän käyttäjistä noin 6200 on sellaisia, jotka eivät ole kirjautuneet järjestelmään vuoteen ja niistä noin 1200 sellaisia, jotka eivät ole kirjautuneet kahteen vuoteen. Yhdistyksen hallitus päättänee, kuinka vanhoja käyttäjätunnuksia uuteen järjestelmään halutaan tuoda vai halutaanko kaikki käyttäjätunnukset säilyttää.
Käyttäjätunnusten tuonti toisesta järjestelmästä vaatii tietokantarakenteen tutkimista, jonka jälkeen vastaavuudet voidaan listata ja rakentaa niihin perustuva automaatio. Foorumin keskusteluihin voidaan soveltaa samaa tekniikkaa. Keskusteluihinkin liittyen voidaan tehdä periaatepäätöksiä vanhojen keskusteluiden säilyttämisestä.
Julkaistujen artikkeleiden määrä on kohtuu pieni ja niiden tuominen voidaan tehdä manuaalisestikin. Suurin osa näistä julkaisuista sisältää kuva-aineistoa ja niiden siirto ja ulkoasullinen taittaminen vaatii kuitenkin manuaalisen työvaiheen.
Drupal-järjestelmään on saatavina erilaisia lisäosia, jotka mahdollistavat sisällön tuomisen muista järjestelmistä. Mikäli valokuvien tai videon julkaisuun tarvittavaa levytilaa ei ole käytettävissä, voidaan ne julkaista internetissä kaikille vapaissa palveluissa kuten Flickrissä tai Youtubessa.
Flickr -kuvapalvelulle löytyy Drupaliin valmis lisäosa, joka mahdollistaa kuvien esittämisen kuvapalvelusta Drupaliin, joka säästää ylläpidollisia ja teknisiä resursseja kun palvelua ei tarvitse tuottaa itse. Kuvien esittämisen mahdollistaa Flickr-palvelun ohjelmointirajapinta, eli API. Flickr-palvelun ohjelmointirajapinta on suunniteltu niin, että siellä olevalla tilillä pystyy tarjoamaan kuvia muihin palveluihin tunnistautumista vastaan.
Sivuston ulkoasun muokkaus
Drupal-järjestelmässä ulkoasu on nykytavan mukaisesti irroitettu sisällöstä omiksi tyylimäärittelyiksi. Järjestelmän mukana tulee useampia teemoja, joita pystyy vaihtamaan järjestelmän ylläpitotyökaluista. Uusia teemoja saa helposti asennettua ja niitä on saatavilla runsaasti.
Tapauksessa, jossa sivusto tulisi yritykselle, tulee oman teeman teko vastaan hyvin nopeasti, mikäli haluaa sivuston noudattavan olemassaolevaa graafista ohjeistusta tai muuta vastaavaa vakiintunutta ulkoasukäytäntöä. Yhdistyksen tapauksessa asia ei välttämättä ole yhtä tärkeää, mutta hyvin usein toivottua. Oman teeman tekeminen vaatii huomattavasti enemmän osaamista kuin pelkkä olemassaolevan teeman asennus. Vaikka vaatimukset perus teeman tekemiseen eivät ole Drupalin itsensä osaamisen lisäksi xHTML (eXtensible Hyper Text Markup Language) ja CSS (Casading Style Sheets) -tekniikoiden tuntemusta suuremmat (Drupal.org 3 2009), niin sivuston monimutkaisuus tekee niiden muokkaamisesta aikaavievää ja tarkkuutta vaativaa.
CSS -tekniikkaan liittyy hyvin vahvasti tyylimäärittelyiden tekeminen useampaan eri käyttötarkoitukseen, kuten tietokoneruudulle, mobiililaitteelle tai tulostettavaksi. Tällöin sama sisältö saadaan vietyä eri julkaisukanaviin soveltuvina tai sama julkaisukanava voi käyttää useampaa eri tyyliä (Samela 2002, s. 44-45).
Tämän projektin tapauksessa ei lähdetty tekemään suurta ulkoasun muokkausta, koska se olisi vaatinut pohjalleen suunnitelman ja niin paljon työtunteja, että siitä olisi riittänyt aihetta vaikka toiseksi opinnäytetyöksi. Kuitenkaan ihan valmiilla tyylillä sivustoa ei testiversionakaan käytetä. Välimuoto on olemassa olevan teeman muokkaaminen vain joiltain osin, tässä tapauksessa väritykseltään, kuvan 6 mukaisesti.
Pohjaksi muokkauselle otettiin Drupal-järjestelmän oletusteema Garland. Koska teemat sijaitsevat palvelimella omissa kansioissaan, oli helpointa tehdä Garlandin kansiosta kopio uudella nimellä. Tällöin alkuperäinen teema säilyy muuttumattomana ja siihen on helppo palata, mikäli jokin menisi pieleen.
Värien muokkaaminen vaatii ainoastaan CSS:n perustaitoja. Suurin osa muokkaukseen menevästä ajasta menee Drupalin tyylimäärittelypohjaan tutustuessa, mikäli se ei ole ennestään tuttu. Web-selaimen aputyökalut, jotka osavat esittää rakenteen sekä hierarkisesti että visuaalisesti, ovat suuri apu, jos joku tietty sivuston osa ja siihen vaikuttavat tyylit pitää saada selvitettyä.
Kun muutokset on tehty, näkyvät ne suoraan käyttäjälle mikäli kyseinen teema on valittu käytettäväksi. Mikäli järjestelmästä ei ole mahdollista pitää kehitysversiota, voi teemaa rakentaa samassa järjestelmässä samanaikaisesti kun käyttäjille esitetään sisältö jonkun toisen teeman kanssa. Jos uuden teeman käyttöönotossa tulee ongelmia, on vanhaan palaaminen helppoa.