SISTEM ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ

Podobni dokumenti
Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

PowerPointova predstavitev

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij.

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr

ISOFT , računalniški inženiring

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

Nameščanje Adopt Open Java Development Kit 8

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

Nameščanje Adopt Open Java Development Kit 8

PowerApps

Elektronska pošta

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada

Navodilo Telemach

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

Mojtelemach brosura_junij 2015_mail

ZAČETNI VODNIK ZA POVEZAVO Izkusite prilagojeno nego perila z aplikacijo My AEG Care. Pralni stroj lahko povežete in upravljate od koder koli in preje

Microsoft Word - CNR-BTU3_Bluetooth_vmesnik

NAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta

Navodila za nastavitev mail odjemalca na ios in Android napravah TELEFONI iphone (ios 12) Predlagamo, da do svoje študentske e-pošte dostopate s pomoč

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Microsoft Word - CN-BTU4 Quick Guide_SI

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte

Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje

NETGEAR R6100 WiFi Router Installation Guide

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC

(Microsoft Word - U\350enje telegrafije po Kochovi metodi.doc)

Slide 1

INFORMATOR BIROKRAT 1/2011

Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, m

Miluma Trader Miluma Trader navodila: V nadaljevanju sledijo osnovna navodila, kako začeli uporabljati Miluma Trader. 1. Preverite spletno stran Ta po

Orodje za izvoz podatkov

Cenik ES_spremembe_marec2013_ČISTOPIS_Sprememba_

D3 V2 brosura net

PowerPointova predstavitev

PowerPoint Presentation

Spoznajmo PowerPoint 2013

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n

Hiter začetek Razširjevalnik dosega WiFi N300 Model EX2700

PowerPointova predstavitev

Microsoft Word - Brosura neobvezni IP

Navodila za uporabo Mini snemalnik

DCS-2330L_A1_QIG_v1.00(EU).indd

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0

POMOČ PREDSTAVITEV EKOSKLADOVNICE UPORABLJENA TERMINOLOGIJA REGISTRACIJA V EKOSKLADOVNICO PRIJAVA V EKOSKLADOVNICO OBJAVA PRISPEVKA ISKANJE PRISPEVKOV

NAVODILA ZA MONTAŽO SI EWPE SMART Wi-FI app

PowerPointova predstavitev

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

Navodila za pisanje diplomskih nalog UM FERI

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Vito Resnik RAZVOJ APLIKACIJE ZA NAROČANJE IN SPREMLJANJE MERITEV IZDELK

Chapter 1

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc)

CODEKS IP KAMERA

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika

SETCCE Uporabniška navodila za namestitev in upravljanje komponente SETCCE proxsign v2.0.5 za MAC OS X [Nova generacija komponent SETCCE proxsign ] Id

Hiter začetek Razširjevalnik dosega WiFi N300 Model WN2000RPTv3

Podatkovni model ER

SharePoint GRADNIKI ZA IZBOLJŠANE UPORABNIŠKE IZKUŠNJE

Microsoft Word - Brosura neobvezni IP 2018

Najboljša skupaj Kontrola pristopa + registracija delovnega časa

NETGEAR R6250 Smart WiFi Router Installation Guide

UPRAVLJANJE RAZPRŠENIH PODATKOV Shranjevanje, zaščita in vzdrževanje informacij, ki jih najbolj potrebujete

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

Kratka navodila za uporabo razširjevalnika dosega WiFi AC750 model EX3800

Za vaše podjetje ModernBiz Glossary 2014 Microsoft Corporation. Vse pravice pridržane.

Šolski center Celje Gimnazija Lava IZDELAVA SPLETNEGA BRSKALNIKA Raziskovalna naloga Avtor David Simunič, 2. e Mentor Tomislav Viher, univ. dipl. org.

Slajd 1

PowerPoint Presentation

FOR SMARTER PEOPLE TAKO SE VLOMI PREPREČUJEJO DANES REHAU Smart Guard System plus preventivna protivlomna zaščita WINDOWS. REINVENTED FOR MODERN LIFE.

Folie 1

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1,

Microsoft Word - Navodila za uporabo 1.1.doc

D3GO brosura julij_mail

DES

Microsoft Word - CNC obdelava kazalo vsebine.doc

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Linksys PLEK500 User Guide

Razpis športne igre zaposlenih RP _docx

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Blaž Roženbergar Upravljanje trgovskega blaga z značkami RFID DIPLOMSKO DELO VISOKOŠOLS

Microsoft PowerPoint - seminar_ pptx

PKP projekt SMART WaterNet_Opis

Microsoft Exchange 2013

COBISS3/Medknjižnična izposoja

MIX OSO Pivka_mail

DSI 2019

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Milan Gabor Analiza varnostnih tveganj v mobilnih aplikacijah na platfor

Diplomska naloga: Prototip informacijskega sistema za shranjevanje računov v digitalni obliki

Navodila za namestitev odjemalca ibsreport2 produkcijsko okolje (poročanje Banki Slovenije) Avgust 2017

Microsoft Word - 021_01_13_Pravilnik_o_zakljucnem delu

Navodila za študente

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO WLAN usmerjevalnik TP LINK Archer C5 Kataloška št.:

Watch 40_MT40X_UM_SL.pdf

Razpis - podiplomski študij

Microsoft Word - M docx

Microsoft Word - NAJBOLJ POGOSTA VPRAŠANJA IN ODGOVORI.docx

Navodila za pisanje diplomskih nalog UM FERI

Nejc Rebernjak RAZVOJ MOBILNE APLIKACIJE SHOPLY Diplomsko delo Maribor, september 2018

Navodila za uporabo Mini prenosna HD kamera s snemalnikom

CT_SLO_White Paper_ENG

Transkripcija:

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Matic Dugonik SISTEM ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ Diplomsko delo Maribor, september 2017

SISTEM ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ Diplomsko delo Študent: Matic Dugonik Študijski program: Univerzitetni študijski program Računalništvo in informacijske tehnologije Mentor: doc. dr. Iztok Fister Lektorica: Teja Pušaver, prof. slovenščine

ZAHVALA Iskreno se zahvaljujem mentorju, doc. dr. Iztoku Fistru, za usmerjanje, strokovno pomoč in predvsem veliko mero potrpežljivosti med nastajanjem diplomskega dela. Zahvaljujem se tudi svojim najbližjim, ki so mi tekom študija in nastajanja diplomskega dela stali ob strani in verjeli vame. Največ hvaležnosti bi rad posvetil punci Teji, ker nikoli ni obupala nad mano in mi je neizmerno pomagala pri vseh aspektih diplomskega dela, ter bratu Janiju za posluh in nasvete. i

SISTEM ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ Ključne besede: virtualno športno tekmovanje, aplikacija, Android, simulacija UDK: 519.876.5:796.093.64(043.2) Povzetek Cilj dipomskega dela je izdelati namizno in mobilno aplikacijo za spremljanje virtualnih športnih tekmovanj. Namizna aplikacija za platformo Windows pomaga organizatorjem športnih prireditev pri organiziranju tekmovanj. Poudarek je na izdelavi mobilne aplikacije za platformo Android, ki uporabnikom omogoča sodelovanje na virtualnih športnih tekmovanjih. Tako z uporabo mobilne naprave, spleta in sledilnika GPS zajamemo rezultat opravljene poti tekmovalca na predpisani progi pred potekom roka posameznega tekmovanja in tega naložimo na strežnik. Pomemben del aplikacije je obdelava podatkov oz. simulacija, ki prikaže rezultate dveh tekmovalcev v realnem času. Po opravljenem razvoju smo preizkusili vse funkcionalnosti aplikacij ter podali predloge izboljšav. ii

