Tämän sivuston selaaminen ja kaikkien toiminnallisuuksien käyttö edellyttää Javscriptin sallimista selaimessa. Taustatietoja palvelusta

Lähtökohdat

Vanhan idean lämmittäminen

Idean juuret löytyvät 1990-luvun alusta, jolloin toteutin opiskeluaikana GymXcelin ajatuksia mukailevan ohjelmiston nimeltä BodySet, joka olikin käytössä muutamilla kuntosaleilla. Se oli erikseen asennettava ohjelmisto, jonka tein Pascal-ohjelmointikielellä. Tuolloin teknologia ei tarjonnut riittävän käteviä toteutusmahdollisuuksia kaikkien hahmoteltujen ideoiden konkretioimiseksi järkevällä hinnalla harrastuspohjlta, joten en jatkanut ohjelmiston kehitystä.

Vuodet vierivät, työtehtävät vaihtuivat. Tuli aika, jolloin päätin täydentää osaamistani ohjelmistokehityspuolella. Aloin vapaa-aikana tutustumaan LAMP-ympäristön antamiin mahdollisuuksiin Open Source -puolella. Tai osin myös valitsin sen, koska se myös mahdollisti päässä pyörivien ideioden toteuttamisen ilman suurempia rahallisia panostuksia. Ja koska jotain järkevää kannattaisi tehdä "hello world" -demojen sijaan, päädyin yhdistämään vanhat ja uudet ideat, vuosikymmenten yli jatkuneen kuntosaliharrastuksen sekä ammatillisen kehittymisen. Kiinnostus kuntosaliharrastusta kohtaan ja tiedonhankinta aihepiiristä pitkältä ajalta yhdessä useiden tuhansien harjoituskertojen tuoman oman harjoittelukokemuksen kanssa antoivat näkökulmaa mitä sovelluksen pitäisi pystyä tekemään. Samoin olin lukenut tutkimuksen, jossa oli kerätty tietoa minkälaisia ominaisuuksia tämän tyyppisessä ohjelmistossa pitäisi olla. Joten siitä liikkeelle...

Ajatus toteutuksesta nojaa siihen, että useat harjoittelijat - niin kuin itsekin aikaisemmin tein - kirjoittavat muistioita suorituksistaan harjoitusvihkoihin, koska omien saavutusten vertaileminen aikaisempiin on mielenkiintoista ja kehittymisen toteaminen motivoi jatkamiseen, mikä taas on kehittymisen ja saavutetun tason ylläpidon edellytys. Harjoitusmuistiot vihkossa ovat kuitenkin hyvin rajallisia käyttökelpoisuutensa suhteen. Treenisovelluksia (appseja) ja -ohjelmistoja löytyy markkinoilta, mutta niissä käyttökokemus ei ollut sujuva, tai jos oli, sisältö oli suppea. Siten lisäarvo ei ollut riittävä verrattuna vihkon käyttämiseen. Tämä toimi lähtökohtana - halu tehdä toimivampi kokonaisuus, joka täyttää laajemmin tarpeita ja antaa jotain takaisinkin.

J.K
harjoitusvihkoja

Vaatimukset harjoitusvihkon käyttökokemusta paremmasta järjestelmästä olivat selkeinä mielessä. Tarjolla olleet nettipohjaiset palvelut ja sovellukset eivät tarjonneet sitä käyttökokemusta ja hyötyä, mikä oli vaatimuksena. Käytettävyys ja tallennetusta harjoittelutiedosta saatava hyöty jäivät useissa palveluissa vajaiksi ja näennäisiksi tai ne eivät kattaneet kaikkia osa-alueita. Saatavassa lisäarvossa oli toivomisen varaa.

Ajatus lähti kypsymään. Internet-teknologioiden, tietokantojen ja tietoverkkojen ominaisuudet ja näiden mahdollistamat uudet liiketoimintamallit vyöryttivät ajatuksen aikaisempaa versiota kehittyneemmästä toteutuksesta liikkeelle. Lopulta näistä kertyi luettelo teknisistä vaatimuksista ja toiminnoista sekä tavoitelluista käyttäjän hyödyistä ja toteutusmallista. Meni noin 3½ vuotta ja alunperin harjoitusmielessä liikkeelle lähtenyt näpertely meni totisemmaksi ja päätyi siihen, että lopulta GymXceliksi ("Gym + (e)Xcel") nimetty sivusto päätyi Amazonin AWS -pilvipalveluun omaan palvelinympäristöönsä.

