sveuČiliŠte u rijeci tehniČki fakultet · 2016. 6. 5. · 2 2. opis suČelja klijenta ovo...

47
SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET Diplomski sveučilišni studij računarstva Diplomski rad Primjena reverznog geokodiranja i praćenja kretanja u mobilnoj aplikaciji Rijeka, oţujak 2016. Bojan Sulovsky 0069049945

Upload: others

Post on 27-Jul-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

SVEUČILIŠTE U RIJECI

TEHNIČKI FAKULTET

Diplomski sveučilišni studij računarstva

Diplomski rad

Primjena reverznog geokodiranja i praćenja

kretanja u mobilnoj aplikaciji

Rijeka, oţujak 2016. Bojan Sulovsky

0069049945

Page 2: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

SVEUČILIŠTE U RIJECI

TEHNIČKI FAKULTET

Diplomski sveučilišni studij računarstva

Diplomski rad

Primjena reverznog geokodiranja i praćenja

kretanja u mobilnoj aplikaciji

Mentor: izv. prof. dr. sc. Miroslav Joler

Rijeka, oţujak 2016. Bojan Sulovsky

0069049945

Page 3: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

Sadržaj

1. UVOD ................................................................................................................................. 1

2. OPIS SUČELJA KLIJENTA .............................................................................................. 2

2.1 Navigacija .................................................................................................................... 2

2.1.1 Neprijavljeni korisnici .......................................................................................... 2

2.1.2 Prijavljeni korisnici .............................................................................................. 3

2.2 Prijava (Login) ............................................................................................................. 4

2.2 Registracija (Register) ................................................................................................. 5

2.4 Oporavak lozinke (Recover password) ........................................................................ 6

2.5 Glavni izbornik (Main menu) ...................................................................................... 7

2.6 Mapa (Show map) ........................................................................................................ 8

2.7 Povijest (History) ....................................................................................................... 10

2.7.1 Povijest (History) ................................................................................................ 10

2.7.2 Mapa povijesti (History Map) ............................................................................ 11

2.8 Moj profil (My Profile) .............................................................................................. 12

2.8.1 Izmjena lozinke (Change Password) .................................................................. 13

2.8.2 Brisanje korisničkog računa (Delete account) .................................................... 14

2.9 Prijatelji (Friends) ...................................................................................................... 15

2.9.1 Prihvaćeni prijatelji (Accepted) .......................................................................... 15

2.9.2 Zahtjevi za prijateljstvo (Pending) ..................................................................... 16

2.9.3 Traţenje novih prijatelja ..................................................................................... 17

2.9.4 Slanje pozivnice (Friend invite) ......................................................................... 18

2.10 Postavke (Settings) .................................................................................................... 19

3. OPIS SUČELJA ADMINISTRATORA ........................................................................... 21

3.1 Navigacija .................................................................................................................. 21

3.1.1 Neprijavljeni korisnici ........................................................................................ 21

3.1.2 Prijavljeni korisnici ............................................................................................ 22

3.2 Prijava (Login) ........................................................................................................... 23

3.2 Registracija (Register) ............................................................................................... 24

3.4 Oporavak lozinke (Forgot Password) ........................................................................ 25

3.5 Glavni izbornik (Main menu) .................................................................................... 26

3.6 Izmjena lozinke (Change Password) .......................................................................... 27

3.7 Postavke servera (Server Settings) ............................................................................ 28

4. POZADINSKI PROCESI ................................................................................................. 29

Page 4: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

5. MATEMATIČKE FORMULE ......................................................................................... 30

6. NOVE FUNKCIONALNOSTI ......................................................................................... 31

6.1 Reverzno geokodiranje .............................................................................................. 31

6.2 Povijest kretanja ......................................................................................................... 31

6.3 Ostale funkcionalnosti ............................................................................................... 32

7. OPIS RADA SERVERA ................................................................................................... 33

7.1 Baza podataka ............................................................................................................ 33

7.1.1 Users ................................................................................................................... 33

7.1.2 History ................................................................................................................ 34

7.1.3 Settings ............................................................................................................... 34

7.1.4 Admin ................................................................................................................. 35

7.2 PHP skripte ................................................................................................................ 35

8. LOKALNA BAZA PODATAKA (NA MOBILNOM UREĐAJU) ................................. 38

8.1 Pamćenje kredencija .................................................................................................. 38

8.2 Spremanje postavki .................................................................................................... 39

8.3 Pohrana prihvaćenih prijatelja ................................................................................... 39

8.4 Pohrana povijesti kretanja prijatelja .......................................................................... 40

9. SAŢETAK ......................................................................................................................... 41

10. LITERATURA .............................................................................................................. 43

Page 5: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

1

1. UVOD

Zadatak ovog diplomskog rada je nadogradnja postojeće mobilne aplikacije MapMe by

Circle [1]. Svrha aplikacije je mogućnost organiziranja susreta ili sastanaka s većim krugom

poznanika bez potrebe za učestalim kontaktiranjem, koordiniranjem i usmjeravanjem na

odreĎeno mjesto, a prednost je što olakšava i predviĎanje točnijeg vremena susreta. U

današnje vrijeme uţurbanog ţivljenja, ovo je jako prihvatljiva mogućnost za jednostavan

dogovor oko što točnijega vremena i mjesta susreta.

Osjetljiva strana aplikacije je mogućnost praćenja poznanika kroz dulji vremenski rok i

zadiranje u privatnost, ali u rješenju je osigurano da se svaka osoba u svakom trenutku moţe

„sakriti“ pomoću opcije u samoj aplikaciji. Podatci o kretanju korisnika se automatski brišu

nakon 24 sata. No, mogućnost praćenja istovremeno moţe biti i pogodnost, npr. za roditelje

da mogu imati prikaz kretanja svojega djeteta tijekom dana i na taj način povećati sigurnost

djeteta.

Na postojeće funkcionalnosti aplikacije (upravljanje prijateljstvima, slanje vlastite i

preuzimanje lokacija prijatelja, prikaz lokacija prijatelja na mapi, filtriranje prijatelja po

proizvoljnoj udaljenosti od korisnika, mogućnost sakrivanja vlastite lokacije), bilo je

potrebno dodati mogućnost reverznog geokodiranja i praćenje kretanja kroz odreĎeni

vremenski period. Uz to su dodane i mogućnosti izmjene teme aplikacije (svijetla ili tamna),

mogućnost zaključavanja orijentacije, mogućnost filtriranja ostalih korisnika po starosti

podataka, mogućnost brisanja korisničkog računa te implementacija preciznijeg i brţeg

sustava za lociranje korisnika. TakoĎer je razvijena i administratorska verzija aplikacije

sukladno zadatku.

Aplikacija je, radi meĎunarodne upotrebljivosti, cijela raĎena na engleskom jeziku. Za