MONITORING SYSTEM FOR VIRTUAL SPORTS COMPETITIONS Key words: virtual sports competition, application, Android, simulation UDK: 519.876.5:796.093.64(043.2) Abstract The aim of the diploma thesis is to create a desktop and mobile application for monitoring virtual sports competitions. The desktop application, which uses the Windows platform, is a useful tool for sports event organisers when organising competitions. The emphasis of the diploma thesis is on creating the Android platform mobile application that enables the users to participate in virtual sports competitions. By using a mobile device, internet and a GPS tracker, we are able to capture the path of the competitor on the prescribed track before the expiration of the individual competition and afterwards upload it to the server. An important element of the application is data processing or simulation that shows the real-time results of two competitors. After developing the applications, we tested the functionalities of the applictions and presented some suggestions for improvements. iii

KAZALO 1 UVOD... 1 2 UPORABLJENE TEHNOLOGIJE... 3 3 4 5 2.1 Mobilni operacijski sistem Android in razvojno okolje Android Studio... 3 2.2 Operacijski sistem Microsoft Windows in razvojno okolje Visual Studio... 5 2.3 Format izmenjave podatkov globalnega sistema pozicioniranja... 6 2.4 Sistem za upravljanje relacijske podatkovne baze... 8 RAZVOJ SISTEMA ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ... 9 3.1 Načrt sistema... 9 3.2 Podatkovna baza in model E-R...11 3.3 Implementacija sistema...12 REZULTATI...19 4.1 Opis grafičnih vmesnikov...19 4.2 Dodajanje tekmovanja...22 4.3 Sodelovanje na tekmovanju...25 4.4 Simulacija...26 SKLEP...30 VIRI...32 iv

KAZALO SLIK Slika 2.1: Protokol SOAP... 5 Slika 2.2: Delovanje GPS... 7 Slika 2.3: Izsek datoteke GPX... 8 Slika 3.1: Shema rešitve...10 Slika 3.2: Model E-R podatkovne baze...11 Slika 3.3: Podatkovna baza virtualnih tekmovanj...12 Slika 3.4: Značka s protokoli...12 Slika 3.5: Tabela 'uporabnik'...13 Slika 3.6: Metodi 'prijava' in 'registracija'...13 Slika 3.7: Tabela 'tekmovanje'...15 Slika 3.8: Metoda 'nalozitekmovanje'...15 Slika 3.9: Metoda 'dobitekmovanja'...16 Slika 3.10: Tabela 'opravljenapot'...17 Slika 3.11: Metoda 'vnesiopravljeno'...17 Slika 3.12: Metoda 'dobizakljucenatekmovanja'...18 Slika 4.1: Osnovni videz zavihka <Simulacija>...20 Slika 4.2: Osnovni videz zavihka <Naloži tekmovanje>...20 Slika 4.3: Začetno okno ter okni registracije in prijave mobilne aplikacije...21 Slika 4.4: Prikaz seznamov...22 Slika 4.5: Izpolnjena polja v zavihku <Naloži tekmovanje>...23 Slika 4.6: Potek načrtovanja poti...23 Slika 4.7: Nadaljnje načrtovanje poti...24 Slika 4.8: Nalaganje tekmovanja na strežnik in odziv...24 Slika 4.9: Zajem in oddaja podatkov...25 Slika 4.10: Napredek in konec zajema ter oddaja poti...26 Slika 4.11: Začetek simulacije...27 Slika 4.12: Potek simulacije...28 Slika 4.13: Konec simulacije...29 Slika 4.14: Primerjava začetnih in končnih metrov...29 v

KAZALO TABEL Tabela 3.1: Tabela odvisnosti...11 vi

SEZNAM UPORABLJENIH KRATIC AS Android Studio WORA Zapiši enkrat, zaženi kjerkoli Write once, run anywhere API Aplikacijski programski vmesnik Application Programming Interface ksoap2 Enostaven objektni dostopkovni Simple Object Access Protocol protokol za mobilne aplikacije IIS Internetne informacijske storitve Internet Information Services VB.NET Visual Basic dot NET C# Visual C# GPS Globalni sistem pozicioniranja Global Positioning System XML Razširljiv označevalni jezik Extensible Markup Language GPX Format izmenjave podatkov GPS GPS Exchange Format MySQL Strukturni jezik za poizvedovanje My Structured Query Language HTTP Protokol za prenos hiperteksta Hypertext Transfer Protocol HTTPS Protokol za varni prenos hiperteksta Hypertext Transfer Protocol Secure FTP Protokol za prenos datotek File Transfer Protocol FTPS Protokol za varni prenos datotek File Transfer Protocol Secure SMTP Preprosti protokol za prenos sporočil Simple Mail Transfer Protocol NNTP Protokol za prenos novic Network News Transfer Protocol GUI Uporabniški vmesnik Graphic User Interface vii

1 UVOD Pametni telefoni so močno vpeti v naš vsakdan, saj si svojih življenj brez njih skorajda ne znamo predstavljati. Te naprave za delovanje uporabljajo mobilne operacijske sisteme, med katerimi sta najbolj priljubljena Android, podjetja Google, in ios, podjetja Apple. Pametni telefoni imajo aplikacije, ki nam svetujejo pri preživljanju prostega časa (npr. igre), reševanju vsakodnevnih problemov (npr. kalkulator) ali pri prihranku časa pri vsakdanjih opravilih (npr. nakupovalni seznam). Ljudje smo čedalje aktivnejši pri rekreaciji in športu, zato organizatorji razpisujejo vedno več športnih prireditev. Vendar pa je današnji način življenja hiter in natrpan z raznoraznimi načrti, zato se težko udeležimo vseh tistih tekmovanj, ki bi se jih želeli. Zaradi vedno večje vpetosti mobilnih naprav v naša življenja se lahko sklene kompromis med razpisovanjem in obiskovanjem športnih prireditev. Organizator lahko organizira virtualne športne prireditve, ki se od navadnega tekmovanja razlikujejo po tem, da tekmovalci niso tako časovno omejeni pri sodelovanju na tekmovanju. Če športna prireditev traja en dan, npr. maraton, lahko virtualna športna prireditev traja sedem dni, saj tekmovalcem ni potrebno tekmovati istočasno. Z uporabo mobilne naprave, spleta in sledenja GPS lahko zajamemo tekmovalno pot tekmovalca kadarkoli znotraj razpisanega roka in to naložimo na strežnik. Tako tekmovanje traja, dokler se razpisan rok ne izteče. Takrat organizator preuči naloženo pot vsakega tekmovalca in se odloči, ali je bila posamezna zajeta pot legitimna, tj. ali je potekala po razpisani poti. Po preverjanju so prikazani rezultati. Ko so rezultati zbrani, lahko vsak uporabnik aplikacije naredi simulacijo tekmovanja v realnem času za poljubno izbrana tekmovalca. V diplomski nalogi smo sledili trem ciljem. Prvi cilj je izdelava namizne aplikacije za pomoč organizatorjem pri načrtovanju in razpisovanju virtualnega tekmovanja. Drugi je izdelava mobilne aplikacije, ki uporabnikom omogoča prijavo in sodelovanje na razpisanih tekmovanjih ter nalaganje njihovih rezultatov na strežnik. Zadnji cilj pa je simulacija podatkov v realnem času, ki uporabnikom aplikacije in organizatorjem omogoča prikaz virtualnega tekmovanja dveh izbranih tekmovalcev na spletu. 1