Tulipa matkalla kerrattua full stack developmentin osa-alueita ja opiskeltua tietoa seuraavilta osa-alueilta, joilla sivuston palvelut on kasattu:

  • PHP, Javascript, JQuery, CSS3, HTML5, Bootstrap, REST, JSON, XML,...
  • tietokantaratkaisut: MySQL/MariaDB-tietokannat
  • relaatiotietokannat: arkkitehtuuri, suunnittelu, toteutus, SQL-kyselyt
  • ohjelmistoarkkitehtuuri: ohjelmiston rakenne, omat kirjastot, oliopohjaisuus
  • datan visualisointi javascript-kirjastojen ja tietokannoista koostettavien aika- ja lukusarjojen avulla
  • Linux- ja Apache-ympäristöt web-palvelujen edellyttämiltä osin
  • Amazon AWS: verkkoympäristö, palvelimet, skaalautuvuus, tietoturva, jatkuvuus
  • optimointi: relaatiotietokantojen rakenne ja SQL-kyselyt, web-sivujen rakenne ja latautuminen, sovellusarkkitehtuuri
  • tietoturva: suojatut yhteydet, sessionhallinta, suojatut istunnot, brute force -estot, tiedon kryptaus tietokannoissa, tietoturva sivustolla,...
  • maksuliittymien toteutus (toteutettu, mutta ei käytössä) sekä rajapinnat erilaisiin muihin pilvipalveluihin ja 3. osapuolen järjestelmiin (mm. Google Analytics, PayTrail, Facebook, pdfcrowd)
  • ja ylipäätään ideasta sovellusarkkitehtuuriksi, tekniseksi ratkaisuksi ja palveluksi: tekninen toteutus, sisällöntuotanto, sopimukset, ohjeet, kuvankäsittely, palvelumuotoilu, ulkoasu

Aikaa taisi lipsahtaa harjoittelusessioon enemmän kuin alunperin ajattelinkaan... vähän lähti lapasesta. Ja silti oli muutakin elämää, jos joku siitä huolehtii :-) Mutta tulipahan tehtyä ja olkoot osoitus pitkäjänteisyydestäni sekä kiinnostuksesta tuotekehitykseen.

Idean ydin, harjoitteluanalyysi

GymXcelin vahvuus ja erilaisuus on sen systemaattisessa tavassa käsitellä, yhdistellä, vertailla ja arvioida harjoittelusta kerättävää tietoa. Haasteena oli toteuttaa tämä tiedonkeruu siten, että se on järjestelmän käyttäjälle mahdollisimman helppoa, nopeaa ja vaivatonta, kuitenkin samalla riittävän monipuolista ja kuvaavaa todenmukaisten johtopäätösten ja käyttäjälle lisäarvoa tuovan uuden informaation tuottamiselle.

GymXcelin tietokanta ja tietämys perustuvat lihaskuntoharjoittelun analyysiin, jossa systemaattisesti tunnistetaan ja kuvataan harjoittelijan suoritukset. Analyysissä tunnistetaan (1) mitä harjoitusliikkeitä on suoritettu, (2) miten harjoitukset on suoritettu, (3) miten tehokkaasti harjoitukset on suoritettu, ja (4) miten kehon resursseja on käytetty kokonaisuutena. Nämä yhdistetään (5) suoritusta kuvaavaan perusdataan ja säännöstöihin, joilla pyritään parhaalla mahdollisella tavalla kuvaamaan harjoittelusuoritusta. Yhdistämällä näistä muodostuu (6) informaatiota, joka on harjoittelijan saama lisäarvo ja ymmärrys suorittamansa harjoittelun vaikutuksista. Analyysi pohjautuu siten harjoittelijan harjoitusmuistioihin tekemiin kirjauksiin, muodostaen perusdatan, sekä tätä dataa käsitteleviin kaavoihin ja heuristisiin säännöstöihin, joihin on pyritty tallentamaan lihaskuntoharjoittelun "DNA".

Kerättyä perusdataa rikastetaan analysoinnin tuottamalla tiedolla. Tehtyjen havaintojen perusteella harjoittelijaa voidaan ohjata ja antaa syventävää tietoa hänen tavoitteidensa saavuttamiseksi sekä harjoitusohjelmien tuottamiseksi ja muotoilemiseksi. Kun harjoitusmuistioiden dataa tarkastellaan ajan suhteen ja tutkitaan datasta löytyviä sarjoja, voidaan tästä tuottaa informaatiota, jota esitetään harjoittelijalle erilaisina mielenkiintoisina kuvaajina, tilastoina ja tulkintoina. Harjoittelija saa syvällisempää ja uudenlaista tietämystä harjoittelustaan, mikä puolestaan lisää harjoittelijan ymmärrystä harjoittelun vaikutuksesta ja tavoitteiden saavuttamisesta.

Kulmakivet

  • Harjoitusdata Harjoitusmuistioista saatava raaka-aine
  • Analyysi Datan käsittely ja jalostaminen
  • Harjoittelun ohjaus Löydösten tulkinta ja hyödyntäminen
  • Jatkuvuus Edistymisen ja motivaation ylläpito

Toteuttaja

Kesti
Jari Kesti
  • GymXcelin suunnittelija, tekninen arkkitehti ja toteuttaja
  • IT-alan monipuolista kokemusta, tutkimus- ja tuotekehitystaustaa liittyen käytettävyyteen ja tietokantapohjaisiin internet-palveluihin
  • Harrastusmielessä lihaskuntoharjoittelua noin 15-vuotiaasta lähtien. Nyt takana reippaat 30 harjoitteluvuotta. Nuorempana bodaus- ja perusvoimatyyppistä harjoittelua, nykyisin pari kertaa viikossa voimatasoa ylläpitävää ja kehittävää treeniä

GymXcel pikalinkit