rezervacija za operacijski sustav android · firebase realtime database – usluga koja sadrži...

40
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 6191 APLIKACIJA ZA ZAPRIMANJE NARUDŽBI I REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID David Buntak Zagreb, lipanj 2019.

Upload: others

Post on 20-Jun-2020

36 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 6191

APLIKACIJA ZA ZAPRIMANJE NARUDŽBI I

REZERVACIJA ZA OPERACIJSKI SUSTAV

ANDROID

David Buntak

Zagreb, lipanj 2019.

Page 2: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata
Page 3: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata
Page 4: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

Sadržaj

1. Uvod ................................................................................................................... 1

2. Korištene tehnologije .......................................................................................... 2

2.1. Android ........................................................................................................ 2

2.2. Firebase ....................................................................................................... 2

2.3. Android Studio IDE ...................................................................................... 4

2.4. Elementi Android aplikacije .......................................................................... 4

3. Korisnički pogled ................................................................................................ 7

3.1. Dijagrami ...................................................................................................... 7

3.1.1. Dijagrami obrazaca uporabe ................................................................. 8

3.1.2. Sekvencijski dijagrami ........................................................................... 9

3.2. Autentifikacija ............................................................................................. 11

3.3. Zasloni narudžbe ....................................................................................... 13

3.3.1. Odabir kategorije ................................................................................. 13

3.3.2. Odabir proizvoda ................................................................................. 14

3.3.3. Potvrda narudžbe ................................................................................ 14

3.3.4. Pregled narudžbi ................................................................................. 15

3.4. Zasloni rezervacije ..................................................................................... 17

3.4.1. Kreiranje rezervacije ............................................................................ 17

3.4.2. Pregled rezervacija .............................................................................. 19

4. Implementacijski detalji..................................................................................... 21

4.1. Izvedba funkcionalnosti narudžbe .............................................................. 21

4.1.1. Odabir kategorije ................................................................................. 22

4.1.2. Odabir proizvoda ................................................................................. 22

4.1.3. Potvrda narudžbe ................................................................................ 23

4.1.4. Pregled narudžbi ................................................................................. 25

4.2. Izvedba funkcionalnosti rezervacije ........................................................... 26

4.2.1. Kreiranje rezervacije ............................................................................ 26

4.2.2. Pregled rezervacija .............................................................................. 28

4.3. Baza podataka ........................................................................................... 28

4.3.1. Autentifikacija ...................................................................................... 28

4.3.2. Struktura baze podataka ..................................................................... 30

5. Zaključak .......................................................................................................... 34

6. Literatura .......................................................................................................... 35

Page 5: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

1

1. Uvod

Svi smo svjedoci sve ubrzanijeg načina života. Iz tog razloga često nemamo

vremena za čekanje na neku uslugu, nego ju želimo moći dobiti kada i kako nama

odgovara. Zbog toga nam možda u nekoj situaciji neće odgovarati rezervacija neke

usluge osobno, a mi nemamo vremena za otići do objekta, ili telefonski, a linija je

zauzeta ili se nitko ne javlja. Također, vjerojatno se većina osoba našla u situaciji

da ih u uslužnom objektu (npr. restoran ili kafić) osoblje ne dolazi uslužiti dinamikom

kojom bi oni htjeli. U nekim drugim objektima, kao što su lanci brze prehrane,

konobari koji bi uzimali narudžbe i nosili hranu ne odgovaraju poslovnoj politici tih

objekata zbog smanjivanja troškova koji omogućavaju niže cijene u odnosu na

restorane s punom uslugom. Oni su jednim dijelom tom problemu doskočili na način

da su postavili uređaje s ekranima na dodir putem kojih se mogu obaviti narudžbe.

Ovaj rad će, inspiriran navedenim, biti orijentiran na stvaranje aplikacije za uređaje

pokretane operacijskim sustavom Android koja će svojim korisnicima omogućiti

praktičniji način za kreiranje narudžbi i rezervacija u ugostiteljskim objektima, a

osoblju zaprimanje istih. Nakon uvoda i upoznavanja s ključnim tehnologijama koje

su korištene za razvoj aplikacije biti će predstavljen postupak stvaranja svake od

dostupnih funkcionalnosti. Pregled će sadržavati informacije o grafičkom sučelju,

poslovnoj logici te interakciji s bazom podataka.

U svrhu toga korišteni su IDE Android Studio za razvoj aplikacije u programskom

jeziku Java, te Firebase baza podataka za pohranu podataka. Detaljniji opis

navedenih tehnologija slijedi u idućem poglavlju.

Page 6: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

2

2. Korištene tehnologije

U ovom poglavlju biti će predstavljene tehnologije korištene u ovom projektu. Te

tehnologije su Android, Firebase i Android Studio. Također će biti riječi i o općenitoj

strukturi Android aplikacija.

2.1. Android

Android je mobilni operacijski sustav razvijen od strane Googlea. Zasnovan je na

modificiranoj verziji Linux jezgre i drugim open source programima i dizajniran je

primarno za uređaje s ekranima osjetljivim na dodir kao što su pametni telefoni i

tableti.[1] Kroz godine je Android imao mnogo verzija, a trenutna je Android 9 „Pie“.

Android je najbolje prodavani operacijski sustav za pametne telefone od 2011., a na

tabletima od 2013. godine.[1] U svibnju 2017. je imao preko 2 milijarde korisnika,

najviše od svih operativnih sustava, a u prosincu 2018. je Google Play trgovina

imala preko 2.6 milijuna aplikacija.[1]

