DIPLOMSKI RAD iz predmetа Razvoj veb aplikacija

Size: px
Start display at page:

Download "DIPLOMSKI RAD iz predmetа Razvoj veb aplikacija"

Transcription

1 UNIVERZITET U NOVOM PAZARU DEPARTMAN ZA RAČUNARSKE NAUKE STUDIJSKI PROGRAM: INFORMATIKA DIPLOMSKI RAD iz predmetа Razvoj veb aplikacija Mentor: Dr Muzafer Saračević, docent Student: Ervin Pepić Br. indeksа: 4-191/12 Novi Pazar, 2016.

2 UNIVERZITET U NOVOM PAZARU DEPARTMAN ZA RAČUNARSKE NAUKE STUDIJSKI PROGRAM: INFORMATIKA DIPLOMSKI RAD Napredni alati i tehnologije za razvoj veb aplikacija (na odabranom primjeru) Mentor: Dr Muzafer Saračević, docent Student: Ervin Pepić Br. indeksа: 4-191/12 Novi Pazar, 2016.

3 Napredni alati i tehnologije za razvoj veb aplikacija Rezime U ovom diplomskom radu dat je kratak uvid u razvoj veb aplikacija kao i tehnologija i alata koji se koriste razvoj istih. Dat je pregled nekoliko vrsta aplikacija koje egzistiraju na različitim platformama i okruženjima. Također je dat kratak uvid u popularne veb aplikacije i okruženju u kojem su razvijene. Kada je u pitanju aplikacija na odbranom primjeru prikazan je razvoj veb aplikacije, modula, API interfejsa i u prilogu je dat izvorni kod aplikacije. Opisan je veb framework Python-Django kao i njegovi moduli i način implementacije istog. Ključne riječi: veb aplikacije, framework, modul, Python, Django. 3

4 Advanced tools and technologies for web application development Summary This thesis gives a brief insight into the development of web applications and technologies and tools used for development thereof. An overview of several types of applications that exist on different platforms and environments. A brief insight into the popular web applications and environments in which they are developed. For application on own example is given access to a complete modular development of Web application, API interface and source code. Described a web framework Python-Django and its modules and way of implementation of the same Keywords: web applications, framework, module, Python, Django. 4

5 Sadržaj 1. Uvod Pojam i vrste aplikacija Desktop aplikacije Veb aplikacije Mobilne aplikacije Alati i tehnologije za razvoj veb aplikacija Veb standardi i protokoli Tehnologije za razvoj veb aplikacija Veb tehnologije i skriptni jezici JavaScript VBScript Perl Python PHP ASP (Active Server Pages) NET Framework ASP.NET Nastanak framework-a Django framework Kratak prikaz istorijskog razvoja Django framework-a Django podržane verzije Komponente Django framework-a Objektno-relaciona mapiranja URL i Views Templejti Forme Autentikacija Administracija Internacionalnost Aplikacije razvijene u Django framework-u

6 Instagram Mozila Pinterest National Geographic Primena Django famework-a za razvoj veb aplikacije Primjena Django framework-a za razvoj ecommerce veb aplikacije Razvoj aplikacije Django veb aplikacija za ecommerce Početna strana Svi produkti Pojedinačni produkt Korpa za kupovinu Plaćanje i kupovina Ostale mogućnosti aplikacije API interfejs Tipovi API-a Django rest framework Rest Framevork API ecommerce Zaključak Literatura Prilozi Izorni kod Lista slika Lista tabela

7 1. Uvod Aplikacije kakve danas poznajemo nisu oduvijek bile u obliku kakvom su sada. Ako možemo tako reći pojam aplikacija nije dobila domaće značenje tako davno. Sa pojavom prvog iphone-a, Android-a, Windows phone-a aplikacije su dobile na popularnosti i značaju za krajnje korisnik prenosivih uređaja. Ako se vratimo na pojavu popularnog Windows 95 Microsoft-ovog operativnog sistema za PC mašine tada aplikacije nisu spomenute. Veliki bum u razvoju kako sistemskog softvera koji je pravio Microsoft- tako i aplikativnog softvera doveli su do popularizovanja izraza engleskih riječi, kao što su: program, sistem, bekap, instalacija i još mnogih drugih izraza. Međutim nedovoljna naša upućenost u tematiku i rad ovih mašina i softvera koji oni koriste dovela je do toga da se koriste izrazi koji nisu baš uvijek odgovarajući. Za svaki softver koji bi se koristio na računaru postojao je zajednički naziv program. Međutim ako malo detaljnije uzmemo u obzir definiciju programa vidjet ćemo da je program spisak naredbi napisan u nekom programskom jeziku namijenjen za određenu računarsku platformu radi rješavanja nekog problema. Što ne znači da svaki program koji je napisan u nekom programskom jeziku ima potrebu da riješi neki problem, nekada to nije razlog. Često je razlog zabava, sport ili nešto treće. Nije pristojno da za računarsku igru kažemo da je program iako je isto skup instrukcija koje iz više modula funkcionišu kao jedna cjelina. Ako pogledamo operativni sistem i on također predstavlja program. Kasnijom ekspanzijom računara na krajnje korisnike i naše upoznavanje sa tematikom računarstva i informatike nailazimo na pojam softver koji se dijeli na sistemski i aplikativni. Kod sistemskog to su sve vrste operativnog sistema za sve vrste uređaja, dok su kod aplikativnog softvera aplikacije koje su namijenjene za određenu vrstu problema. Od tada se sve rjeđe koristi izraz program i dolazimo do izraza aplikacija. Pojam aplikacija ćemo objasniti u daljem radu kao i podjele istih. Aplikacije se danas koriste na svim prenosivim i kućnim računarima, a njihovom popularizacijom je omogućen i lakši razvoj i učešće krajnjih korisnika u razvoju istih. Razlog obrade ove teme jeste sve veći broj veb aplikacija, a samim tim i sve češći rad u istim. Skoro da nema dana da se ne napravi neka veb aplikacija. Sve te aplikacije imaju različitu 7

8 namjenu. Razlog zbog kojeg se obrađuje primjer elektronske prodavnice je masovno postojanje istih. Još jedan od razloga jeste ekonomičnost koju pružaju ovakve vrste aplikacija. 8

9 2. Pojam i vrste aplikacija Koristeći prenosive uređaje mobilne telefone - upoznali smo se sa izrazom aplikacija. Ukoliko otvorimo trgovinu aplikacija iz kojih možemo instalirati iste, naići ćemo na sve više aplikacija i kategorija u koje su one razvrstane. Međutim važno je prije svega znati šta je zapravo aplikacija koju koristimo i zašto baš taj naziv? Definicija aplikacije je slična kao i programa, odnosno to je primjenjivi program za rješavanje poslovnih problema ili problema privatnih korisnika [1]. Aplikacija može biti više programa, pa tako često nailazimo na kompletne suite različitih namjena, kao što je Office suite, i mnogi drugi. [2]. Aplikacija je konstruisana da radi sa sistemskim softverom i drugim aplikacijama koji djeluju između aplikacije i mreže što pruža mogućnost upravljanja i pružanja svih računarskih mogućnosti. Međutim ono što razlikuje aplikaciju od programa jeste to da aplikacija može biti skup računarskih programa dizajniranih da pomogne ljudima izvršavati aktivnosti. Dakle više programa može biti objedinjeno u jednu aplikaciju i tako sačuvati naš prostor u memoriji, trenutnoj i trajnoj. Prednost korištenja jedne aplikacije nad više programa ogleda se u tome da se štedi sistemska memorija, dok ako više programa egzistira u operativnoj memoriji može doći do tzv. memory leak odnosno curenja memorije 1 što dovodi do pada trenutno otvorenog programa, a posljedice mogu biti katastrofalne, poput gubitka podataka itd. Ove aplikacije također mogu doći u višu cjelinu i raditi integrisano, ali se moraju povezati jedinstvenim APIom 2 radi razmjene podataka međusobno. Ova viša cjelina naziva se Suite 3. Microsoftkompanija posjeduje Office Suite gdje je više aplikacija objedinjeno u jedan Suite. Neke od ovih aplikacija mogu dijeliti podatke jedne sa drugima, kao što na primjer u MS Accesu možemo uvesti datoteku koja je rađena u MS Excelu. 1 Memory leak curenje memorije predstavlja preopterećenje radne memorije te greške u obradi podataka i trenutnog programa i prestank rada istog. 2 API - Application Interface je interfejs za komuniciranje aplikacija međusovno. Predstavlja skup protokola i rutina koji kompjuterski sistem, biblioteka ili aplikacija obezbjeđuje drugim aplikacijama za obavljanje zahtjeva i usluga tim aplikacijama. 3 Suite - je kolekcija računarskih programa obično apliakcionog softvera ili programskog softverasličnih funkcionalnosti koj dijele više ili manji zajednički interfejs i neke mogućnosti da glatko razmijene podatke sa drugima. 9

10 Aplikacije danas imamo na svim uređajima, krenuvši od desktop računara svih platformi, preko mobilnih telefona, tableta, fableta, pametnih televizora, pa sve to pametnih satova i pametnih narukvica. Izrada aplikacija za sve vrste uređaja omogućili su nam razvojni centri softverskih kompanija, koje su napravile razvojna oprema (engl. Development kit) nekada i Integrisano razvojno okruženje (Integrated Development Kit) okruženje kako bi razvili što više aplikacija i dali mogućnost krajnjim korisnicima da na najlakši način svoje zahtjeve zadovolje. 2.1 Desktop aplikacije Desktop aplikacije su one aplikacije koje se razvijaju u nekom od okruženja kao što su VisualStudio, NetBeans, Eclipse, AngularJS, Delphi itd. Ove aplikacije se instaliraju na desktop računarima radi rješavanja nekog problema. Također ovo podrazumijeva da se podaci ovih aplikacija smještaju na sekundarnu memoriju 4 i učitavaju iz iste te nakon učitavanja smještaju u operativnu memoriju. Napredovanjem programiranja i razvoja aplikacija danas imamo mogućnost napraviti desktop aplikaciju koja će svoje podatke čuvati i obrađivati na serveru, a na desktopu će biti samo klijentski dio odnosno interfejs dok sve ostalo je na serveru. Postoji također mogućnost da se podaci čuvaju i na računaru i na serveru kakav je GoogleDrive, DropBox itd. ili da aplikacija preko API interfejsa uzima samo reference sa servera a sve podatke da čuva na računaru kakva je Viber aplikacija. Desktop aplikacije mogu biti velikog kapaciteta i pružati fantastične funkcionalnosti kakvi su ArchiCad, AutoCad i mnogi drugi softveri čija je namjena rješavanje problema arhitekture. A mogu biti i manje 4 Sekundarna memorija predstavlja trajno skaldištenju memoriju, kao što su HDD, SSD, fleš bazirana skladišta, magnetne trake itd. 10

11 veličine do nekoliko megabajta a također obavljati besprekorno svoj zadatak kao što je CCleaner. 2.2 Veb aplikacije Današnje veb aplikacije možemo definisati kao aplikacije kojima možemo pristupiti pomoću nekih od veb pretraživača, koji su danas mnogobrojni(googlechrome, Firefox, Opera, Safari) naravno uz obavezan uslov da imamo internet konekciju [3]. Veb aplikacije su našle veliku i brzu popularnost među svim korisnicima, razlog je gotovo svima poznat. Prvi razlog je što možemo pristupati sa bilo kojeg mjesta koje ima internet konekciju a drugi razlog je što možemo pristupiti istoj samo uz pomoć naših pristupnih podataka za logovanje sa bilo kojeg računara i bilo kojeg operativnog sistema. Nekada je većina aplikacija tražila instalaciju dodatnih softvera u okviru veb preglednika, danas veb preglednici imaju podršku ugrađenu za skoro sve aplikacije. Velika karakteristika veb aplikacije jeste u tome što od strane klijenta nije potrebno nikakvo ažuriranje, već se sve radi na serverskoj strani. Dakle kada želimo ažurirati veb aplikaciju to ćemo raditi pisanjem novog koda, popravljanjem dijelova koji imaju greške, nedostatke, unapređujemo dizajn i sve to rade programeri na serverskoj strani. Kada želimo pristupiti novoj aplikaciji nećemo dobiti nikakva obavještenja da postoji nova verzija već uvijek koristimo posljednju verziju, što nije slučaj kod desktop aplikacija. Kod desktop Aplikacija potrebno je podesiti proces koji će zajedno sa schedulerom 5 provjeravati svaki puta dostupnost posljednje verzije aplikacije. To se može mijenjati ali opet imamo previše zadataka, previše procesa, preveliko trošenje resursa, zbog toga su veb aplikacije postale svakodnevnica. Danas oblak servise 6 koje koristimo su također veb aplikacije koje čuvaju naše podatke na serveru. Pomoću veb aplikacija možemo na internetu obavljati sve poslove, trgovinu, sastanke, konferencije, i to samo korištenjem veb preglednika. 5 Scheduler kod operativnih sistema predstavlja vremenski okidač za izvršavanje nekog zadatka. 6 Cloud services predstavljaju veb aplikacije koje nam mogu poslužiti za čuvanje naših podataka, najbolji primjer su dropbox, dellcloud itd. 11