Struktura diplomske naloge v nadaljevanju je naslednja. Drugo poglavje podrobneje opisuje uporabljene tehnologije pri razvoju omenjenih aplikacij. Tretje poglavje prikazuje potek razvoja posameznih aplikacij. Prikaz rezultatov je tema četrtega poglavja. Diplomsko nalogo zaključimo s povzetkom opravljenega dela, predstavitvijo idej za nadaljnje delo ter opisom težav, na katere smo naleteli med samim razvojem. 2

2 UPORABLJENE TEHNOLOGIJE V pričujočem poglavju opisujemo tehnologije, ki smo jih uporabili pri razvoju sistema za spremljanje virtualnih športnih tekmovanj. Najprej se posvetimo mobilnemu operacijskemu sistemu Android, razvojnemu okolju Android Studio za razvoj aplikacij na mobilnem operacijskem sistemu Android, programskemu jeziku Java, vmesniku Google Maps Android API in protokolu ksoap2. Nato opišemo operacijski sistem Windows, razvojno okolje Visual Studio za razvoj namizne aplikacije na tem operacijskem sistemu Windows, programski jezik C# in orodje GMap.NET. Kasneje opišemo še format izmenjave podatkov globalnega sistema pozicioniranja in sistem za upravljanje podatkovne baze. 2.1 Mobilni operacijski sistem Android in razvojno okolje Android Studio Android je mobilni operacijski sistem, ki je zgrajen na jedru Linux. Razvija ga podjetje Google in je namenjen predvsem napravam z zaslonom, občutljivim na dotik, kot so pametni telefoni in tablice. Tega razvijajo tudi za druge naprave, kot so pametna televizija, pametna ura, pametna očala, avto ipd. Vsaka naprava ima prilagojen uporabniški vmesnik, ki temelji na neposredni manipulaciji, kar pomeni, da z objekti na zaslonu upravljamo s pomočjo dotikov na zaslonu. Prvotno je Android razvijalo podjetje Android, Inc., ki ga je podjetje Google kupilo leta 2005. Leta 2007 je bil predstavljen mobilni operacijski sistem Android, skupaj z ustanovitvijo Open Handset Alliance, ki je konzorcij strojnih, programskih in telekomunikacijskih podjetij, ki podpirajo odprte standarde pri razvijanju mobilnih naprav. Naslednji mejnik je leta 2012 predstavljala združitev treh produktov Google, in sicer Tržnice Android (angl. Android Market), Glasbe Google (angl. Google Music) in Eknjigarne Google (angl. Google ebookstore) v tako imenovani Google Play, ki danes predstavlja platformo za digitalno distribucijo. To pomeni, da so lahko uporabniki mobilnega operacijskega sistema Android pregledovali aplikacije in jih prenesli na svoje naprave s spleta brezplačno oz. z določenim plačilom. Google Play služi tudi kot shramba digitalnih medijev, kot so glasba, revije, knjige, filmi in televizijski programi [1]. 3

Razvoj mobilnih aplikacij danes poteka v okolju Android Studio (krajše AS), ki je tudi uradno integrirano okolje za razvoj aplikacij za platformo Android. Ta platforma je skupek brezplačne programske opreme za uporabo na mobilnih napravah in za delovanje vsebuje operacijski sistem Android ter ključne aplikacije Androida ali proizvajalca mobilne naprave. Prva stabilna verzija AS je bila na voljo leta 2014. Brezplačno je na razpolago za operacijske sisteme Windows, Mac OS X in Linux. Kot primarno okolje za razvijanje aplikacij za Android je AS nadomestil okolje Eclipse. Ta zdaj nudi prikazovanje rezultatov razvite aplikacije na virtualni mobilni napravi, s katero operiramo v navideznem okolju in tako preizkusimo delovanje aplikacije brez prenosa na fizično mobilno napravo [2]. Pri razvoju mobilnih aplikacij v razvojnem okolju AS uporabljamo programski jezik Java. Java je splošno namenski objektni programski jezik. Zasnovan je neodvisno od platforme, kar pomeni, da je koda, ki je razvita na eni platformi Java, prenosljiva na drugo in obratno brez dodatnega prevajanja. Razvijalcem aplikacij omogoča, da aplikacijo napišejo enkrat in zaženejo kjerkoli (angl. Write Once, Run Anywhere, krajše WORA) [5]. Prva javna implementacija tega programskega jezika, znana pod imenom Java 1.0, je bila leta 1995. Razvil jo je James Gosling pri podjetju Sun Microsystems. Slednjega je med letoma 2009 in 2010 prevzela korporacija Oracle (angl. Oracle Corporation). Zadnja verzija Jave, tj. Java 8, je bila izdana leta 2014 [15]. Aplikacijski programski vmesnik (angl. Application Programming Interface, krajše API) Google Maps Android omogoča dodajanje in operiranje z zemljevidi Google (angl. Google Maps) v aplikacijah Android. Ta vmesnik avtomatsko dostopa do strežnikov Google Maps s prenosom podatkov, prikazom zemljevida in odzivom do zemljevidnih gest. Uporabimo ga lahko tudi za klicanje različnih objektov, s katerimi pridobivamo lokacijske podatke, in interakcijo uporabnika z zemljevidom [8]. Z vmesnikom lahko dodajamo: ikone, zasidrane na neki lokaciji (angl. Markers), skupke linij, ki niso zaprte (angl. Polylines), skupke linij, ki so zaprte (angl. Polygons), bitmap slike, zasidrane na neki lokaciji (angl. Ground Overlays) in 4

množice slik, ki so prikazane nad osnovnimi zemljevidnimi ploščami, ki so dejansko zemljevidi razdeljeni na kvadrante (angl. Tile Overlays). Enostaven objektni dostopkovni protokol za mobilne aplikacije (angl. Simple Object Access Protocol, krajše ksoap2) je lahka knjižnica za uporabo na mobilnih napravah, kot so pametni telefoni, tablice. Uporablja se za komunikacijo med odjemalcem in strežnikom na način, kot je prikazan na sliki 2.1. V našem primeru smo knjižnico uporabili za komunikacijo med našo spletno storitvijo (SOAP prejemnik) in mobilno aplikacijo (SOAP pošiljatelj) [16]. Pošiljatelj z uporabo prenosnega protokola HTTP pošlje SOAP zahtevo prejemniku, ki jo obdela, oblikuje ustrezen odziv in ga z uporabo protokola HTTP pošlje pošiljatelju. Ta potem odreagira glede na odziv. Slika 2.1: Protokol SOAP. 2.2 Operacijski sistem Microsoft Windows in razvojno okolje Visual Studio Podjetje Microsoft razvija, trži in prodaja grafične operacijske sisteme Microsoft Windows. Začetek razvoja operacijskega sistema Windows sega v leto 1985, ko se je ta prvič uradno objavil in je takrat tekmoval z operacijskim sistemom podjetja Apple. Prva izdaja ni bila preveč uspešna, vendar je sistem sčasoma pridobival vse širši krog uporabnikov. Družina Windows vsebuje več operacijskih sistemov. Vsak je namenjen drugačnemu področju računalniške industrije. Npr. Windows NT uporabljamo na namiznih računalnikih ali kot strežnike, Windows Embedded za konzole in v vgrajenih sistemih Windows Phone za pametne telefone [18]. Pri razvoju smo uporabili operacijski sistem Windows verzije 8.1. 5