Aplikacije su pisane koristeći Androidov alat za razvoj programske potpore (engl.

Software development kid, SDK) i često programski jezik Java. Java se može

kombinirati s C-om i C++-om, a podržani su i jezik Go, te od 2017. i Kotlin.[1]

SDK uključuje mnogo razvojnih alata kao što su debugger, programske biblioteke,

emulator baziran na QEMU, dokumentaciju, primjere koda i tutoriale.[1]

Android ima rastući izbor aplikacija trećih strana kojima korisnici mogu pristupiti

skidanjem i instaliravanjem njihovih Android aplikacijskih paketa (engl. Android

application package, APK) ili skidanjem putem trgovine aplikacija, a najčešće se

koristi Google Play Store.

2.2. Firebase

Firebase je razvojna platforma za mobilne aplikacije i web-stranice koju je razvila

tvrtka Firebase Inc. 2011. godine, a preuzeo Google 2014. godine. U listopadu

2018. godine platforma je imala 18 proizvoda koje je koristilo više od 1.5 milijuna

aplikacija. Prvi proizvod je bio baza podataka u stvarnom vremenu (engl. Realtime-

Page 7: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

3

database), aplikacijsko programsko sučelje (engl. Application programming

interface, API) koje usklađuje podatke aplikacije na iOS, Android i Web uređajima i

pohranjuje ih na Firebaseov oblak. Proizvod pomaže razvojnim inženjerima u

kreiranju aplikacija prilagodljivih u stvarnom vremenu.[3]

Neki od značajnijih Firebase proizvoda su :

Firebase Analytics – Besplatan alat koji omogućava uvid u korištenje

aplikacije i korisničke aktivnosti.

Firebase Cloud Messaging – Višeplatformsko rješenje za slanje poruka i

obavijesti za Android, iOS i web-aplikacije, koje se od 2016. može koristiti

besplatno.

Firebase Auth – Usluga za autentifikaciju korisnika koristeći samo kod na

klijentskoj strani. Omogućava prijavu putem Facebooka, GitHuba, Twittera i

Googla. Također, moguća je i autentifikacija pomoću emaila i lozinke koji se

spremaju na Firebaseu.

Firebase Realtime Database – Usluga koja sadrži bazu podataka u

stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih

klijenata aplikacije i pohranu na Firebase oblaku. Dostupne su klijentske

biblioteke koje omogućavaju integraciju s Android, iOS, JavaScript, Java,

Objective-C, Swift i Node.js aplikacijama. Bazi podataka se također može

pristupiti preko API-a reprezentativnog prijenosa stanja (engl.

Representational state transfer, REST) i ima podršku za nekoliko JavaScript

radnih okvira (AngularJS, React, Ember.js i Backbone.js).

Firebase Cloud Firestore – Naslijednik Realtime Databasea koji

omogućava gniježđenje dokumenata i polja za razliku od stablaste strukture

kod Realtime Databasea.

Firebase Storage – Usluga sigurnog učitavanja i skidanja datoteka za

Firebase aplikacije uz potporu Google Cloud Storagea.

Firebase Hosting – Statička i dinamička usluga poslužitelja koja podržava

statičke datoteke kao što su kaskadni stilski listovi (engl. Cascade Style

Sheets, CSS) , prezentacijski jezik za izradu web stranica (engl. HyperText

Markup Language, HTML) , JavaScript, isto kao i podrška kroz funkcije u

oblaku (engl. Cloud Functions). Usluga isporučuje datoteke preko mreže

dostave sadržaja (engl. Content delivery network, CDN), kroz sigurni

Page 8: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

4

hipertekst prijenosni protokol (engl. Hiper Text Transfer Protocol, HTTP) i

enkripciju sigurnog sloja priključnice (engl. Secure Sockets Layer, SSL).

ML Kit – Mobilni sustav strojnog učenja s mogućnostima kao što su

prepoznavanje teksta, detekcija lica, skeniranje barkodova, označavanja

slika i prepoznavanja znamenitosti. Dostupan je za iOS i Android, a može se

koristiti na uređaju ili na oblaku.

Crashlytics – Alat za kreiranje detaljnih izvještaja o pogreškama u aplikaciji.

Pogreške se grupiraju u grupe po sličnosti tragova stoga (engl. Stack trace)

i utjecaja na korisnika. Razvojni inženjer ima mogućnost zapisa proizvoljnih

događaja koji pomažu u otkrivanju događaja koji su doveli do pada aplikacije.

Performance – Pruža uvid u performanse aplikacije i kašnjenje (latenciju)

kod korisnika.

Firebase Test Lab for Android And iOS – Pruža infrastrukturu za testiranje

Android i iOS aplikacija baziranu na oblaku. Omogućava iniciranje testova

aplikacije na raznim uređajima. Rezultati su dostupni u projektu u Firebase

konzoli u obliku logova, videa i snimki zaslona.[3]

2.3. Android Studio IDE

Android Studio je službena integrirana razvojna okolina za Android, razvijena je na

JetBrainsovom Intelij IDEA programu i dizajnirana isključivo za razvoj u Androidu.

Moguće ga je skinuti za operacijske sustave Windows, macOS i Linux. Zamjena je

za Eclipse Android razvojne alate (engl. Android Development Tools, ADT) kao

primarni IDE za razvoj nativnih Android aplikacija.

Android Studio je predstavljen 2013. godine, prva stabilna verzija izlazi krajem 2014.

godine. [2]

2.4. Elementi Android aplikacije

Android aplikacije mogu se pisati koristeći programske jezike Kotlin, Javu i C++.

Android SDK-ovi alati prevode kod uključujući sve podatke i resurse koji se nalaze