12 Danas su razvojni timovi veb preglednika omogućili izgradnju kompletne aplikacije u okviru preglednika, dakle moguće je obaviti sve što i na desktopu samo uz pomoć veb preglednika. Najbolji primjer za ove aplikacije jesu Micorosft Office online, WebSms itd. 2.3 Mobilne aplikacije Aplikacije za prenosive uređaje jesu softver koji je kreiran za mobilne uređaje kao što su pametni telefoni, fableti, tableti i slično. Instalacija istih može biti od proizvođača (prilikom proizvodnje uređaja), preuzimanjem sa veba ili sa nekog drugog izvora (Google Play, Apple Store itd). Specifičnost ovih aplikacija ogleda se u tome što se moraju raditi za svaku "porodicu" uređaja posebno (npr. za Android, za iphone i sl.) [4]. O popularnosti ovih aplikacija nije potrebno trošiti mnogo riječi, dovoljno je to da kompanije poput Apple-a na svome Apple Store-u ima 50 miliona aplikacija, Google također, što je dovoljan dokaz o zastupljenosti istih. Današnji prenosivi uređaju ne bi bili toliko korisni da nije aplikacija koje nam pružaju raznovrsne mogućnosti, praktično za svaki segment života. Počevši od saobraćajne navigacije pa do aplikacija za kućne pametne uređaje, gdje možemo kontrolisati praktično svaki uređaj koji ima mogućnost povezivanja na bežičnu mrežu. Mobilne aplikacije također pomoću API interfejsa daju mogućnost povezivanja na veb aplikaciju i tako ustvari veb aplikacija može biti instalirana i na desktopu, mobilnom telefonu i na pametnom satu itd. Razvoj mobilnih aplikacija za android platformu možemo razviti uz pomoć Java programskog jezika i u AndrodiStudio okruženju kompanije Google, a čiji kreator je InteliJ kompanija. Dok za iphone koristimo SWIFT programski jezik a XCode razvojno okruženje. Prava karakteristika mobilnih aplikacija se ogleda u tome što su nam razvojna okruženja pružila mogućnost komuniciranja sa svim komponentama mobilnog uređaja, pa tako možemo pomoću aplikacije pokrenuti GPS 7 prijemnik u telefonu, Wifi, Bluetooth, NFC 8, flash itd. Kontrolisanjem ovih komponenti imamo mogućnost razvijanja veoma korisnih aplikacija za sve segmente i sve oblasti ljudskog života. Aplikacije kao što su Health, Pedometer, Bloodpressure i mnoge druge korisne aplikacije mogu itekako pomoći u svakodnevnom 7 GPS čip Global Positioning System je čip u telefonu koji može komunicirati sa udaljenim satelitima i tako odrediti trenutnu lokaciju korisnika. 8 NFC Near Field Communication je standard a i uređaj u mobilnom telefonu koji nam daje mogućnost da razmjenjujemo sadržaj kada dodirnemo dva uređaja koji imaju podršku za NFC. 12

13 životu i aktivnostima. Za još jedan primjer uzmimo žiroskop komponentu u mobilnom uređaju, kontrolom ove aplikacije možemo napraviti 3D objekte i njihovo pomjeranje u prostoru, odnosno kako se mi okrećemo tako i objekti u mobilnoj aplikaciji. 13

14 3. Alati i tehnologije za razvoj veb aplikacija Kao i za razvoj desktop aplikacija tako i za razvoj veb aplikacija potrebno je koristiti određene metode, tehnologije i alate kako bi se postigla jedinstvena cjelina odnosno veb aplikacija. Kada su u pitanju veb aplikacije imamo mnogo alata ali i tehnologija koje su se dokazale kao pouzdane, skalabilne i fleksibilne. Zato prilikom razvoja veb aplikacije potrebno je dobro analizirati zahtjeve klijenta, dobro sagledati sve segmente koje treba da obuhvati data aplikacija i nakon toga odabrati odgovarajuću tehniku i alat za kreiranje iste. Danas postoji mnogo veb orijentisanih programskih jezika koji koriste različite tehnologije i tehnike. Popularni veb orijentisani jezici su PHP, PYTHON, PERL, JAVA, ASP, JS, NODEJS itd. Potrebno je veoma dobro poznavanje tehnologija da bi se razvila dobra veb aplikacija. Neke su jednostavnije za primjenu, dok su neke mnogo kompleksnije. Za neke tehnologije čuo je svaki prosječan korisnik. 3.1 Veb standardi i protokoli Svi podaci koji se šalju i primaju preko internet mreže bazirani su na TCP/IP 9 protokolu. Najkorišteniji Internet servis odnosno internet multimedijalna distribuirana biblioteka World Wide Web koristi HTTP 10 protokol (HiperText Transfer Protocol), naravno koji se nalazi na aplikativnom sloju OSI referentnog modela. HTTP se bazira na slanju zahtjeva i vraćanju odgovora (request/response), čime omogućuje prijenos podataka, informacija između klijenta, koji je poslao zahtjev za određenom informacijom, i naravno serverske strane koja će dati odgovor na postavljene zahtjeve ukoliko bude u mogućnosti pronaći traženu datoteku ili drugi sadržaj. Naš veb preglednik šalje zahtjev(http request) ka veb serveru, nakon što dobije zahtjev, veb server će pretražiti svoje skladište podataka i ukoliko pronađe traženo, vratiće 9 TCP/IP je skup protokola razvijen sa namjerom da omogući umreženim računarima da dijele resurse putem mreže, lokalne ili globalne. 10 HTTP je mrežni protokol koji pripada aplikativnom OSI sloju, a predstavlja glavni i najčešći metod za prenos podataka na vebu. 14

15 HTML 11 izvorni kod i JavaScript kod (koristeći TCP), usmjerit će pakete na veb pretraživač naravno opet uz pomoć HTTP-a i vraća ih u mrežu. Ukoliko server nije bio u mogućnosti pronaći traženi fajl ili neki drugi zahtijevani dokument bilo kog tipa, izgenerisat će nam sopstveni HTML sa kodom greške i porukom. Ovako je sve funkcionisalo na samom početku veba. Međutim osnova se nije znatno promijenila i dalje sve funkcioniše na konceptu zahtjeva i odgovora(engl. Request Response), sada je sve ubrzano, i dalje se koristi connection less 12 princip. Problem kod veb stranica je bio taj što nisu mogle ništa da obrade na osnovu naših zahtjeva već samo da vrate odgovor u vidu HTML koda kao što smo već gore spomenuli. Nismo imali mogućnost da na osnovu upisanih informacija dobijemo odgovor. Nije imala mogućnost dejta majninga 13 ( data mining ). Samo smo mogli na osnovu autorovih informacija saznati samo ono što su oni ponudili. Takve su bile statičke veb stranice. Primjer podrške neke tehnologije na serveru dat prikazan je na slici 1. Slika 1. Tehnologije podrške na web serveru 11 HTML je opisni jezik namijenjen za opis i prikaz veb strannica. 12 Connection less konekciono ne orijentisane su sve mreže koje nemaju stalnu konekciju sa serverom, a vezu uspostavljaju samo po potrebi. 13 Data mining je softver koji ima u sebi vještačku inteligenciju i može pamtiti i pratit naše korake na vebu i kasnije na osnovu toga na davati određeni sadržaj. 15

16 Razvojem veb tehnologija sada imamo mogućnost dinamičkog generisanja podataka, unosa, obrade, brisanja itd. moguće je uz pomoć data minig-a obrađivati naše informacije i nakon nekog vremena pregledati šta sve naše aktivnosti i kasnije na osnovu toga nam se generiše sadržaj. Veb aplikacije, nekada možemo naći i da su to dinamičke strane zasnovane su na principu da se HTML kod ne generiše dok klijent nije poslao zahtjev za istim. Upravo ovakvo generisanje daje mogućnost da sadržaj bude prilagođen prema želji korisnika, da na osnovu prethodnih koraka također generišu prilagođeni sadržaj, naravno sada pomoću data minig-a možemo dobijati prilagođen sadržaj i kada smo na drugoj lokaciji, također u zavisnosti od identiteta osobe. Primjer za identitet može biti sljedeći, s obzirom da znamo da je Google learning machines, i AI mašina, ukoliko u Google-u ja ukucam python meni će generisati sadržaj koji je vezan za programski jezik python. Zato što sam na Chrome pregledniku ulogovan sa mojim identitetom. Međutim ako na istom računaru zoolog se prijavi sa svojim parametrima i ponovo ukuca python njemu će Google izgenerisati sadržaj vezan za zmiju Piton. 3.2 Tehnologije za razvoj veb aplikacija Razvoj veb aplikacija se može raditi na više načine i sa više tehnologija. Postoji mnogo veb aplikacije koje su napisane u C, C++, Pascal programskim jezicima i funkcionišu besprekorno. Ali kako je veb napredovao tako su se javili jezici namijenjeni samo za razvoj veb aplikacija koji će jednostavnije i brže ali i pouzdanije omogućiti razvoj veb aplikacija. Primjer takvi programskih jezika jesu PHP, Perl, JavaScript, Python itd... Važno je napraviti razliku između skriptnih jezika i tehnologija koji se vežu za iste(npr: CGI tehnologija koristi dosta programskih jezika poput C/C++-a, PERL-a, TCL-a. Dok ako uzmemo za primjer ASP tehnologija, ona već koristi JScript ili VBScript, međutim Java koristi svoju Java tehnologiju itd. 16

17 Najpoznatije tehnologije koje se danas koriste za razvoj veb aplikacija su mnogobrojne, neke od njih su sljedeće: Ajax ASP ASP.NET ActionScript CSS ColdFusion CGI HTML Java JavaScript JSP Lasso Node.js OSGI Perl PHP PSGI Python Ruby 3.3 Veb tehnologije i skriptni jezici JavaScript Skriptni programski jezik, kao što je JavaScript je jezik koji se izvršava u veb pregledniku na strani korisnika. U suštini jedan od razloga kreiranja ovog skriptnog jezika je da bude blizak Javi po sintaksi i semantici, zbog lakšega korištenja, u početku je postojao kao objektno ne orijentisan jezik, međutim, danas postoji objektno orijentisana JavaScript i može mijenjati bilo koji programski jezik. Izvorno ga je razvila kompanija Netscape. JavaScript koristi ECMAScript standard. JavaScript s AJAX (Asynchronous JavaScript and XML) tehnikom pruža mogućnost veb aplikacijama da komuniciraju sa serverskim softverom, što veb aplikaciji daje izuzetnu interaktivnost i veoma pojednostavljeno korištenje. Iako je JavaScript klijentski skriptni jezik danas postoje ipak alati kao što je NodeJS koji omogućuju JavaScript-u da radi na serverskoj strani. 17

18 3.3.2 VBScript Možemo reći da je ustvari VisualBasic ali za veb preglednike. VBScript možemo definisati kao manji dio VisualBasic jezika. Njegova primjena je skoro ista kao i JaveScript-a, odnosno izvršava se u veb pregledaču. Velika mana ovog skriptnog jezika jeste što je podržan samo od strane Microsoft kompanije i samo za Internet Expolorer koji u ovom trenutku više ne postoji, već je imigrirao u Microsoft Edge veb pregledač. VBScript i Windows Scripting Host, koji je zadužen za izvršavanje programa, moguće je kodirati skripte koje rješavaju određene administracijske probleme u Windowsu. S obzirom da predstavlja uprošćeni skup VBasic naredbi, mnogo je lakši i elegantniji i jednostavniji za učenje od JavaScript-a, ali je manje popularan i zastupljen što se tiče klijentskog kodiranja, nije robusan mnogo i ima problema sa kompatibilnošću kod korisnika koji ne koriste Microsoft-ove pretraživače. ASP tehnologija je ovaj skriptni jezi proslavila, samo što u ASP-u VBScript koristi kao podrazumijevani jezik za razvoj serverskih (a ne klijentskih) skriptova Perl Perl je nastao kao alat kojeg je razvio Larry Wall dok je nastojao generisati neke izvještaje, a primjena skripti u Unix školjci i alata poput sed-a, i grep-a mu nije bila dovoljna kao lijeni programer, odlučio je oblikovati alat koji će mu olakšati posao. Perl nastoji ispuniti prazninu između programiranja niskog nivoa (C, C++, asembler) i programiranja visokog nivoa(ljuska OS-a) programiranje niskog nivoa teško, ali bez ograničenja uz dobro programiranje maksimalna brzina izvođenja na danom računaru programiranje visokog nivoa relativno lako i brzo pisanje koda, ali programi su najčešće spori, a mogućnosti su ograničene na naredbe koje su nam na raspolaganju u Perlu je relativno lako programirati, malo je ograničenja, izvođenje je uglavnom brzo zahvaljujući svojoj snazi i fleksibilnosti Perl se nametnuo kao jedan od najpopularnijih programskih jezika, posebno u domenu WWW [5]. Perl se u najvećem dijelu koristi za razvijanje CGI 14 aplikacija. 14 CGI je način na koji veb server prosljeđuje zahtjev korisnika do programa na serveru i vraća iste. 18

19 3.3.4 Python Python je jedan interpreterski objektno orijentisan, jezik visokog nivoa sa dinamičkom semantikom. Izgrađen je na visokom nivou podatkovnih struktura, kombinovanih sa dinamičkim pisanjem i dinamičkim spajanjem, što ga čini veoma atraktivnim za brze aplikacije. Početkom 1990 njegov razvoj je započeo Guido van Rossum. Python je jedan od malobrojnih programskih jezika koji su se razvili u akademskim uslovima, a dostigli su i komercijalni uspjeh i široku primjenu. Važilo je pravilo da akademske ustanove prave čiste jezike, sa jakom filozofskom pozadinom, i da te programske jezike rijetko ko koristi van samih univerziteta gdje su nastali. Primjer za to su: Haskell,Pascal, Algol,, Modula, Simula, itd. S druge strane, sa gledišta nauke slabi jezici za koje je zajedničko da imaju pragmatičan pristup, jezici pravljeni od hakera za hakere, su bivali prihvaćeni među programerima. Tako je bilo sa jezicima: Java, C, C++, PHP, Perl td. Python je spoj čistog jezika, jasno zamišljenog, dobro projektovanog i implemenitranog, lakog za upotrebu, a opet dovoljno moćnog i brzog da bi bio prihvaćen među programerima. Python nalazi primjenu u biološkim naukama, npr. za analizu gena, u matematici za simulacije i optimizaciju, kao algebarski sistem na računaru, alat za numeričku analizu, veštačku inteligenciju, itd. Python je odličan "lijepak jezik", jezik kojim se povezuju postojeći programi, pa im se preko Python-a daje zajednički interfejs. Često koristi kao script mašina u raznim programima: Za 3D animacije Blender i MAYA, dok za grafiku su poznati slobodni Linux programi koji su dostupni i za druge operativne sisteme Gimp i Inkscape, a kada su u pitanju igre, odnosno za kontrolu igre tu imamo Civilization IV itd. Ipak Python svoju snagu i moć pokazuje i nalazi u projektima koji su u potpunosti zasnovani na njemu. Najpopularnija torent klijent 15 aplikacija kao što je BitTorrent je izvorno napisan u istom. Google za pisanje svojih prvih veb robota je koristio također python. Google i dalje koristi mnogo njegovog koda. Youtube je baziran na Python-u, NASA također. Installer za Red Hat Linux je napisan u Python-u. 15 Torrent klijent je aplikacija koja nam omogućava da čitamo fajlove koje sadrže podatak o serveru koji koordinira skidanje te datoteke, kao i o datoteci samoj. To su oni fajlovi koje preuzmemo sa torrent sajtova i ubacimo u Torrent klijent. 19

20 Trenutno aktuelna verzija je 3.5, ali je u velikoj primjeni i prethodna verzija Kao Java i Ruby, ako se ne koriste pojedine platformske specifičnosti, isti programski kod može se interpretirati jednako pod Linux-om, Windows-om, ili MAC-om. 16 Glavnica Python-a napisana je u jeziku C i zove se CPython. Naravno postoji implementacija i u Javi Jython koja omogućava prevođenje koda u Java bajtkod i uporabu Java klasa unutar Python modula (fajlova koji sadrži Python programski kod). Implementacija Python veb framework-a pod imenom Pylons omogućuje visoku funkcionalnost Python-a do nivoa Jave. 17 Implementacija pod imenom IronPython projekat je Microsoft-a za.net okruženje. 18 Najzabavnija implementacija Python-a je u samom programskom jeziku, tzv. Py Py gdje je interpreter pisan u Python-u. Ova implementacija je znatno sporija od CPython -a, a prednost joj je u mogućnosti izmjene ponašanja interpretera u toku izvršavanja programa. 19 Postoje i neke druge primjene za platforme koje nisu spomenute, kao i za neka okruženja mobilnih uređaja [6] PHP PHP je jednostavan, ali prije svega moćan skriptni jezik koji se koristi za izradu veb aplikacija stranica. [7]. 20 PHP možemo koristiti na 3 načina: Skriptovanje sa strane servera Odnosno izrada aplikacija koja radi na serveru što je i njegova glavna namjena. Naredbeno skriptovanje što podrazumijeva da možemo izvoditi skripte iz komandne linije nešto slično Unix shell-u). Pomoću PHP-a možemo koristiti i za poslovne administracije sistema. 16 Python instalacija za sve platforme može se preuzeti sa