Razvojno okolje, ki smo ga uporabili pri razvoju namizne aplikacije in spletne storitve, je bilo Visual Studio verzije 2012. Razvilo ga je podjetje Microsoft za operacijski sistem Microsoft Windows [17]. Spletna storitev je vmesnik, ki omogoča spletnim aplikacijam klicanje storitev prek spleta, ne glede na njihovo izvedbo in lokacijo [6], [21]. V našem primeru je spletna storitev nameščena na strežniku Microsoft 7 Ultimate z uporabo upravitelja spletnih informacijskih storitev (angl. Internet Information Services Manager, krajše IIS Manager) verzije 7.5, s čimer smo naredili storitev dostopno na spletu. IIS je razvilo podjetje Microsoft za operacijske sisteme družine Windows NT. Podpira protokole HTTP, HTTPS, FTP, FTPS, SMTP, NNTP [14]. Okolje Visual Studio podpira razvoj namiznih in spletnih aplikacij v programskih jezikih C, C++, Visual C++, Visual Basic.NET (krajše VB.NET), Visual C# (krajše C#) in F#. Namizno aplikacijo in spletno storitev smo napisali v programskem jeziku C#. C# (angl. C sharp) je splošno namenski programski jezik, ki je generičen, funkcionalen, deklarativen, imperativen, objektno in komponento usmerjen ter temelji na uporabi razredov. Razvilo ga je podjetje Microsoft v okviru ogrodja.net (angl. dot NET Framework). Ogrodje.NET omogoča razvoj programske opreme, ki deluje na operacijskem sistemu Windows. C# je razvil Anders Hejlsberg z ekipo leta 2000. Velikokrat ga primerjamo s programskim jezikom Java, saj sta si oba jezika zaradi podobnosti sintakse zelo blizu, podobno kot programska jezika C in C++. Zadnja verzija C# je 6.0 in je bila objavljena leta 2015 [4]. GMap.NET je brezplačno.net orodje, ki omogoča prikaz podatkov na zemljevidih, pridobljenih od ponudnikov spletnih zemljevidov, kot so npr. Google, Yahoo!, Bing [7]. Z uporabo tega orodja smo omogočili prikaz podatkov in manipuliranje z njimi v računalniški aplikaciji. 2.3 Format izmenjave podatkov globalnega sistema pozicioniranja Sistem globalne navigacije (angl. Global Positioning System, krajše GPS) je zasnovalo obrambno ministrstvo Združenih držav Amerike. Deluje v vsakem vremenu, kjerkoli na svetu, 24 ur na dan in je brezplačen za uporabo [11]. 6

Sistem GPS je ustvarjen iz omrežja najmanj 24-ih satelitov, lansiranih v Zemljini orbiti. Vsak satelit GPS obkroži Zemljo dvakrat dnevno in neprestano posreduje čas in pot, po kateri potuje. Sprejemnik GPS primerja čas, ko je bil poslan signal s satelita, s časom, ko je signal dobil. Časovna razlika sprejemniku pove oddaljenost satelita [9]. Da uporabnik sprejemnika GPS pridobi svojo lokacijo (zemljepisna širina in dolžina) in uporabi sledenje, mora torej pridobivati signale vsaj štirih satelitov (Slika 2.2) [12]. Če pridobiva signale več kot štirih satelitov, lahko uporabnik pridobi več podatkov, in sicer zemljepisno širino, dolžino, nadmorsko višino, sledenje, hitrost ipd. Slika 2.2: Delovanje GPS. Razširljiv označevalni jezik (angl. Extensible Markup Language, krajše XML) definira skupek pravil za kodiranje dokumentov in je berljiv tako človeku kot tudi računalniku. Cilji XML so preprostost, splošnost in uporabnost na spletu. Uporablja se tudi za prikaz podatkovnih struktur [22]. Z uporabo XML smo podatke GPS shranili v datoteko. Format izmenjave podatkov GPS (angl. GPS exchange format, krajše GPX) omogoča shranjevanje podatkov GPS v datoteko s končnico gpx [10], [13] z uporabo jezika XML. Datoteka vsebuje skupek točk, vsaki točki pa pripada podatek o nadmorski višini, zemljepisni širini in dolžini (tudi lokaciji) ter času odčitka [3]. Ta skupek točk določa pot, 7

ki jo uporabnik še mora opraviti, oz. jo je že opravil. Primer datoteke GPX podaja izsek datoteke tekmovalčeve opravljene poti (Slika 2.3). Slika 2.3: Izsek datoteke GPX. 2.4 Sistem za upravljanje relacijske podatkovne baze Strukturni jezik za poizvedovanje (angl. My Structured Query Language, krajše MySQL) je odprtokodni sistem za upravljanje in nadzor relacijske baze podatkov, ki jo pogosto uporabljamo v spletnih aplikacijah [19]. Do sistema dostopamo prek orodja phpmyadmin, ki je brezplačno in odprtokodno orodje, namenjeno nadzoru podatkovne baze MySQL z uporabo spletnega brskalnika. Orodje phpmyadmin z uporabo jezika PHP ustvarja, spreminja in briše podatkovne baze, tabele, polja ali vrstice kot tudi upravlja uporabnike, ki lahko dostopajo do baz podatkov, in nastavlja uporabniška dovoljenja [20]. 8

3 RAZVOJ SISTEMA ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ V tem poglavju opisujemo razvoj sistema za spremljanje virtualnih športnih tekmovanj. Najprej predstavimo idejo sistema, ki nam je služila kot temelj pri načrtovanju funkcionalnosti in komponent našega sistema. Sledi razvoj sistema in njegovo testiranje. Ideja sistema za spremljanje virtualnih športnih tekmovanj je omogočiti uporabnikom oz. tekmovalcem lažje sodelovanje na razpisanih virtualnih športnih tekmovanjih, pregled zaključenih tekmovanj in simulacijo za izbrano zaključeno tekmovanje, kjer na spletu vizualno prikazujemo posnete rezultate dveh izbranih tekmovalcev v realnem časovnem okviru. Simulacija lahko služi organizatorjem virtualnih tekmovanj kot dokaz, da je tekmovalec pot opravil pravilno in v normalnem časovnem okviru, hkrati pa jo lahko športni trenerji uporabijo pri analizi doseženih rezultatov športnikov. Zaradi lažje preglednosti smo poglavje razdelili na tri podpoglavja. Prvo podpoglavje opisuje načrt sistema za spremljanje virtualnih športnih tekmovanj, pri katerem smo rešili določene težave s povezavami in protokoli. Drugo podpoglavje opisuje podatkovno bazo, načrt zanjo smo najprej naredili teoretično, nato smo jo še implementirali. Naslednja podpoglavja predstavljajo implementacijo sistema, tj. funkcionalnosti, ki smo jih indentificirali pri snovanju načrta. V nadaljevanju diplomske naloge podrobneje opisujemo razvoj sistema za spremljanje virtualnih tekmovanj. 3.1 Načrt sistema Dobro načrtovanje programske opreme lahko pripomore k veliko hitrejšemu razvoju aplikacij, zato smo več časa posvetili sami izdelavi načrta aplikacije. Najprej smo določili, katere funkcionalnosti mora vsebovati naš sistem. Podrobnejša analiza je pokazala, da potrebujemo tri aplikacije: mobilno in namizno aplikacijo ter spletno storitev. V začetku 9