korištenje aplikacije potrebno je kreirati račun (account) koji od korisnika zahtijeva: email

adresu, display name (ime za prikaz), zaporku te broj telefona.

Page 6: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

2

2. OPIS SUČELJA KLIJENTA

Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi.

Aplikacija ima 9 glavnih sučelja: sučelje za prijavu, registraciju, oporavak lozinke, glavni

izbornik, prikaz mape, povijest kretanja prijatelja na mapi, moj profil, prijatelji i postavke.

2.1 Navigacija

Navigacija aplikacijom dijeli se na dva dijela: neprijavljeni (Slika 2.1) i prijavljeni

korisnici (Slika 2.2).

Prijavljeni i neprijavljeni korisnici imaju pristup različitim navigacijskim sustavima. Korisnik

moţe s lakoćom mijenjati svoje stanje iz neprijavljenog u prijavljenog korisnika i obratno.

Povratak na prijašnje sučelje vrši se klikom na „Back“ tipku na vašem mobilnom ureĎaju,

osim u slučaju povratka iz „Glavni izbornik“ u „Prijava“ koje se vrši tipkom „Sign out“.

2.1.1 Neprijavljeni korisnici

Pri pokretanju aplikacije svaki korisnik počinje kao neprijavljeni korisnik u sučelju za prijavu.

Iz sučelja za prijavu korisnik moţe izvršiti prijavu te tako doći do Glavnog izbornika, odnosno

navigacije za prijavljene korisnike.

Slika 2.1. Graf navigacije neprihjavljenih korisnika

Page 7: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

3

Do sučelja za registraciju korisnik dolazi iz sučelja za prijavu klikom na tipku „Register“, dok do

sučelja za povratak lozinke klikom na tipku „Forgot password“.

2.1.2 Prijavljeni korisnici

Pri uspješnom izvršavanju prijave, neprijavljeni korisnik postaje prijavljeni korisnik te

dobiva pristup navigaciji za prijavljene korisnike pritom gubeći pristup navigaciji za

neprijavljene korisnike.

Prijavljeni korisnik moţe ponovno postati neprijavljeni korisnik klikom na tipku „Sign out“ u

glavnom izborniku.

Iz glavnog izbornika korisnik moţe doći do sučelja „Mapa“ klikom na tipku „Show map“.

Za pristup sučelju „Povijest“ potrebno je kliknuti na tipku „History“ u glavnom izborniku. Iz

tog sučelja dolazi se do sučelja „History map“ klikom na tipku „Show history“.

Do sučelja „Moj profil“ dolazi se klikom na tipku „My profile“ u glavnom izborniku. Iz tog

sučelja moţe se doći do sučelja „Izmjena lozinke“ klikom na tipku „Change password“, a do

sučelja „Brisanje računa“ klikom na tipku „Delete account“.

Iz glavnog izbornika dolazi se do sučelja „Prijatelji“ klikom na tipku „Friends“ u kojem,

ovisno o broju neodgovorenih zahtjeva za prijateljstvom, vas aplikacija sama postavlja u

jedno od sučelja – „Prihvaćeni“ ili „Zahtjevi za prijateljstvo“. Iz oba ta sučelja moguće je doći

do drugog putem tipki. Do sučelja „Traţenje novih prijatelja“ dolazi se klikom na tipku „Add

new friend“ koja se nalazi u sučeljima „Prihvaćeni“ i „Zahtjevi za prijateljstvo“.

Slika 2.2. Graf navigacije prijavljenih korisnika

Page 8: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

4

Do sučelja „Slanje pozivnice“ dolazi se iz sučelja „Traţenje novih prijatelja“ klikom na tipku

„Send invite“

Za doći do sučelja „Postavke“ potrebno je na glavnom izborniku kliknuti na tipku

„Settings“.

2.2 Prijava (Login)

Sučelje za prijavu (Slika 2.3) sluţi za prijavu registriranih korisnika radi upotrebe

aplikacije. Na tom sučelju se takoĎer nalaze standardne mogućnosti sučelja za prijavu.

Sučelje za prijavu sastoji se od:

1) Polja za unos email adrese

2) Polja za unos lozinke

3) Checkbox opcije za pamćenje prijavnih kredencija

4) Checkbox opcije za automatsku prijavu – moguće samo ako pamtimo kredencije

5) Tipke za prijavljivanje korisnika

6) Tipke za otvaranje sučelja za registraciju novih korisnika

7) Tipke za otvaranje sučelja za povratak lozinke

Slika 2.3. Sučelje za prijavu

Page 9: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

5

2.2 Registracija (Register)

Sučelje za registraciju (Slika 2.4) sluţi za registraciju novih korisnika. Od korisnika se

zahtijeva unos podataka u za to predviĎena polja.

Sučelje za registraciju sastoji se od:

1) Polja za unos email adrese

2) Polja za unos lozinke

3) Polja za ponovni unos lozinke

4) Polja za unos imena za prikaz

5) Polja za unos telefonskog broja

6) Tipke za kreiranje novog korisničkog računa

Slika 2.4. Sučelje za registraciju

Page 10: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

6

2.4 Oporavak lozinke (Recover password)

Sučelje za oporavak lozinke (Slika 2.5) sluţi da u slučaju kad korisnik zaboravi lozinku

svog korisničkog računa moţe oporaviti svoju lozinku.

Sučelje za oporavak lozinke sastoji se od:

1) Polja za unos email adrese

2) Tipke za oporavak lozinke

Slika 2.5. Sučelje za oporavak lozinke

Page 11: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

7

2.5 Glavni izbornik (Main menu)

Slika 2.6 prikaz je glavnog izbornika iz kojega je moguć pristup svim ostalim glavnim

sučeljima i funkcionalnostima aplikacije.

Glavni izbornik sastoji se od:

1) Tipke za otvaranje prikaza mape

2) Tipke za otvaranje sučelja za povijest kretanja korisnika

3) Tipke za otvaranje sučelja za „moj profil“

4) Tipke za otvaranje sučelja za prikaz informacija o prijateljima

5) Ispisa o trenutnom stanju zahtjeva za prijateljstvom (vidljivo samo ako postoji zahtjev)

6) Tipke za otvaranje sučelja za postavke

7) Tipke za otvaranje sučelja za odjavu korisnika (Slika 2.7)

8) Opcija „Ne“

9) Opcija „Da i zaboravi me“

10) Opcija „Da“

Slika 2.6. Glavni izbornik Slika 2.7. Glavni izbornik - odjava

korisnika

Page 12: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

8

2.6 Mapa (Show map)

Mapa (Slika 2.8) je sučelje s glavnom funkcionalnošću aplikacije – prikaz prijatelja na

mapi u odreĎenom radijusu.