unutar Android paketa, koji je arhivska datoteka sa sufiksom .apk. Jedna APK

datoteka sadrži sav sadržaj Android aplikacije i Android uređaji ju koriste za

instaliravanje aplikacije.

Page 9: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

5

Komponente aplikacije

Komponente aplikacije ključni su gradivni elementi svake aplikacije. Svaka

komponenta ulazna je točka kroz koju sustav ili korisnik mogu pristupiti aplikaciji.

Komponente mogu biti međuovisne.

Postoje četiri različita tipa komponenti:

Aktivnosti (engl. Activity)

Usluge (engl. Service)

Primatelji prijenosa (engl. Broadcast Receiver)

Pružatelji sadržaja (engl. Content Provider)

Svaki tip služi različitoj svrsi i ima različit životni ciklus koji određuje načine stvaranja

i uništavanja komponenti.[4]

Aktivnosti

Aktivnost je ulazna točka za interakciju s korisnicima. Predstavlja jedan zaslon s

korisničkim sučeljem. Iako rade zajedno da bi pružile povezano korisničko iskustvo,

one su zapravo neovisne jedna o drugoj. Aktivnost olakšava slijedeće ključne

interakcije između sustava i aplikacije:

Praćenje trenutnih akcija korisnika kako bi se osiguralo izvođenje procesa

koji su zaduženi za trenutnu aktivnost

Održavanje u pozadini procesa s podacima kojima bi se korisnik mogao

vratiti

Upravljanje uništavanjem procesa kako bi se korisnik mogao vratiti na

aktivnost sa sačuvanim prethodnim stanjem

Pružanje načina na koji aplikacije mogu implementirati korisničko

prebacivanje među njima.

Aktivnosti se implementiraju kao podklase klase Activity.[4]

Page 10: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

6

Usluge

Usluga je općenito korištena ulazna točka za održavanje izvršavanja aplikacije u

pozadini zbog raznih razloga. To je komponenta koja je pokrenuta u pozadini kako

bi izvršila dugotrajne operacije ili obavila posao za udaljene procese. Ne pruža

korisničko sučelje. Na primjer, može se koristiti za puštanje glazbe i kad korisnik

napusti samu aplikaciju. Postoje dvije vrste usluga u pozadini i različite su u tome

kako sustav njima upravlja:

Glazba u pozadini je nešto čega je korisnik izravno svjestan pa aplikacija to

govori susavu zahtjevom da bude u prvom planu te notifikacijom koja o njoj

obavještava korisnika. Kod ove vrste usluga se sustav trudi održati njihovu

funkcionalnost jer bi prekid imao izravan utjecaj na korisnika.

Regularna pozadinska usluga je nešto čega korisnik nije direktno svjestan,

pa sustav ima više slobode u upravljanju njome. Može biti uništena (i

pokrenuta kasnije) ukoliko sustavu treba memorije s nasumičnim pristupom

(engl. Random Access Memory, RAM) za neke trenutne korisničke zahtjeve.

Povezane usluge su usluge pokrenute zato što ih koristi neka druga aplikacija (ili

sustav). Usluga se implementira kao podklasa klase Service.[4]

Primatelji prijenosa

Primatelj prijenosa je komponenta koja omogućava sustavu dostavu događaja

aplikaciji izvan uobičajnog korisničkog toka, omogućavajući aplikaciji da odgovori

na objave prijenosa na razini sustava. Zbog toga što je primatelj prijenosa dobro

definiran ulaz u aplikaciju, sustav može dostaviti prijenos i do aplikacija koje trenutno

nisu pokrenute. Na primjer, aplikacija može zakazati alarm koji će prikazati obavijest

koja korisniku govori o nadolazećem događaju. Dostavljanjem tog alarma primatelju

prijenosa (engl. BroadcastReceiver) aplikacije nema potrebe da aplikacija nastavi

raditi do okidanja alarma. Aplikacije također mogu inicirati prijenos, na primjer kada

žele obavijestiti druge aplikacije da su neki podaci skinuti na uređaj i dostupni za

upotrebu. Primatelj prijenosa je implementiran kao podklasa od klase

BroadcastReceiver.[4]

Page 11: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

7

Pružatelj sadržaja

Pružatelj sadržaja upravlja dijeljenim skupom aplikacijskih podataka koji mogu biti

pohranjeni u datotečnom sustavu, u bazi podataka SQLite, na Internetu ili bilo kojoj

drugoj trajnoj lokaciji za pohranu kojoj aplikacija može pristupiti. Kroz pružatelja

sadržaja druge aplikacije mogu dohvaćati ili mijenjati podatke ukoliko imaju dozvolu.

Sustavu je pružatelj sadržaja ulazna točka u aplikaciju za objavljivanje imenovanih

stavki podataka, identificiranih pomoću sheme jedinstvenih identifikatora resursa

(engl. Uniform Resource Identifier, URI).

Također su vrlo korisni za čitanje i pisanje podataka koji su privatni. Implementiran

je kao podklasa od klase ContentProvider i mora implementirati standardni skup

API-a koji omogućava drugim aplikacijama izvođenje transakcija.[4]

Namjere

Namjera se kreira pomoću objekta namjere koji definira poruke za aktivaciju, ili

specifične komponente (eksplicitna namjera), ili specifičnog tipa komponente

(implicitna namjera). Za aktivnosti i usluge namjera definira akcije koje se trebaju

izvesti i može specificirati URI podataka nad kojima će se akcija obaviti uključujući

ostale stvari koje bi komponenta trebala znati. Za primatelje prijenosa namjera