razvoja smo se osredotočili na mobilno aplikacijo, s katero se uporabnik lahko prijavi na virtualna tekmovanja, na njih sodeluje in pregleda rezultate tekmovanj oz. simulacije. Naslednja je namizna aplikacija, ki predstavlja osnovno orodje za organizatorje virtualnih tekmovanj. Ta omogoča razpis tekmovanj in pregled rezultatov oz. simulacij, s katerimi lahko določimo, če je sodelovanje posameznega tekmovalca na virtualnem tekmovanju veljavno ali ne. Spletna storitev služi kot povezava med mobilno in namizno aplikacijo ter podatkovno bazo, kamor se shranjujejo vsi podatki tekmovalcev in tekmovanj. Na podlagi ugotovljenih zahtev smo izdelali aplikacijsko shemo, ki je služila kot temelj, na podlagi katerega smo dodatno razdelali funkcionalnosti posameznih aplikacij in povezave med njimi (Slika 3.1). Slika 3.1: Shema rešitve. Iz sheme, prikazane na sliki 3.1, smo izločili funkcionalnosti in jih uvrstili v tabelo odvisnosti (Tabela 3.1). Ta prikazuje odvisnosti med določeno funkcionalnostjo in aplikacijami. Te odvisnosti so zelo pomembne za delovanje celotnega sistema. V nadaljevanju podrobneje opisujemo funkcionalnosti z vidika odjemalca in strežnika. 10

Tabela 3.1: Tabela odvisnosti. Funkcionalnost/aplikacija Registracija tekmovalca Android Namizna X Dodajanje tekmovanja Spletna storitev X X X Prijava na tekmovanje X X Zajem in oddaja podatkov X X Simulacija X X X 3.2 Podatkovna baza in model E-R Na strežniku deluje spletna storitev, ki vsebuje metode. Vsaka povezava s storitvijo vsebuje klic določene metode, ki so opisane kasneje. Metoda uporabi povezavo s podatkovno bazo, katere model E-R je prikazan na sliki 3.2. Model E-R je entitetnorelacijski podatkovni model, s katerim se opisujejo relacije (odnosi) med entitetami. Slika 3.2: Model E-R podatkovne baze. Podatkovna baza»virtualna_tekmovanja«(slika 3.3) je sestavljena iz treh tabel, opisanih v nadaljevanju. 11

Slika 3.3: Podatkovna baza virtualnih tekmovanj. Da lahko dostopamo do spletne storitve, smo v konfiguracijski datoteki spletne storitve dodali značko»webservices«, kjer definiramo protokole odjemalca za komunikacijo s spletno storitvijo (Slika 3.4). Slika 3.4: Značka s protokoli. 3.3 Implementacija sistema Implementacija sistema zajema razvoj naslednjih funkcionalnosti: registracija tekmovalca, dodajanje tekmovanja, prijava na tekmovanje, zajem in oddaja podatkov, simulacija. V nadaljevanju diplomske naloge omenjene funkcionalnosti opisujemo podrobneje. Registracija tekmovalca Funkcionalnost registracija tekmovalca se nanaša na sam sistem registracije, prijave in odjave uporabnika v sistem virtualnih športnih tekmovanj. 12

Uporabnik mobilne aplikacije uporabi funkcijo registracije, za kar mora vnesti svoj vzdevek, geslo in e-naslov. Te podatke potem pošljemo na spletno storitev, ki vrne pozitiven ali negativen odgovor. V primeru pozitivnega je uporabnik prijavljen in ga od tega trenutka naprej imenujemo tudi tekmovalec. Pri prijavi mora uporabnik vpisati vzdevek in geslo ter zahtevati odziv spletne storitve. Za odjavo mora uporabiti funkcijo odjave, ki ne komunicira s strežnikom. V sklopu sistema registracije in prijave se na strežniku uporablja tabela 'uporabnik' (Slika 3.5). Tabela 'uporabnik' ima štiri polja, ki so: unikatna oznaka vsakega uporabnika id, vzdevek, geslo in elektronski naslov mail - v primeru, če komisija želi komunicirati z uporabnikom. Slika 3.5: Tabela 'uporabnik'. Pri prijavi in registraciji kličemo dve metodi spletne storitve: 'prijava' in 'registracija'. Njuni definiciji sta prikazani na sliki 3.6. Storitev prejme podatke in jih v primeru registracije uvrsti v tabelo. Če uporabnik z izbranim vzdevkom že obstaja v tabeli, funkcija vrne oznako uporabnika id. Pri klicanju metode 'prijava' spletna storitev preveri, ali se vneseni podatki (vzdevek in geslo) ujemajo s podatki iz tabele. V primeru ujemanja se odzove z oznako uporabnika, v primeru neujemanja pa z negativno vrednostjo. Slika 3.6: Metodi 'prijava' in 'registracija'. 13

Dodajanje tekmovanja Naslednja funkcionalnost je dodajanje tekmovanja. Prvi korak k razpisu tekmovanja je načrtati pot ter izbrati oz. vpisati podatke, kot so tip, ime, opis tekmovanja in časovni termin virtualnega tekmovanja. Odjemalec ali namizna aplikacija s pomočjo orodja GMap.NET ustvari zemljevid, na katerem lahko uporabnik načrtuje pot tekmovanja. Po načrtovanju poti izpolni še dodatna polja s prej omenjeni podatki. Preden uporabnik pošlje podatke spletni storitvi se opravi še posnetek načrtovane poti. Vse skupaj nato pretvorimo v en objekt, pošljemo spletni storitvi in počakamo na odziv. Če je odziv negativen, opozorimo uporabnika na napako. Funkcionalnost dodajanje tekmovanja v podatkovni bazi uporablja tabelo 'tekmovanje' (Slika 3.7). V tabeli so polja: unikatna oznaka vsakega tekmovanja id, dolžina načrtovane poti dolzina, datum kreiranja virtualnega tekmovanja datumod, veljavnost virtualnega tekmovanja datumdo, kratek opis virtualnega tekmovanja opis, športna disciplina virtualnega tekmovanja tip (npr. tek, kolesarjenje, tek maraton, kolesarjenje šprint itd.), ime virtualnega tekmovanja (npr. Maribor, junij) ime, pot do datoteke GPX datotekapoti, ki je na strežniku in vsebuje pot tekmovanja, posnetek poti na strežniku snappoti. 14