Sluţi tome da moţemo na brz i jednostavan način otkriti tko se nalazi u našoj okolici, koliko

je udaljen te koliko je ta informacija stara.

Mapa sadrţi:

1) Padajući izbornik prijatelja u zadanom radijusu

2) Tipka za centriranje mape na odabranog prijatelja

3) Tipka za izvanredno hvatanje podataka o lokacijama prijatelja

4) Checkbox opcija za kontinuirano centriranje mape na odabranog prijatelja

5) Checkbox opcija za kontinuirano centriranje mape na vlastitu lokaciju

6) Checkbox opcija za zadrţavanje ekrana upaljenim

7) Mapa

8) Tipka za centriranje mape na našu lokaciju

9) Tipka za kontrolu zoom-a mape

Slika 2.8. Mapa

Page 13: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

9

10) Tipka za pristup dodatnim mogućnostima pruţanih od aplikacije Maps

11) Detalji o prijatelju – email, ime, broj telefona, starost podatka i udaljenost od nas

12) Marker na mapi – lokacija prijatelja

13) Krug – radijus oko naše lokacije, ugaĎa se sa 14, 15 i 16

14) Checkbox opcija za omogućavanje i onemogućavanje kruga

15) Slider za kontrolu radijusa kruga

16) Numeričko polje za kontrolu radijusa kruga

17) Detalji o osobi koju smo zadnju odabrali

18) Tipka za pokretanje aplikacije za poruke – broj je već odabran

19) Tipka za pokretanje aplikacije za pozive – broj je već odabran

20) Adresa osobe koju smo zadnju odabrali

21) Tipka za dohvaćanje adrese (reverzno geokodiranje)

Page 14: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

10

2.7 Povijest (History)

Povijest (Slika 2.9) je sučelje sa funkcionalnosti prikaza povijesti kretanja prijatelja po

mapi.

Sastoji se od dvaju sučelja: odabir prijatelja čije kretanje ţelimo vidjeti te prikaz kretanja

odabranih prijatelja na mapi.

2.7.1 Povijest (History)

Sučelje povijest sluţi za odabir prijatelja čiju povijest kretanja ţelimo vidjeti na mapi.

Povijest se sastoji od:

1) Checkbox liste prijatelja koji dopuštaju uvid u svoje kretanje

2) Tipke za otvaranje sučelja Povijest mapa sa odabranim prijateljima

Slika 2.9. Povijest - odabir prijatelja

Page 15: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

11

2.7.2 Mapa povijesti (History Map)

Mapa povijesti (Slika 2.10) je sučelje koje prikazuje povijest kretanja odabranih prijatelja

na karti te dopušta kronološko navigiranje po točkama kretanja.

Mapa povijesti sadrţi:

1) Padajući izbornik za odabir prijatelja

2) Tipka za centriranje na najstariju lokaciju odabranog prijatelja

3) Tipka za centriranje na prethodnu lokaciju odabranog prijatelja

4) Tipka za centriranje na iduću lokaciju odabranog prijatelja

5) Tipka za centriranje na najnoviju lokaciju odabranog prijatelja

6) Detalji o trenutnoj lokaciji prijatelja – email, vrijeme kada se nalazio na toj lokaciji i

adresa

7) Markeri na mapi – lokacije odabranih prijatelja

8) Linije koje povezuju markere – kronološki put kretanja prijatelja – svakoj osobi je

dodijeljena druga boja za jednostavniji pregled

Slika 2.10. Mapa povijesti

Page 16: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

12

2.8 Moj profil (My Profile)

Moj profil (Slika 2.11) je sučelje koje prikazuje podatke o korisniku koji se nalaze na

serveru te korisniku daje mogućnost izmijeniti neke od njih.

Sučelje za Moj profil sastoji se od:

1) Ispis email adrese korisnika – nemoguće promijeniti

2) Polje za ime za prikaz, vidi se trenutno i moţe se mijenjati

3) Polje za telefonski broj, vidi se trenutno i moţe se mijenjati

4) Ispis vremena i datuma zadnjeg slanja vlastite lokacije na server

5) Checkbox za mogućnost skrivanja sebe na mapi od prijatelja

6) Checkbox za mogućnost skrivanja povijesti kretanja od prijatelja

7) Tipka za otvaranje sučelja za izmjenu lozinke

8) Tipka za otvaranje sučelja za brisanje korisničkog računa

9) Tipka za prisilno slanje vlastite lokacije na server

10) Tipka koja ostavlja vrijednosti svih polja prije promjena

11) Tipka za slanje promijenjenih vrijednosti polja na server

Slika 2.11. Sučelje za Moj profil

Page 17: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

13

2.8.1 Izmjena lozinke (Change Password)

Sučelje za promjenu lozinke (Slika 2.12) se otvori nakon pritiska na tipku „Change

Password“, na sučelju My Profile (Slika 2.11 točka 8) i sluţi za promjenu trenutne zaporke

korisnika.

Sučelje za izmjenu lozinke sastoji se od:

1) Polja za unos trenutne zaporke

2) Polja za unos nove zaporke

3) Polja za ponovni unos nove zaporke

4) Tipke za izmjenu trenutne lozinke

Slika 2.12. Sučelje za Izmjenu lozinke

Page 18: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

14

2.8.2 Brisanje korisničkog računa (Delete account)

Sučelje za brisanje korisničkog računa (Slika 2.13) sluţi za brisanje računa korisnika i

otvori se nakon stiska na tipku „Delete account“ na sučelju „My Profile“.

Sučelje za brisanje računa sastoji se od:

1) Polja za unos trenutne zaporke

2) Tipke za brisanje korisničkog računa

Slika 2.13. Sučelje za Brisanje računa

Page 19: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

15

2.9 Prijatelji (Friends)

Prijatelji (Friends) je sučelje koje sadrţi podatke o prijateljima trenutnog korisnika. Sučelje

ima odvojeni prikaz za već prihvaćene prijatelje i sa zahtjevima za prijateljstvo koji su

poslane korisniku. TakoĎer postoji sučelje za traţenje novih prijatelja te sučelje za slanje

pozivnica.

Prihvaćeni prijatelji i Zahtjevi za prijateljstvom su zapravo isto sučelje, razlika je u tome

koja lista se prikazuje, no za potrebe ove dokumentacije bit će tretirani kao zasebna sučelja.

2.9.1 Prihvaćeni prijatelji (Accepted)

Slika 2.14. Prihvaćeni prijatelji (Accepted) je dio sučelja za prijatelje koji prikazuje

prihvaćene prijatelje korisnika te opciju prekidanja prijateljstva (Slika 2.15).

Prihvaćeni prijatelji sučelje se sastoji od:

1) Tipka za promjenu prikaza na prihvaćene prijatelje – trenutni prikaz