21 Grafičke aplikacije sa strane klijenta uz pomoć se PHP-GTK-om 21 na PHP-u se mogu napisati potpuno razvijene graphical user interface aplikacije. PHP možemo koristiti na skoro svim operativnim sistemima, od Unix-a do Windows-a i Mac OS X-a ASP (Active Server Pages) ASP je, tehnologija koja omogućuje programsku konstrukciju HTML stranica neposredno pred njihovu isporuku veb pregledniku. Microsoft je zvanično objavio ASP1996. godine pod šifrom Denali. ASP ne zavisi od konkretnog klijenta, odnosno čitača, jer se cjelokupan kod izvršava na serveru [8]. Tu imamo sljedeće prednosti, koje važe i za ostale serverski orijentisane tehnologije: Jedna po meni najbitnija stavka je da se aplikacije se mogu izvršavati u programskom jeziku koje veb preglednik u suštini ne podržava. Mogućnost programiranja veb aplikacija nezavisno od veb preglednika, bez kodiranja na strani klijenta Java apletima, DTML-om ili ActiveX-om svi oni zahtijevaju određene čitače ili platforme. Dostavljanje podataka veb pregledniku koji su mu inače nedostupni, Učitavanje veoma brzo jer do čitača stiže samo HTML, a ne neki kompletan kod, Siguran je programski kod ne može se vidjeti. Programiranje u Active Server Pages 3.0 je ustvari pisanje skripti koji koriste ASP objektni model. ASP ima sedam ugrađenih(engl.built-in) objekata: Application, Server, Session, Request, Response, ObjectContext, ASPError. Svaki objekat od svih ovih svojom funkcijom rješava određeni dio zadataka koje se postavljaju pred ASP kao serversku tehnologiju za razvoj veb baziranih aplikacija. E sada kada je u pitanju skriptanje u ASP tehnologiji to može biti ili u VBScript ili u JScript,. ASP veb aplikacije su kombinacija tri tipa sintakse: običnog teksta, HTML oznaka i ASP naredbi. 21 gtk.php.net 21

22 3.3.7.NET Framework Kada je u pitanju.net tehnologija dotnet ona predstavlja nov način razvoja aplikacija trenutno za Windows operativne sisteme. dotnet nasljeđuje Windows DNA tehnologiju za razvoj poslovnih aplikacija u tri sloja, koja je bila zasnovana na COM+ modelu [9]..NET Framework je ustvari platforma za izgradnju aplikacija koja treba da postane nezavisan od operativnog sistema, međutim razlog zašto je Microsoft drži samo za sebe je poznat. Također moguće je kreirati Windows aplikacije, veb servisa, aplikacija za prenosive uređaje isl. na relativno uniformisan i jednostavan način, uz jaku objektnu orijentaciju. Ispod framework-a nalaze se sistemski servisi. Trenutna implementacija koristi Win32 API i COM+, koji teoretski ali ne i praktično te servise može pružati bilo koji operativni sistem. Nakon sistemskih servisa odnosno iznad njih servisa se najbitniji dio, odnosno CLR (Common Language Runtime) zajedničko izvršno okruženje nisam mogao da nađem bolji prijevod ako postoji. Ustvari to je virtuelna mašina za.net). CLR učitava i izvršava izvorni kod napisan na bilo kom skriptnom jeziku koji može da bude kompajliranu MSIL (Microsoft Intermediate Language). Koncept dosta podsjeća na Javu. Na CLR se oslanjaju.net framework klase. Ove klase mogu biti instancirane iz bilo kog programskog jezika, i predstavljaju osnovu funkcionalnosti.net framework-a. Klase pokrivaju veoma veliku oblast, os servisa za pristupanje podacima do mrežnih biblioteka i upravljanja nitima (threads). Programer jednostavno naslijedi klasu i koristi je razvoj aplikacija je brz, grešaka je manje. Iznad klasa nalaze se posebne kolekcije objekata za rad sa podacima (ADO.NET) i XML-om. Dalje imamo podršku za dva (za sad) osnovna tipa aplikacija: za tradicionalne klijente koji koriste Windows Forms, kombinaciju VisualBasic i MFCformi, i za ASP.NET, koji uključuje Web forme i Web servise. Iznad ovoga dolazi se do CLS (Common Language Specification) i konačno do razvojnih jezika koji prate CLS. Zajednička jezička specifikacija (CLS) je skup pravila koje mora da zadovolji programski jezik da bi se mogao nazvati.net kompatibilnim. Za razvoj se mogu koristiti različiti programski jezici: VisualBasic.NET, C#,JScript.NET..., tačnije svaki jezik koji zadovoljava.net specifikaciju, tj. koji ima 22

23 kompajler za prevođenje u MSIL. Svi jezici su potpuno ravnopravni, jer bi trebalo da njihovi kompajleri generišu približno isti MSIL. Dakle, performanse ne bi trebalo da se razlikuju, što bi konačno dovelo do kraja rata programskih jezika. Još jedan veoma bitan zajednički koncept jeste CTS (Common Type System) zajednički sistem tipova. Svi.NET kompatibilni jezici koriste iste tipove podataka, koji su definisani na nivou framework-a, tako da je znatno olakšana jezička međuoperabilnost. Prilikom kompajliranja u.net-u, slično Javi, ne dobijamo odmah prirodni (native) kod specifičan za operativni sistem. Umjesto toga, vrši se kompajliranje u MSIL (Microsoft-ov posredni jezik). Ovaj kod nije namijenjen niti jednom operativnom sistemu, i u njega se prevode svi.net kompatibilni jezici. Dužnost jezičkih kompajlera je da algoritamski isti programi u različitim jezicima generišu približno isti MSIL. Da bi se program izvršio, zadužen je tzv. JIT kompajler (engl. Just-In-Time) koji prevodi MSIL u prirodni kod specificiran od strane operativnog sistema i same mašine na kojoj se program izvodi. Tek tad operativnisistem zaista može izvršiti program. Praktično, faza kompajliranja je ista za sve platforme; za druge operativne sisteme )ili novi hardver) potrebno je obezbijediti samo izvršnu fazu za to okruženje ASP.NET ASP je sa svojom popularnošću nadmašio svoju ulogu, i morao je biti zamijenjen tehnologijom koja je pisana u C# a koja će biti u stanju da se ispuni sve zahtjeve postavljene od današnjih veb aplikacija. Loše strane ASP su: Piše se pomoću skript jezika (najčešće VBScript ili JScript) koji su interpretirani, a ne kompajlirani. Manjkavosti interpretiranih jezika su nedostatak jakih tipova i kompajliranog okruženja. ASP kešira kod, ali je on ipak interpretiran, što vodi do problema sa performansama i skalabilnošću. Miješanje koda i sadržaja: iako u početku smatrano prednošću, ipak je mana (Web dizajneri i programeri) rade na istim fajlovima, što nimalo nije praktično. Komplikovaniji kod je često značio i mnogo veće izvorne datoteke. 23

24 U ASP-u se kodiraju i jednostavne funkcije. ASP.NET je znatno komforniji, zahvaljujući serverskim kontrolama dosta koda je već napisano, a programeri ga samo koriste. ASP rješava probleme kompatibilnosti uređaja (tableti, mobilni telefoni...). ASP.NET kontrole su dovoljno inteligentne da na osnovu HTTP zahtjeva same otkrivaju šta se nalazi sa druge strane, i emituju odgovarajući kod. Uvođenjem ASP.NET-a dobija se sljedeće: Ne zavisnost mašina za skriptovanje i omogućavanje da strane budu tipski bezbjedne i kompajlirane mnogo bolje performanse. Manji kod koji je potrebe za razvoj aplikacije (serverske kontrole). Jednostavne instalacije Web aplikacija (XCOPY Deployment) XML konfiguracijska datoteke. Problemi koji su postojali ranije sa COM komponentama kod three-tier 22 veb aplikacija zbog neophodne registracije na serveru; sada Shadow Copying komponente koje se nalaze u bin folderu u okviru virtuelnog foldera (to je funkcija CLR-a; nema locking komponenti koje se trenutno implementiraju jer ustvari pozivaju sa drugog mjesta, iz cache-a, a ne sa originalne lokacije). Error handler (automatsko otkrivanje memory leak-a i restart problematičnih ASP.NET aplikacija, otkrivanje requesta na beskrajnom čekanju i mrtvih petlji i njihovo rješavanje, smještanje stanja sesije eksterno tako da je moguć restart ASP.NET aplikacija bez gubitka podataka krajnjeg korisnika. Bolje performanse: svaka ASP.NET strana je kompajlirana. Kompajliranje strane nije jeftino i može da potraje nekoliko sekundi za složene strane. Ali, kompajliranje se uvijek vrši samo jednom za datu.aspx datoteku. Svi naknadni zahtjevi za stranom (čak i nakon restartovanja Web servera) zadovoljavaju se instanciranjem generisane klase i zahtjevom da se strana vizualizira. Rezultat su odlične performanse, a cijena nešto malo prostora na disku za DLL-ove. Kao što JSP strane mogu da pozivaju sve ranije napisane Java klase (uključujući ijavabeans komponente, JDBC...), cjelokupna.net biblioteka klasa je dostupnaasp.net stranama. Pristup podacima se vrši preko klase biblioteke ADO.NET. 22 Three-Tier web apps su troslojne veb aplikacije 24

25 4. Nastanak framework-a Pojavom prvih računara koji su u početku bili namijenjeni samo za računanje jednostavnih matematičkih operacija sa manjim ciframa bio je prvi korak ka programiranju mašina. Njihovo kodiranje, odnosno programiranje i pisanje instrukcija je bilo jako složeno, a programiranje i kontrolisanje istih su znali samo njihovi kreatori, najbolji matematičari i fizičari koji su tada proučavali računare. Bili su svjesni tadašnjih ograničenja koja se moraju riješiti kako bi mogli računati što veće operacije, međutim tada je problem bio sačuvati rezultate i ponovo ih pozvati po potrebi. Uvođenjem logičkih kola su se djelimično riješili svi problemi, kasnije tranzistora i prvih mikročipova. Pojavom mikročipova počelo je i pisanje prvih složenijih instrukcija i obrada binarnih kodova što je dovelo do pisanja prvih programskih jezika od kojih ćemo pomenuti neke [10]: 1951 Regional Assembly Language 1952 Autocode 1954 IPL (preteča to LISP) 1955 FLOW-MATIC (devlo do COBOL) 1957 FORTRAN (First compiler) 1957 COMTRAN (prethodnik od COBOL) 1958 LISP 1958 ALGOL FACT (forerunner to COBOL) 1962 APL 1962 Simula 1962 SNOBOL 1963 CPL (forerunner to C) 1964 Speakeasy (computational environment) 1964 BASIC 1964 PL/I 1966 JOSS 1967 BCPL (forerunner to C) environment) 25