Slika 3.7: Tabela 'tekmovanje'. Pri nalaganju virtualnega tekmovanja na strežnik kličemo metodo 'nalozitekmovanje', katere definicija je na sliki 3.8. Podobno kot pri registraciji podatke o tem tekmovanju shranimo v podatkovno bazo. Poleg teh shranimo še datoteko poti GPX in posnetek poti virtualnega tekmovanja. Slika 3.8: Metoda 'nalozitekmovanje'. Prijava na tekmovanje Funkcionalnost prijava na tekmovanje omogoča prikaz in izbiro tekmovanja, na katerem lahko tekmovalec opravi zajem poti in jo odda. Torej odjemalec zahteva od storitve, da ta prikaže vsa tekmovanja, ki se še niso zaključila v določenem trenutku. Ko tekmovalec izbere eno od tekmovanj, lahko pregleda podatke o virtualnem tekmovanju, kot so: predogled poti, dolžina, časovni rok, in na koncu izbere funkcionalnost zajem in oddaja podatkov. Pri tej funkcionalnosti uporabimo tabelo 'tekmovanje', ki je že opisana. Storitev prejme zahtevo po klicu metode 'dobitekmovanja' (Slika 3.9). Zahtevana metoda iz baze izbere 15

tekmovanja z aktivnim datumom in jih z vsemi potrebnimi podatki vrne odjemalcu v seznamu. Slika 3.9: Metoda 'dobitekmovanja'. Zajem in oddaja podatkov Funkcionalnost zajem in oddaja podatkov je najkompleksnejša in se izvaja na odjemalcu. Ko je registriran uporabnik mobilne aplikacije oz. tekmovalec prijavljen na tekmovanje, prikažemo vmesnik za zajem in oddajo poti. Odjemalec v tem primeru uporablja sprejemnik GPS, kar omogoča prikaz tekmovalčeve trenutne lokacije na zemljevidu. Zajemanje poti pomeni, da odjemalec shrani podatke lokacije v seznam približno vsako sekundo. Hkrati teče tudi časovnik, ki šteje čas v korakih po sto milisekundah. Ko tekmovalec preneha z zajemanjem poti, ima možnost poslati podatke spletni storitvi. V tem primeru odjemalec pretvori seznam podatkov lokacije v trenutnem času v datoteko GPX, vse podatke zavije v en objekt in ga pošlje spletni storitvi. Funkcionalnost zajem in oddaja podatkov uporablja tabelo 'opravljenapot' (Slika 3.10), ki vsebuje naslednja polja: unikatna oznaka poti id, oznaka virtualnega tekmovanja potid iz tabele 'tekmovanje', na katerem je tekmovalec sodeloval, oznaka registriranega uporabnika uporabnikid iz tabele ' uporabnik', čas opravljene poti cas, dolžina opravljene poti dolzina in pot do datoteke opravljene poti GPX datotekapoti. 16

Slika 3.10: Tabela 'opravljenapot'. Ko storitev prejme zahtevo po nalaganju opravljene poti, kličemo metodo 'vnesiopravljeno' z definicijo, prikazano na sliki 3.11. Metoda vstavi opravljeno pot tekmovalca v tabelo in shrani datoteko opravljene poti GPX na strežnik. Slika 3.11: Metoda 'vnesiopravljeno'. Simulacija Zadnja funkcionalnost simulacija je hkrati tudi najzanimivejša, saj omogoča dejanski prikaz premagovanja poti dveh različnih tekmovalcev v realnem času. To je edina funkcionalnost, ki jo lahko izvajamo na obeh odjemalcih (mobilna in namizna aplikacija). Odjemalec tako pridobi podatke izbranega tekmovanja z identifikacijami tekmovalcev, ki so podatke o premagani poti že prenesli na strežnik. Edina komunikacija s storitvijo se vzpostavi, ko odjemalec zahteva podatke tekmovanj in njihovih tekmovalcev. Po izbiri dveh tekmovalcev zaženemo simulacijo. Ta poteka tako, da za vsakega tekmovalca ustvarimo izvajalno nit, ki v izračunanih časovnih intervalih premagovanja poti izrisuje in povezuje njene točke na zemljevidu. Če uporabnik želi opraviti še kakšno simulacijo, ponovno izberemo dva tekmovalca, ponastavimo zemljevid z izrisanimi potmi in znova poženemo simulacijo. Zahtevo odjemalca po pregledu vseh preteklih virtualnih tekmovanj kličemo z metodo 'dobizakljucenatekmovanja', katere definicija je prikazana na sliki 3.12. Spletna storitev 17

pri tem uporablja tabele 'tekmovanje', 'opravljenapot' in 'uporabnik'. Metoda 'dobizakljucenatekmovanja' iz podatkovne baze izbere zaključena tekmovanja in jih prikaže v seznamu. Potem glede na oznako zaključenih tekmovanj poišče tekmovalce, ki so na teh tekmovanjih sodelovali, jih doda v seznam tekmovanj in seznam vrne kot odgovor. Slika 3.12: Metoda 'dobizakljucenatekmovanja'. 18

4 REZULTATI V tem poglavju na kratko opisujemo grafične vmesnike. Sledi definicija treh scenarijev, s katerimi se korak za korakom sprehodimo skozi vsak grafični vmesnik in njegovo delovanje ponazorimo s pomočjo slik. Sprehod med grafičnimi vmesniki sprotno komentiramo in pri tem opozarjamo tudi na podrobnosti, ki iz slik morda niso najboljše razvidne. Kot omenjeno, smo definirali različne scenarije uporabe naše aplikacije, pri čemer prikazujemo tri, za katere smo prepričani, da najboljše prikažejo vse možnosti našega sistema. Dva scenarija potekata na mobilni, eden pa na namizni aplikaciji. Ti scenariji so: dodajanje tekmovanja (namizna aplikacija), sodelovanje na tekmovanju (mobilna aplikacija) in simulacija (mobilna aplikacija). 4.1 Opis grafičnih vmesnikov Funkcionalnosti, opisane v tretjem poglavju diplomskega dela, so v grafične vmesnike implementirane kot funkcije, do katerih lahko uporabnik dostopa s klikom oz. dotikom na določene gumbe. Namizna aplikacija je sestavljena iz dveh zavihkov. Zavihek <Simulacija> je rezerviran za uporabo funkcije simulacija, katere izgled je viden na sliki 4.1. S klikom na zavihek dostopamo do funkcionalnosti simulacija. 19

Slika 4.1: Osnovni videz zavihka <Simulacija>. Drugi zavihek <Naloži tekmovanje> omogoča funkcijo dodajanje tekmovanja, kar bomo opisali v naslednjem podpoglavju, s klikom nanj pa dostopamo do funkcionalnosti dodajanje tekmovanja. Osnovni prikaz lahko vidimo na sliki 4.2. Slika 4.2: Osnovni videz zavihka <Naloži tekmovanje>. 20