2) Tipka za promjenu prikaza na zahtjeve za prijateljstvo – prikazuje i broj trenutnih

zahtjeva

Slika 2.14. Prihvaćeni prijatelji Slika 2.15. Prihvaćeni prijatelji -

prekid prijateljstva

Page 20: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

16

3) Podatci o prijatelju – ime za prikaz, email adresa i broj telefona

4) Tipka za otvaranje sučelja za prekid prijateljstva (Slika 2.15)

5) Tipka za otvaranje sučelja za traţenje novih prijatelja

6) Tipka za prisilno osvjeţavanje prikaza

7) Prikaz emaila adrese prijatelja za koga je prikazano sučelje za prekid prijateljstva

8) Opcija „Ne“

9) Opcija „Da“

2.9.2 Zahtjevi za prijateljstvo (Pending)

Slika 2.16 Zahtjevi za prijateljstvo (Pending) je dio sučelja koje sadrţi podatke o

podnositeljima zahtjeva za prijateljstvo trenutnom korisniku te korisniku daje mogućnost

prihvaćanja (Slika 2.17) ili odbijanja zahtjeva.

Zahtjevi za prijateljstvo sastoji se od:

1) Tipka za promjenu prikaza na prihvaćene prijatelje

2) Tipka za promjenu prikaza na zahtjeve za prijateljstvo – trenutni prikaz

3) Podatci o podnositelju zahtjeva – ime za prikaz, email adresa i broj telefona

Slika 2.16. Zahtjevi za prijateljstvo Slika 2.17. Zahtjevi za prijateljstvo -

prihvaćanje prijateljstva

Page 21: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

17

4) Tipka za otvaranje sučelja za odbijanje prijateljstva – kao (Slika 2.17) uz drukčiji opis

5) Tipka za otvaranje sučelja za prihvaćanje prijateljstva (Slika 2.17)

6) Tipka za otvaranje sučelja za traţenje novih prijatelja

7) Tipka za prisilno osvjeţavanje prikaza

8) Prikaz email adrese prijatelja za koga je prikazano sučelje za prihvaćanje/odbijanje

zahtjeva

9) Opcija „Ne“

10) Opcija „Da“

2.9.3 Traţenje novih prijatelja

Traţenje novih prijatelja (Friends lookup) (Slika 2.18) je sučelje koje omogućuje korisniku

da potraţi korisnike aplikacije te da im moţe poslati zahtjev za prijateljstvom.

Traţenje novih prijatelja sastoji se od:

1) Polja za unos informacija o osobi – unosi se ili email ili ime za prikaz osobe na ekranu

ili telefonski broj

Slika 2.19. Traženje novih prijatelja -

podnošenje zahtjeva

Slika 2.18. Traženje novih prijatelja

Page 22: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

18

2) Tipke za pretraţivanje korisnika u bazi sa podatcima iz Polja 1

3) Podatci o pronaĎenim korisnicima – ime za prikaz, email adresa i broj telefona

4) Tipka za otvaranje sučelja za podnošenje zahtjeva za prijateljstvo (Slika 2.19)

5) Tipka za otvaranje sučelja za slanje pozivnice

6) Prikaz email adrese korisnika za kojega je prikazano sučelje za podnošenje zahtjeva

7) Opcija „Ne“

8) Opcija „Da“

2.9.4 Slanje pozivnice (Friend invite)

Slanje pozivnice (Slika 2.20) je sučelje koje omogućuje korisniku da šalje email pozivnice

za korištenje aplikacije.

Traţenje novih prijatelja sastoji se od:

1) Polja za unos email adrese osobe kojoj ţelimo poslati pozivnicu

2) Polje za unos osobne poruke koja se pridodaje pozivnici

3) Izgled pozivnice koja se šalje

4) Tipka za slanje pozivnice

Slika 2.20. Slanje pozivnice

Page 23: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

19

2.10 Postavke (Settings)

Postavke (Slika 2.21) je sučelje gdje se postavljaju sve lokalne postavke aplikacije:

omogućavanje prikaza kruga područja od interesa na mapi, postavljanje maksimalne i

defaultne veličine radijus kruga, period osvjeţavanja podataka o prijateljima, period slanja

vlastite lokacije na server, onemogućavanje provjere mobitela za GPS postavke, odabir načina

prikaza prijatelja u padajućem izborniku na mapi.

Postavke se sastoji od:

1) Checkbox opcija za omogućavanje/onemogućavanje prikaza radijus kruga na mapi

2) Polje za unos maksimalnog radijusa kruga – vidljivo samo ako je krug radijusa

omogućen

3) Slider za kontrolu defaultnog radijusa kruga – vidljivo samo ako je krug radijusa

omogućen

4) Polje za kontrolu defaultnog radijusa kruga – vidljivo samo ako je krug radijusa

omogućen

5) Checkbox opcija za omogućavanje/onemogućavanje filtriranje prijatelja po vremenu

na mapi

6) Polje za unos vremenskog perioda u danima – vidljivo samo ako je filtriranje

omogućeno

Slika 2.21. Postavke

Page 24: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

20

7) Polje za unos vremenskog perioda u satima – vidljivo samo ako je filtriranje

omogućeno

8) Polje za unos vremenskog perioda u minutama – vidljivo samo ako je filtriranje

omogućeno

9) Slider za kontrolu perioda osvjeţavanja podataka o prijateljima

10) Polje za kontrolu perioda osvjeţavanja podataka o prijateljima

11) Checkbox opcija za omogućavanje/onemogućavanje servisa za slanje vlastite lokacije

na server

12) Checkbox opcija za dozvoljavanje komunikacije sa serverom samo putem WiFi

konekcije – vidljivo samo ako je slanje omogućeno

13) Checkbox opcija za omogućavanje/onemogućavanje rada servisa u pozadini – vidljivo

samo ako je slanje omogućeno

14) Slider za kontrolu perioda slanja vlastite lokacije – vidljivo samo ako je slanje

omogućeno

15) Polje za kontrolu perioda slanja vlastite lokacije – vidljivo samo ako je slanje

omogućeno

16) Stanje servisa za slanje vlastite lokacije na server

17) Checkbox opcija za omogućavanje/onemogućavanje opcije slanja i primanja podataka

što je češće moguće – sakriva 9, 10, 11, 12, 13 i 14

18) Checkbox opcija za onemogućavanje provjere mobitela za GPS postavke

19) Checkbox opcija za odabir teme (boje) aplikacija – svijetla ili tamna

20) Checkbox opcije za zadrţavanje ekrana upaljenim tokom prikaza mapa

21) Padajući izbornik za izbor prikaza sadrţaja padajućeg izbornika prijatelja na mapi

22) Padajući izbornik za izbor orijentacije aplikacije

23) Tipka za postavljanje svih vrijednosti na defaultne