definira objavu koja se prenosi. Pružatelji sadržaja se ne aktiviraju pomoću

namjera.[8]

3. Korisnički pogled

Ovo poglavlje sadrži pogled na razvijenu aplikaciju iz perspektive korisnika. Pritom

obuhvaća prikaze zaslona i objašnjava akcije koje se na njima mogu napraviti.

Također, sadrži prikaz sustava kroz dijagrame obrazaca uporabe te sekvencijske

dijagrame.

3.1. Dijagrami

U ovom poglavlju biti će prikazan sustav kroz dijagrame obrazaca uporabe i

sekvencijske dijagrame.

Page 12: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

8

3.1.1. Dijagrami obrazaca uporabe

U ovom podpoglavlju biti će prikazan sustav kroz dijagrame obrazaca uporabe.

Sadržavati će pogled kroz dva dijagrama, a to su dijagram za korisnika i dijagram

za konobara.

Iz korisničkog dijagrama vidljivo je da korisnik ima tri grupe akcija koje može izvršiti,

a to su prijava i odjava, narudžba i rezervacija. Da bi korisnik izvršio narudžbu mora

odabrati proizvode i pritom odabrati kategoriju proizvoda koje bira. Obvezan je i

odabir stola za koji se narudžba vrši, a potvrdom narudžbe ona se sprema u bazu

podataka Firebase koja je drugi aktor u ovom prikazu. Za rezervaciju je obvezno

odabrati termin, stol i broj osoba, a prilikom potvrde rezervacije, ako je validacija

prošla uspješno, podaci se spremaju u bazu podataka. Dijagram je prikazan na slici

1.

Slika 1. – Dijagram obrasca uporabe Korisnik

Drugi dijagram prikazuje pogled konobara na sustav. Njegov pogled se također

sastoji od tri grupe akcija, a to su prijava i odjava, pregled aktivnih narudžbi i pregled

aktivnih rezervacija. Prilikom pregleda aktivnih narudžbi konobar može pregledavati

detalje narudžbe i arhivirati ih što podrazumijeva promjenu atributa narudžbe u bazi

podataka, a ista funkcionalnost je dostupna i kod pregleda aktivnih rezervacija.

Dijagram je prikazan na slici 2.

Page 13: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

9

Slika 2. – Dijagram obrasca uporabe Konobar

3.1.2. Sekvencijski dijagrami

U ovom podpoglavlju biti će prikazani sekvencijski dijagrami za proces narudžbe i

rezervacije. Oni slijedno prikazuju akcije koje izvode korisnik ili konobar i aktivnosti

koje sustav izvršava na temelju njih.

Prvi je sekvencijski dijagram procesa narudžbe. U njemu je vidljivo da se korisnik

prvo mora prijaviti kako bi mogao izvršiti narudžbu. Nakon što korisnik odabere

kategoriju proizvoda oni se dohvaćaju iz baze podataka i prikazuju. Promjene u vidu

dodavanja i brisanja proizvoda iz narudžbe se bilježe u aplikaciji i korisniku prikazuje

što je trenutno odabrano. Nakon što je završio s odabirom proizvoda korisnik otvara

zaslon s detaljima o narudžbi. Pritom se dohvaćaju raspoloživi stolovi iz baze

podataka i pružaju na odabir, a prikazani su skupa s odabranim proizvodima. U

slučaju da narudžba nije prazna i stol je odabran ona se po potvrdi sprema u bazu

podataka i prikazuje konobaru u popisu aktivnih narudžbi. Konobar ju zatim može

pregledavati i izvršiti. Dijagram je prikazan na slici 3.

Page 14: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

10

Slika 3. – Sekvencijski dijagram Narudžba

Drugi dijagram na slici 4. prikazuje proces rezervacije stola. Korisnik za rezervaciju

treba biti prijavljen. Nakon uspješne prijave otvara zaslon za rezervaciju gdje unosi

potrebne podatke. Provjerava se da su svi podaci uneseni i da se termin rezervacije

ne preklapa s već postojećom rezervacijom. Ako to nije slučaj rezervacija se sprema

u bazu podataka i postaje vidljiva konobaru u listi rezervacija. Nakon toga postaje

dostupna konobaru za pregledavanje.

Page 15: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

11

Slika 4. – Sekvencijski dijagram Rezervacija

3.2. Autentifikacija

Da bi se moglo izvršiti narudžbu ili rezervaciju potrebno se registrirati u sustav. To

se vrši na zasebnom zaslonu za registraciju. Taj zaslon sadrži polja za unos traženih

podataka. Ti podaci su ime, prezime, adresa, telefon, te email i lozinka koji će služiti

za prijavu u sustav, a prikaz možemo vidjeti na slici 5.

Page 16: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

12

Slika 5. – Registracija

Za prijavu se koristi jednostavan zaslon na kojem se unose email i lozinka čija se

ispravnost potom provjerava u bazi podataka Firebase, a možemo ga vidjeti na slici

6.

Slika 6. – Prijava

Page 17: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

13

3.3. Zasloni narudžbe

U ovom poglavlju biti će opisana izvedba funkcionalnosti narudžbe. Kroz to će biti

obuhvaćen zaslon odabira kategorije jela s menija iz koje želimo dodati proizvod,

popisi proizvoda po kategorijama za koje imamo mogućnost dodavanja i brisanja iz

narudžbe te sam pregled narudžbe s opcijom naruči koja bilježi korisnikovu

narudžbu i prikazuje ju konobaru u njegovom sučelju.

3.3.1. Odabir kategorije

Da bi se narudžba mogla izvršiti potrebno je odabrati proizvode koje želimo naručiti.

