Professional Documents
Culture Documents
Razvoj Viseslojne Veb Aplikacije Za Evidenciju Gostiju Hotela
Razvoj Viseslojne Veb Aplikacije Za Evidenciju Gostiju Hotela
DIPLOMSKI RAD
Zrenjanin, 2019.
Sadržaj:
1.Uvod ........................................................................................................................................1
2.Teorijske osnove ......................................................................................................................2
2.1 Razvoj kroz istoriju i primene standarda za veb aplikacije .................................................2
2.2 Arhitektura softvera ...........................................................................................................5
2.3 Višeslojne softverske arhitekture .......................................................................................7
2.4 MVC ............................................................................................................................... 10
3.Analiza semantičke oblasti ..................................................................................................... 12
4.Pregled postojećih rešenja ...................................................................................................... 15
4.1 Trivago ............................................................................................................................ 15
4.2 Booking ........................................................................................................................... 16
4.3 Expedia group ................................................................................................................. 17
4.4 Trip advisor ..................................................................................................................... 19
5.Opis korišćene tehnologije ..................................................................................................... 20
5.1 Visual Studio kao programsko razvojno okruženje .......................................................... 20
5.2 Tehnologija ASP.Net ....................................................................................................... 21
5.3 MVC u okviru Visual Studio-a ........................................................................................ 22
5.4 Xampp paket .................................................................................................................. 22
6.Realizovani primer ................................................................................................................. 24
6.1 Specifikacija zahteva ....................................................................................................... 24
6.2 Model opšteg dizajna softvera ......................................................................................... 26
6.2.1 Model poslovnih procesa .......................................................................................... 26
6.2.2 Use case diagram ...................................................................................................... 27
6.2.3 Dijagram komponenti ............................................................................................... 30
6.2.4 Dijagram razmeštaja ................................................................................................. 31
6.3 Korisničko upustvo.......................................................................................................... 32
6.4 Opis implementacije ........................................................................................................ 39
6.4.1 Plan i opis implementiranih elemenata višeslojne aplikacije ...................................... 39
6.4.2 SQL skripta i šeme baze podataka ............................................................................. 40
6.4.3 Model klase podataka ............................................................................................... 43
6.4.4 Klase repository ........................................................................................................ 43
6.4.5 Klasa kontroler ......................................................................................................... 45
6.4.6 Izgled korisničkog dela aplikacije ............................................................................. 48
7. Zaključak .............................................................................................................................. 54
8.Literatura ............................................................................................................................... 55
Lista Slika ................................................................................................................................. 56
1.Uvod
Živimo u savremenom dobu koje se drugačije naziva i informatičko doba jer preovladavaju
računari,pametni telefoni,pametni televizori.Ako pogledamo razvoj informatičkih tehnologija od
vremena kada je nastao prvi računar pa do sada beležimo značajan porast upotrebe i ekspanziju
tokom 90-ih godina prošlog veka kada računari postaju sve bliži ljudima i programi postaju lakši
za upotrebu uz pojavu grafičkog korisničkog interfejsa.
Internet se pojavljuje 1969. godine i bio je prvo vezan za upotrebu u vojsci .Internet kao globalna
mreža pojavljuje se 90-ih godina i postaje dostupan ljudima.Kada je postao dostupan ljudima kao
dial up verzija nije bio toliko popularan.Međutim ekspanziju internet doživljava 2008 godine kada
je predstavljen javnosti brzi internet i od tada se beleži značajan broj porasta korisnika i pisanja
programa koji su vezani za internet i njegovo korišćenje poznatiji kao veb aplikacija.
Danas je život čoveka potpuno nezamisliv bez upotrebe interneta.Pa je ova veb aplikacija vezana
za korišćenje interneta i potpuna zavisna od njega.Pošto ljudi sve više provode vremena na
internetu i njegovo korišćenje je vezano za online trgovinu,dopisivanje i druge upotrebe.Veb
aplikacija je napravljena kako bi ljudima omogućila i olakšala rezervisanje sobe ljudima i uštedila
im vreme jer ne moraju da odlaze do hotela i čekaju da se oslobodi veza telefonom da zakžu sobu
ili apartman.
Glavni problem prilikom izrade ove aplikacije jeste identifikovanje gosta i znati da je baš on
rezervisao sobu da ne dođe do zabune ili piklapanja rezervacije gosta.Posebno je važno analizarti
profile korisnika i staviti jednistvenu identifikaciju tako da ne može doći do zabune ili da softver
napravi nekakvu neočekivanu grešku.
Diplomski rad se sastoji iz teroijskog istraživanja problematike i razvoja veb aplikacija ,višeslojne
arhitekture i servisno orjentisane arhitekture.Praktičan primer koji ilustruje primenu primenu
navedenih koncepata realizovan je na primeru veb aplikacija kao što je booking,trivago ,itd.Ove
aplikacije se koriste za rezervsanje sobe u hotelima kao i pregled soba koje su slobodne.
1
2.Teorijske osnove
“Veb aplikacije kao što to ime kaže ,to su aplikacije na vebu ,odnosno napredna veb rešenja kojima
se pristupa iz veb browsera (Chrome,Safari,Firefox…) i koja nisu kreirana ni na jednoj postojećoj
platformi(eng. custom website development).Kompletan kod,sve opcije i mogućnosti su razvijene
od počrtka i kao takve u potpunosti su prilagođene vašim potrebama”[1].
“Glavna tehnologija za funkcionisanje veb aplikacija jeste internet.Internet je mreža koja raste iz
dana u dan,rast interneta se može uporediti sa rastom korena trave ili rastom korena nekog
drveta.Veb aplikacija funkcioniše na vrlo jedan jedinstveni način potrebno je samo da vaš računar
povežete na internet sada da li ćete povezati vaš računar preko bežićnog interneta ili preko kabla
to je na vama.Kompijuter povezan na internet pokreće Web server,bilo bi to sve što je potrebno za
serviranje dokumenata.“[2]
Često se može čuti danas da se pojmovi kao što su veb sajt i veb aplikacija mešaju jer na neki način
običnim ljudima nije jasna razlika zbog toga što veb aplikacija i veb sajt izgledaju slično na prvi
pogled ali kada se uđe u tematiku i razumevanja pozadinskih procesa.Naime veb sajt se satoji od
skup veb strana koje su povezane hiperlinkom.Veb strana predstavlja deo sajta koji je pisan HTML
jezikom i ukrašen CSS jezikom.Struktura veb sajta se može videti na slici 1.
2
Kada se među programerima spomene izraz veb aplikacija to podrazumeva upotrebu i kombinaciju
veb stranica i protokola koji su karateristični za funkcionisanje interneta HTTP protokol ,protokol
za slanje poruka FTP .Međutim ljudi koji kreiraju veb aplikaciju moraju da kombiniju veb sajtove
i HTTP protokole koji su od velike i ključne zavisnosti za funkcionisanje veb aplikacije.Oni takođe
moraju da razumeju druge jezike,protokole i da ukompunuju da sve funkcioniše bez greške.
„Moraju biti upoznati sa JavaScript-om,XML-om,relacionim bazama podataka,grafički dizajn i
multimedija.Oni takođe moraju biti upoznati sa funkcionisanjem pozadinske arhitekture.Retka je
osoba među programerima koja ne razume kreiranje veb sajta,dizajniranje grafike i razumevanje
programa koji vrše transakcije i e-trgovinu.“[2]
Kada se pomisli na pojam veb aplikacija i njenog kreiranja obično se misli na PHP jezik ali danas
to nije slučaj.Danas imamo jezike koji su u potpunosti kompitabilni za razvoj veb aplikacija a to
su C# koji koristi ASP tehnologiju i Java sa tehnologijom Enterprise Edition na programeru je da
se odluči koju tehnologiju koristi.
3
Da bi se lakše razumeo pojam veb aplikacije može se objasniti slikovito na sledećim
primerima.Danas se može s’parvom reći da su ovo neke od najpoznatijih veb aplikacija koje se
koriste danas i koje su najzastupljenije i najpoznatije korisnicima:
• CMS (Content Management Platform) je pozanata platforma tako što olakšava korisnicima
da uz što manje napore kreiraju svoje veb sajtove.Najpoznatije CMS platforme su Joomla
i Wordpress.Na slici 3 se može videti izgled CMS platforme Wordpressa.
• Newsletter sistem je aplikacija koja omogućava veliki broj slanja poruka i mejlova krajnjim
kupcima i korisnicima.
• B2B(BussinesToBussines) sistem je sistem koji omogućava kompanijama da obavljaju
svoje poslovne aktivnosti
• B2C(BussinesToCustomer) sistem je sistem koji omogućava kompanijama da prodaju
svoju robu i usluge krajnjim potrošačima
4
2.2 Arhitektura softvera
5
Softverski sistemi se sastoje od mnogo struktura i nema nijedne strukture da tvrdi da je to
arhitektura.Postoje tri kategorije arhitektonskih struktura koje igraju važnu ulogu u dizajniranju
,dokumentaciji i analizi softvera.
1. Prva, neke strukture su delovi sistema u koje se implementiraju manji delovi,njih nazivamo
modulima .Moduli su odgovorni za specifične operacije računara i oni obično rade u
delovima odnosno programskim timovima.TimA radi bazu podataka,TimB radi na
poslovnim pravilima,TimC radi na korisničkom interfejsu itd…U velikim projektima ovi
elemnti(moduli)podeljeni su u podgrupama.Na primer,baza podataka za velika preduzeća
planira implementaciju delova jer je toliko složena da mora da se radi u delovima.Ovo je
vrsta modula koja se zove dekompozicija.Druga vrsta strukture modula nastaje kao rezultat
objektno orjentisane analize i klase dizajna.
2. Druga kategorija predstavlja strukture koje su dinamične ,značenje ovih struktura stavlja u
centru pažnje elemente koji su u interakciju sa ostalim funkcijama koje su pokrenute u
sistemu.Pretpostavimo da se sitem izgrađuje kako bi služio.Usluge,infrastruktura je u
iteraciji sinhronizacijom i iteracijom relacija među različitim tipovima strukture cesto
korišćenih za opis sistema.
3. Treća kategorija opisuje strukture koje su zadužene za pristupanje strukturi softvera
,organizaciji ,razvoju instalaciji i izvršavanju okruženja.Na primer moduli su dodeljeni
timovima za razvoj,dodeljeni mestima u strukturi fajla za implementaciju , integraciju ,
testiranje.Komponente su raspoređene na hardveru,odakle im se naređuje
izvšavanje.Ovakve pristupe nazivamo alokacione strukture.[3]
6
2.3 Višeslojne softverske arhitekture
O softverskoj arhitekturi ste mogli pročitati u prethodnom poglavlju tako da sada ne bih opet pisao
o softverskoj arhitekturi.Arhitekturu softvera možemo podeliti prema opštim obrascima a to su:
• Jednoslojna
• Dvoslojna
• Troslojna
• SOA
Nastanak jednoslojne arhitekture se vezuje za proces automatizacije posla, početak unosa
centralnih računara kojima su mogli da pristupe veći broj korisnika istovremeno. Komunikacija u
ovoj tehnologiji, obavljala se preko “glupih” terminal, a sva obrada podataka se izvršavala od stane
centralnog računara. Veliki nedostatak ove arhitetkure se ogleda upravo u komunikaciji između
terminala i server. Server prati koji se terminal prati prilikom pritiska tastera, obrađuje datu
informaciju i šalje adekvatan odgovor. Ovu arhitetkuru je nasledila dvoslojna arhitetkura zbog dva
problema koju su se javljali korišćenjem ove arhitetkure a to su: nemogućnost korišćenja istog
koda više puta kao i nemogućnost izmene samo jednog dela koda.
7
netolerantnija na naglo povećanje korisnika gde bi se mnogo više vremena utrošilo na upravljanje
procesima nego na rešavanje zahteva.
• Korisnički interfejs
• Prezentacioni sloj
• Sloj Servisa
• Sloj poslovne logike
• Sloj baze podataka
Prezentacioni sloj je prvi sloj sa kojim korisnik dolazi u dodir i to je sloj koji obrađuje podatke
unete od strane korisnika i šalje ih sloju servisa koji dalje stupa u komunikaciju sa ostalim
slojevima. Prezentacioni sloj se nadovezuje na već postojeći srednji deo aplikacije i funkcionisanje
web aplikacije bez ovog sloja ne bi bilo moguće[4]. Podelom aplikacije u podslojeve dobija se na
fleksibilnosti aplikacije i njenim performansama. Ovo se može lepo videti prilikom izmene jednog
dela koda unutar jednog sloja, proces koji će mnogo biti olakšan zbog slabe međusobne
povezanosti
Sloj servisa se obično vezuje za web servis i njegovo funkcionisanje.
8
Sloj servisa se najčešće posmatra kao deo poslovnog sloja. Moglo bi se reći da sloj servisa
predstavlja granicu između prezentacionog sloja i sloja poslovne logike. Zaduženja koja ima
servisni sloj su sledeća:
• Obrada zahteva
• Obaveštavanje o greškama
Web servis je aplikacija smeštena na nekom računaru odnosno serveru koja ima za zadatak da
podrži interakciju između dva računara na mreži i omogući razmenu informacija. Servisi mogu
biti privatni ali i javno dostupni. Prednosti web servisa u odnosu na web aplikaciju je u tome što
se manje troše resursi ali takođe se i manje opterećuje sama mreža, a ovo je posledica toga što web
aplikacije pored standardnog odgovora moraju da šalju i HTML formu sa opisom kako bi odgovor
trebao da izgleda. Web servisi su više zastupljeniji na manjim uređajima kao što su telefoni. Web
servisi mogu da sarađuju sa GUI aplikacijom pa se dobija kombinacija desktop i web aplikacije
gde svako od njih daje svoj doprinos. Web aplikacija joj omogućava funkcionalnost dok joj
desktop forme daju izgled odnosno interfejs. Bitno je napomenuti da se komunikacija između ova
dva dela ostavaruje JSON ili XML formatom i da je ovakva aplikacija mnogo fleksibilnija od web
aplikacije jer sam korisnik može da je prilagodi svom desktop.
Poslovni sloj je zadužen za obradu svih zahteva sistema i sadrži svu logiku i pravila koja održavaju
u celini neku Web aplikaciju. Ovaj sloj obrađuje procese, sadrži algoritme koji upravljaju
sistemom, ali je zadužen i za validaciju zahteva. Kada bismo razložili poslovni sloj, podela bi bila
sledeća:
• Proces rada – definiše kako se vrši prenos podataka iz jednog modula u drugi
Sloj za pristup podacima komunicira sa bazom i šalje podatke aplikaciji na osnovu zahteva koje
primi. Sloj za pristup podacima predstavlja jedino mesto u sistemu gde je poznata veza sa bazom
podataka i imenima tabela. Tu je sadržan sav kod koji vrši upis, izmenu i brisanje u bazi. Sloj za
pristup podacima šalje podatke poslovnom sloju koji ne sadrži nikakve informacije o bazi, on ih
samo prosleđuje do određenih delova aplikacije.
9
2.4 MVC
Jedan od najpoznatijih paterna koji simbolizuje upotrebu višeslojne veb aplikacije je MVC
patern.Ukoliko uzmemo da vršimo analizu ove skraćenice vidimo da ona ima sledeće značenje:
Pogledi (View) sadrže logiku koja je nophodna kako bi se elementi modela prikazali korisnicima.
Oni nisu direktno upoznati sa modelom i ne komuniciraju sa njim. Kontroleri predstavljaju most
između pogleda i modela. Zahtevi koji stižu od strane klijenata se obrađuju pomoću kontrolera.
On bira odgovarajući pogled koji će bit prikazan korisniku i ako je potrebno izvršava određenu
operaciju nad modelom
10
Kontroler je mozak veb aplikacije on je zadužen za funkcionisanje veb aplikacije.On uspostavlja
komunikaciju preko HTTP protokala sa ostalim delovima pozadinskih procesa koji se obavljaju u
aplikaciji i prikazuje ih korisiniku.Takođe kontroler povezuje poglede ondosno HTML stranice i
kada korisnik zada funkciju koju treba da izvrši aplikcaija onda se aktivira kontroler I izvršavanje
ide preko njega.
11
3.Analiza semantičke oblasti
12
Slika 10.Nekadašnji izgled hotela[9]
Obično se danas hotelierstvo vezuje u uslužnim granama delatnosti kao i turizam.Oni pripadaju i
vezuju se za menadžment ljudskih resursa koji je se vezuje za počrtak XX veka.U procesu razvoja
discipline naročito je značajna činjenica da je to prvenstveno bila profesija tokom I svetskog rata.U
to vreme mnogi poznati univerziteti u SAD počinju da organizuju specijalizovane kurseve za
obrazovanje i zaposlenje osoblje na polju personalnog menadžmenta.
„Nastanak profesije personalnog menadžmenta neki američki istražitelji vezuju za mnogo raniji
period XV vek i napuštanje feudalizma i tu fazu često nazivaju preindustrijskom.Dok će procvat
ove grane u ekonomiji doživeti za vreme industrijske revolucije.“[6]
Trendovi koji se javljaju usavršavanjem tehologije krajem XX -og veka nisu zaobišli ni
hotelierstvo ni turizam.Tehnološke inovacije su uticale na primenu i u ovim granama
industrije.Tehnologije su u velikoj meri uticale na to da olakšaju upravljanje hotelima.
„S druge strane,tehničko-tehnološki,informacioni i kominikacioni napredak bitno je izmenio
koncept ,strukturu i izgled tradicionalnog hotelskog i turističkog preduzeća.U eri
robotizacije,kompijuterizacije i internetizacije,tradicionalna turistička i hotelska preduzeća sve
više se transformišu u uslužne organizacije koje se transformišu u uslužne organizacije koje se
zasnivaju na konceptu aktivnosti koje omogućavaju korisniku usluge kompletno psiho-fizičko
zadovoljstvo.Mnoge poslovne aktivnosti obavljaju se posredstvom elektronske pošte,mobilne
tehnologije i video konferencija,što kancelarijski rad čini suvišnim i uveliko prevaziđenim
načinom obavljanja posla.“[6]
13
Nekada u hotelu bez tehnologije nije mogla da se rezerviše soba, ili čak provera da li ima slobodnih
soba.Ljudi si u početku dolazili u gostione i često nailazili na odgovore da nema slobodnih soba
za prespavanje.Kada je pronađen telefon kao pronalazak prihvaćen je u hotelierstvu
velikodušno.Ljudima je olakšano da rezervišu sobe i vrše proveru koje su sobe slobodne.Kako se
tehnologija usavršavla i došlo do primene informacionih tehnologija u hotelierstvu.Danas su
umesto velikih hotelskih knjiga ,zamenili programi koji upisuju podatke gostiju u bazu podatka.
Klijenti hotela danas uz pomoću veb aplikacija mogu da provere koje su sobe slobodne a koje
zauzete.Na taj način olakšali sebe strasa i čekanja da se linija oslobodi.Svaka tehnologija i
tehnološka inovacija je uvek dobrodošla.
14
4.Pregled postojećih rešenja
Što se tiče diplomskog rada nije moja malenkost napravila patent rezervisanja on-line soba putem
interneta.Na ideju sam došao kako bi to izgledalo kada bi svaki ugostiteljski objekat
hoteli,prenoćišta koja bi imali svoju veb aplikaciju preko koje bi mogli pogledati broj soba i
ukupan broj rezervacija.Na ideju sam došao tako što sam video da postoje već veb aplikacije koje
omogućuju širokom aspektu ljudi da putuju bilo gde i bilo kada ne strepeći za slobodna mesta u
hotelu a to su veb aplikaacije svima poznate „trivago“,
4.1 Trivago
Trivago je vrsta veb aplikacije koja služi za pretragu hotela odnosno dostupnih sobau hotelima sa
prikazom cene ,svega što je potrebno korisnicima.Prvenstveno je namenjen za upoređivanje cene
u hotelima danas se na Trivagu mogu naći 800.000 hotela i preko 250 sajtova sa kojima je moguće
uporediti cenu.Trivago je u tesnoj saradnji sa „Expedia“ i „Booking“ čiji opis sledi u nastavku
malo kasnije.
15
Danas se može reći da je Trivago u eksponencionalnom rastu od svog osnivanja i da nije beležio
deficit već je u stalnom porastu i spadu među svetske i vodeće lidere što se tiče hotelierstva i
turizma.
Što se tiče opcija korišćena aplikacije može se reći da je vrlo jednostavna i prilagodiva svakom
korisniku bez upotrebe čitanja korisničkog upustva.Tako da korisnik ima mogućnost da vrši
pretragu po datumima ili po tipovima sobe.Ukoliko nije zadovoljan postijećim rešenjima moće da
uđe u detaljniju pretragu.Ukoliko želi da upoređuje cene sa drugim sajtovima i dopunskim
pogodnostima.Dopunske pogodnosti su pogodnosti kao sportska oprema,sportski tereni ,sale za
sastanke,da li u sobama ima bežični inernet.
4.2 Booking
16
prihvatio oglase samo sa telefonskim brojem, a ne sa veb stranicom. 2002. godine Expedia je
odbila da kupi book.nl“[9]
•Hotels.com®, vodeći globalni ekspert za smeštaj koji upravlja sa 90 lokalizovanih veb lokacija
na 41 jezika sa svojim nagrađivanim programom lojalnosti Hotels.com® Revards;
•Ekpedia® Affiliate Netvork ("EAN"), globalni brend business-to-business ("B2B"), koji preko
API-ja osnažuje hotelski posao stotina vodećih aviokompanija, turističkih agencija, lojalnih i
korporativnih turističkih kompanija plus nekoliko vrhunskih potrošačkih marki. i predloška
rešenja;
•trivago®, vodeća online hotelska metasearch platforma sa veb lokacijama u 55 zemalja širom
sveta;
•HomeAvai®, globalno tržište na mreži za najam odmora, koje između ostalog uključuje i marke
VRBO, VacationRentals.com i BedandBreakfast.com;
•Orbitz® i CheapTickets®, vodeće američke veb lokacije za putovanja, kao i ebookers®, putnički
brend sa punom uslugom sa veb lokacijama u sedam evropskih zemalja;
17
Slika 13.Izgled Expedia Group-a[12]
“Expedia upravlja snažnim portfolijom brendova sa globalnim dometom, ciljajući širok spektar
putnika, dobavljača putovanja i oglašivača. Znamo da potrošači obično posećuju više veb lokacija
pre putovanja pre rezervisanja putovanja, a strategija sa više brendova povećava verovatnoću da
će ti potrošači posetiti jednu ili više naših veb lokacija. Takođe potrošačima plasiramo putem
različitih kanala, uključujući internetsku pretragu i meta pretraga i veb lokacije na društvenim
mrežama, a pojavljivanje više marki u rezultatima pretrage takođe povećava verovatnoću
privlačenja posetilaca. Naši brendovi prilagođavaju svoju ponudu proizvoda i veb lokacija u skladu
sa demografskim podacima putnika. Na primer, Hotvire pronalazi povoljne ponude za popust za
jeftinog turističkog kupca, dok naša marka Classic Vacations cilja na luksuzne putnike visokog
ranga. Brend Ekpedia obuhvata najširi sloj potencijalnih kupaca sa mogućnostima putovanja sa
više proizvoda po širokom spektru vrednosti, dok se naš brend Hotels.com fokusira posebno na
ponudu proizvoda samo za hotel.”[10]
18
4.4 Trip advisor
“TripAdvisor je među vodećim on-line stranicama za informacije o putovanjima. Grupa pruža
mišljenja i preporuke putnika i nudi detaljne informacije o destinacijama (pregledi hotela,
restorana i atrakcija), kao i funkcije poređenja cena i izračunavanja cena (avio-karte, hotelske sobe,
iznajmljivanje automobila, itd.) U partnerstvu je sa sotalim sajtovima za rezervaciju.”[11]
TripAdvisor pruža nešto drugačije usluge od ostalih sajtova za rezervisanje hotela i informacijama
o putovanju.TripAdvisor pored mogućnosti o putovanjima i hotelima nudi mogućnosti za
iznajmljivanje automobila poznatije u narodu kao“renta-car(renta-kar)“,takođe nudi mogućnosti o
avio kompanijama,restoranima i preporukama korisnika o restoranima itd.
„TripAdvisor najveća svetska platforma za putovanja , pomaže 490 miliona putnika svakog
mjeseca da svako putovanje postane njihovo najbolje putovanje. Putnici širom sveta koriste
TripAdvisor stranicu i aplikaciju da pregledaju više od 795 miliona pregleda i mišljenja o 8,4
miliona smeštaja, restorana, iskustava, aviokompanija i krstarenja. Bilo da planirate ili putujete,
putnici se okreću TripAdvisoru da uporede niske cene hotela, letova i krstarenja, rezervišu
popularne ture i atrakcije, kao i rezervne stolove u sjajnim restoranima. TripAdvisor, vrhunski
pratitelj putovanja, dostupan je na 49 tržišta i 28 jezika.“[12]
19
5.Opis korišćene tehnologije
Visual Studio takođe uključuje i code editor kao i debbuger. Debugger se koristi na dva nivoa: kao
source debugger i machine debbuger. Pored ovoga u sastav Visuala se takođe može uključiti i code
profiler, form designer koji nam omogućava izradu GUI aplikacija, web designer, class designer
itd.
20
Visual studio.Net prestavlja jedno od okruženja koje je proizvela firma Microsoft. Sadrži veliku
biblioteku klasa (Framework Class Library). Prva značajnija verzija .Net-a potiče iz 2000. a u
saradnji sa Intel-om i HP-om su radili na standardizaciji CLI kako bi se više programskih jezika
koristili na različitim platformama. Programi se izvršavaju kroz CLR, virtuelnu mašinu koja
sadrži: memory menagment, exception handling, garbage collector itd[13]. Korišćenjem .Net
dobijamo platformu na kojoj možemo da pišemo na 35 različitih jezika od kojih su najpoznatiji C,
C#, C++ i Java. Svaki jezik ima svoj kompajler posebno i preko njega se kompajlira u CLI. U
zavisnosti od toga koji je jezik korišćen CLR kompajlira CLI u mašinski kod, kod koji je poznat
računaru. Ovo je glavni alat i alat koji odvaja Visual Studio od drugih.
Sva tri ASP.NET okvira zasnivaju se na .NET Framevork i dele osnovnu funkcionalnost .NET-a i
ASP.NET-a. Na primer, sva tri okvira nude model bezbednosti za prijavu zasnovan na članstvu, a
sva tri dele iste pogodnosti za upravljanje zahtevima, rukovanje sesijama i tako dalje, koji su deo
osnovne ASP.NET funkcionalnosti.
Uz to, tri okvira nisu u potpunosti nezavisna, a izbor jednog ne isključuje upotrebu drugog. Budući
da okviri mogu koegzistirati u istoj veb aplikaciji, nije neuobičajeno da vidite pojedinačne
komponente aplikacija napisane pomoću različitih okvira. Na primer, delovi aplikacije okrenuti
prema kupcu mogu se razviti u MVC-u kako bi se optimizirala markacija, dok su pristupi podacima
i administrativni delovi razvijeni u Veb Formsima da bi se iskoristile prednosti kontrole podataka
i jednostavan pristup podacima.[14]
ASP.NET Veb API je okvir koji olakšava izgradnju HTTP usluga koje dosežu širok spektar
klijenata, uključujući pregledače i mobilne uređaje. ASP.NET Veb API je idealna platforma za
izgradnju RESTful aplikacija na .NET Framevork.
21
5.3 MVC u okviru Visual Studio-a
“ASP.NET MVC vam pruža moćan način za izgradnju dinamičnih veb lokacija zasnovanih na
obrascima koji omogućava čisto razdvajanje problema i koji vam daje potpunu kontrolu nad
markiranjem za ugodan, okretni razvoj. ASP.NET MVC uključuje mnogo funkcija koje
omogućavaju brz, TDD-friendli razvoj za kreiranje sofisticiranih aplikacija koje koriste najnovije
veb standarde.”[14]
MVC ili Model-View-Controller je patern koji je kreiran sa zadatkom da reši problem kod većine
aplikacija a to je prikazivanje podataka korisniku. Ideja je bila da se sama aplikacija podeli u 3
sloja: Model, View i Controller. Ovaj patern bi trebao da funkcioniše na jedan od dva sledeća
mišljenja:
Aplikacija bi trebala da dobije zahtev od korisnika preko web pretraživača. Controller dobija tu
poruku i zatim se obraća modelu za podatke koji su mu potrebni da bi se ispunio zahtev.
Model kao odgovor šalje podatke nazad Controlleru koji sada date podatke prosleđuje View koji
je statičan i njegova funkicija je prikazivanje prosleđenih podataka korisniku. Da bi sve ovo
funkcionisalo potrebni su nizovi poruka, mappera, interfejsa, upita za bazu itd.
“Drugo mišljenje je po svemu slično prvom, razlika je u tome što se smatra da podaci ne moraju
da se kreću preko Controllera nego može da se uspostavi direktna veza između Modela i View gde
View ne bi imao nikakvu sopstvenu funkciju, već bio bi samo posrednik”[15]
Ovaj program je u toku izrade ovog rada korišćen za izvršavanje stranica na lokalnom računaru, a
da nam pri tome nije potreban internet. Kada se instalira dati program, računar se može tretirati
kao da je na internetu, jer se mogu koristiti neki internet servisi.
• A (Apache HTTP Server – Web server softver koji se koristi za WWW servis),
• M (MySQL),
• P (PHP),
• P (Perl – Practical Extraction and Report Language – programski jezik kojeg je razvio Larry
Wall 1987. godine. i slobodnog je tipa - nezavisan od platforme)
22
Slika 16.Izgled Xampp-a
Ukoliko se koristi MySQL u okviru XAMPP paketa potrebno ga je koristiti na sledeći način
potrebno je pokrenuti prvo Apache jer se MySQL nalazi na lokalnom serveru pa se pristupa na
način tako što se upretraživaču upiše localhost i raćunar prempozna Xampp Apache da je pokrenut
zatim je potrebno pristupiti phpMyAdmin gde se smeštena baza odnosnoMySQL.
23
6.Realizovani primer
6.1 Specifikacija zahteva
Specifikacija zahteva za izradu web aplikacije koja se bavi evidencijom gostiju u hotelu odnosi se
na spisak svih funkcionalnih mogućnosti koje aplikacija nudi. U nastavku je dat tabelarni prikaz
funkcionalnih zahteva za rezervisanje i evidenciju gostiju u hotelu. Tabelarni prikaz je odabran
kako bi se lakše prikazale sve funkcije i zaduženja. Nefunkcionalni zahtevi u ovom radu nisu
prikazani, zato što nisu značajno naglašeni (u ovom radu je reč o izradi softvera opšte namene, a
ne za konkretnog korisnika, pa nisu eksplicitno dati nefunkcionalni zahtevi).
Provera Slobodnih Termina Za Željenu Sobu Korisnik ima mogućnost da klikne na galeriju
soba i pošalje upit za željenu sobu da li je
slobodan termin kada njemu odgovara
24
Logovanje Da bi admin mogao da obavlja svoje funkcije
u aplikaciji potrebno je da se prijavi kao
admin
25
6.2 Model opšteg dizajna softvera
6.2.1 Model poslovnih procesa
26
6.2.2 Use case diagram
U sledećoj tabeli preslikavanja biće prikazani primitivni procesi (na osnovu BPM) i softverske
funkcije kojima se podrzavaju ti procesi. U narednoj tabeli su podrzani softverskim funkcijama
samo primitivni procesi koji se odnose na klijenta i admina. Softverske funkcije su raspoređene po
prioritetima – funkcije prvog prioriteta direktno podrzavaju poslovni proces, dok drugog prioriteta
predstavljaju prosirenja osnovne funkcionalnosti. Takođe, prikazane su i softverske funkcije
preduslovi, koje moraju biti realizovane u softveru, jer bez njih ne mogu osnovne softverske
funkcije da se primenjuju. Poslednja kolona se odnosi na tip softvera. Najčešće korišćeni tipovi
su: c/s LAN (klijent server u lokalnoj mreži), web aplikacije i mobilne aplikacije. U narednoj tabeli
je dat jedan predlog (za iste primitivne procese može biti više tehnoloških rešenja) kako bi se
softverski mogli podržati primitivni procesi iz BPM.
1.prioriteta 2.prioriteta
27
Izmena Admin Logovanje Tabelarni prikaz Unosi Administrator c/s
podataka o kao Admin informacija o sobi odgovrajauće LAN,
sobi izmene WEB
Kompletan spisak softverskih funkcija koje treba da budu implementirane nastaju kombinovanjem
specifikacije zahteva i tabele preslikavanja i dat je u nastavku, prema profilima korisnika.
Uvid u stanje zauzetih soba,Izmena podatkaka o sobi ,Brisanje podataka o sobi ,Unos novih
podataka o sobi
28
Slika 19.Izgled Use Case Diagrama
29
6.2.3 Dijagram komponenti
Dijagram prikazuje strukturne relacije između softverskih komponenti sistema. On ilustruje delove
softvera, ugrađene kontrolere i slično, i ima veći stepen apstrakcije od dijagrama klasa[17]
30
6.2.4 Dijagram razmeštaja
31
6.3 Korisničko upustvo
Prilikom izrade diplomskog rada rađena je aplikacija za evidenciju gostiju hotela.Aplikacija je
funkcionala u porpunosti ali ima dosta mesta za usavšavanje.Ova aplikacija je rađena u jeziku C#
u programskom okruženju Visual Studio 2019.Pored C# jezika koji je korišćen za obavljanje
pozadinskih procesa u izradi duplomskog rada su korišćeni HTML,CSS,JavaScript jezici oni su
zaduženi za izgled sajta i neke funkcije koje se dešavaju na sajtu.Kao model je korišćen bootstrap
okvir(frejmvork(framework)) koji je u poslednje vreme najkorišćeniji.
Kada korisnik orvori sajt nudi mu se mogućnost pretraživanja sajta,od ponuđenih opcija ima
dugme da rezerviše svoj termin.Kada korisnik klikne na dugme ,dugme ga odvodi na kontakt
sekciju gde popunjava polja koju su predviđena za to.Na slici 23 može se videti izgled kontakt
sekcije i ono što popunjava korisnik.
32
Kao što se vidi na slici 23 korisnik je potrebno da unese svoje ime ,svoju mejl adresu i napiše
poruku koju želi da pošalje.Poruka se šalje na mejl adresu hotela i uprava hotela mu odgovara u
što kraćem roku na mejl adresu koju je napisao u polju koje je previđeno za mejl adresu.
Pored ove mogućnosti korisnik ima mogućnost da ode u sekciju sobe gde se nalazi galerija
soba.Svaka slika u glairiji opsiuje izgled sobe.Korisniku je ponuđena mogućnost da pogleda
detaljnije sobu tako što prevuče kursor na sliku i pojaviće se informacije vezane za tu sobu.Opis
teksta može se pogledati na slici 24.
Ukoliko korisnika zanima više informacija o željenoj sobi potrebno je da klikne na dugme
„Rezerviši Sobu“ i prikazaće mu se izgled stranice kao na slici 25 i 26.
Na slici 25 se može videti dugme rezerviši sobu kada korisnik klikne na ovo dugme pojaviće mu
se polja koja je potrebno pupuniti kako bi potvrdio rezervaciju.Kako izgledaju potrebna polja koja
je potrebno popuniti može se videti na slici 27 u nastavku teksta.
33
Slika 25.Izgled Naslovne Strane Sobe
Na slici 26 se može videti mogućnost da korisnik pošalje datum od kad do kad želi da rezerviše
sobu i potrebno je da upiše tačan naziv sobe koji je prikazan na slici 24 kao na primer „Dvokrevetna
Soba“
34
Slika 27. Izgled polja koja popunjava gost
Po svetskim pravilima gost je dužan da unese broj pasoša kako bi se proverilo da nije pod nekom
optužbom ili da nije gonjen od strane vlasti.Matični broj je takođe značajan kako bi se proverilo u
policiji što brže da li je korisnik u sukobu sa zakonom.Zatim idu polja ime i prezime.Polje datum
rođenja je važno iz razloga jer ukoliko je korisnik maloletno lice ne može da rezerviše sobu.Svi
podaci koje gosti unose se nalaze u tabeli gost ,pristup podacima ima samo admin sajta.
Da bi korisnici bili zadovoljni uslugom potrebno je da neko prati njihove aktivnosti na sajtu za to
je zadužen admin sajta koji ima svoj nalog gde samo on ima šifra da pristupi svom nalogu.Kako
bi se admin ulgovao uspešno za to je predviđeno dugme „Login“ koje je smešteno u footeru
sajta.Izgled dugmeta može se videti na slici 28.
Kada admin klikne na dugme „Login“ pojaviće mu se login forma gde je potrebno da unese tačne
podatke kako bi pristupio svojim adminskim funkcijama.Ukoliko unese neispravne podatke
pojaviće mu se error strana.
35
Slika 30 Kada se unesu pogrešni podaci
Kada admin unese tačne podatke za logovanje ima da bira nekoliko opcija :
Kada admin izabere opciju „Vidi Sve Sobe“ njemu će se prikazati spisak svih soba.Izgled se može
pogledati na slici 32.
36
Sledeća opcija koju ima admin je prikaži sve zauzete sobe.Spisak svih zauzetih soba se može
pogledati na slici 33.
Takođe u okviru ove opcije postoje dugmadi kao što se vidi na slici 33 za izmenu i brisanje.Gde
je potrebno da admin izmeni podatke i opciaj za brisanje gde admin unosi id koji predstavlja redni
broj kolone i briše podatke iz tabele.Navedene opcije kako izgledaju kada se pritisne odgovarajuće
dugme može se videti na slikama 34 i 35.
Opcija za brisanje služi kada ode gost potrebno je osloboditi sobu i prikazati je da je slobodna.
37
Opcija koju ima admin je da mu se prikaže spisak svih gostiju hotela.Izgled spiska gostiju hotela
se može videti na slici 36.
38
6.4 Opis implementacije
6.4.1 Plan i opis implementiranih elemenata višeslojne aplikacije
Prilikom izrade bilo je potrebno napraviti bazu podataka sa tabelama koje su vezane za pojmove
koje želimo da prikažemo kao što su gosti,soba,zauzeće sobe,tip sobe i druge stvari koje su vezane
za naš sajt.
Da bi baza podataka funkcionisala morali smo da napišemo SQL upite koji se nalaze u sloju za rad
sa bazom podataka. Takođe smo morali kreirati sloj modela koji će sadržati get i set metodu čija
je funkcija prikupljanje podataka i postavljanje u model. Da bi ovo sve funkcionisalo kako treba
moramo koristiti i web servis koji će nam omogućiti komunikaciju između web aplikacije za onlajn
rezervaciju i prikaz gostiju. Poslednji sloj, prezentacioni sloj prikazuje ono što je korisnik putem
poruka zahtevao od aplikacije. Ovaj sloj komunicira sa ostalim slojevima kako bi pružio što bolju
uslugu korisniku.
Klase modela
39
6.4.2 SQL skripta i šeme baze podataka
U diplomskom radu smo koristili bazu podataka koju nudi alat Visual Studio,međutim da bi sve
funckionisalo kako treba potrebno je kreirati bazu podataka pomoću SQL jezika.Alat koji je
koršćen u izradi baze podataka je MySQL.U nastavku sledi lisitnig koda kojim je kreirana baza
podataka.
CREATE DATABASE hotel
40
`idGost` int(11) NOT NULL,
41
ALTER TABLE `zauzece`
COMMIT;
42
6.4.3 Model klase podataka
Kada se radi o modelu klase podataka on sadrži atribute klase koji nose ista imena kao u bazi.U
starijim verzijama je potrebno kreirati atribute pa onda get i set metode.U ovoj novoj verziji
programa potrebno je samo kreirati getere i setere.Primer modela možete pogledati u listigu 2.
protected DateTime _datumRodjenja;
public int IdGost { get; set; }
public int BrojPasosa { get; set; }
public int Jmbg { get; set; }
public string Prezime { get; set; }
public string Ime { get; set; }
public DateTime DatumRodjenja
{
}
public Rezervacija()
{
Klasa repository sadrži kodove za potrebne za konekciju sa bazom podataka kao i metode koje su
potrebne za rad sa bazom i povezivanje.
public string ConnectionString { get; set; }
43
list.Add(new Soba()
{
IdSoba = Convert.ToInt32(reader["idSoba"]),
OznakaSoba = Convert.ToInt32(reader["oznakaSobe"]),
IdTipSobe = Convert.ToInt32(reader["idTipSobe"])
});
}
}
}
return list;
});
}
}
}
return list;
}
public List<Models.Rezervacija>DajSveGoste()
{
List<Models.Rezervacija> list = new List<Models.Rezervacija>();
44
{
IdGost = Convert.ToInt32(reader["idGost"]),
BrojPasosa = Convert.ToInt32(reader["brojPasosa"]),
Jmbg = Convert.ToInt32(reader["jmbg"]),
Prezime= (reader["prezime"]).ToString(),
Ime = (reader["ime"]).ToString(),
DatumRodjenja = Convert.ToDateTime(reader["datumRodjenja"])
});
}
}
}
return list;
}
U klasi kontroler se nalze metode koje povezuju Klase Podataka,Klasu Repository kao i Klasu
Korisničkog interfejsa.Lisnig koda možete pogledati u Listingu 4.
MySqlConnection con = new MySqlConnection();
MySqlCommand com = new MySqlCommand();
MySqlDataReader dr;
public IActionResult Index()
{
return View();
}
45
com.Connection = con;
com.CommandText = "select * from login where
korisnickoIme='"+acc.KorisnickoIme+"'and lozinka='"+acc.Lozinka+"'";
dr = com.ExecuteReader();
if(dr.Read())
{
con.Close();
return View("Admin");
}
else
{
con.Close();
return View("Error");
}
}
public IActionResult soba()
{
return View();
}
public IActionResult Rezevacija(Rezervacija r)
{
connectionString();
con.Open();
com.Connection = con;
com.CommandText = "INSERT INTO
gost(brojPasosa,jmbg,prezime,ime,datumRodjenja)
VALUES('"+r.BrojPasosa+"','"+r.Jmbg+"','"+r.Prezime+"','"+r.Ime+"','"+r.DatumRodjenja+"
')";
com.ExecuteNonQuery();
con.Close();
return View();
}
[HttpPost]
public IActionResult rezervisi(Rezervacija r)
{
return View();
}
public IActionResult Admin()
{
return View();
}
public IActionResult Zauzece()
{
Context context = HttpContext.RequestServices.GetService(typeof(Context))
as Context;
List<Zauzece> list = context.DajSveZauzece();
return View(list);
connectionString();
con.Open();
46
com.Connection = con;
com.CommandText = "UPDATE zauzece SET
id='"+i.Id+"',idGost='"+i.IdGost+"',idSoba='"+i.IdSoba+"',datumOd='"+i.DatumOd+"',datum
Do='"+i.DatumDo+"'WHERE id='"+i.Id+"'";
com.ExecuteNonQuery();
con.Close();
return View();
}
public IActionResult Brisanje(Brisanje b)
{
connectionString();
con.Open();
com.Connection = con;
com.CommandText = "DELETE FROM `zauzece` WHERE id='"+b.Id+"'";
com.ExecuteNonQuery();
con.Close();
return View();
}
return View();
}
public IActionResult SviGosti()
{
Context context = HttpContext.RequestServices.GetService(typeof(Context))
as Context;
List<Rezervacija> list = context.DajSveGoste();
return View(list);
}
}
47
6.4.6 Izgled korisničkog dela aplikacije
</head>
<body class="body-class" >
<div class="main-menu">
<div class="logo-image">
<p class="logo-text">Our Hotel</p>
</div>
<div id="repsponsive-menu-container">
<div id="responsive-menu" class="responsive-menu-side-navigation">
<nav>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#Services">Services</a></li>
<li><a href="#AboutUs">About Us</a></li>
<li><a href="#Team">Team</a></li>
<li><a href="#Contact">Contact</a></li>
</ul>
</nav>
</div>
<div class="menu-items">
<div class="menu-position">
<ul>
<li><a href="#home" class="selected-menu-
item">Pocetna</a></li>
<li><a href="#Sobe">Sobe</a></li>
<li><a href="#AboutUs">O Nama</a></li>
48
<li><a href="#Contact">Kontakt</a></li>
</ul>
</div>
</div>
</div>
<script>
$(window).on("scroll", function() {
if($(window).scrollTop() > 750) {
$(".main-menu").addClass("active");
} else {
$(".main-menu").removeClass("active");
}
});
</script>
<div class="scrollable-data">
</div>
<div class="banner">
<img class="myBanner" src="images/headerImage.jpg" alt ="banner"
style="width:100%" id="Home">
<button class="buttonHeader" onclick="location.href='#Contact'">
Rezervisi Svoj Termin </button>
</div>
<div class="ourHotel">
<h1>O Hotelu</h1>
<P class="opisHotela">
Etiam scelerisque nunc eu sagittis rhoncus. Mauris eget
ullamcorper tortor.
Phasellus nisi enim, mattis eu felis sit amet, malesuada pharetra purus.
Integer congue dapibus felis, at vulputate quam lobortis ac.
</p>
</div>
<div class="container">
49
<script src="https://code.jquery.com/jquery-2.2.0.min.js"
type="text/javascript"></script>
<script src="js/slick.js" type="text/javascript" charset="utf-8"></script>
<script src="js/slider-slick.js" type="text/javascript" charset="utf-8"></script>
<h1>Kod nas te uvek dobrodosli</h1>
<div class="container-information">
<div class="tekst">
<P class="opisHotela">
Etiam scelerisque nunc eu sagittis rhoncus. Mauris eget
ullamcorper tortor.
Phasellus nisi enim, mattis eu felis sit amet, malesuada pharetra purus.
Integer congue dapibus felis, at vulputate quam lobortis ac.
</p>
</div>
<div class="5zvezda"><img src="images/hotel5.jpg" alt="znakabout1"
width="40%"/></div>
</div>
</div>
<p class="title-text" id="Sobe"></p>
<div class="gallery">
<div class="wrapper">
<img src="images/room/soba1.jpg" alt="znakabout1" width="320px"
height="320px" />
<div class="overlay">
<div class="content">
Dvokrevetna Soba
<p2>Jedna Noc</p2>
15e
<a href="/Home/soba">Rezervisi Sobu</a>
</div>
</div>
</div>
<div class="wrapper">
<img src="images/room/soba2.jpg" alt="znakabout1" width="320px"
height="320px" />
<div class="overlay">
<div class="content">
Soba Medeni Mesec
<p2>Jedna Noc</p2>
15e
<a href="/Home/soba">Rezervisi Sobu</a>
</div>
</div>
</div>
<div class="wrapper">
<img src="images/room/soba3.jpg" alt="znakabout1" width="320px"
height="320px" />
<div class="overlay">
<div class="content">
Soba Grad
<p2>Jedna Noc</p2>
12e
<a href="/Home/soba" >Rezervisi Sobu</a>
50
</div>
</div>
</div>
<div class="wrapper">
<img src="images/room/soba4.jpg" alt="znakabout1" width="320px"
height="320px" />
<div class="overlay">
<div class="content">
Poslovna Soba
<p2>Jedna Noc</p2>
16e
<a href="/Home/soba">Rezervisi Sobu</a>
</div>
</div>
</div>
<div class="wrapper">
<img src="images/room/soba5.jpg" alt="znakabout1" width="320px"
height="320px" />
<div class="overlay">
<div class="content">
Soba Medeni Mesec
<p2>Jedna Noc</p2>
15e
<a href="/Home/soba">Rezervisi Sobu</a>
</div>
</div>
</div>
<div class="wrapper">
<img src="images/room/apartman.jpg" alt="znakabout1" width="320px"
height="320px" />
<div class="overlay">
<div class="content">
Apartman
<p2>Jedna Noc</p2>
35e
<a href="/Home/soba">Rezervisi Apartman</a>
</div>
</div>
</div>
</div>
<div class="about-us">
<div> </div>
<p class="title-text" id="AboutUs">O nama</p>
<div class="images-text">
<div class="about" >Nas bar je mesto gde se dodatno mozete odmoriti i
opustiti</div>
<img src="images/bar.jpeg" alt="znakabout1" width="50%"/>
</div>
<div class="images-text">
<img src="images/parkingService.jpg" alt="znakabout1"
width="100%"/>
<div class="about" >Nase osoblje je ljubazno i pouzdano uvek cete
biti zadovoljni uslugom koja vam je pruzena</div>
51
</div>
<div class="images-text">
<div class="about" >Svecana sala koju imamo u hotelu je velika i
predviljena za sve vrste konferencije</div>
<img src="images/svecanaSala.jpg" alt="znakabout1" width="100%"/>
</div>
</div>
<div class="contact">
<div class="forma">
<form action="">
</form>
</div>
<div class="mapa">
<iframe
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d1200.7277236631562!2d21.9015
06653950506!3d42.54446188134326!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x135
51f9de98c11b7%3A0x5adfedd6444f368b!2z0JLRgNCw0ZrQtQ!5e0!3m2!1ssr!2srs!4v1568730067069!5
m2!1ssr!2srs"></iframe>
</div>
</div>
</div>
<div class="footer">
<div class="footer-address"><img
src="images/footer/clokacija.png" class="fi" alt="lokacija"/></div>
<div class="footer-address"> <p> Bulevar AVNOJ,Vranje,Srb
</p> </div>
52
<div class="footer-mail"><img
src="images/footer/crmail.jpg" class="fi" alt="mail"/></div>
<div class="footer-mail"> <p> hotel@hotel.rs </p></div>
<div class="footer-phone"><img
src="images/footer/fontele.png" class="fi" alt="telefon"/></div>
<div class="footer-phone"><p> +38174589123</p> </div>
</div>
</div>
</body>
</html>
53
7. Zaključak
Prilikom izrade ovog diplomskog rada rađena je aplikacija za evidenciju gostiju u
hotelu.Obuhvaćen je reazvoj aplikacije od spcifikacije do implementacije svakog sloja
pojedinačno.Pojedini delovi koda su dati kao mogućnost, koja ilustruje način daljeg razvoja
aplikacije. Ovo je ilustrativni primer urađene višeslojne aplikacije.
Krenuli smo od sloja za upravljanje bazom podataka gde smo ispisali SQL upite koje smo dalje
koristili kako bi komunicirali sa bazom i preuzeli podatke koji su nam potrebni. Zatim smo kreirali
sloj poslovne logike sa poslovnim objektima i pravilima. Zatim prelazimo u poslednji sloj
aplikacije a to je prezentacioni sloj. U ovom sloju se nalaze samo minimalna preuzeta svojstva od
sloja modela i ovaj sloj je interfejs koji korisnik vidi. Kreirali smo dve „area“ koje su nam dale
mogućnost koji deo će videti svi korisnici a koji samo admin aplikacije.
Ova aplikacija ima potencijala da se proširi i da korisnicima još potpuniju uslugu.Može se kreirati
desktop aplikacija koja je povezana sa web aplikacijom tako da bi je mogli koristi zaposleni u
hotelu.Takođe treba je dopuniti mogućnošću da korisnik vidi koliki bi račun trebao da plati kada
se uloguje i treba dodati novo polje za registraciju korisnika.
54
8.Literatura
[1] Opis veb aplikacije ,https://atec.rs/web-aplikacije/
[10]OpisExpediasoftvera,https://www.sec.gov/Archives/edgar/data/1324424/0001324424180000
06/q42017-10k.htm expedia
[11]OpisTripAdvisora,https://www.marketscreener.com/TRIPADVISOR-
9597196/company/tripAdvisor
[15]OpisMVCpaternakaodeoASPtehnologije,https://www.tutorialspoint.com/asp.net_mvc/asp.ne
t_mvc_pattern.html
[18]Diplomski rad Marko Blažić „Razvoj višeslojne web aplikacije uz primenu servisno
orjentisane arhitekture“,2017
55
Lista Slika
[1]https://cdn.business2community.com/wp-content/uploads/2019/04/website-architecture-
content-silos.jpg
[2]https://encrypted-
tbn0.gstatic.com/images?q=tbn:ANd9GcQ4lp0IOoqeN_dOgMYp4GtJNZ9EaA5gO9asia8i_uJe0
XjemktU
[3]https://s.w.org/images/home/screen-themes.png?3
[4]http://softwareprocessengineering.com/_blogs/SPE/pcarchfreeformoverview.jpg
[5]https://i.stack.imgur.com/8kJMI.png
[6]https://www.researchgate.net/profile/Trevor_Mudge/publication/221147997/figure/fig1/AS:3
39672459956226@1457995633431/A-Typical-3-Tier-Server-Architecture-Tier-1-Web-Server-
Tier-2-Application-Server-Tier.png
[7]https://www.researchgate.net/profile/Trevor_Mudge/publication/221147997/figure/fig1/AS:3
39672459956226@1457995633431/A-Typical-3-Tier-Server-Architecture-Tier-1-Web-Server-
Tier-2-Application-Server-Tier_Q640.jpg 2
[8]https://miro.medium.com/max/1080/0*Qf1s2lG86MjX-Zcv.jpg
[9]https://www.turistickisvet.com/pub/news/hotel_grand_enterijer_-_sala__63463463.jpg
[10]https://www.trivago.rs
[11]https://content.presspage.com/uploads/685/1920_pg-imagere.png?10000
[12] https://www.expediagroup.com/
[13] https://www.tripadvisor.rs/
56