24) Tipka za spremanje postavki

Page 25: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

21

3. OPIS SUČELJA ADMINISTRATORA

Ovo poglavlje sadrţi opis sučelja administratora, odnosno gdje se što nalazi te čemu što sluţi.

Administratorska aplikacija (MapMeC – Admin) ima 6 glavnih sučelja: sučelje za prijavu,

registraciju, oporavak lozinke, glavni izbornik, izmjenu lozinke i postavke servera.

3.1 Navigacija

Navigacija aplikacijom dijeli se na dva dijela: neprijavljeni (Slika 3.1) i prijavljeni

korisnici (Slika 3.2).

Prijavljeni i neprijavljeni korisnici imaju pristup različitim navigacijskim sustavima. Korisnik

moţe s lakoćom mijenjati svoje stanje iz neprijavljenog u prijavljenog korisnika i obratno.

Povratak na prijašnje sučelje vrši se klikom na „Back“ tipke na vašem mobilnom ureĎaju,

osim u slučaju povratka iz „Glavni izbornik“ u „Prijava“ koje se vrši tipkom „Sign out“

3.1.1 Neprijavljeni korisnici

Pri pokretanju aplikacije svaki korisnik počinje kao neprijavljeni korisnik u sučelju za

prijavu.

Slika 3.1. Graf navigacije neprihjavljenih korisnika

Page 26: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

22

Iz sučelja za prijavu korisnik moţe izvršiti prijavu te tako doći do Glavnog izbornika,

odnosno navigacije za prijavljene korisnike.

3.1.2 Prijavljeni korisnici

Pri uspješnom izvršavanju prijave, neprijavljeni korisnik postaje prijavljeni korisnik te

dobiva pristup navigaciji za prijavljene korisnike pritom gubeći pristup navigaciji za

neprijavljene korisnike.

Prijavljeni korisnik moţe ponovno postati neprijavljeni korisnik klikom na tipku „Sign out“ u

glavnom izborniku.

Iz glavnog izbornika korisnik moţe doći do sučelja „Izmjena lozinke“ klikom na tipku

„Change password“.

Za doći do sučelja „Postavke servera“ potrebno je na glavnom izborniku kliknuti na tipku

„Configure server“.

Slika 3.2. Graf navigacije prijavljenih korisnika

Page 27: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

23

3.2 Prijava (Login)

Sučelje za prijavu (Slika 3.3) sluţi za prijavu registriranih administratora radi upotrebe

aplikacije. Na tom sučelju se takoĎer nalaze standardne mogućnosti sučelja za prijavu.

Sučelje za prijavu sastoji se od:

1) Polja za unos email adrese

2) Polja za unos lozinke

3) Checkbox opcije za pamćenje prijavnih kredencija

4) Checkbox opcije za automatsku prijavu – moguće samo ako pamtimo kredencije

5) Tipke za prijavljivanje korisnika

6) Tipke za otvaranje sučelja za registraciju novih korisnika

7) Tipke za otvaranje sučelja za povratak lozinke

Slika 3.3. Sučelje za prijavu

Page 28: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

24

3.2 Registracija (Register)

Sučelje za registraciju (Slika 3.4) sluţi za registraciju novih administratora. Od korisnika

se zahtijeva unos podataka u za to predviĎena polja.

Sučelje za registraciju sastoji se od:

1) Polja za unos email adrese

2) Polja za unos lozinke

3) Polja za ponovni unos lozinke

4) Tipke za kreiranje novog korisničkog računa

Slika 3.4. Sučelje za registraciju

Page 29: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

25

3.4 Oporavak lozinke (Forgot Password)

Sučelje za oporavak lozinke (Slika 3.5) sluţi da u slučaju kad administrator zaboravi

lozinku svog korisničkog računa moţe povratiti svoju lozinku.

Sučelje za oporavak lozinke sastoji se od:

1) Polja za unos email adrese

2) Tipke za povratak lozinke

Slika 3.5. Sučelje za oporavak lozinke

Page 30: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

26

3.5 Glavni izbornik (Main menu)

Slika 3.6 prikaz je glavnog izbornika iz kojega se ima pristup svim ostalim glavnim

sučeljima i funkcionalnostima aplikacije.

Glavni izbornik sastoji se od:

1) Tipke za otvaranje sučelja za izmjenu lozinke

2) Tipke za otvaranje sučelja za postavke servera

3) Tipke za otvaranje sučelja za odjavu korisnika (Slika 3.7)

4) Opcija „Ne“

5) Opcija „Da i zaboravi me“

6) Opcija „Da“

Slika 3.7. Glavni izbornik - odjava

korisnika

Slika 3.6. Glavni izbornik

Page 31: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

27

3.6 Izmjena lozinke (Change Password)

Sučelje za promjenu zaporke (Slika 3.8) sluţi za promjenu trenutne zaporke

administratora.

Sučelje za izmjenu lozinke sastoji se od:

1) Polja za unos trenutne zaporke

2) Polja za unos nove zaporke

3) Polja za ponovni unos nove zaporke

4) Tipka za izmjenu trenutne zaporke

Slika 3.8. Sučelje za Izmjenu lozinke

Page 32: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

28

3.7 Postavke servera (Server Settings)

Sučelje za postavke servera (Slika 3.9) sluţi za pregled i izmjene trenutnih postavki servera.

Sučelje za izmjenu lozinke sadrţi:

1) Polje za unos URL adrese od kuda se moţe preuzeti klijentsku aplikaciju

2) Polje za unos vrijednosti za postavke vremena za sate

3) Polje za unos vrijednosti za postavke vremena za minute

4) Polje za unos vrijednosti za postavke udaljenosti u metrima

5) Tipka koja vraća sve vrijednosti polja prije promjena

6) Tipka za slanje vrijednosti na server

Slika 3.9. Sučelje za Postavke servera

Page 33: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

29

4. POZADINSKI PROCESI

Klijentska aplikacija ima samo jedan pozadinski proces – servis za slanje vlastite lokacije na

server.

Servis je aktivan samo dok je aplikacija upaljena, gašenjem aplikacije gasi se i servis.

Za slanje vlastite lokacije na server servis zahtijeva:

1) Email adresu korisnika

2) Dozvolu za slanje vlastite lokacije na server

3) Pristup internetu

Servis dobiva email adresu korisnika pri prijavi korisnika u aplikaciju tako da nije moguće

slati lokaciju drugog korisnika.

Dozvolu za slanje lokacije na server servis dobiva ovisno o postavkama aplikacije. Ukoliko

korisnik to ţeli, moguće je da servis nema dozvolu za slanje te se automatski gasi.

Pristup internetu moţe biti putem beţičnog interneta (Wi-Fi) ili putem mobilnog interneta

(uslugu pruţa teleoperater).