Proizvodi su podijeljeni po kategorijama čiji zaslon za odabir je prikazan na slici 3.

Slika 7. – Odabir kategorije

Page 18: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

14

3.3.2. Odabir proizvoda

Nakon odabira kategorije potrebno je odabrati proizvode koji će biti uvršteni u

narudžbu. Odabir se vrši na zaslonu prikazanom na slici 8. na kojem su izlistani

proizvodi s njihovom slikom, nazivom i gumbima koji omogućavaju dodavanje

proizvoda u narudžbu i brisanje proizvoda iz narudžbe. Prilikom svakog dodavanja

ili brisanja proizvoda iz narudžbe pri dnu zaslona piše koliko proizvoda je odabrano

i kolika je ukupna cijena narudžbe. Klik na taj dio zaslona vodi na zaslon s detaljnim

prikazom narudžbe.

Slika 8. – Proizvodi za odabranu kategoriju

3.3.3. Potvrda narudžbe

Kako bi se narudžba spremila u bazu podataka i bila vidljiva konobaru potrebno ju

je potvrditi. To se može napraviti na zasebnom zaslonu koji prikazuje sve odabrane

proizvode, količinu odabranog proizvoda, cijene svih pojedinačnih artikala i ukupnu

Page 19: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

15

cijenu. Također treba odabrati i stol za koji se narudžba vrši. Prikaz zaslona je vidljiv

na slici 9.

Slika 9. – Zaslon za naručivanje

3.3.4. Pregled narudžbi

Za ispunjenje narudžbi potrebna je i druga strana koja će ih obraditi. Tu ulogu ima

druga vrsta korisnika u sustavu, a to su konobari. Oni imaju mogućnost pregleda

narudžbi u svom sučelju te njihovog arhiviranja po završetku.

Kada konobar ode na zaslon za pregled narudžbi tamo ga dočeka popis trenutno

aktivnih narudžbi vidljiv na slici 10.

Page 20: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

16

Slika 10. – Lista aktivnih narudžbi

Klikom na pojedinu narudžbu otvara mu se iskočni prozor u kojem su prikazani

detaljni podaci. Oni sadrže sve podatke vezane uz tu narudžbu koji su zapisani u

bazu podataka. Klikom na gumb arhiviraj konobar označava narudžbu izvršenom i

ona mu se miče iz pregleda aktivnih narudžbi. Iskočni prozor je moguće zatvoriti

klikom na njega ili područje zaslona oko njega. Prikaz iskočnog prozora možemo

vidjeti na slici 11.

Page 21: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

17

Slika 11. – Detaljan prikaz narudžbe

3.4. Zasloni rezervacije

U ovom poglavlju biti će obrađena implementacija podsustava za rezervaciju stola

u restoranu. Rezervaciju može izvršiti registrirani korisnik, a pregledavati ju može

konobar u svojem sučelju.

3.4.1. Kreiranje rezervacije

Za kreiranje rezervacije unose se podaci potrebni za tu akciju. U ovom slučaju su to

datum, vrijeme, broj osoba, te broj stola na koji se rezervacija odnosi.

Page 22: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

18

Za odabir datuma i vremena su korišteni DatePickerDialog i

TimePickerDialog koji omogućavaju odabir kroz grafičko sučelje i ispis u za to

predviđeno tekstualno polje. Postavljeni su tako da prilikom klika na njih prikazuju

trenutni datum i vrijeme. DatePickerDialog je vidljiv na slici 12.

Slika 12.- DatePickerDialog

Slika 13. prikazuje TimePickerDialog.

Slika 13. – TimePickerDialog

Odabir broja osoba i broja stola se odvija kroz padajuće izbornike koji sadrže

stolove unešene u sustav (uz napomenu za koliko osoba je pojedini stol) te broj

osoba s najvišom vrijednošću jednakom stolu s najvećim kapacitetom. Klikom na

gumb „Rezerviraj“ se obavlja validacija unesenih podataka, ispisuje odgovarajuća

poruka ovisno o ishodu te u slučaju ispravnosti obavlja željena rezervacija. Cijeli

zaslon sa svim navedenim elementima je vidljiv na slici 14.

Page 23: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

19

Slika 14. – Zaslon rezervacije

3.4.2. Pregled rezervacija

Pregled rezervacija za konobara uvelike nalikuje pregledu narudžbi pa stoga opis

neće biti toliko detaljan i opsežan nego će biti istaknute samo ključne stavke.

Zaslon se sastoji od rezervacija poredanih jedna ispod druge cijelom širinom

zaslona prikazanih na slici 15.

Page 24: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

20

Slika 15. – Popis aktivnih rezervacija

Klikom na pojedinu rezervaciju se otvara iskočni prozor u kojem su prikazane sve

bitne informacije o rezervaciji, a to su naziv, datum i vrijeme, stol, korisnik te

korisnikov broj telefona. Također postoji mogućnost za arhiviranje rezervacije po

njenom izvršenju. Iskočni prozor je prikazan na slici 16.

Page 25: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

21

Slika 16. – Detaljan prikaz rezervacije

4. Implementacijski detalji

U ovom poglavlju biti će opisani detalji implementacije funkcionalnosti koje korisnici

imaju na raspolaganju, a opisane su u prethodnom poglavlju. Opisi će biti

potkrijepljeni isječcima koda. Također će biti opisana i struktura baze podataka sa

svim bitnim detaljima vezanim uz nju.

4.1. Izvedba funkcionalnosti narudžbe

U ovom poglavlju biti će opisana implementacija procesa narudžbe. Ona

obuhvaća odabir kategorije, odabir proizvoda u kojem će biti opisano dohvaćanje