Mobilna aplikacija vsebuje več oken za uporabo vseh njenih funkcij. Prvo okno prikazuje začetno stran aplikacije (Slika 4.3a). Ta omogoča funkcijo registracija tekmovalca, pri čemer uporabljamo okni registracije in prijave (Slika 4.3b, Slika 4.3c), ter povezavi do seznamov odprtih in zaključenih tekmovanj. S klikom na gumb <Prijava> dostopamo do funkcionalnosti registracija in prijava. a) Začetno okno b) Okno registracije c) Okno prijave Slika 4.3: Začetno okno ter okni registracije in prijave mobilne aplikacije. Pri seznamu odprtih tekmovanj (Slika 4.4a) moramo najprej uporabiti funkcijo prijava na tekmovanje, ki ji po izbiri tekmovanja sledi funkcija zajem in oddaja podatkov. Funkcionalnost prijava na tekmovanje se začne s klikom na gumb <POJDI>. Slika 4.4b pa prikazuje izgled seznama končanih tekmovanj. Gumb <SIMULACIJA> se s klikom poveže s funkcionalnostjo simulacija. 21

a) Seznam odprtih tekmovanj b) Seznam končanih tekmovanj Slika 4.4: Prikaz seznamov. V nadaljevanju diplomske naloge podrobneje opisujemo tri napovedane scenarije uporabe sistema za sledenje virtualnih športnih tekmovanj. 4.2 Dodajanje tekmovanja Namen scenarija dodajanje tekmovanja je prikazati, kako načrtujemo pot in dodajamo tekmovanje v sistem za spremljanje virtualnih športnih tekmovanj z uporabo namizne aplikacije. Pri tem scenariju uporabimo funkcijo dodajanje tekmovanja. Na sliki 4.5 vidimo že izpolnjena polja s potrebnimi podatki tekmovanja in zemljevid, ki je še nedotaknjen. 22

Slika 4.5: Izpolnjena polja v zavihku <Naloži tekmovanje>. Slika 4.6 prikazuje pričetek načrtovanja poti, ki je kratke razdalje pri mariborskem mestnem parku. Slika 4.6: Potek načrtovanja poti. 23

Nadaljnje načrtovanje lahko vidimo na zemljevidu, prikazanim na sliki 4.7. Ko menimo, da je načrtovanje zaključeno, uporabimo gumb za nalaganje tekmovanja»naloži tekmovanje«. Slika 4.7: Nadaljnje načrtovanje poti. Končna pot in odziv sta vidna na sliki 4.8. Okno, označeno z zeleno barvo sporoča, da smo tekmovanje naložili uspešno. Slika 4.8: Nalaganje tekmovanja na strežnik in odziv. 24

4.3 Sodelovanje na tekmovanju Scenarij sodelovanje na tekmovanju prikazuje tekmovalčevo sodelovanje na tekmovanju z uporabo funkcij prijave na tekmovanje ter zajema in oddaje podatkov v mobilni aplikaciji. Tekmovalec vidi seznam odprtih tekmovanj (Slika 4.4a) in med njimi izbere želenega, kar pomeni, da se poveže s funkcionalnostjo zajem in oddaja podatkov. Na sliki 4.9a vidimo okno za zajem in oddajo poti. Tekmovalec, na zemljevidu označen z modrim krogcem, je v bližini začetne točke predpostavljene poti, ki je na zemljevidu označena z zelenim oblačkom z vsebino»začetek«, in pritisne na gumb za začetek zajema poti, s čimer se na zemljevidu prikaže rumen oblaček z besedilom»moj začetek«(slika 4.9b). Po nekaj metrih lahko spremlja svoj napredek, kar ponazarja rumena pot (Slika 4.9c). a) Videz okna b) Začetni napredek c) Napredek zajema Slika 4.9: Zajem in oddaja podatkov. Napredek zajema poti lahko spremljamo na mobilni napravi s podatki o času in dolžini na zemljevidu (Slika 4.10a). Tekmovalec je blizu konca, kar se na zemljevidu vidi kot rdeč oblaček z vsebino»konec«(slika 4.10b). Ko je prispel na območje cilja, je končal zajem s 25

pritiskom na gumb»končaj«in z uporabo gumba»shrani«oddal svojo opravljeno pot, za kar je dobil odziv aplikacije (Slika 4.10c). a) Napredek zajema b) Konec je viden c) Končan zajem, oddana pot Slika 4.10: Napredek in konec zajema ter oddaja poti. 4.4 Simulacija Scenarij simulacija se z uporabo funkcije simulacija prične, ko uporabnik izbere tekmovanje s seznama končanih tekmovanj. V tem primeru je izbral tekmovanje v teku, dolžine 554 metrov, ki se nahaja v Slovenski Bistrici. Tako je uporabnik preusmerjen na okno za prikaz simulacije (Slika 4.11a). Na sliki lahko vidimo začetek, kar nam prikazuje zelen oblaček z besedilom»začetek«, in konec poti, ki je rdeč oblaček z vsebino»konec«. Vidimo lahko tudi dolžino poti, pretečen čas od začetka simulacije, opravljeno dolžino posameznega tekmovalca in s kakšno barvo je kdo označen na zemljevidu. Na razpolago sta dva seznama, s katerih uporabnik izbere dva tekmovalca, in s pritiskom na gumb»start«prične s simulacijo (Slika 4.11b). Tekmovalec s prvega seznama je označen z modro barvo, tekmovalec z drugega pa z vijolično. Zdaj sta na zemljevidu vidna tudi oblačka tekmovalcev z njunima vzdevkoma, moder je»matic«, vijolični pa»teja«, prav tako se je zagnal časovnik, kar pomeni dejanski začetek simulacije. Na sliki 4.11c je viden 26

napredek tekmovalcev, opazimo pa tudi to, da tekmovalca sledita začrtani poti in sta trenutno enakovredna, saj sta modra in vijolična pot skoraj v isti liniji. a) Osnovni prikaz okna b) Pričetek simulacije c) Izenačena tekmovalca Slika 4.11: Začetek simulacije. Slika 4.12a prikazuje, da je modri tekmovalec prej prečkal sredino poti in je trenutno v prednosti, kar se še bolj opazi na sliki 4.12b, kjer vidimo, da je modri tekmovalec pospešil. Ta razlika je vidna tudi v opravljenih metrih, saj jih ima modri skoraj sto več kot vijolični. Zadovoljni smo tudi z upoštevanjem predpodstavljene poti, saj sta ji tekmovalca do tega trenutka lepo sledila. Na sliki 4.12c vidimo, da je modri obdržal prednost pred vijoličnim in pot tudi prej zaključil, kar je vidno z dodatnim modrim oblačkom na zemljevidu, ki nam izpiše čas, ki ga je tekmovalec potreboval. Konec modre poti se nahaja v bližini cilja, zato za modrega tekmovalca odločimo, da je pravilno opravil pot. 27

a) Tekmovalca prek pol poti b) Modri je pospešil c) Modri prvi na cilju Slika 4.12: Potek simulacije. Slika 4.13a prikazuje približevanje vijoličnega tekmovalca cilju. Tudi ta je do tega trenutka lepo sledil začrtani poti. Slika 4.13b prikaže zaključeno pot vijoličnega tekmovalca z vijoličnim oblačkom, v katerem je zapisan čas, ki ga je potreboval do cilja. Za vijoličnega tekmovalca lahko zaključimo, da je pot opravil pravilno. Na zadnji sliki vidimo, da je zanesljivost sprejemnika GPS na nekaj metrov natančno, saj liniji tekmovalcev nista isti, čeprav sta najbrž tekla po najkrajši možni poti. Tako pride do malenkostnega odstopanja, vendar je to zanemarljivo. 28