26 U ovim programskim jezicima moguće je bilo napisati moćne programe koji su mogli ispuniti sve tadašnje zahtjeve pa čak i najjačih državnih zahtjeva. Međutim u tom trenutku je bio svaki problem rješiv i jednostavan za matematičare koji su programirali u njima, ali pojavom umrežavanja računara, Interneta i veba nastaju novi problemi što je dovelo do nastanka novih programskih jezika. Ali i novonastali programski jezici su imali potrebu da probleme na vebu riješe što brže i bolje čime je nastala potreba za nastanak prvih framework-a 23. Framevork će omogućiti programerima da na najbrži način izgrade veb aplikaciju koja će sve zahtjeve korisnika zadovoljiti. 4.1 Django framework Django je jedan od mnogobrojnih veb framework-a koji danas postoje i koji su široko primijenjeni. Ono što čini Django veb framework različitim od drugih jeste to da nam daje mogućnost da na najlakši način brzo izgradimo veb aplikaciju sa manje linija koda. Ako želimo da se malo bolje upoznamo sa Django veb framework vidjet ćemo da je to high-level Python-ov framework koji obezbjeđuje brzu i čistu izgradnju veb aplikacija i pragmatičan dizajn istih. Izgrađen je od strane najiskusnijih programera, i vodi brigu o svim komplikacijama veb programiranja, tako da se možete fokusirati na pisanje vaše aplikacije bez potrebe da se vraćate na isto. Django je besplatan i otvorenog koda [11]. Nevjerovatno brz - Django je dizajniran to pomogne programerima da aplikaciju iz koncepta u stvarnost što je moguće brže. Popunjen maksimalno - Django uključuje nekolicinu dodataka koje možete koristiti da obuhvatite česte veb zahtjeve. Django je uzeo u obzir autentikaciju korisnika, administraciju sadržajem, mapa strane, RSS feeds 24 i mnoge druge zadatke upravo iz kutije. 23 Pojam Framework predstavlja konceptualnu strukturu čiji je cilj opsluživanje i učestvovanje u razvoju nečeg korisnog. 24 RSS Really Simple Syndication predstavlja jednostavan način za automatsko preuzimanje sadražaja sa veb lokacija koje volite i često koristite i integraciju istih na vašu veb stranu. 26

27 Uvjerljivo siguran - Django je zaštitu shvatio ozbiljno i pomažemo programerima da izbjegnu mnoge poznate propuste koji postoje kod zaštite kao što su SQL ubrizgavanje 25, XSS 26, CSRF 27 i clickjacking 28. Django-ov korisnički autentifikacioni sistem omogućava siguran način za upravljanje korisničkim nalozima i lozinkama Neizmjerno skalabilan / Nevjerovatno svestran - Neki od najopterećenijih strana na vebu koriste Django mogućnost da se brzo i fleksibilno prilagode. Kompanije, organizacije i vlade koriste Django da izgrade sve vrste zahtjeva, od stvari kao što su upravljanje sadržajem pa sve do društveno i naučno-istraživačkih zadataka. 4.2 Kratak prikaz istorijskog razvoja Django framework-a Django kao i svi ostali radni okviri ima svoj nastanak i faze kroz koje je prolazio tokom svoje evolucije kao i pravila po kojima se izdaju unapređenja, dopune i verzije koje se dugo podržavaju Django podržane verzije Odlike izdanja (A.B, A.B +1, itd) će se dogoditi od prilike svakih osam mjeseci. Ova izdanja će sadržati nove odlike, mogućnosti, svojstva i unapređenja na već postojeće mogućnosti.z Zakrpna izdanja (A.B.C, itd) će se izdavati po potrebi, da bi se popravili bagovi 29 ili problemi u zaštiti. Ova izdanja su uvije 100% kompaktibilna sa povezanim izdanjima, osim u iznimnim situacijama kada je nemoguće zbog sigurnosnih razloga ili da bi se izbjeglo gubljenje 25 SQL injection predstavlja direktan napad na vašu bazu podataka. 26 XSS je napad na skriptu veb aplikacije i promjene ponašanja iste na način koji to odgovara napadaču. 27 CSRF - je napad kod kojeg napadač u ime ovlaštenog korisnika pristupa nekom web odredištu. 28 Clickjacking predstavlja marketiranje koje primorava korisnika da klikne na određenu fotografiju radi pregleda sadrćaja. 29 Bug Bag je naziv za problem u radu programa odnosno prekid rada programa i greške koje se pojave tokom rada ili po zatvaranju programa. 27

28 podataka. Stoga ukoliko se postavlja pitanje da treba nadograditi na aktuelnu verziju izdanja, odgovor Django-a je naravno da [11]. Međutim postoje i sigurne verzije Djanga, odnosno one koje su nazvane Dugoročna podrška (engl. Long Term Support). Ove verzije će sadržati sigurnosna rješenja kao i zaštitu od gubljenja podataka koja će se primjenjivati za garantovani period vremena, obično 3 godine [12]. Tabela 1. Historijski prikaz Django verzija od prve verzije do današnje aktuelne (Jun 27, 2016 godine) Broj izdanja Posljednje izdanje Gašenje galvne podrške Gašenje produžene podrške Avgust 2016 April LTS Decembar 2015 April April 1, 2015 Decembar 1, April 1, 2015 April 1, Novembar 6,2013 Septembar 2, LTS Februare 26,2013 Oktobar 1, Mart 23,2012 Februar 26, verzije koje više nisu podržane od strane Djanga - Verzije koje su još uvijek podržane od strane Djanga Tabela 2. Prikaz budućih verzija Django razvoja Broj izdanja Posljednje izdanje Gašenje glavne podrške Gašenje produžene podrške 1.10 Avgust 2016 April 2017 Decembar LTS April 2017 Decembar 2017 Makar do Aprila Decembar 2017 Avgust 2018 April Avgust 2018 April 2019 Decembar LTS April 2019 Decembar 2019 Makar do Aprila Decembar 2019 Avgust 2020 April

29 4.3 Komponente Django framework-a Kao što smo već iznad naveli da je Django izuzetno pouzdan i brz framework za izradu veb aplikacija koje će biti brze i pouzdane i naravno prije svega sigurne od napada, vjerovatno prosječan čitalac će se zapitati šta je to što ovaj framework čini tako brzim s istovremeno i pouzdanim i sigurnim. Upravo je to razlog što su jedne od najpopularnijih veb aplikacija razvijene u Django framework-u o kojima će nakon ovog dijela biti govora. Django je podijeljen u nekoliko modula koji funkcionišu kao jedna cjelina a svaki modul za sebe obrađuje podatke i sve što je napisano od instrukcija i samo obrađene informacije šalje modulu kojem je potrebno i svi oni zajedno čine tako brz framework i to je ono što ga najviše odlikuje. Django posjeduje sljedeće module: 1. Objektno-relaciona mapiranja 2. URL i Views 3. Templejti 4. Forme 5. Autentikacija 6. Administracija 7. Internacionalnost Objektno-relaciona mapiranja Naime radi se o sljedećem, u ovom modulu se definišu modeli podataka 30 kompletno u Python-u. Pristup bazi podatka API besplatno, ali naravno može se pisati i SQL u koliko bude potrebno. Svaki model je Python klasa koja je pod klasa dango.db.models.model Svaki atribut modela predstavlja polje u bazi podataka. Sa svim ovim, Django vam pruža auto-generisani pristup bazi podataka API [13]. Primjer prostog modela u Django modulu models.py 30 Kod Djanga model je jedan, definitvni izvor informacija o vašim podacima. Sadrži osnovna polja i ponašanje vaših podataka koje čuvate. Svaki model je mapiran i jednu tabelu u bazi podataka. 29