podataka iz baze podataka i način prikaza podataka u listi, potvrdu narudžbe i

pregled narudžbi za konobara.

Page 26: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

22

4.1.1. Odabir kategorije

Prilikom klika na željenu kategoriju izvršava se kod prikazan na slici 17. koji stvara

novu namjeru koja predstavlja apstraktni opis operacije koja će se izvršiti. Njoj

predajemo trenutnu lokaciju u aplikaciji i aktivnost koju želimo pokrenuti. U namjeru

je dodan i naziv odabrane kategorije kako bi ga mogli ispisati na vrhu nove aktivnosti

i dohvatiti odgovarajuće proizvode. Nakon toga pokrećemo pripremljenu novu

aktivnost.

Slika 17. – Akcija kod klika na kategoriju

4.1.2. Odabir proizvoda

Dohvat proizvoda je ostvaren upotrebom funkcije addValueEventListener koja

se poziva nad objektom tipa DatabaseReference. Funkciji se predaje instanca

ValueEventListenera i nadjačavaju se njegove metode OnDataChange koja

kao argument prima podatke na zadanoj lokaciji u bazi podataka, i metodu

onCancelled koja se izvršava ako nije moguće dohvatiti podatke iz baze

podataka. Kako bismo dobili referencu nad bazom podataka pozivamo statičku

metodu getInstance nad klasom FirebaseDatabase. Na slici 18. je prikazan

dohvat proizvoda iz određene kategorije te spremanje njegovog naziva i slike u listu

koja će pomoću jednostavnog prilagodnika (engl. SimpleAdapter) biti prikazana u

prikazu liste (engl. ListView).

Slika 18. – Dohvat proizvoda

Page 27: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

23

SimpleAdapter se koristi za povezivanje statičkih podataka i pogleda definiranih

u XML datoteci.[5] Lista podataka za prikaz se definira kao ArrayList koji sadrži

mape. Svaki unos u ArrayListi odgovara jednom retku u prikazu. Mape sadrže

podatke koji se prikazuju u svakom retku. Također, u XML datoteci se definiraju

pogledi koji se povezuju s ključevima iz mape i služe za prikaz povezanih podataka.

ListView se koristi za prikaz vertikalno pomične kolekcije pogleda gdje je svaki

pogled postavljen netom ispod prethodnog u listi.[6] Za prikaz liste potrebno je

uključiti pogled liste u XML datoteci, a to činimo oznakom <ListView />. To je

adapterski pogled koji ne zna detalje kao što su tip i sadržaj pogleda koje sadrži.

Umjesto toga dobiva podatke na zahtjev od ListAdaptera. Za prikaz stavki u listi

poziva se funkcija setAdapter(android.widget.ListAdapter) koja

povezuje adapter s listom.

S obzirom da za različite kategorije imamo različite zaslone te odabrane proizvode

trebamo prikazati u zasebnom zaslonu za narudžbu, bilo je potrebno upotrijebiti

način spremanja tih podataka o odabranim proizvodima na način da budu dostupni

kroz sve zaslone u kojima se koriste. U tu svrhu odabran je oblikovni obrazac

jedinstveni objekt. Klasa OrderInformations sastoji se od privatnog

podrazumijevanog konstruktora koji onemogućava njeno vanjsko instanciranje,

metode getInstance koja pri prvom pozivu instancira primjerak klase, a pri

svakom slijedećem vraća već kreiranu instancu. Također, prisutne su i metode

getOrderProducts i setOrderProducts koje služe za dohvaćanje i spremanje

kolekcije s informacijama o proizvodima u košarici.

4.1.3. Potvrda narudžbe

Ukoliko stol ili niti jedan proizvod nije odabran naručivanje se neće dopustiti i biti će

ispisana odgovarajuća poruka. Identifikatori stolova se dohvaćaju dinamički iz baze

podataka ovisno o stolovima koji su uneseni u sustav. Odabir stola je izveden preko

padajućeg izbornika koji u androidu odgovara elementu Spinner. Narudžba je

spremljena u bazu podataka pod nasumično generiranim identifikatorom (metoda

push), a uz podatke o odabranim proizvodima i stolu još se spremaju podatak o

vremenu kreiranja narudžbe i podatak o id-u korisnika koji je napravio narudžbu.

Korisnik se dohvaća preko metode getCurrentUser klase FirebaseAuth, a

Page 28: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

24

zatim njegov id metodom getUid klase FirebaseUser. Također, sprema se i

podatak o aktivnosti narudžbe koji je u početku false, a konobar ga mijenja u true

po izvršenju narudžbe. Kod koji izvršava upravo opisanu logiku prikazan je na slici

19.

Slika 19. – Potvrda narudžbe

Po potvrdi korisniku se ispisuje poruka o uspješnosti obavljanja operacije, odabrani

artikli se poništavaju, a u u bazi podataka će biti vidljiv novi objekt koji predstavlja

upravo stvorenu narudžbu sa svim elementima spomenutim ranije, a možemo ga

vidjeti na slici 20.

Page 29: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

25

Slika 20. – Narudžba u bazi podataka Firebase

4.1.4. Pregled narudžbi

S obzirom da su do sada već prikazani neki od elemenata korištenih i u ovom dijelu

kao što su dohvat i manipulacija podacima iz baze podataka i spremanje istih u

ovom dijelu će naglasak biti stavljen na kreiranje iskočnog prozora s podacima o

narudžbi.

Prozor je kreiran u zasebnoj XML datoteci, a za „ubacivanje“ sadržaja te XML