Učestalost slanja lokacije na server, ako je dopušteno, ovisi o postavkama aplikacije.

Lokacija se moţe slati u intervalima od jedne minute do 15 minuta i to svake pune minute.

Page 34: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

30

5. MATEMATIČKE FORMULE

Klijentska aplikacija koristi Haversinovu formulu (5.1) za računanje zračne udaljenosti na

sferoidnom objektu izmeĎu dvije lokacije.

Pošto naš planet nije savršeni sferoid, formula ima male pogreške u rezultatu za zračne

udaljenosti. Veličina pogreške ovisi o poloţajima izmeĎu kojih ţelimo saznati udaljenost.

Pogreška će biti veća što smo bliţe ekvatoru i što su točke udaljenije jedna od druge. Kod

ekvatora pogreška iznosi do 0.55%, dok je u prosječnom slučaju ispod 0.3% [2].

Za primjenu ove aplikacije ta razina greške je zanemarivo mala.

(√ (

) ( ) ( ) (

)) (5.1)

Gdje su:

( )

( )

( )

Page 35: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

31

6. NOVE FUNKCIONALNOSTI

Ovo poglavlje pokriva nove funkcionalnosti dodane klijentskoj aplikaciji – reverzno

geokodiranje i povijest kretanja.

6.1 Reverzno geokodiranje

Reverzno geokodiranje je proces reverznog mapiranja geografske lokacije tj. iz poznate

zemljopisne širine i duţine se odreĎuje adresa lokacije, što omogućuje idetifikaciju lokacije

na graĎanima razumljiv način.

Ova funkcionalnost je prisutna u 2 sučelja klijentske aplikacije – „Map“ i „History map“.

Za saznavanje adrese aplikacija se sluţi Google Maps Geocoding API-em [3], na način da

se pošalje geografska lokacija za koju ţelimo saznati adresu na za to predviĎenu klasu

„Geocoder“. Povratna informacija od API-a sadrţi podatke o lokaciji različitih razina

preciznosti – od imena ulice do imena drţave.

Implementacijom ove funkcionalnosti omogućeno je očitavanje adresa lokacija ostalih

korisnika na praktičan način.

6.2 Povijest kretanja

Ova funkcionalnost daje mogućnost pohrane korisnikovih lokacija na server što će

odobrene osobe potom moći vidjeti u aplikaciji ukoliko je korisnik dopustio uvid u povijest

svoga kretanja.

Zbog zaštite privatnosti korisnika aplikacije, njihove točke kretanja se u sustavu zadrţavaju

samo 24 sata nakon čega se točke kretanja brišu.

Učestalost biljeţenja točki kretanja ovisi o postavkama servera, o kojima odlučuje

administrator. Postupak zapisivanja točki kretanja detaljno je opisan u poglavlju 7.2 zbog

potrebe poznavanja strukture baze podataka na serveru i korištenih PHP skripti.

Uvid u povijesti kretanja moguć je u sučelju „History map“ no samo za prijatelje korisnika

koji su dopustili uvid u njihovo kretanje.

Aplikacija u sučelju Povijest (Slika 2.9) od servera preuzima podatke o povijesti kretanja

korisnika i svih njegovih prijatelja (ako su dopustili uvid). Korisnik potom moţe odabrati

proizvoljan broj osoba čiju povijest kretanja ţeli vidjeti na mapi.

Page 36: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

32

Odabrane osobe prikazane su na sučelju Mapa povijesti (Slika 2.10) kao markeri na mapi.

Markeri svake osobe kronološki su povezani linijama jedinstvene boje u slučaju da je

odabrano do 20 osoba, a ako je odabrano više od 20 osoba, boje linija poveznica se mogu

ponavljati.

6.3 Ostale funkcionalnosti

U aplikaciju je dodana mogućnost odabira teme (svijetla ili tamna), mogućnost

zaključavanja orijentacije te mogućnost postavljanja podesivog vremenskog filtra na prikaz

prijatelja na mapi. To se podešava u sučelju Postavke (Slika 2.21).

Kod vremenskog filtra moţe se postaviti odabrana starost podataka u danima, satima i

minutama. U slučaju da je zadnja lokacija prijatelja starija od postavki vremenskog filtra,

prijatelj neće biti prikazan na mapi.

Dodana je i mogućnost brisanja korisničkog računa u slučaju da korisnik više ne ţeli

koristiti aplikaciju te će tom opcijom izbrisati svoje podatke sa servera.

Izmijenjena je metoda hvatanja lokacije korisnika. U prijašnjoj verziji se koristila android

klasa LocationManager [4], dok je sada u upotrebi FusedLocationProvider [5]. Izmjena je

implementirana iz razloga što je FusedLocationProvider efikasniji te funkcionira na razini

ureĎaja, odnosno, moţe hvatati sve zahtjeve za lokacijom na mobilnom ureĎaju, a ne

isključivo od ove aplikacije. Time se postiţe manja potrošnja baterije i češće i točnije

lociranje korisnika.

Razvijena je i zasebna administratorska aplikacija koja omogućuje izmjenu postavki

servera u vezi učestalosti zapisivanja povijesti kretanja korisnika. Učestalost se moţe podesiti

u satima i minutama.

Page 37: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

33

7. OPIS RADA SERVERA

Da bi aplikacija mogla pruţiti sve svoje funkcionalnosti korisniku, mora se učestalo spajati na

server i razmjenjivati podatke sa njim. Na serveru se nalazi MySQL baza podataka [6] i PHP

skripte [7] koje vrše komunikaciju izmeĎu aplikacije i baze.

7.1 Baza podataka

Baza podataka se sastoji od 4 tablice: users, history, settings i admin.

7.1.1 Users

U tablici users (Tablica 7.1) se nalaze svi podatci o korisnicima – email, lozinka, telefonski

broj, ime za prikaz, zadnja lokacija, vrijeme zadnje lokacije, ţeli li korisnik biti skriven ili ne,

ţeli li korisnik sakriti svoju povijest kretanja te popis prijatelja i zahtjeva za prijateljstvo.

Tablica 7.1. Tablica users

Ime polja Vrsta vrijable Opis

id INT(11) Primarni ključ tablice

username VARCHAR(25) Email adresa korisnika

password VARCHAR(128) Kriptirana lozinka korisnika

display_name VARCHAR(45) Ime za prikaz

latitude FLOAT(10,6) Poloţaj na geografskoj širini

longitude FLOAT(10,6) Poloţaj na geografskoj duţini

hide_me TINYINT(1) Ţeli li korisnik biti skriven prijateljima na karti

hide_history TINYINT(1) Ţeli li korisnik sakriti svoju povijest kretanja

last_update VARCHAR(45) Vrijeme i datum kada je zadnji put poslana lokacija

number VARCHAR(20) Broj telefona

