SISTEM ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ

Velikost: px
Začni prikazovanje s strani:

Download "SISTEM ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ"

Transkripcija

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

2 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

3 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

4 SISTEM ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ Ključne besede: virtualno športno tekmovanje, aplikacija, Android, simulacija UDK: : (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

5 MONITORING SYSTEM FOR VIRTUAL SPORTS COMPETITIONS Key words: virtual sports competition, application, Android, simulation UDK: : (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

6 KAZALO 1 UVOD UPORABLJENE TEHNOLOGIJE Mobilni operacijski sistem Android in razvojno okolje Android Studio Operacijski sistem Microsoft Windows in razvojno okolje Visual Studio Format izmenjave podatkov globalnega sistema pozicioniranja Sistem za upravljanje relacijske podatkovne baze... 8 RAZVOJ SISTEMA ZA SPREMLJANJE VIRTUALNIH ŠPORTNIH TEKMOVANJ Načrt sistema Podatkovna baza in model E-R Implementacija sistema...12 REZULTATI Opis grafičnih vmesnikov Dodajanje tekmovanja Sodelovanje na tekmovanju Simulacija...26 SKLEP...30 VIRI...32 iv

7 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

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

9 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

10 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

11 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

12 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 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

13 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 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 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

14 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

15 Razvojno okolje, ki smo ga uporabili pri razvoju namizne aplikacije in spletne storitve, je bilo Visual Studio verzije 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 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 Slika 3.10: Tabela 'opravljenapot'. Ko storitev prejme zahtevo po nalaganju opravljene poti, kličemo metodo 'vnesiopravljeno' z definicijo, prikazano na sliki 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 Spletna storitev 17

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 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

39 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

40 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

41 VIRI [1] Android. Dostopno na: [ ]. [2] Android Studio. Dostopno na: [ ]. [3] B. Jakuben. The Beginner's Guide to Location in Android. Dostopno na: [ ]. [4] C#. Dostopno na: [ ] [5] D. Bell, M. Parr. Java for Students, Prentice-Hall, [6] G. Alonso, F. Casati, H. Kuno, V. Machiraju. WebServices: Concepts, Architectures and Applications, Springer Verlag, [7] GMap.NET. Dostopno na: [ ]. [8] Google Maps Android API. Dostopno na: [ ]. [9] GPS. Dostopno na: [ ]. [10] GPS Exchange Format. Dostopno na: [ ]. [11] GPS Garmin. Dostopno na: [ ]. [12] GPS tracking unit. Dostopno na: [ ]. [13] GPX. Dostopno na: [ ]. [14] IIS. Dostopno na: [ ]. [15] Java. Dostopno na: [ ]. [16] ksoap2. Dostopno na: [ ]. [17] Microsoft Visual Studio. Dostopno na: [ ]. 32

42 [18] Microsoft Windows. Dostopno na: [ ]. [19] MySQL. Dostopno na: [ ]. [20] phpmyadmin. Dostopno na: [ ]. [21] Web service. Dostopno na: [ ]. [22] XML. Dostopno na: [ ]. 33