30 from django.db import models class Person(models.Model): first_name = models.charfield(max_length=30) last_name = models.charfield(max_length=30) Slika 2. Primjer dinamičkog kreiranja tabele u bazi podataka URL i Views Čista, elegantna URL 31 šema je jedan važan detalj u visoko-kvalitetnoj veb aplikaciji. Django pruža podršku za predivan URL dizajn i ne stavlja nikakav suvišni sufiks kao što je.php ili.aspx itd. Da bi se dizajnirao URL za neku aplikaciju, potrebno je kreirati Python modul koji ima naziv URLconf. Kao tabela sadržaja za vašu aplikaciju, sadrži jednostavno mapiranje između URL-a i views-a 32. Primjer jednostavnog URL mapiranja slika 3 i pozivanje svih objekata u views.py: from django.conf.urls import url from. import views urlpatterns = [ url(r'^bands/$', views.band_listing, name='band-list'), url(r'^bands/(\d+)/$', views.band_detail, name='band-detail'), url(r'^bands/search/$', views.band_search, name='band- Slika 3. URL mapiranje ka određenom modulu u views-u urls.py 31 URL Unifrom Resource Locator je putanja do određenog sadržaja na internetu te se naziva i veb adresa. 32 Views u Django veb framework-u je Python funkcija koja koja uzima veb zahtjev i vraća veb odgovor. 30

31 from django.shortcuts import render def band_listing(request): """pregled svih bendova.""" bands = models.band.objects.all() return render(request, 'bands/band_listing.html', {'bands': bands}) Slika 4. Pozivanje svih informacija o bendu iz baze podataka Templejti Django templejt jezik je dizajniran da nađe balans između moćnog i lakog. Dizajniran je da se osjećate lagodnim i veoma je lak za učenje i primjenu baš kao i radu HTML-u koji koriste front-end programeri. Ali također je i fleksibilan i visoko proširiv, dozvoljavajući programerima da povećaju jezik templejta po potrebi. Primjer jednostavnog templejta prikazan je na slici 5: <html> <head> <title>bend lista</title> </head> <body> <h1>svi bendovi</h1> <ul> {% for band in bands %} <li> <h2><a href="{{ band.get_absolute_url }}">{{ band.name }}</a></h2> {% if band.can_rock %}<p>ovaj bend je rok!</p>{% endif %} </li> {% endfor %} </ul> </body> </html> Slika 5. Jednostavan primjer templejt jezika 31

32 Forme Django posjeduje moćnu biblioteku formi koje rade sa formama kao HTML, validirajući korisničke informacije koje su poslane, pretvarajući ih u nativne Python tipove. Također obezbjeđuje način generisanja formi iz postojećih modela i koristi te forme da ažurira i kreira podatke. from django import forms class BandContactForm(forms.Form): subject = forms.charfield(max_length=100) message = forms.charfield() sender = forms. field() cc_myself = forms.booleanfield(required=false) Slika 6. Validacija forme u modulu forms.py Autentikacija Django dolazi s potpuno opremljenim i sigurnim sistemom za provjeru autentičnosti. Ona obrađuje korisničke račune, grupe, dozvole uz korisničke sesiije bazirane na kolačićima 33. To vam omogućuje da lako izgradite veb stranice koje omogućuju korisnicima kreiranje naloga i sigurnu prijavu i odjavu. 33 Cookie je tekstualna datoteka koja se nalazi u veb pregledniku i čuva podatke o korisniku i njegovim aktivnostima. 32

33 from django.contrib.auth.decorators import login_required from django.shortcuts import def my_protected_view(request): """pristup odobren samo ulogovanim korisnicima""" return render(request, 'protected.html', {'current_user': request.user}) Slika 7. Primjer pružanja pristupa ulogovanim korisicnima i zabrane onima koji nisu ulogovani Administracija Jedan od najboljih dijelova Djanga jeste automatski administracijski interfejs. Čita meta podatke 34 u vašim modelima da pruži moćan i proizvodno spreman interfejs koji će kreatori sadržaja odmah koristiti u vašoj aplikaciji. Veoma je jednostavan za instalaciju i pruža mogućnost prilagođavanja mnogih sitnica. from django.contrib import admin from bands.models import Band, Member class MemberAdmin(admin.ModelAdmin): """prilagođavanje izgleda koji se automatski generisao.""" list_display = ('name', 'instrument') list_filter = ('band',) admin.site.register(band) # za podrazumijevane opcije admin.site.register(member, MemberAdmin) # prilagođene opcije Slika 8. Kontrola administracijskog dijela u admin.py modulu 34 Metadata meta podaci su podaci koji opisuju drugi skup ili zasebni dio podataka. 33

34 Internacionalnost Django nudi punu podršku za prevođenje teksta u različite jezike, plus lokalnospecifične formate vremena, datuma, brojeva kao i vremenskih zona. On dozvoljava programerima i templejt autorima da odrede koji dio njihove aplikacije treba biti preveden ili formatiran za lokalne jezike i kulture, i koristi te začkoljice da prilagodi veb aplikacije za pojedine korisnike u zavisnosti od njihovih postavki.primjeri prevođenja jednog dijela aplikacije i prilagođavanje korisnicima dat je na slikama 9 i 10. {% load i18n %} <html> <head> <title>{% trans 'Početna strana - Dvorana slavnih' %}</title> </head> <body> {# Prevedonu u pregledu #} <h1>{{ message }}</h1> <p> {% blocktrans count member_count=bands.count %} Ovdje je samo bend u cjeloj dvorani: {% plural %} Ovdje je{{ member_count }} band u dvorani poznatih: {% endblocktrans %} </p> <ul> {% for band in bands %} <li> <h2><a href="{{ band.get_absolute_url }}">{{ band.name }}</a></h2> {% if band.can_rock %}<p>{% trans 'Rok bend!' %}</p>{% endif %} </li> {% endfor %} </ul> </body> </html> Slika 9.Prevođenje teksta u templejt jeziku from django.shortcuts import render from django.utils.translation import ugettext def homepage(request): """ prikazuje početnu stranu sa dobrodošlicom koja se prevodu na jeziku korisnika koji posjećuje. """ message = ugettext('welcome to our site!') return render(request, 'homepage.html', {'message': message}) Slika 10. Funkcija prevođenja teksta u views.py modulu 34

35 4.4 Aplikacije razvijene u Django framework-u Do sada samo teorijski pričali o Django framework-u, međutim najbolja njegova primjena se ogleda u praksi. Brzina, sigurnost i fleksibilnost koju nudi ovaj framework nisu ostavili ravnodušnim ni najveće i najopterećenije svjetske veb aplikacije od kojih ćemo pomenu i kratko opisati neke od njih. Django nudi izuzetnu brzu i skalabilnu izgradnju veb aplikacije tako da oko glavnih stvari u kojim bi izgubili mnogo vremena ovdje dobijamo već gotovo, bilo je već riječi o administraciji. Primjera radi uporedit ćemo klasično programiranje veb aplikacije u PHP skriptnom jeziku, dakle potrebno je krenuti od nule, prvo kreirati bazu podatka, pa voditi brigu o svakom polju i svakoj tabeli i razmišljati šta nam sve treba, kasnije ako se promjene zahtjevi svaki puta moramo se mučiti sa bazom podataka. Nakon što kreiramo bazu podataka potrebno se povezati na bazu podataka pa odraditi testiranje pa tek onda početi osnovna načela programiranja. Dok u Django-u možemo to odraditi sve iz terminala sa samo par naredbi a u settings.py fajlu izaberemo ime baze i uradimo migraciju i odmah smo spremi za rad. To je samo jedan prost primjer, a ovakvih primjera ima zaista mnogo. Danas vjerovatno jedne od najpopularnijih i najposjećenijih veb aplikacija koriste Django: Instagram Instagram je društvena mreža na koju se svakog dana uploaduje oko 1 terabajt slika i isto toliko video materijala, svakog dana dvije stotine miliona aktivnih korisnika. Ovaj podatak govori o tome koliko Django pruža pouzdanosti i skalabilnosti da zadovolji čak toliki protok informacija Mozila Jedan od najpopularnijih veb preglednika kakav je mozila za svoju veb aplikaciju koristi Django framework. 35

36 Pinterest Društvena mreža koje okuplja ljude sa velikim idejama i sjajnim smislom za uređenje svoga doma i života. Danas je dosegla svoju najveću ekspanziju i naravno kompletno je razvijena u Django veb framewrok-u National Geographic Nije potrebno trošiti mnogo riječi o ovom TV servisu, magazinu i veb aplikaciji koja nam svakog dana pruža nevjerovatne informacije iz cijelog svijeta. Također koriste Django za svoje zadatke. Ovo nisu jedine aplikacije koje su koristile Django framewrok za izradu, već smo spomenuli samo neke od njih koji su dostigli najveću popularnost i pomoću Django rest framework-a razvijeni su API za mobilne aplikacije koje svakog dana koristi nekoliko milijardi korisnika. 36

37 5. Primena Django famework-a za razvoj veb aplikacije Razlozi koje smo spomenuli su dovoljni da se zaintrigira svaki korisnik koji voli kreirati veb aplikacije. Django je framework koji ne ostavlja ravnodušnim čak i ako ima onih koji nalaze određene nedostatke poput komplikovanog URL sistema, njihov redoslijed itd. Napraviti aplikaciju u bilo kom programskog jeziku ili skriptnom jeziku može često biti mukotrpan rad, još uz to ako želimo da razvijemo aplikacije za mobilne platforme tek tada su još veći problemi oko API interfejsa, dozvola pristupanja itd. Za sve ovo Django se pobrinuo na najbolji mogući način kao što je već rečeno. 5.1 Primjena Django framework-a za razvoj ecommerce veb aplikacije Razviti aplikaciju u ovom framework-u u početku može biti malo čudno, u zavisnosti od operativnog sistema koji koristimo. U koliko smo ljubitelji operativnih sistema otvorenog koda onda vjerovatno smo već upoznati sa mnogo stvari, jer kako je poznato operativne sisteme otvorenog koda koriste samo napredniji korisnici i entuzijasti. Prvi uslov koji nam je potreban da bi mogli kreirati Django veb aplikaciju je Python, jer kao što smo već rekli Django je samo veb framework, ali je u pozadini programski jezik Python. U zavisnosti od operativnog sistema, Python nam je već instaliran u operativninim sistemima koji su otvorenog koda, kompletna Linux familija, naravno i MacOS u sebi ima instaliran Python tako da Unix-like 35 korisnici ne moraju brinuti o prvom koraku tj instalaciji Python-a. Kod Winodows operativnog sistema potrebno je preuzeti Python sa zvanične stranice istog. Nakon instalacije Python-a dobro je provjeriti koju verziju Python-a koristimo, jer Python verzije 3 se itekako razlikuje od Python verzije 2. U komandnoj liniji (engl. Command prompt) ili u terminalu potrebno je upisati python -v nakon čega ćemo vidjeti koju verziju koristimo. Što je prikazano na slici ispod. 35 Unix-like su svi operativni sistemi koji potiču od Unix komandnog operativnog sistema. 37

38 Slika 11. Provjera verzije Python-a Uvom trenutku posljednje verzije su i Kada je instaliran Python, sljedeći korak 36 jeste instalacija virtuelnog okruženja koja se instalira jednostavnom komadnom virtualenv -naziv /lokacijainstalacije kao što je prikazano na slici 13: Slika 12. Instalacija vrutelnog okruženja Virtuelno okruženje će sa sobom instalirati sve što je potrebno za njegovo optimalno funkcionisanje. Nakon instalacije potrebno je lokaciju na kojoj ste trenutno promijeniti u lokaciju direktorijuma u kojem ste kreirali virtuelno okruženje i aktivirati isto komandom Unixlike (soruce bin/activate), Windows (Scriptis/activate). Nakon ovog koraka u terminalu se treba pojaviti ime virtuelnog okruženja na trenutno aktivnoj liniji. Sada je sve spremno za instalaciju Django veb framework-a, jednostavno je potrebno upisati komandu pip install Django i naš terminal će preuzeti aktuelnu verziju Django-a. Slika 13. Aktivacija virtuelnog okruženja i instalacija Django-a 36 Kod Linux operativnih sistema potrebno je instalirati python-dev-tools i python pip instalacioni paket. 38

39 Sada kada je Django instaliran potrebno je kreirati projekat i aplikaciju koju želimo razvijati, za kreiranje projekta služi komanda django-admin.py startproject nazivprojekta nakon čega se kreira projekat, a u okviru projekta kreiramo aplikaciju komandom manage.py startapp naziv aplikacije. Slika 14. Pokretanje projekta Slika 15.Pokretanje aplikacije 39

40 Nakon ovih koraka struktura direktorijuma projekta trebala bi izgledati kao na slici 17: Slika 16. Struktura projektnog foldera To je sve što nam je potrebno, sada počinje razvoj aplikacije. Sljedeći korak jeste odabrati alat za razvijanje Django aplikacije. 5.2 Razvoj aplikacije Odabirom alata za razvijanje aplikacije stupamo u finalni korak podešavanja okruženja, ali prvi korak u razvoju veb apliakcije. Konkretno za primjer razvoja ecommerce aplikacije korišteni su sljedeći alati i tehnologije: Operativni sistem: MacOS X El Capitan , 40

41 Programski jezik i programerski alati za razvoj: Pyton , Virtualenv , Pip 8.1.1, Django 1.8.4, Pillow 2.9.0, Braintree payment system , PyJWT 1.4.0, Requests 2.7.0, Markdown 2.6.2, Tehnologije: Alati tekst editori: HTTP Sublime text 3 HTML 5 Brackets CSS 3 Finder AJAX XML JavaScript BootStrap 3 Rest CGI 5.3 Django veb aplikacija za ecommerce Elektronsko poslovanje danas gospodari svijetom Interneta, računara, mobilnih telefona, praktično većinski dio Interneta se svodi na elektronsko poslovanje, nekada je u obliku kojeg mi poznajemo kao što su veb prodavnice, Amazon, Aliexpres, ebay itd, nekada je to u obliku kojem mi ne poznajemo, adware 37, adsense 38, popup 39 ili neki drugi oblik. Ukoliko uzmete u obzir bilo koji segment elektronske prodavnice vjerovatno ste se pitali a kako ovo funkcioniše? Upravo je to razlog odabira da kreiram jednu takvu aplikaciju. Čitajući i istražujući o ovom obliku veb aplikacija činilo se sve tako jednostavno, međutim kada se prione na rad istih shvatite kako malo poznajete svijet elektronskog poslovanja. Aplikacija koja će nadalje biti opisana i prikazana izgrađena je iz 4 zasebna modula: 1. Produkti (svi produkti koji će biti za prodaju) 2. Korpa (mjesto gdje se čuvaju produkti tokom kupovine) 3. Narudžba (modul koji koristimo za knjiženje i naplatu produkta iz korpe) 37 Adware oglašivački softver koji se instalira uz neki softver koji se svakodnevno koristi i nakon toga preuzima reklame sa interneta te ih prikazuje na našem računaru. 38 AdSense aplikacija Google kompanije koja se ugrađuje u željenu aplikaciju kako bi posjetioci klikom na reklame Vam povećali profit. 39 Popup iskačući prozorčići koji se pojavljuju u veb pregledniku u svrsi reklamiranja nekoga ili nečega. 41

42 4. Obavještenja (modul na kojem možete naći sva nova unapređenja i ažuriranja za aplikaciju) Svaki od ovih modula obavlja svoj zadatak za sebe ali istovremeno i komunicira sa ostalim modulima u svrhu obezbjeđivanja aplikacije koja će raditi kao jedna cjelina. Ova 4 modula koja će Vam omogućiti da bezbjedno obavite svoju kupovinu kompletno su razvijeni u Python-Djnago-u osim braintree-a koji se koristi za knjiženje kupovine i naplatu. U daljem radu dat je prikaz konkretne aplikacije kao i API interfejsa za aplikaciju za pametne telefone. 5.4 Početna strana Na slici 18 prikazana je početna strana ecommerce veb aplikacije na kojoj možemo vidjeti naziv veb aplikacije, navigacijski meni u kojem možemo se ulogovati ili registrovati, vršiti jednostavnu pretragu ili ići na prikaz svih produkta, nakon toga vidimo sliku cover sliku koja služi za reklamiranje određenog proizvoda, i nakon toga vidimo Preporučeni produkti. Radi se o tome da na osnovu vaše sesije u veb pregledniku prikazat će se produkti koje ste najviše gledali i produkte slične njima za koje možete biti zainteresovani. Ovdje je korištena funkcija koja iz cookie-a uzima podatke i na osnovu ih podataka izlistava produkte. Izvorni kod biće dat u prilogu. 42

43 Slika 17. Početna strana ecommerce veb aplikacije 43

44 Nadalje vidimo stavku istaknuti produkti Ovdje je korištena Python lamda funkcija, koja će svaki puta pri osvježenju stranice prikazati nove produkte što je izuzetno dobra funkcija pythona koja vam omogućava raspored produkta na osnovu osvježenja stranice. I na kraju prikazan je podnožje početne strane. 5.5 Svi produkti Na slici 19 dat je prikaz aplikacije nakon što smo kliknuli na All products odnosno link koji će nas dovesti na izlistavanje svih produkta koji postoje u bazi podataka svih vrsta. Slika 18. Prikaz svih produkta Lijevo na slici vidmo napredni sistem za pretragu gdje možemo izvršiti pretragu na osnovu nekoliko parametara zadati naše kriterijume po kojima želimo izvršiti pretragu. Također imamo opciju za brisanje svih kriterijuma ukoliko to bude potrebno. Sa ovog mjesta možemo 44

45 kliknuti na određeni produkt koji želimo da kupimo ili jednostavno možemo izabrati kategoriju koju želimo i izlistavati sve produkte koji su vezani za tu kategoriju. 5.6 Pojedinačni produkt Nakon klika na određeni proizvod link nas je doveo do strane na kojoj je data mogućnost kupovine produkta, odabira svojstava i količine što je prikazano na slici 20: Slika 19. Prikaz i kupovina željenog proizvoda Dakle vidimo da imamo mogućnost da ovaj produkt podijelimo sa prijateljima na društvenim mrežama a također vidimo i podmeni slični produkti, naime radi se o funkciji koja izlistava slične produkte na osnovu kategorije u kojoj se nalazi i njenih atributa. Ovdje također možemo promijeniti svojstvo produkta, u ovom slučaju možemo izabrati kapacitet telefona. Ono što bih želio naglasiti jeste da je sve dinamički, dakle ukoliko promijenimo atribut telefona da nam bude 64GB promijenit će se i cijena i kapacitet dinamički 45

46 bez osvježavanja stranice a što nam omogućava AJAX tehnologija 40. Šaljemo zahtjhev za promjenu atributa ali sve pomoću AJAX tehnologije koja može slati podatke bez osvježavanja stranice. Ukoliko nakon odabira željenog produkta kliknemo na dugme Dodaj u korpu dobijamo obavještenje da smo uspješno dodali produkt u korpi naravno također bez osvježenja stranice što je prikazano na slici 21: Slika 20. Dodavanje produkta u korpu Nakon što smo produkt stavili u korpu, da se primijetiti da se broj pored ikonice korpe promijenio, sada je broj 1 što znači da imamo jedan produkt u korpi za kupovinu, naravno sve dinamički uz pomoć AJAX zahtjeva. 40 AJAX akronim od Asynchronous JavaScript And XML(više u poglavlju 6). 46

47 Slika 21. Promijenjen atribut nakon dodavanja u korpu I nakon dodavanja u korpu možemo promijeniti atribut produkta a da se atribut mijenja direktno u korpi, JavaScript i AJAX zaista daju izvanredne mogućnosti. Slika 22. Promijenjen atribut nakon dodavanja u korpu Dakle vidimo da se promijenio atribut ali ne i URL stranice. 47

48 5.7 Korpa za kupovinu Sada klikom na ikonu korpe dobijamo sljedeći prikaz: Slika 23. Prikaz korpe za kupovinu produkta Sa slike 23 vidimo da imamo mogućnost promjene količine artikla, što će dinamički promijeniti cijene i porez naravno uz pomoć AJAX zahtjeva i nekoliko linija koda u views.py (korpa) modulu. Također ovdje možemo odustati od kupovine ili izbrisati artikal što će dinamički isprazniti našu korpu. 48

49 5.8 Plaćanje i kupovina Nakon klika na dugme provjera dobijamo sljedeći prikaz: Slika 24. Upis adrese za dostavu i adrese za plaćanje U ovom dijelu jednostavno ćemo upisati informacije te nakon toga dobiti upitnik da li smo unijeli ispravne informacije. Ovdje je potrebno upisati adresu dostave i adresu plaćanja. Nakon ovog dijela, dva koraka nas dijeli od kupovine. 49

50 Slika 25 Potvrda željene adrese Sa slike 24 vidimo da nakon upisa adrese jednostavno selektujemo naše adrese ili dodamo novu ukoliko postoji potreba za tim, ili možemo nastaviti i platiti pouzećem. Slika 26. Pregled svih informacija i upis podataka za plaćanje 50

51 Sa slike vidimo da možemo platiti PayPal nalogom ili platnom karticom bilo kreditnom ili debitnom karticom. Za ovaj dio veb aplikacije zadužen je braintree sistem za plaćanje, koji nam omogućava da ugradimo plaćanje u našu aplikaciju pomoću sigurnosnih tokena 41. Ugraditi jedan ovakav sistem plaćanja u veb aplikaciju nije ni malo jednostavno, ali uz pomoć dokumentacije koju pružaju ovakvi sistemi i znanja iz programiranja dobit ćete kompletno siguran i pouzdan sistem za plaćanje. Izvorni kod dat je u prilogu rada. Slika 27. Potvrda o uspješnoj kupovini Nakon upisa informacija za kupovinu artikla, kupac dobija povratnu informaciju da je proizvod uspješno kupljen. Ovdje također može doći do greške ukoliko nemate novca na računu ili se desi neka druga greška prilikom plaćanja, i naravno dobit ćete povratnu informaciju o vrsti greške. Način implementacije ovog izuzetka dat je u prilogu rada. 41 Token - je uređaj sličan kalkulatoru. Ustupa se klijentu na privremeno korištenje prilikom registracije za uslugu Internet bankarstva. Prilikom odjave usluge klijent je dužan vratiti isti u oblasti u kojoj ga je preuzeo. 51

52 5.9 Ostale mogućnosti aplikacije U glavnom dijelu opisa aplikacije vidjeli smo kako možemo najjednostavnije obaviti kupovinu i pregled produkta. Međutim također je moguće vršiti naprednu pretragu što je prikazano na slici ispod: Slika 28. Napredna pretraga Iz omnibox-a 42 vidimo upit ima više uslova, dakle da selektujemo kategoriju elektronika i sve one artikle koji imaju cijenu maksimalno do 200 eura. Moguće je također odrediti i minimalnu cijenu i tako sužiti izbor artikala. Također izgrađena je mogućnost prijavljivanja i registracije korisnika, a sve u cilju boljeg pružanja usluga posjetiocima, kako bi se sesija vezala za određeni korisnički nalog i tako 42 Ominbox meni bar za pretragu veb adresa. 52

53 na osnovu pretrage i posjeta koje korisnik obavi, sljedeći put dobiti prilagođen prikaz artikala. Prikaz dijela za prijavu i odjavu korisnika dati su na slici 29. Slika 29. Prijava i odjava korisnika I naravno možemo vidjeti istoriju narudžbi što se vidi na slici ispod. Slika 30. Istorija kupovine Ovo je bio samo kratak pregled ecommerce veb aplikacije u daljem radu dat ćemo kratak uvid u API interfejs spomenute aplikacije. 53

54 6. API interfejs Napraviti jednu dobru veb aplikaciju za ecommerce i samo na tome ostati bila bi prava šteta i za aplikaciju i za razvojni tim koji je radio na aplikaciji. Danas možemo reći je važnije imati aplikaciju za prenosive uređaje nego veb aplikaciju. Međutim napredovanjem programiranja i softverskog inženjerstva omogućeno je napraviti jedan skup pravila i protokola koji će koristiti sve aplikacije kako bi sa jednog servera koristile podatke a Grafički interfejs prilagoditi zasebno. Danas je uz pomoć CSS framework-a koji imaju mogućnost prilagođavanja veličini uređaja moguće napraviti veb aplikaciju koju možemo otvarati i na telefonu i na kompjuteru ili na tabletu, naravno na svakom od uređaja imamo pravu veličinu, bez potrebe da zumiramo sadržaj itd kao što je bila situacija tek nakon pojave mobilnih uređaja. Razlog za razvojem API interfejsa iz navedenog više je nego očigledan. Ukoliko želimo napraviti desktop aplikaciju ili mobilnu aplikaciju uz pomoć API-a ćemo smanjiti posao na minimum, odnosno izgrađivat ćemo samo ono što je potrebno za datu platformu, bez da brinemo o veb aplikaciji. Dakle API predstavlja skup rutina, protokola i alata za izgrađivanje aplikacija. Jedan API specificira kako softverske komponente trebaju komunicirati i također API se koristi kada se izgrađuju komponente grafičkog korisničkog interfejsa (GUI) [14]. Dobar API interfejs olakšava izgrađivanje aplikacije pružajući sve gradivne blokove. Nakon toga programeri sastavljaju te blokove u jednu cjelinu. 6.1 Tipovi API-a Postoji mnogo različitih tipova API-a za operativne sisteme, aplikacije ili veb strane. Ako uzmemo za primjer Windows operativni sistem, on ima mnogo setova API-a koji su korišteni od strane hardvera i aplikacija. Na primjer: Ako kopiramo nešto iz jednog tekstualnog uređivača u drugi tada koristimo API, odnosno to bi bez API-a praktično bilo nemoguće. 54

55 API postoji i za veb aplikacije također. Najveći svjetski giganti kao što su Amazon ili ebay imaju svoje API-e koji dozvoljavaju programerima da koriste strukturu istu da bi kreirali specijalizovane veb prodavnice. Također third-party 43 programeri koriste Veb API-e da bi kreirali softverska rješenja za krajnje korisnika. 6.2 Django rest framework Django rest framework je moćan i fleksibilan set alata za izgradnju veb API-a. Razlozi za korištenje rest framework-a mogu biti mnogobrojni, a neki od njih su: Mogućnost pretraživanja API-a je velika ogromna korist za programere. Pravila autentikacije uključuju oauth1a i OAuth2. Serijalizacija koja podržava i ORM i ne-orm izvore podataka. Prilagodljiv u potpunosti samo korištenjem funkcijsko baziranih pregleda, naravno ukoliko nemate potrebu za robusnijim opcijama. Opsežna dokumentacija, i sjajna podrška. Sve što je potrebno imati za rest framework jeste Python 2.7 i Django 1.7, 1.8 ili 1.9, naši uslovi zadovoljavaju sve kriterijume. U sljedećem poglavlju prikazat će se veb API za ecommerce veb aplikaciju. 6.3 Rest Framevork API ecommerce Kao i kod veb aplikacije za krajnje korisnike tako i kod API interfejsa kreirana je početna strana sa koje možemo otići na sve druge interfejse, bilo da se radi o kupovini ili samo pregledu. Svi interfejsi međusobno komuniciraju JSON formatom. JSON 44 format predstavlja tekstualno baziran standard napravljen u cilju razmjene podataka koja će biti razumljiva ljudima. Izveden je iz JavaScripta, mada je jezički nezavisan za mnoge jezike. 43 Thirt-party software - Izraz koji koristi proizvođač softvera kada pominje dodatke za isti koje on nije napravio. 44 JSON akronim od JavaScriptObjectNotation 55

56 Slika 31. Početna Strana API interfejsa Slika 32. Mogućnost osvježenja veb token-a Rekli smo da se sa početne strane može pristupiti svim drugim interfejsima što se vidi na slici 30, ali također treba naglasiti i da je svaki API interfejs cjelina za sebe. Na slici 32 prikazano je osvježenje JSON veb tokena. Dakle nekada prilikom korištenja tokena desi se da token istekne i gubi svoju validnost, posjetom ovog API -interfejsa imate mogućnost zamijeniti istekli token sa novim token-om uz samo jedan klik. 56

57 Slika 33. Korisnička provjera naružbi Slika 34. API za kreiranje adresa Sa slike 34 možemo vidjeti da su nam u ovom API-u smješteni svi podaci koji su vezani za provjeru kupovine, u ovom dijelu kao i kod aplikacije za krajnje korisnike možemo provjeriti svoju kupovinu i nastaviti dalje gdje ćemo dobiti token za jednu kupovinu. Naravno ovo je 57

Podešavanje za eduroam ios

Podešavanje za eduroam ios Copyright by AMRES Ovo uputstvo se odnosi na Apple mobilne uređaje: ipad, iphone, ipod Touch. Konfiguracija podrazumeva podešavanja koja se vrše na računaru i podešavanja na mobilnom uređaju. Podešavanja

More information

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije Biznis scenario: U školi postoje četiri sekcije sportska, dramska, likovna i novinarska. Svaka sekcija ima nekoliko aktuelnih projekata. Likovna ima četiri projekta. Za projekte Pikaso, Rubens i Rembrant

More information

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd, AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje Marko Eremija Sastanak administratora, Beograd, 12.12.2013. Sadržaj eduroam - uvod AMRES eduroam statistika Novine u okviru eduroam

More information

Port Community System

Port Community System Port Community System Konferencija o jedinstvenom pomorskom sučelju i digitalizaciji u pomorskom prometu 17. Siječanj 2018. godine, Zagreb Darko Plećaš Voditelj Odsjeka IS-a 1 Sadržaj Razvoj lokalnog PCS

More information

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. 1) Kod pravilnih glagola, prosto prošlo vreme se gradi tako

More information

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings Eduroam O Eduroam servisu Eduroam - educational roaming je besplatan servis za pristup Internetu. Svojim korisnicima omogućava bezbedan, brz i jednostavan pristup Internetu širom sveta, bez potrebe za

More information

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI Za pomoć oko izdavanja sertifikata na Windows 10 operativnom sistemu možete se obratiti na e-mejl adresu esupport@eurobank.rs ili pozivom na telefonski broj

More information

SAS On Demand. Video: Upute za registraciju:

SAS On Demand. Video:  Upute za registraciju: SAS On Demand Video: http://www.sas.com/apps/webnet/video-sharing.html?bcid=3794695462001 Upute za registraciju: 1. Registracija na stranici: https://odamid.oda.sas.com/sasodaregistration/index.html U

More information

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević GUI Layout Manager-i Bojan Tomić Branislav Vidojević Layout Manager-i ContentPane Centralni deo prozora Na njega se dodaju ostale komponente (dugmići, polja za unos...) To je objekat klase javax.swing.jpanel

More information

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE CJENOVNIK KABLOVSKA TV Za zasnivanje pretplatničkog odnosa za korištenje usluga kablovske televizije potrebno je da je tehnički izvodljivo (mogude) priključenje na mrežu Kablovskih televizija HS i HKBnet

More information

1. Instalacija programske podrške

1. Instalacija programske podrške U ovom dokumentu opisana je instalacija PBZ USB PKI uređaja na računala korisnika PBZCOM@NET internetskog bankarstva. Uputa je podijeljena na sljedeće cjeline: 1. Instalacija programske podrške 2. Promjena

More information

Windows Easy Transfer

Windows Easy Transfer čet, 2014-04-17 12:21 - Goran Šljivić U članku o skorom isteku Windows XP podrške [1] koja prestaje 8. travnja 2014. spomenuli smo PCmover Express i PCmover Professional kao rješenja za preseljenje korisničkih

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Istorijat programskih jezika Programski jezici Programski jezici su veštački jezici koji se mogu koristiti za kontrolu ponašanja mašine, naročito

More information

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA KOŽA I TEKSTIL ALU FELGE CJENIK APLIKACIJE CERAMIC PRO PROIZVODA Radovi prije aplikacije: Prije nanošenja Ceramic Pro premaza površina vozila na koju se nanosi mora bi dovedena u korektno stanje. Proces

More information

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Upute za korištenje makronaredbi gml2dwg i gml2dgn SVEUČILIŠTE U ZAGREBU - GEODETSKI FAKULTET UNIVERSITY OF ZAGREB - FACULTY OF GEODESY Zavod za primijenjenu geodeziju; Katedra za upravljanje prostornim informacijama Institute of Applied Geodesy; Chair

More information

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik) JEDINSTVENI PORTAL POREZNE UPRAVE Priručnik za instalaciju Google Chrome dodatka (Opera preglednik) V1 OPERA PREGLEDNIK Opera preglednik s verzijom 32 na dalje ima tehnološke promjene zbog kojih nije moguće

More information

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri. Potprogrami su delovi programa. Često se delovi koda ponavljaju u okviru nekog programa. Logično je da se ta grupa komandi izdvoji u potprogram, i da se po želji poziva u okviru programa tamo gde je potrebno.

More information

11 Analiza i dizajn informacionih sistema

11 Analiza i dizajn informacionih sistema 11 Analiza i dizajn informacionih sistema Informatika V.Prof.dr Kemal Hajdarević dipl.ing.el 25.4.2014 11:58:28 1 1. Kompjuter, Internet, i mrežne osnove 2. Kompjuterska industrija Informatika u stomatologiji

More information

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a NIS PETROL Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a Beograd, 2018. Copyright Belit Sadržaj Disable... 2 Komentar na PHP kod... 4 Prava pristupa... 6

More information

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima 1. Uvod 2. Preuzimanje programa i stvaranje mapa 3. Instalacija Apachea 4. Konfiguracija Apachea 5. Instalacija PHP-a 6. Konfiguracija

More information

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB. 9.72 8.24 6.75 6.55 6.13 po 9.30 7.89 5.86 10.48 8.89 7.30 7.06 6.61 11.51 9.75 8.00 7.75 7.25 po 0.38 10.21 8.66 7.11 6.89 6.44 11.40 9.66 9.73 7.69 7.19 12.43 1 8.38 7.83 po 0.55 0.48 0.37 11.76 9.98

More information

STRUČNA PRAKSA B-PRO TEMA 13

STRUČNA PRAKSA B-PRO TEMA 13 MAŠINSKI FAKULTET U BEOGRADU Katedra za proizvodno mašinstvo STRUČNA PRAKSA B-PRO TEMA 13 MONTAŽA I SISTEM KVALITETA MONTAŽA Kratak opis montže i ispitivanja gotovog proizvoda. Dati izgled i sadržaj tehnološkog

More information

Otpremanje video snimka na YouTube

Otpremanje video snimka na YouTube Otpremanje video snimka na YouTube Korak br. 1 priprema snimka za otpremanje Da biste mogli da otpremite video snimak na YouTube, potrebno je da imate kreiran nalog na gmailu i da video snimak bude u nekom

More information

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Uvod u GIT Šta je git? Sistem za verzionisanje softvera kao i CVS, SVN, Perforce ili ClearCase Orginalno

More information

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Marijana Glavica Dobrica Pavlinušić http://bit.ly/ffzg-eprints Definicija

More information

BENCHMARKING HOSTELA

BENCHMARKING HOSTELA BENCHMARKING HOSTELA IZVJEŠTAJ ZA SVIBANJ. BENCHMARKING HOSTELA 1. DEFINIRANJE UZORKA Tablica 1. Struktura uzorka 1 BROJ HOSTELA BROJ KREVETA Ukupno 1016 643 1971 Regije Istra 2 227 Kvarner 4 5 245 991

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka 25. novembar 2011. godine 7. čas SQL skalarne funkcije, operatori ANY (SOME) i ALL 1. Za svakog studenta izdvojiti ime i prezime i broj različitih ispita koje je pao (ako

More information

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6. KOREKTAN PREVOD? - Reupotrebljiv softver? ( ne postoji prefiks RE u srpskom jeziku ) - Ponovo upotrebljiv softver? ( totalno bezveze ) - Upotrebljiv više puta? - Itd. PLAN RADA 1. Počnimo sa primerom!

More information

Tutorijal za Štefice za upload slika na forum.

Tutorijal za Štefice za upload slika na forum. Tutorijal za Štefice za upload slika na forum. Postoje dvije jednostavne metode za upload slika na forum. Prva metoda: Otvoriti nova tema ili odgovori ili citiraj već prema želji. U donjem dijelu obrasca

More information

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. Idejno rješenje: Dubrovnik 2020. Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. vizualni identitet kandidature dubrovnika za europsku prijestolnicu kulture 2020. visual

More information

PROJEKTNI PRORAČUN 1

PROJEKTNI PRORAČUN 1 PROJEKTNI PRORAČUN 1 Programski period 2014. 2020. Kategorije troškova Pojednostavlj ene opcije troškova (flat rate, lump sum) Radni paketi Pripremni troškovi, troškovi zatvaranja projekta Stope financiranja

More information

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ DIZAJN TRENINGA Model trening procesa FAZA DIZAJNA CILJEVI TRENINGA Vrste ciljeva treninga 1. Ciljevi učesnika u treningu 2. Ciljevi učenja Opisuju željene

More information

Rešavanje problema pomoću računara

Rešavanje problema pomoću računara Rešavanje problema pomoću računara Vladimir Filipović vladaf@matf.bg.ac.rs Softversko inženjerstvo Šta podrazumevamo pod softverskim inženjerstvom? vladaf@matf.bg.ac.rs 2/16 Konstrukcija prevodilaca Prevođenje

More information

Bušilice nove generacije. ImpactDrill

Bušilice nove generacije. ImpactDrill NOVITET Bušilice nove generacije ImpactDrill Nove udarne bušilice od Bosch-a EasyImpact 550 EasyImpact 570 UniversalImpact 700 UniversalImpact 800 AdvancedImpact 900 Dostupna od 01.05.2017 2 Logika iza

More information

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija EVALUACIJA UPOTREBLJIVOSTI KORISNIČKOG INTERFEJSA VEB APLIKACIJA UZ POMOĆ METODA ZA AUTOMATSKO PRIKUPLJANJE PODATAKA O KORIŠĆENJU EVALUATION USABILITY OF USER INTERFACE WEB APPLICATIONS BY METHODS FOR

More information

Nejednakosti s faktorijelima

Nejednakosti s faktorijelima Osječki matematički list 7007, 8 87 8 Nejedakosti s faktorijelima Ilija Ilišević Sažetak Opisae su tehike kako se mogu dokazati ejedakosti koje sadrže faktorijele Spomeute tehike su ilustrirae a izu zaimljivih

More information

GIGABIT PASSIVE OPTICAL NETWORK

GIGABIT PASSIVE OPTICAL NETWORK GIGABIT PASSIVE OPTICAL NETWORK O NAMA Ključni element savremenih sistema za isporuku sadržaja putem Interneta (Data, Voice, Video) je interakcija sa krajnjim korisnikom. Iza nas je vreme kada je svaki

More information

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY Softverski sistem Survey za geodeziju, digitalnu topografiju i projektovanje u niskogradnji instalira se na sledeći način: 1. Instalirati grafičko okruženje pod

More information

Direktan link ka kursu:

Direktan link ka kursu: Alat Alice može da se preuzme sa sledeće adrese: www.alice.org Kratka video uputstva posvećena alatu Alice: https://youtu.be/eq120m-_4ua https://youtu.be/tkbucu71lfk Kurs (engleski) posvećen uvodu u Java

More information

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT TRAJANJE AKCIJE 16.01.2019-28.02.2019 ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT Akcija sa poklonima Digitally signed by pki, pki, BOSCH, EMEA, BOSCH, EMEA, R, A, radivoje.stevanovic R, A, 2019.01.15 11:41:02

More information

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB UPUTSTVO za ruter TP-LINK TD-854W/ TD-W8951NB Uputstvo za ruter TP-Link TD-854W / TD-W8951NB 2 PRAVILNO POVEZIVANJE ADSL RUTERA...4 PODEŠAVANJE KONEKCIJE PREKO MREŽNE KARTE ETHERNET-a...5 PODEŠAVANJE INTERNET

More information

3D GRAFIKA I ANIMACIJA

3D GRAFIKA I ANIMACIJA 1 3D GRAFIKA I ANIMACIJA Uvod u Flash CS3 Šta će se raditi? 2 Upoznavanje interfejsa Osnovne osobine Definisanje osnovnih entiteta Rad sa bojama Rad sa linijama Definisanje i podešavanje ispuna Pregled

More information

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU KONFIGURACIJA MODEMA ZyXEL Prestige 660RU Sadržaj Funkcionalnost lampica... 3 Priključci na stražnjoj strani modema... 4 Proces konfiguracije... 5 Vraćanje modema na tvorničke postavke... 5 Konfiguracija

More information

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Struktura indeksa: B-stablo.   ls/swd/btree/btree.html Struktura indeksa: B-stablo http://cis.stvincent.edu/html/tutoria ls/swd/btree/btree.html Uvod ISAM (Index-Sequential Access Method, IBM sredina 60-tih godina 20. veka) Nedostaci: sekvencijalno pretraživanje

More information

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze Trening: Obzor 2020. - financijsko izvještavanje i osnovne ugovorne obveze Ana Ključarić, Obzor 2020. nacionalna osoba za kontakt za financijska pitanja PROGRAM DOGAĐANJA (9:30-15:00) 9:30 10:00 Registracija

More information

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION VFR AIP Srbija / Crna Gora ENR 1.4 1 ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION 1. KLASIFIKACIJA VAZDUŠNOG PROSTORA

More information

RAZVOJ DINAMIČKIH WEB APLIKACIJA UPORABOM PHP-a I AJAX-a

RAZVOJ DINAMIČKIH WEB APLIKACIJA UPORABOM PHP-a I AJAX-a Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» NIKOLINA CINDRIĆ RAZVOJ DINAMIČKIH WEB APLIKACIJA UPORABOM PHP-a I AJAX-a Diplomski rad Pula, 2017. Sveučilište Jurja Dobrile

More information

Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll)

Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll) Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll) pomodu razvojnog okruženja Microsoft Visual Studio 2010 Autor: dipl.ing. Nemanja Kojić, asistent Decembar 2013. Korak 1