a) Vijoličen je blizu cilja b) Konec simulacije Slika 4.13: Konec simulacije. Na sliki 4.14a lahko podrobneje vidimo, kje točno sta tekmovalca začela vsak svojo pot in se odločimo, da sta bila dovolj blizu začetka poti. Slika 4.14b prikazuje stanje na cilju. Tekmovalca sta tekmovanje končala pravilno, v bližini rdečega oblačka. Opazimo, da je modri opravil 15 metrov manj kot vijolični in da je bil približno 35 sekund hitrejši. S temi opažanji je simulacija zaključena. V tem trenutku lahko uporabnik ponovno izbere dva nova tekmovalca in ponovi simulacijo. a) Približan pogled začetka b) Približan pogled cilja Slika 4.14: Primerjava začetnih in končnih metrov. 29

5 SKLEP Po končanem diplomskem delu ugotavljamo, da je razvijanje sistemov za platformo Android zelo zanimivo, vendar pa nam je na začetku primanjkovalo več znanja in izkušenj, s čimer bi lahko prihranili čas ter izdelali boljši izdelek s stališča varnosti in optimalnosti delovanja. Kljub temu menimo, da smo dosegli vse zastavljene cilje. Tekom razvoja diplomskega dela smo se seznanili z uporabljenimi tehnologijami in orodji. V največji meri smo se posvetili mobilni platformi Android, saj smo prav za to platformo napisali mobilno aplikacijo, ki športnikom olajša sodelovanje na virtualnih športnih tekmovanjih. Napisali smo še namizno aplikacijo za platformo Windows, ki organizatorjem športnih prireditev pomaga pri organiziranju virtualnih tekmovanj. Mobilna aplikacija omogoča registracijo in prijavo v sistem tekmovanj, zajem in oddajo poti tekmovalca za posamezno tekmovanje ter prikaz rezultatov tekmovanja oz. obdelavo podatkov tekmovalcev v realnem času kot simulacija. Namizna aplikacija pa omogoča načrtovanje in nalaganje tekmovanja na strežnik ter simulacijo. Za komunikacijo med podatkovno bazo na strežniku in aplikacijama smo napisali spletno storitev, ki je omogočala prenos pomembnih podatkov. Na koncu smo predstavili rezultate s praktičnim primerom uporabe aplikacije. Aplikaciji sta enostavni za uporabo, vendar bi lahko za boljšo uporabniško izkušnjo implementirali še naslednje funkcionalnosti: opomnik, ki bi 24 ur pred koncem virtualnega športnega tekmovanja uporabnika opozoril, da se tekmovanje izteka, in spletno stran za večjo prenosljivost med različnimi platformami. Kot naslednjo izboljšavo bi lahko implementirali aplikacijo za več vrst specializiranih uporabnikov, npr. za trenerje ali organizatorje tekmovanja. Trenerji bi imeli na voljo več podatkov za vpogled, npr. nadmorsko višino in vizualni prikaz hitrosti na zemljevidu s spremembo barve prikazane poti (npr. rdeča, zelena in modra), kar bi pomenilo, da je športnik hiter, povprečen ali počasnejši glede na povprečno hitrost za posamezni tip tekmovanja. Za organizatorja bi lahko vključili možnost dodajanja več tekmovalcev v simulacijo in prikaz njihovih podatkov. Dodali bi lahko še nekakšen krog pri startu in cilju, ki bi imel premer npr. 10 metrov, za lažje razpoznavanje, če je tekmovalec začel in končal zajem poti v bližini starta 30

in cilja. Dobra ideja je tudi vpogled tekmovalca samega v zajeme svojih poti za eno tekmovanje. Tako bi se lahko sam odločil, kateri zajem bo naložil kot svojo opravljeno pot tekmovanja. Kot zadnjo možnost bi lahko dodali še pohitritev simulacije, kar pomeni, da bi imeli gumb, s katerim bi spreminjali hitrost prikaza simulacije. Mobilno aplikacijo bi lahko javno objavili v trgovini Google Play, za kar bi morali pri gradnji grafičnega vmesnika slediti navodilom za javno objavo podjetja Google. 31

VIRI [1] Android. Dostopno na: https://en.wikipedia.org/wiki/android_(operating_system) [10. 5. 2016]. [2] Android Studio. Dostopno na: https://en.wikipedia.org/wiki/android_studio [10. 5. 2016]. [3] B. Jakuben. The Beginner's Guide to Location in Android. Dostopno na: http://blog.teamtreehouse.com/beginners-guide-location-android [10. 5. 2016]. [4] C#. Dostopno na: https://en.wikipedia.org/wiki/c_sharp_(programming_language) [10. 5. 2016] [5] D. Bell, M. Parr. Java for Students, Prentice-Hall, 2010. [6] G. Alonso, F. Casati, H. Kuno, V. Machiraju. WebServices: Concepts, Architectures and Applications, Springer Verlag, 2010. [7] GMap.NET. Dostopno na: https://greatmaps.codeplex.com/ [11. 5. 2016]. [8] Google Maps Android API. Dostopno na: https://developers.google.com/maps/documentation/android-api/ [10. 5. 2016]. [9] GPS. Dostopno na: https://en.wikipedia.org/wiki/global_positioning_system [10. 5. 2016]. [10] GPS Exchange Format. Dostopno na: https://en.wikipedia.org/wiki/gps_exchange_format [10. 5. 2016]. [11] GPS Garmin. Dostopno na: http://www8.garmin.com/aboutgps/ [25. 7. 2017]. [12] GPS tracking unit. Dostopno na: https://en.wikipedia.org/wiki/gps_tracking_unit [11. 5. 2016]. [13] GPX. Dostopno na: http://www.topografix.com/gpx.asp [25. 7. 2017]. [14] IIS. Dostopno na: https://en.wikipedia.org/wiki/internet_information_services [11. 5. 2016]. [15] Java. Dostopno na: https://en.wikipedia.org/wiki/java_(programming_language) [10. 5. 2016]. [16] ksoap2. Dostopno na: http://kobjects.org/ksoap2/index.html [10. 5. 2016]. [17] Microsoft Visual Studio. Dostopno na: https://en.wikipedia.org/wiki/microsoft_visual_studio [10. 5. 2016]. 32

[18] Microsoft Windows. Dostopno na: https://en.wikipedia.org/wiki/microsoft_windows [25. 7. 2017]. [19] MySQL. Dostopno na: https://en.wikipedia.org/wiki/mysql [10. 5. 2016]. [20] phpmyadmin. Dostopno na: https://en.wikipedia.org/wiki/phpmyadmin [25. 7. 2017]. [21] Web service. Dostopno na: https://en.wikipedia.org/wiki/web_service [11. 5. 2016]. [22] XML. Dostopno na: https://en.wikipedia.org/wiki/xml [10. 5. 2016]. 33