datoteke u iskočni prozor, kojeg ćemo prikazati unutar iste aktivnosti pregleda

narudžbi, korišten je LayoutInflater. On služi za instanciranje XML datoteke s

prikazom u njezin pripadajući objekt pogleda.[7] Pomoću njega je kreiran novi

pogled (engl. View) koji kao resurs sadrži prikaz u XML datoteci pod nazivom

dialog_order. Taj pogled se zatim, uz dodatne postavke veličine iskočnog zaslona

Page 30: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

26

i mogućnosti fokusiranja, predaje konstruktoru razreda PopupWindow. Nakon toga

novokreiranom se prozoru namješta lokacija na zaslonu te kreira slušač koji

omogućava povratak na popis narudžbi klikom na iskočni prozor. Izvedba

navedenog prikazana je na slici 21.

Slika 21. – Kreiranje iskočnog prozora

4.2. Izvedba funkcionalnosti rezervacije

U ovom poglavlju biti će obrađena implementacija postupka rezervacije, a ona

obuhvaća kreiranje rezervacije i pregled rezervacija za konobara.

4.2.1. Kreiranje rezervacije

Prije nego što se rezervacija spremi u bazu podataka obavlja se već spomenuta

validacija. U sklopu validacije se ispituje ima li stol dovoljno velik kapacitet za prihvat

željenog broja osoba, stanu li svi za neki stol manjeg kapaciteta te preklapa li se

rezervacija s već postojećom rezervacijom u sustavu. U slučaju da neki od

validacijskih kriterija nije zadovoljen pripremljene su odgovarajuće poruke za svaki

od njih, a ako su svi zadovoljeni poziva se funkcija koja obavlja rezervaciju.

Implementaciju možemo vidjeti na slici 22.

Page 31: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

27

Slika 22. – Validacija rezervacije

Funkcija za rezervaciju prima objekt klase Reservation koji sadrži sve potrebne

podatke koji se spremaju u bazu podataka. Nakon spremanja se ispisuje

odgovarajuća poruka te se resetiraju svi podaci u formi za unos rezervacije. To je

prikazano na slici 23.

Slika 23. – Spremanje rezervacije i reset forme

Page 32: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

28

4.2.2. Pregled rezervacija

Iskočni prozor stvara se na isti način opisan kod narudžbi preko

LayoutInflatera, a na slici 24. biti će prikazano dohvaćanje korisnika koji je

napravio rezervaciju te upisivanje njegovih podataka u odgovarajući element na

zaslonu. Nadalje, biti će prikazano što se događa klikom na gumb arhiviraj, odnosno

kako se vrši izmjena postojećeg podatka u bazi podataka.

Slika 24. – Dohvat korisnika i arhiviranje

4.3. Baza podataka

Kao što je već spomenuto u poglavlju 2. u aplikaciji je korištena baza podataka

Firebase. Od konkretnih proizvoda korišteni su Firebase RealtimeDatabase za

spremanje podataka koje aplikacija koristi i Firebase Authentication za

autentifikaciju prilikom prijave korisnika i konobara.

4.3.1. Autentifikacija

Za autentifikaciju se koriste email adresa i lozinka. Njih korisnik unosi prilikom

ispunjavanja obrasca za registraciju. Nakon uspješne registracije registriranom se

korisniku dodjeljuje jedinstvena šifra pod nazivom User UID. Također, za svakog se

Page 33: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

29

korisnika vodi evidencija o datumu kreiranja računa i datumu posljednje prijave u

sustav. Prikaz sučelja za autentifikaciju je na slici 25.

Slika 25. – Pohrana korisnika

Za registraciju se koristi funkcija createUserWithEmailAndPassword razreda

FirebaseAuth koja prima email i password unesen u formi za registraciju. Na tu

funkciju stavljamo slušača pomoću funkcije addOnCompleteListener koji po

završetku registracije dohvaća jedinstveni ključ (engl. Unique Identifier, UID)

kreiranog korisnika i tom UID-u dodjeljuje dodatne podatke koji su se ispunjavali u

formi i pohranjuje ih u bazu podataka. Izvedba je prikazana na slici 26.

Slika 26. – Logika registracije

Za prijavu je korištena funkcija signInWithEmailAndPassword razreda

FirebaseAuth koja prima unesene email i lozinku te provjerava njihovu ispravnost

u bazi podataka. U slučaju da su podaci ispravni dohvaća se kategorija prijavljenog

Page 34: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

30

korisnika i na temelju nje smješta ga se u odgovarajuće sučelje u sustavu. Za odjavu

se koristi funkcija signOut koja se poziva nad instancom razreda FirebaseAuth.

Prikaz je na slici 27.

Slika 27. – Logika prijave

4.3.2. Struktura baze podataka

Baza podataka sastoji se od 5 tablica. To su Orders, Products, Reservations, Tables

i Users. Tablica Orders prikazana na slici 28. kao svoje elemente ima automatski

generirane ključeve koji predstavljaju pojedinu narudžbu. Svaka narudžba ima

atribute:

archived - je li narudžba izvršena

items - sadrži proizvode i količinu svakog od njih u narudžbi

table - stol naružbe

time - vrijeme kad je narudžba izvršena

userID - predstavlja jedinstvenu šifru korisnika koji je narudžbu izvršio

Page 35: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

31

Slika 28. – Tablica Orders

Tablica Products sadrži proizvode koji su dostupni za narudžbu, a oni su podijeljeni

po kategorijama (npr. Meat, SideDish, Salad…). Svaka kategorija sadrži proizvode

koji u nju spadaju (npr. pomfrit, blitva…), a proizvodi imaju atribute:

category - kategorija kojoj pripada