friends_accepted TEXT Popis svih prihvaćenih prijatelja

friends_pending TEXT Popis svih trenutnih zahtjeva za prijateljstvo

Page 38: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

34

7.1.2 History

U tablici history (Tablica 7.2) nalaze se podatci o kretanju korisnika – email, lokacija i

vrijeme.

Tablica 7.2. Tablica history

Ime polja Vrsta vrijable Opis

id INT(11) Primarni ključ tablice

username VARCHAR(25) Email adresa korisnika

latitude FLOAT(10,6) Poloţaj na geografskoj širini

longitude FLOAT(10,6) Poloţaj na geografskoj duţini

time VARCHAR(45) Vrijeme i datum kada je poslana lokacija

server_time TIMESTAMP Vrijeme i datum servera kada je poslana lokacija

Nad tablicom history se svakih sat vremena izvršava MySQL upit koji briše sve unose starije od 24

sata.

7.1.3 Settings

U tablici settings (Tablica 7.3) nalaze se podatci za pozadinsko dinamično funkcioniranje

servera – URL adresa gdje se moţe naći aplikacija, vremenske postavke za history te

udaljenost za history.

Tablica 7.3. Tablica settings

Ime polja Vrsta vrijable Opis

id INT(11) Primarni ključ tablice

gps_link VARCHAR(2000) URL lokacija aplikacije

time_hour VARCHAR(2) Vrijeme – sati

time_minute VARCHAR(2) Vrijeme – minute

distance VARCHAR(10) Udaljenost – metri

Vrijednost u polju gps_link koristi se pri slanju pozivnica.

Vrijednosti u poljima time_hour, time_minute i distance potrebne su za zapisivanje u

tablicu history. Točan postupak je opisan u poglavlju 7.2 PHP skripte.

Page 39: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

35

7.1.4 Admin

U tablici admin (Tablica 7.4) nalaze se kredencije za prijavu administartora, te sadrţi samo

email i lozinku.

Tablica 7.4. Tablica admin

Ime polja Vrsta vrijable Opis

id INT(11) Primarni ključ tablice

username VARCHAR(25) Email adresa administratora

password VARCHAR(128) Kriptirana lozinka administratora

7.2 PHP skripte

PHP skripte (Tablica 7.5) su zaduţene za primanje upita od aplikacije, vršenje tih upita na

bazi te vraćanje odgovora aplikaciji.

Imena svih skripti vrlo jasno označuju za kakav upit je koja skripta zasluţna.

Tablica 7.5. PHP skripte an serveru

Ime skripte Služi za

admin_change_password Zamjenu trenutne lozinke administratora

admin_login Akreditacija administratora

admin_read_settings Dohvaćanje postavki servera

admin_recover_account Zaboravljena lozinka, postavlja novu generiranu lozinku i

obavještava o tome administratora

admin_register Registracija novog administratora

admin_update_settings Zapisivanje postavki servera

change_passowd Zamjenu trenutne lozinke

config.inc Sadrţi podatke za povezivanje sa bazom, ostale skripte

ovise o njoj

delete_account Brisanje korisnika

friend_accept Prihvaćanje zahtjeva za prijateljstvom

friend_deny Odbijanje zahtjeva za prijateljstvom

friend_lookup Pretraţivanje baze za korisnicima

friend_remove Prekidanje prijateljstva sa korisnikom

Page 40: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

36

friend_request Podnošenje zahtjeva za prijateljstvom

invite_friend Slanje pozivnice

login Akreditacija korisnika

mailSend Slanje emaila korisnicima po potrebi

read_all_friends_history Dohvaćanje podataka o povijesti kretanja

read_all_friends_accepted Dohvaćanje podataka o prihvaćenim prijateljima

read_all_friends_pending Dohvaćanje podataka o zahtjevima za prijateljstvo

read_my_profile Dohvaćanje podataka o korisniku

recover_account Zaboravljena lozinka, postavlja novu generiranu lozinku i

obavještava o tome korisnika

register Registracija novog korisnika

update_location Slanje lokacije na server

update_profile Izmjena podataka o korisniku

Kada korisnik pošalje svoju lokaciju da osvjeţi lokaciju u tablici users (update_location),

vrši se provjera za zapisivanje (Slika 7.1) u tablicu history koja izgleda ovako:

a) Server dohvaća vrijednosti time_hour, time_minute i distance iz tablice settings

b) Server potom pretraţuje tablicu history za zapise koji ispunjavaju iduće uvjete:

samo zapisi za korisnika koji osvjeţava lokaciju, koji su zapisani unazad time_hour

i time_minute vremena te se sortiraju tako da najnoviji zapis bude na prvom mjestu

Slika 7.1. Graf zapisivanja u tablicu history

Page 41: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

37

c) U slučaju da nema zapisa u zadnjih time_hour i time_minute vremena, dodaje se

novi zapis u history te skripta završava

d) U slučaju da postoji zapis u zadnjih time_hour i time_minute vremena, računa se

udaljenost izmeĎu lokacije iz najnovijeg zapisa i trenutne lokacije korisnika

e) U slučaju da je izračunata udaljenost veća ili jednaka vrijednosti distance, dodaje se

novi zapis u history te skripta završava

f) U slučaju da je izračunata udaljenost manja od vrijednosti distance, skripta se

završava bez dodavanja novog zapisa

Page 42: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

38

8. LOKALNA BAZA PODATAKA (NA MOBILNOM UREĐAJU)

Klijentska aplikacija koristi lokalnu bazu podataka za pamćenje kredencija (ako korisnik ţeli)

(Tablica 8.1), za spremanje postavki aplikacije (Tablica 8.2), za pohranu prihvaćenih prijatelja

i podataka o njima (Tablica 8.3) te za pohranu povijesti kretanja prijatelja (Tablica 8.4).

Administratorska aplikacija koristi lokalnu bazu podataka samo za pamćenje kredencija

(ako korisnik ţeli).

Budući da je aplikacija namijenjena za korištenje na mobitelu, nije predviĎeno da isti

ureĎaj koristi više osoba. To se odraţava u strukturi baze podataka i funkcijama koje se nad

njom vrše.

8.1 Pamćenje kredencija

Tablica 8.1. Izgled tablice "login"

Ime polja Služi za

_id Primarni ključ tablice

username Email adresa korisnika

password Lozinka korisnika

login Automatski pokušaj prijave pri pokretanju aplikacije

Aplikacije pamte samo jednog korisnika, tako da ako u bazi već postoji unos za korisnika,

taj unos se zamijeni novim unosem.

Klijnetska i administartorska aplikacija koriste identičnu tablicu za kredenciju.

Page 43: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

39

8.2 Spremanje postavki

Tablica 8.2. Izgled tablice "settings"

Ime polja Služi za

_id Primarni ključ tablice