More information

Mindomo online aplikacija za izradu umnih mapa

Mindomo online aplikacija za izradu umnih mapa Mindomo online aplikacija za izradu umnih mapa Mindomo je online aplikacija za izradu umnih mapa (vrsta dijagrama specifične forme koji prikazuje ideje ili razmišljanja na svojevrstan način) koja omogućuje

More information

APLIKACIJA ZA ŠIFROVANJE FAJLOVA NA WEB-U

APLIKACIJA ZA ŠIFROVANJE FAJLOVA NA WEB-U Departman za poslediplomske studije SAVREMENE INFORMACIONE TEHNOLOGIJE MASTER STUDIJE - Master rad - APLIKACIJA ZA ŠIFROVANJE FAJLOVA NA WEB-U Mentor: Prof.dr. Mladen Veinović Kandidat: Nebojša Asenijević

More information

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine UNIVERZITETUBEOGRADU RUDARSKOGEOLOŠKIFAKULTET DEPARTMANZAHIDROGEOLOGIJU ZBORNIKRADOVA ZLATIBOR 1720.maj2012.godine XIVSRPSKISIMPOZIJUMOHIDROGEOLOGIJI ZBORNIKRADOVA IZDAVA: ZAIZDAVAA: TEHNIKIUREDNICI: TIRAŽ:

More information

Office 365, upute za korištenje elektroničke pošte

Office 365, upute za korištenje elektroničke pošte Office 365, upute za korištenje elektroničke pošte Naša ustanova koristi uslugu elektroničke pošte u oblaku, u sklopu usluge Office 365. To znači da elektronička pošta više nije pohranjena na našem serveru

More information

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI IZRADA MOBILNE I WEB APLIKACIJE ZA GENERIRANJE QR KODA UPOTREBOM PYTHON PROGRAMSKOG JEZIKA ZAVRŠNI RAD ČAKOVEC, 2014. MEĐIMURSKO VELEUČILIŠTE

More information

PRIMENA ANDROID APLIKACIJA U OBRAZOVANJU MOBILE APPLICATIONS IN EDUCATION

PRIMENA ANDROID APLIKACIJA U OBRAZOVANJU MOBILE APPLICATIONS IN EDUCATION UDK: 004:37 Stručni rad PRIMENA ANDROID APLIKACIJA U OBRAZOVANJU MOBILE APPLICATIONS IN EDUCATION Olga Ristić 1, Marjan Milošević 2 1,2 Fakultet tehničkih nauka u Čačku 1 olga.ristic@ftn.kg.ac.rs, 2 marjan.milosevic@

More information

Cloud kompjuting ačunarstvo u oblaku) Amijeve nove tehnologije. Računarstvo u oblaku

Cloud kompjuting ačunarstvo u oblaku) Amijeve nove tehnologije. Računarstvo u oblaku Cloud kompjuting (Ra ačunarstvo u oblaku) Cloud kompjuting - sadržaj Uvod... 4 Historija... 5 Slični sistemi i koncepti... 7 Karakteristike... 7 Pet osnovnih karakteristika... 9 Samousluga na zahtjev...

More information

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći:

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći: Pogledi Ciljevi Poslije kompletiranja ove lekcije trebalo bi se moći: Opisati pogled Formirati novi pogled Vratiti podatke putem pogleda Izmijeniti postojeći pogled Insertovani, ažurirati i brisati podatke

More information

FAKULTET ZA POSLOVNU INFORMATIKU

FAKULTET ZA POSLOVNU INFORMATIKU FAKULTET ZA POSLOVNU INFORMATIKU Prof. dr Mladen Veinović Igor Franc Aleksandar Jevremović BAZE PODATAKA - PRAKTIKUM - Prvo izdanje Beograd 2006. Autori: Prof. dr Mladen Veinović Igor Franc Aleksandar

More information

KREIRANJE DINAMIČKIH INTERFEJSA ZASNOVANIH NA META-ŠEMAMA CREATION OF DYNAMIC INTERFACES BASED ON META-SCHEMES

KREIRANJE DINAMIČKIH INTERFEJSA ZASNOVANIH NA META-ŠEMAMA CREATION OF DYNAMIC INTERFACES BASED ON META-SCHEMES INFOTEH-JAHORINA Vol. 10, Ref. E-I-11, p. 441-445, March 2011. KREIRANJE DINAMIČKIH INTERFEJSA ZASNOVANIH NA META-ŠEMAMA CREATION OF DYNAMIC INTERFACES BASED ON META-SCHEMES Vladimir Vujović, Elektrotehnički

More information

Mogudnosti za prilagođavanje

Mogudnosti za prilagođavanje Mogudnosti za prilagođavanje Shaun Martin World Wildlife Fund, Inc. 2012 All rights reserved. Mogudnosti za prilagođavanje Za koje ste primere aktivnosti prilagođavanja čuli, pročitali, ili iskusili? Mogudnosti

More information

Visoka škola strukovnih studija za informacione i komunikacione tehnologije. SMS Gateway. Dr Nenad Kojić

Visoka škola strukovnih studija za informacione i komunikacione tehnologije. SMS Gateway. Dr Nenad Kojić Visoka škola strukovnih studija za informacione i komunikacione tehnologije SMS Gateway Dr Nenad Kojić Uvod SMS Gateway-i najčešće predstavljaju desktop aplikacije koji treba da omoguće korisničkim aplikacijama

More information

PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA

PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA Dr Srđan Damjanović Dr Predrag Katanić PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA FAKULTET POSLOVNE EKONOMIJE BIJELJINA, 2014. Recenzenti: Prof. dr Rade Stankić Prof. dr Slobodan Obradović Izdaje: FAKULTET

More information

JavaScript podrska u radu sa greskama

JavaScript podrska u radu sa greskama JavaScript podrska u radu sa greskama Svaki od pregledaca ima svoj podrazumevani naci reagovanja na greske, Firefox i Chrome upisuju greske u log datoteku, dok recimo Internet Explorer i Opera generisu

More information

Mobilno računarstvo. Mobilni uređaji i njihove karakteristike

Mobilno računarstvo. Mobilni uređaji i njihove karakteristike Mobilno računarstvo Mobilni uređaji i njihove karakteristike Poslednjih godina svedoci smo izuzetnog razvoja i popularnosti različitih vrsta mobilnih uređaja. Pod mobilnim uređajem u širem smislu podrazumeva