id - identifikator

name - naziv proizvoda

price - cijena proizvoda

Tablica Reservations sadrži rezervacije unesene u sustav. Rezervacije su

jedinstveno određene automatski generiranim ključem, a svaka ima atribute:

archived - je li rezervacija izvršena

date - datum za koji je stol rezerviran

Page 36: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

32

persons - broj osoba

table - broj stola koji se rezervira

time - vrijeme za koje je stol rezerviran

userID - id korisnika koji je obavio rezervaciju

Tablice Products i Reservations prikazane su na slici 29.

Slika 29. – Tablice Reservations i Products

Nadalje, slijedi tablica Tables prikazana na slici 30. sa stolovima unešenima u

sustav koji imaju atribute:

capacity - kapacitet stola

Page 37: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

33

table_num - oznaka stola

Slika 30. - Tables

Posljednja je tablica Users koja sadrži podatke o korisnicima koji se unose prilikom

registracije. Atributi su:

address - adresa korisnika

category - kategorija korisnik/konobar

email – email adresa

name - ime korisnika

password - lozinka za prijavu u sustav

surname - prezime korisnika

telephone - broj telefona

Slika 31. – Tablica Users

Page 38: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

34

5. Zaključak

Na kraju rada zaključujem da su ispunjene glavne točke ovog projekta, a to su

funkcionalnosti narudžbe i rezervacije. Razvijen je zaokružen sustav koji

korisnicima nudi dodatne mogućnosti u planiranju posjete i samoj posjeti omiljenom

restoranu, a konobare oslobađa posla zaprimanja narudžbi i rezervacija. To dovodi

do veće efikasnosti obavljanja tih radnji pa ima i svoju ekonomsku isplativost.

Također, uspješno je implementiran dio sustava za registraciju i prijavu korisnika

koji je nužan za funkcioniranje ovakve aplikacije jer osigurava korisnicima da

pristupaju samo dozvoljenim dijelovima sustava i štiti sustav od zlouporabe. Osim

razvoja spomenutih funkcionalnosi za operacijski sustav Android u programskom

jeziku Java, usvojena su i nova znanja u radu s platformom Firebase. Njezin sustav

za autentifikaciju i baza podataka u stvarnom vremenu su uvelike utjecali na razvoj

ove aplikacije i olakšali ga.

Neke od nadogradnji koje bi se mogle implementirati u budućnosti su omogućavanje

kreiranja narudžbe za dostavu na željenu adresu. Također bi sustav upotpunio i dio

u kojem se može ocjenjivati restoran i osoblje, te ostavljati komentari.

Page 39: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

35

6. Literatura

[1] Android Wikipedia, Datum pristupa: 15.05.2019.

https://en.wikipedia.org/wiki/Android_(operating_system)

[2] Android Studio Wikipedia, Datum pristupa: 15.05.2019.

https://en.wikipedia.org/wiki/Android_Studio

[3] Firebase Wikipedia, Datum pristupa: 15.05.2019.

https://en.wikipedia.org/wiki/Firebase

[4] Android Documentation Guides, Datum pristupa: 15.05.2019.

https://developer.android.com/guide/components/fundamentals?hl=en

[5] Android Documentation Reference Simple Adapter, Datum pristupa: 17.05.2019.

https://developer.android.com/reference/android/widget/SimpleAdapter

[6] Android Documentation Reference List View, Datum pristupa: 17.05.2019.

https://developer.android.com/reference/android/widget/ListView

[7] Android Documentation Reference Layout Inflater, Datum pristupa: 17.05.2019.

https://developer.android.com/reference/android/view/LayoutInflater

[8] Android Documentation Guides Intents and Intent Filters Datum pristupa: 17.05.2019.

https://developer.android.com/guide/components/intents-filters

Page 40: REZERVACIJA ZA OPERACIJSKI SUSTAV ANDROID · Firebase Realtime Database – Usluga koja sadrži bazu podataka u stvarnom vremenu koja omogućava sinkronizaciju podataka kod svih klijenata

36

Aplikacija za zaprimanje narudžbi i rezervacija za

operacijski sustav Android

Sažetak

Ovaj završni rad opisuje izradu aplikacije za uređaje s operacijskim sustavom

Android u razvojnoj okolini Android Studio i programskom jeziku Java te su

objašnjeni temeljni dijelovi Android aplikacije. Razvijene su funkcionalnosti

narudžbe i rezervacije koje izvršava korisnik sustava, a zaprima i obrađuje konobar.

U tu svrhu su razvijeni korisnički zasloni za odabir kategorije proizvoda, prikaz i

odabir proizvoda, kreiranje narudžbe, kreiranje rezervacije, i zasloni za pregled

aktivnih narudžbi i rezervacija koje koristi konobar. Također, postoje i zasloni za

registraciju i prijavu u sustav. Za autentifikaciju i spremanje podataka korištena je

platforma Firebase.

Ključne riječi: Android; aplikacija; Android Studio; restoran; narudžba; rezervacija;

Java; Firebase

Application for taking orders and reservations for

Android operating system

Abstract

This final work describes the creation of application for devices with Android

operating system in Android Studio IDE and Java programming language, with

explanation of Android application fundamentals. Functionalities that have been

developed are taking orders and reservations which are executed by system user,

and received and processed by waiter. For that purpose are developed user screens

for category picking, showing and picking products, creating order, creating

reservation, and screens for showing active orders and reservations that are used

by waiters. There are also screens for registration and login into system. Firebase

platform is used for authentication and data storage.

Keywords: Android; application; Android Studio; restaurant; order; reservation;

Java; Firebase