default_max_radius Maksimalna veličina radius kruga

default_radius Defaultna veličina radius kruga

default_refresh Učestalost dohvaćanja podataka o prijateljima

default_update Učestalost slanja vlastite lokacije

default_realtime Stanje opcije „realtime“

default_gps_check Provjera ureĎaja za GPS postavkama

default_dropdown Prikaz padajućeg izbornika

last_db_update Vrijeme i datum zadnjeg dohvaćanja podataka o prijateljima

default_orientation Orijentacija aplikacije

default_theme Tamni ili svijetli izgled aplikacije

default_filter Stanje opcije „filter“

default_filter_day Vrijeme u danima za filter

default_filter_hour Vrijeme u satima za filter

default_minute Vrijeme u minutama za filter

default_startup Dopušten rad servisa u pozadini

default_wifi Komunikacija sa serverom samo putem WiFi konekcije

default_alive Drţanje ekrana upaljenim tijekom prikaza mape

Aplikacija pamti samo jedne postavke, tako da u slučaju da više korisnika dijeli isti ureĎaj,

svi će imati iste postavke.

8.3 Pohrana prihvaćenih prijatelja

Tablica 8.3. Izgled tablice "friends"

Ime polja Opis

_id Primarni ključ tablice

username Email adresa prijatelja

display_name Ime za prikaz prijatelja

Page 44: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

40

latitude Poloţaj prijatelja na geografskoj širini

longitude Poloţaj prijatelja na geografskoj duţini

hide_me Ţeli li prijatelj biti skriven na karti

last_update Vrijeme i datum kada je zadnji put poslana lokacija

number Broj telefona prijatelja

Pri svakom dohvaćanju podataka o prihvaćenim prijateljima, svi unosi u tablici „friends“ se brišu,

zatim se zapisuju novi podatci. Time je postignuto da je tablica uvijek aktualna u trenutku

osvjeţavanja podataka.

8.4 Pohrana povijesti kretanja prijatelja

Tablica 8.4. Izgled tablice "history"

Ime polja Opis

_id Primarni ključ tablice

username Email adresa prijatelja

display_name Ime za prikaz prijatelja

latitude Poloţaj prijatelja na geografskoj širini

longitude Poloţaj prijatelja na geografskoj duţini

hide_me Ţeli li prijatelj biti skriven na karti

time Vrijeme i datum kada je poslana lokacija

number Broj telefona prijatelja

Pri svakom dohvaćanju podataka o povijesti kretanja prijateljima, svi unosi u tablici

„history“ se brišu, zatim se zapisuju novi podatci. Time je postignuto da je tablica uvijek

aktualna u trenutku osvjeţavanja podataka.

Page 45: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

41

9. SAŽETAK

Zadatak ovog diplomskog rada je bila nadogradnja aplikacije MapMe by Circle, svrha koje je

geolociranje prijatelja u stvarnom vremenu i u od korisnika zadanom radijusu.

Da bi aplikacija funkcionirala, potreban je server sa podatcima o svim korisnicima, na koji

se šalju vlastiti podatci i primaju podatci o prijateljima.

Na serveru je potrebno imati bazu podataka i način za komuniciranje sa njom te direktorij

za smještaj PHP skipti koje posreduju izmeĎu mobilne aplikacije i baze podataka na serveru.

Kodiranje aplikacije započelo je upoznavanjem sa Google Maps objektom pošto je to

centralni dio aplikacije. Potom je slijedilo implementiranje raznih funkcionalnosti -

dizajniranja sučelja i osnovnih usluga, ostvarivanje komunikacije sa serverom te lokalno

spremanje podataka.

Izradom aplikacije, ostvarene su sljedeće ključne funkcionalnosti:

Slanje vlastite lokacije na server

Preuzimanje lokacija prijatelja sa servera

Prikaz lokacija prijatelja na mapi

Filtriranje prikaza po području interesa

Filtriranje prikaza po vremenskom periodu

Prikaz povijesti kretanja korisnika i prijatelja na mapi

Upravljanje dopuštenjima prikaza vlastite lokacije i povijesti kretanja

Pogodnosti koje nudi aplikacija jesu:

Prikaz samo prijatelja koji se nalaze unutar ţeljenog radijusa

Mogućnost pokretanja apliakcija za slanje SMS-a ili glasovnog poziva

Mogućnost pokretanja aplikacije za izradu rute do ţeljenog prijatelja

Periodično aţuriranje lokacije korisnika i prijatelja

Ispis stvarne adrese prijatelja

Kronološki prikaz povijesti kretanja prijatelja

Mogućnost izmjene periodičnosti, udaljenosti, filtriranja

Za Google Maps objekt korištena je sluţbena dokumentacija na web stranicama Google-a

[8].

Za slanje emaila korisniku pri registraciji, izmjeni lozinke i povratku zaboravljene lozinke

korištena je PHPMailer knjiţnica [9].

Page 46: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

42

Tijekom kodiranja same aplikacije vrlo korisnim se prikazala i web stranica Stack

Overflow [10].

Page 47: SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET · 2016. 6. 5. · 2 2. OPIS SUČELJA KLIJENTA Ovo poglavlje sadrţi opis sučelja klijenta, odnosno gdje se što nalazi te čemu što sluţi

43

10. LITERATURA

[1] Joler Apps: „MapMe by Circle“, s Interneta,

https://play.google.com/store/apps/details?id=com.mapstest.mapmec, 12. oţujka 2015.

[2] Veness, C.: „Calculate distance, bearing and more between Latitude/Longitude points“, s Interneta,

http://www.movable-type.co.uk/scripts/latlong.html#ellipsoid, 05. oţujka 2016.

[3] Google: „Google Maps Geocoding API“, s Interneta,

https://developers.google.com/maps/documentation/geocoding/intro, 08. oţujka 2016.

[4] Google: „LocationManager“, s Interneta,

http://developer.android.com/reference/android/location/LocationManager.html, 12. oţujka

2016.

[5] Google: „FusedLocationProviderApi“, s Interneta,

https://developers.google.com/android/reference/com/google/android/gms/location/FusedLoc

ationProviderApi, 12. oţujka 2016.

[6] Oracle Corporation, „MySQL“, s Interneta, https://www.mysql.com/, 08. oţujka 2016.

[7] Zend Technologies, „PHP“, s Interneta, http://php.net/, 08. oţujka 2016.

[8] Google: „Google Maps Android API“, s Interneta,

https://developers.google.com/maps/documentation/android/, 05. Oţujka 2016.

[9] Worx International Inc.: „PHPMailer“, s Interneta, http://phpmailer.worxware.com/index.php, 01.

prosinca 2015.

[10] Stack Overflow. s Interneta, http://stackoverflow.com/questions/tagged/android, 05. oţujka 2016.