More information

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU (Usaglašeno sa procedurom S.3.04 sistema kvaliteta Megatrend univerziteta u Beogradu) Uvodne napomene

More information

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

OBJEKTNO ORIJENTISANO PROGRAMIRANJE OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 3 DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode - Parametri - Povratne vrednosti - Dodela

More information

Prvi koraci u razvoju bankarskog on-line sistema u Japanu napravljeni su sredinom 60-tih godina prošlog veka i to najpre za on-line, real-time obradu

Prvi koraci u razvoju bankarskog on-line sistema u Japanu napravljeni su sredinom 60-tih godina prošlog veka i to najpre za on-line, real-time obradu JAPAN Japan, kao zemlja napredne tehnologije, elektronike i telekomunikacija, je zemlja koja je u samom svetskom vrhu po razvoju i usavršavanju bankarskog poslovanja i spada među vodećim zemljama sveta

More information

Izrada kalkulatora u C#

Izrada kalkulatora u C# Završni rad br. 404/EL/2017 Izrada kalkulatora u C# Saša Ružić, 5559/601 Varaždin, rujan 2017. godine Odjel za elektrotehniku Završni rad br. 404/EL/2017 Izrada kalkulatora u C# Student Saša Ružić, 5559/601

More information

Aplikacija za podršku transferu tehnologija

Aplikacija za podršku transferu tehnologija Aplikacija za podršku transferu tehnologija uputstvo za instalaciju i administraciju sistema Doc. dr Vladimir Ćirić dipl. inž. Darko Tasić septembar 2012. 2 Sadržaj Uputstvo za instalaciju i administraciju

More information

PROJEKTOVANJE SOFTVERA Softver može biti sistemski i aplikativni. U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na prim

PROJEKTOVANJE SOFTVERA Softver može biti sistemski i aplikativni. U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na prim PROJEKTOVANJE SOFTVERA PROJEKTOVANJE SOFTVERA Softver može biti sistemski i aplikativni. U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na primer: prevodioci za pojedine jezike,

More information

WWF. Jahorina

WWF. Jahorina WWF For an introduction Jahorina 23.2.2009 What WWF is World Wide Fund for Nature (formerly World Wildlife Fund) In the US still World Wildlife Fund The World s leading independent conservation organisation

More information

INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013

INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013 Dr Srđan Damjanović Dr Predrag Katanić INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013 FAKULTET POSLOVNE EKONOMIJE BIJELJINA, 2017. INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013 Autori: Prof. dr

More information

VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID

VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID SVEUČ ILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5158 VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID Lovro Pejić Zagreb, lipanj 2017. Hvala svima koji su bili

More information

DZM Aplikacija za servise

DZM Aplikacija za servise Mobendo d.o.o. DZM Aplikacija za servise Korisničke upute Andrej Radinger Sadržaj Instalacija aplikacije... 2 Priprema za početak rada... 4 Rad sa aplikacijom... 6 Kopiranje... 10 Strana 1 of 10 Instalacija

More information

Implementacija metodologije ekstremnog programiranja u nastavni proces visokoobrazovnih institucija

Implementacija metodologije ekstremnog programiranja u nastavni proces visokoobrazovnih institucija Implementacija metodologije ekstremnog programiranja u nastavni proces visokoobrazovnih institucija Autori: Tomislav Gligora, Veleučilište Velika Gorica Sažetak Davorin Valenčić, Veleučilište Velika Gorica

More information

UPRAVLJANJE KORISNIČKIM RAČUNIMA U RAILS OKRUŽENJU

UPRAVLJANJE KORISNIČKIM RAČUNIMA U RAILS OKRUŽENJU SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni studij UPRAVLJANJE KORISNIČKIM RAČUNIMA U RAILS OKRUŽENJU Diplomski rad Monika

More information

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011.

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011. TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011. TECHNOLOGY, INFORMATICS AND EDUCATION FOR LEARNING AND KNOWLEDGE SOCIETY

More information

ONLINE APLIKACIJA ZA SLANJE OBAVIJESTI U PREDDEFINIRANO VRIJEME

ONLINE APLIKACIJA ZA SLANJE OBAVIJESTI U PREDDEFINIRANO VRIJEME SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Stručni studij ONLINE APLIKACIJA ZA SLANJE OBAVIJESTI U PREDDEFINIRANO VRIJEME Završni

More information

RAZVOJ NGA MREŽA U CRNOJ GORI

RAZVOJ NGA MREŽA U CRNOJ GORI RAZVOJ NGA MREŽA U CRNOJ GORI INFOFEST 2017 SLJEDEĆA GENERACIJA REGULACIJE, 25 26 Septembar 2017 Budva, Crna Gora Vitomir Dragaš, Manadžer za interkonekciju i sisteme prenosa Sadržaj 2 Digitalna transformacija

More information

PANEVROPSKI UNIVERZITET APEIRON FAKULTET ZA POSLOVNU INFORMATIKU BANJA LUKA. Specijalističke studije TEMA: WEB DNEVNIK

PANEVROPSKI UNIVERZITET APEIRON FAKULTET ZA POSLOVNU INFORMATIKU BANJA LUKA. Specijalističke studije TEMA: WEB DNEVNIK PANEVROPSKI UNIVERZITET APEIRON FAKULTET ZA POSLOVNU INFORMATIKU BANJA LUKA Specijalističke studije TEMA: WEB DNEVNIK -specijalistički rad- Mentor: Prof. dr Zoran Ž. Avramović, dipl. inž. Student: Banja

More information

IMPLEMENTACIJA TEHNIKA ZA POVEĆANJE BROJA PODRŽANIH KONKURENTNIH KORISNIKA VEB SAJTA

IMPLEMENTACIJA TEHNIKA ZA POVEĆANJE BROJA PODRŽANIH KONKURENTNIH KORISNIKA VEB SAJTA ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU IMPLEMENTACIJA TEHNIKA ZA POVEĆANJE BROJA PODRŽANIH KONKURENTNIH KORISNIKA VEB SAJTA Master rad Kandidat: Janko Sokolović 2012/3142 Mentor: doc. dr Zoran

More information

Advertising on the Web

Advertising on the Web Advertising on the Web On-line algoritmi Off-line algoritam: ulazni podaci su dostupni na početku, algoritam može pristupati podacima u bilo kom redosljedu, na kraju se saopštava rezultat obrade On-line

More information

RANI BOOKING TURSKA LJETO 2017

RANI BOOKING TURSKA LJETO 2017 PUTNIČKA AGENCIJA FIBULA AIR TRAVEL AGENCY D.O.O. UL. FERHADIJA 24; 71000 SARAJEVO; BIH TEL:033/232523; 033/570700; E-MAIL: INFO@FIBULA.BA; FIBULA@BIH.NET.BA; WEB: WWW.FIBULA.BA SUDSKI REGISTAR: UF/I-1769/02,

More information

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA Master akademske studije Modul za logistiku 1 (MLO1) POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA angažovani su: 1. Prof. dr Momčilo Miljuš, dipl.inž., kab 303, mmiljus@sf.bg.ac.rs,

More information

SISTEMI ZA UPRAVLJANJE SADRŽAJEM

SISTEMI ZA UPRAVLJANJE SADRŽAJEM UNIVERZITET SINGIDUNUM FAKULTET ZA POSLOVNU INFORMATIKU SISTEMI ZA UPRAVLJANJE SADRŽAJEM - Diplomski rad - Mentor: Prof. dr Mladen Veinović Student: Mladen Opačić Br. indeksa: 8/2003 Beograd, 2007. FAKULTET

More information

mdita Editor - Korisničko uputstvo -

mdita Editor - Korisničko uputstvo - mdita Editor - Korisničko uputstvo - Sadržaj 1. Minimalna specifikacija računara... 3 2. Uputstvo za instalaciju aplikacije... 3 3. Korisničko uputstvo... 11 3.1 Odabir File opcije iz menija... 11 3.2

More information

Babylon - instalacija,aktivacija i rad sa njim

Babylon - instalacija,aktivacija i rad sa njim Babylon - instalacija,aktivacija i rad sa njim Babilon je vodeći svetski prevodilac brzog online i offline rečnika sa prevođenjem u preko 75 jezika jednim jednostavnim klikom misa i koriste ga miloni privatnih

More information

VELEUĈILIŠTE NIKOLA TESLA U GOSPIĆU MYSQL SUSTAV ZA UPRAVLJANJE BAZAMA PODATAKA OTVORENOG KODA

VELEUĈILIŠTE NIKOLA TESLA U GOSPIĆU MYSQL SUSTAV ZA UPRAVLJANJE BAZAMA PODATAKA OTVORENOG KODA VELEUĈILIŠTE NIKOLA TESLA U GOSPIĆU Silvio Valjak MYSQL SUSTAV ZA UPRAVLJANJE BAZAMA PODATAKA OTVORENOG KODA Završni rad Gospić, 2015. VELEUĈILIŠTE NIKOLA TESLA U GOSPIĆU POSLOVNI ODJEL Struĉni studij

More information

IZRADA PORTALA O PROGRAMSKOM JEZIKU PYTHON U SUSTAVU ZA UREĐIVANJE WEB SADRŽAJA

IZRADA PORTALA O PROGRAMSKOM JEZIKU PYTHON U SUSTAVU ZA UREĐIVANJE WEB SADRŽAJA SVEUČILIŠTE U SPLITU PRIRODOSLOVNO-MATEMATIČKI FAKULTET ZAVRŠNI RAD IZRADA PORTALA O PROGRAMSKOM JEZIKU PYTHON U SUSTAVU ZA UREĐIVANJE WEB SADRŽAJA Student: Ivona Banjan Mentor: doc.dr.sc. Ani Grubišić

More information

ALEN BARAĆ RAZVOJ DINAMIČKIH WEB APLIKACIJA DIPLOMSKI RAD

ALEN BARAĆ RAZVOJ DINAMIČKIH WEB APLIKACIJA DIPLOMSKI RAD SVEUČILIŠTE U RIJECI POMORSKI FAKULTET U RIJECI ALEN BARAĆ RAZVOJ DINAMIČKIH WEB APLIKACIJA DIPLOMSKI RAD Rijeka, 2014. SVEUČILIŠTE U RIJECI POMORSKI FAKULTET U RIJECI RAZVOJ DINAMIČKIH WEB APLIKACIJA

More information

Projektovanje softvera. Uvod

Projektovanje softvera. Uvod Projektovanje softvera Osnovni pojmovi Svaki ozbiljniji projekat prolazi kroz faze: analiza, projektovanje, implementacija, testiranje slično je sa SW projektima, kroz faze se prolazi iterativno Objektno-orijentisana

More information

Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije SEBASTIAN SINOŽIĆ

Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije SEBASTIAN SINOŽIĆ Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije SEBASTIAN SINOŽIĆ TAKSONOMIJA ALATA NAMIJENJENIH UČENJU PROGRAMIRANJA Završni rad Pula, kolovoz, 2017. Sveučilište Jurja

More information

Univerzitet u Beogradu Matematički fakultet Internet baze podataka

Univerzitet u Beogradu Matematički fakultet Internet baze podataka Univerzitet u Beogradu Matematički fakultet Internet baze podataka Seminarski rad iz predmeta Baze podataka-napredni koncepti 2010/2011 šk.god. Profesor: Student: Dr Gordana Pavlović-Lažetić Mirjana Maljković,

More information

INTEGRACIJA MOBILNIH UREĐAJA U KORPORATIVNI SISTEM

INTEGRACIJA MOBILNIH UREĐAJA U KORPORATIVNI SISTEM ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU INTEGRACIJA MOBILNIH UREĐAJA U KORPORATIVNI SISTEM Master rad Kandidat: Mladen Steljić 2012/3260 Mentor: doc. dr Zoran Čiča Beograd, Septembar 2015. SADRŽAJ

More information

Razvoj 3d igara za sistem Android pomoću okruženja Unity

Razvoj 3d igara za sistem Android pomoću okruženja Unity Univerzitet u Beogradu Matematički fakultet Master rad Razvoj 3d igara za sistem Android pomoću okruženja Unity Nikola Milojević Mentor: dr Filip Marić Septembar 2017. Mentor: dr Filip Marić Matematički

More information

za STB GO4TV in alliance with GSS media

za STB GO4TV in alliance with GSS media za STB Dugme za uključivanje i isključivanje STB uređaja Browser Glavni meni Osnovni meni Vrsta liste kanala / omiljeni kanali / kraći meni / organizacija kanala / ponovno pokretanje uređaja / ponovno

More information

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET!

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA DNEVNA KARTA DAILY TICKET 35 BAM / 3h / person RADNO VRIJEME OPENING HOURS 08:00-21:00 Besplatno za djecu do 6 godina

More information

SIGURNOST WEB APLIKACIJA

SIGURNOST WEB APLIKACIJA SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVOD ZA ELEKTRONIKU, MIKROELEKTRONIKU, RAČUNALNE I INTELIGENTNE SUSTAVE SIGURNOST WEB APLIKACIJA Mario Kozina SEMINARSKI RAD Zagreb, 2006. Sadržaj

More information

IZRADA WEB APLIKACIJE U PROGRAMSKOM JEZIKU C#

IZRADA WEB APLIKACIJE U PROGRAMSKOM JEZIKU C# SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni preddiplomski studij računarstva IZRADA WEB APLIKACIJE U PROGRAMSKOM JEZIKU

More information

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE 3309 Pursuant to Article 1021 paragraph 3 subparagraph 5 of the Maritime Code ("Official Gazette" No. 181/04 and 76/07) the Minister of the Sea, Transport

More information

Kooperativna meteorološka stanica za cestovni promet

Kooperativna meteorološka stanica za cestovni promet Kooperativna meteorološka stanica za cestovni promet Marko Gojić LED ELEKTRONIKA d.o.o. marko.gojic@led-elektronika.hr LED Elektronika d.o.o. Savska 102a, 10310 Ivanić Grad, Croatia tel: +385 1 4665 269

More information