SVEUČILIŠTE U ZAGREBU FILOZOFSKI FAKULTET Preddiplomski studij informacijskih i komunikacijskih znanosti POTPUNA IZRADA SUSTAVA ZA EVALUACIJU KOLEGIJA
|
|
- Vedran Tavčar
- пре 5 година
- Прикази:
Транскрипт
1 SVEUČILIŠTE U ZAGREBU FILOZOFSKI FAKULTET Preddiplomski studij informacijskih i komunikacijskih znanosti POTPUNA IZRADA SUSTAVA ZA EVALUACIJU KOLEGIJA Završni rad Mario Mikić Mentor: dr.sc. Vedran Juričić Zagreb, 2016.
2 Sažetak U ovom radu obraďen je potpuni proces izrade web aplikacije za evaluaciju kvalitete kolegija. Za izradu aplikacija korišten je niz tehnologija, razvojnih okvira i alata uz koje je pojašnjena njihova uporaba i generalna funkcija. Za razvoj korisničkog sučelja korišten je Javascript Vue.js razvojni okvir te Model-View-ViewModel paradigma, dok je u administratorskom sučelju i serverskoj logici aplikacije korišten PHP i Laravel razvojni okvir, te učestala Model-View-Controller paradigma. Osim osnovne logike iza aplikacije obraďen je i kratak povijesni pregled spomenutih tehnologija, a i niz dodatnih često korištenih alata u današnjem standardnom razvojnom okruženju. Ključne riječi: Javascript, PHP, MVC, MVVM, web aplikacije Development of a system for the evaluation of faculty courses Abstract This paper goes through the complete process of developing a web application for the evaluation of faculty courses. While developing the aforementioned application a wide variety of technologies, frameworks and toolsets were used. For the development of the front-end interface, Javascript and Vue.js framework were used, along with the Model-View-ViewModel paradigm implemented by the framework. On the administrative part of the application, and the server-side logic of the application, the programming language used was PHP and the Laravel framework with its more common Model-View-Controller paradigm. Additionally to the development process, the paper goes through a short history of the used technologies, and also through a list of commonly used toolsets in a standard development environment. Keywords: Javascript, PHP, MVC, MVVM, web applications
3 SADRŽAJ 1. UVOD Ideja Struktura Autorizacija korisnika Korištenje sustava kao korisnik Korištenje sustava kao profesor Korištenje sustava kao administrator Arhitektura Zaključak ADMINISTRATORSKO SUČELJE I SERVERSKA STRANA Uvod PHP programski jezik Composer dependency manager Razvojni okviri Proces izrade Baza podataka Kontroler View FRONT-END SUČELJE Uvod HTML 5 i promjena paradigme Kratka digresija u svijet Javascripta Raslojavanje aplikacija na komponente Vizualne komponente i korisničko sučelje Progresivno unaprijeďenje... 14
4 CSS predobraďivači Aplikacijski sloj Single page applications (SPA) Javascript razvojni okviri za aplikacije jednog dokumenta Vue.js Razvoj korisničkog sučelja Sustava za evaluaciju kolegija Gulp za ubrzanje razvojnog okruženja Vueify i Vue.js komponente na jednom mjestu SPA i povezivanje komponenti ZAKLJUČAK LITERATURA Knjige Poveznice PRILOZI... 31
5 Popis slika: Slika 1: Grafički prikaz entiteta u sustavu Slika 2: Grafički prikaz model-view-viewmodel strukture u vue.js razvojnom okviru Slika 3: Hijerarhijsko raslojavanje aplikacije na komponente Slika 4: Sustav komponenti na primjeru članka Slika 5: Grafički prikaz hijerarhije komponenti u sustavu za evaluaciju kolegija Slika 6: Sustav za evaluaciju kvalitete kolegija, anketni dio i da/ne pitanje Popis tablica: Tablica 1: Prikaz generiranih metoda korištenjem --resource modifikatora naredbe... 10
6 1. UVOD 1.1. Ideja Sustav za evaluaciju kolegija nastao je kao projekt za kolegij Web 2.0 aplikacije pri Filozofskom fakultetu Sveučilišta u Zagrebu. Inicijalno zamišljen kao projekt vezan uz kolegij, kasnije je obraďen u proširenom obliku za potrebe završnog rada pri Odsjeku za informacijske i komunikacijske znanosti Filozofskog fakulteta u Zagrebu. Ideja aplikacije dolazi iz razgovora s kolegama na odsjeku o potrebi konstantne evaluacije kvalitete kolegija. Riječ je o sustavu za evaluaciju kolegija gdje studenti mogu anonimno ispunjavati ankete koje bi se kasnijom obradom prikazivale nositeljima kolegija u obliku konstruktivnih kritika za unaprijeďenje kvalitete kolegije Struktura Sustav za evaluaciju kolegija dijeli se na dva osnovna segmenta koja funkcioniraju gotovo neovisno jedno o drugog. Prva dio naziva se Administrativno sučelje i pruža funkcionalnost administracije Sustava. Drugi dio naziva se Korisničko sučelje i pruža primarnu funkciju Sustava što je evaluacija kolegija Autorizacija korisnika Sustav je izraďen na principu da se korisnik prvo mora autorizirati kako bi mogao pristupiti ispunjavanju anketa. Takav pristup na prvu ostavlja dojam da ankete nisu anonimne jer sustav prati ispunjenost anketa na temelju korisnika MeĎutim razlog obavezne autorizacije je drugog podrijetla. Idenficiranjem korisnika moguće je ograničiti dostupnost kolegija koji se ocjenjuju, a takoďer i pratiti ispunjenost kolegija, odnosno prijestupe u pogledu višestrukog ispunjavanja ankete. Dostupnost kolegija je prvi važan faktor koji pridonosi kvaliteti rezultata Sustava. Uzimanjem informacija poput godine studija moguće je učitavati samo kolegije koje je korisnik do tog 1
7 trenutka imao priliku odslušati. Time se značajno smanjuje mogućnost ispunjavanja netočnih podataka. Dodatna razina validacije je registracija korištenjem isključivo ffzg.hr vršne domene čime se onemogućuje registracija korisnika koji nisu aktivni članovi Filozofskog fakulteta. Važno je napomenuti kako unatoč navedenim preventivnim mjerama nije moguće u potpunosti točno pratiti uvjete za ispunjavanje odreďene ankete. Takva mogućnost mogla bi se ostvariti jedinu u trenutku kada bi se autorizacija ostvarila korištenjem AAI@edu.hr identiteta čime bi se dobio uvid u stvarno stanje odslušanih kolegija korisnika. Time bi efektivno nestala i generalna komponenta korisnika koja je trenutno ugraďena u Sustav, a potencijalno i komponenta kolegija, što bi u konačnici umanjilo sustav za cijeli Administrativni dio Korištenje sustava kao korisnik Jedina funkcija koju korisnik (student) može koristiti u sklopu Sustava jest ispunjavanje anketa o kolegijima. Sva dodatna funkcionalnost nije moguća jer cilj Sustava nije prikazivanje statistike kolegija već samo njena evaluacija. Dostupnost statistike i informacija sustava seže izvan opsega temeljne zamisli i ovisi o administratorima Sustava i dogovoru o diseminaciji sirovih podataka i statistika. Ankete se mogu ispunjavati samo jednom, ponovno ispunjavanje ankete nije omogućeno jer ne postoji nikakav do sad otkriven objektivni argument koji bi pridonio kvaliteti rezultata pružanjem navedene mogućnosti Korištenje sustava kao profesor Sustav u svojoj strukturi podržava mogućnost integracije profesorskog sučelja čime bi se svaki profesor korištenjem svojih korisničkih podataka mogao autorizirati u Administrativni dio Sustava i pregledavati statistike uz vezane kolegija. MeĎutim kao što je navedeno, funkcionalnost obrade i objavljivanja rezultata seže izvan inicijalnog opsega sustava te s toga korištenje Sustava za profesore nije moguće. Ipak, pružanje mogućnosti pristupa Sustavu moglo bi se jednostavno izraditi jer u samom temelju su kolegiji vezani uz korisnike u sustava. 2
8 Korištenje sustava kao administrator Administrativni dio Sustava izraďen je isključivo za korisnike koje imaju administratorsku razinu pristupa. U sklopu administrativnog dijela omogućena je sva funkcionalnost potrebna za kontrolu korisnika, kolegija i anketa u Sustavu. U pogledu anketa, sustav je zamišljen tako da se ankete mogu vezati primarno uz kolegije. U sklopu Sustava anketa se naziva Grupom pitanja koja može sadržavati niz pitanja. Uz kolegije može se vezati neograničen broj grupa, a idejno bi svaka grupa predstavljala jednu smislenu cjelinu, primjerice Seminari ili Predavanja. Struktura sustava postavljana je tako da je moguće razviti i ocjenjivanje samih profesora, meďutim navedena funkcionalnost nije implementirana jer izlazi iz inicijalne speficikacije funkcionalnosti. Pojedinačna pitanja, koja su grupirana u Grupe pitanja trenutno po vrsti pitanje trenutno mogu spadati u jednu od tri kategorije. Prva moguća kategorija su pitanja istinitosti, odnosno da/ne pitanja. Druga kategorija je skala za ocjenjivanje od jedan do pet, dok je treća kategorija polje za upis odgovora. Polje za upis odgovora se pak dijeli na kratke i dugačke (esejske) odgovore, ali riječ je o čisto tehničkoj razlici unutar kategorije Arhitektura Temeljni entitet oko kojeg je koncipiran sustav jest Kolegij. Kolegij je vezan na entitet Semestra, ali na sebe veže sve ostale entitete. Tako Kolegij uz sebe veže entitet Korisnika, bilo to profesor ili student, i Grupe pitanja. Grupa pitanja veže pojedinačno pitanje. Grafički bi se ukupna povezanost Entiteta mogla prikazati na sljedeći način: 3
9 Slika 1: Grafički prikaz entiteta u sustavu Zaključak Sustav za evaluaciju kolegija izraďen je na način da omogućuju dodatno proširivanje funkcionalnosti. OdreĎene nove funkcionalnosti već su na početku uočene, ali zbog jednostavnosti razvoja nisu implementirane. Detaljnija razrada modela kao i tehnički pristup stvaranju relacija pojašnjen je u sljedećem poglavlju koje se bavi tehničkim aspektom izrade Administrativnog dijela Sustava. 4
10 2. ADMINISTRATORSKO SUČELJE I SERVERSKA STRANA 2.1. Uvod U prethodnom poglavlju ukratko je pojašnjena temeljna specifikacija Sustava za evaluaciju kolegija. Sustav je izraďen u obliku web aplikacije zbog jednostavnosti pristupa od strane korisnika, čime je omogućen pristup s bilo koje lokacije i bilo kojeg ureďaja koji ima mogućnost spajanja na Internet. Dodatna odluka koja je donesena jest korištenje PHP programskog jezika za realizaciju serverske strane rješenja aplikacije. PHP je odabran zbog svoje velike rasprostranjenosti i dostupnosti, kao i dostupnosti velikog niza razvojnih okvira koji omogućuju produkciju Sustava u kratkom vremenskom roku PHP programski jezik PHP, skraćeno od Hypertext Preprocessor je (primarno) serverski programski jezik namijenjen za izradu web aplikacija. IzraĎen godine, a originalno je skraćenica značila Personal Home Tools. 1 IzraĎen je kao kolekcija CGI skripti pisanih u Pearlu kako bi ubrzao izradu odreďenih funkcionalnosti - u početku brojača posjeta web stranice. Kroz godina PHP doživljava niz inačica koje iz samih temelja izmjenjuju mogućnosti PHP-a, konstantno nadograďujući, ali i mijenjajući sintaksu i mogućnosti čime dolazi na loš glas u programerskoj zajednici. Kao što je navedeno, početno je PHP razvijen kao kolekcija Pearl skripti, u svojoj idućoj iteraciji je nanovo napisan u C-u, a objektno-orijentirani pristup sintaktički preuzima iz C++-a. 2 MeĎutim PHP nosi i svoje pozitivne strane. Primarno, dostupan je gotovo svugdje. Omogućuje brzo i efikasno razvijanje aplikacija, odličan je programski jezik za početnike jer su rezultati odmah vidljivi, a presudan faktor koji bi mogao ostaviti i iskusnije programere jest značajan napredak u posljednjih godina sa izlaskom novih verzija (5.6. ili najavljeni PHP 7). 1 PHP manual: History of PHP. URL: < ( ) 2 PHP: A fractal of bad design. URL: < ( ) 5
11 Composer dependency manager Svojevrsnom revolucijom u svijetu PHP-a smatra se pojava Composer menadžera ovisnosti (eng. dependency managera) za PHP kojim je omogućen jednostavan i brz način ugradnje PHP programskih paketa za vrijeme izrade projekta. Izvršavanjem naredbe putem naredbene linije (eng. command line) programeri mogu dohvatiti PHP programski paket napisan od treće strane koji vrši odreďenu funkciju. Upravo mogućnošću korištenja tuďih paketa otvorio se prostor za stvaranje novih razvojnih okvira koji trenutno vladaju PHP zajednicom Razvojni okviri Zajednica koja okružuje PHP veoma je dinamična te se pojave novih razvojnih okvira, kao i generalno aplikacija otvorenog kôda (eng. open source) koje pružaju različite funkcionalnosti, dogaďaju na dnevnoj razini. Glavni pokretač tolike količine razvojnih okvira i rješenja jest dostupnost PHP razvojnog okruženja. Ipak odreďeni razvojni okviri su se isprofilirali te zahvatili dobar dio razvojne zajednice, svaki nudivši odreďenu distinkciju koja je presudan faktor u odabiru razvojnog okvira. Sredinom ih tržištem su dominirali CodeIgniter, CakePHP i ZendFramework. U navedenom periodu PHP je svojim opsegom i kvalitetom i dalje bio okarakteriziran kao primitivni jezik, te su navedeni razvojni okviri bili meďu začetnicima paradigme objektno-orijentiranog razvoja u PHP-u, najčešće implementirajući Model-View-Controller arhitekturu. Napretkom PHP-a, dolaskom verzije koja uvodi niz novosti meďu kojima su i imenski prostori (eng. namespace) u PHP zajednicu, te dolaskom spomenutog Composera - na tržištu se počinju pojavljivati i alternativni razvojni okviri meďu kojima su i neki koji danas dominiraju razvojnom zajednicom. Tako se pojavljuje Yii koji uvodi konzolarne aplikacije koje omogućuju generiranje raznih segmenata PHP kôda putem naredbene linije 3, te primjerice Phalcon koji kao svoju primarnu prednost navodi da je pisan u programskom jeziku C, isporučen kao PHP 3 Yii framework documentation: automatic code generation. URL: < ( ) 6
12 ekstenzija, te time iznimno brz 4. Ali najveći zamah uzimaju Symfony i Laravel koje bismo mogli nazvati razvojnim okvirima nove generacije PHP-a. Symfony se smatra velikim bratom Laravela što potvrďuje i sama činjenica da Laravel koristi odreďene komponente Symfonyja 5. Korištenje Symfonyja nedvojbeno više promovira se pisanje kvalitetnog kôda i potpuno razumijevanje programskih paradigmi, a i sam razvojni okvir razlikuje se u odreďenim pristupima koje neke skupine programera preferiraju. Poput Doctrine Object-relational-mapping (ORM) koji implementira Data mapper za razliku od Laravelovog Eloquent ORM-a i Active mapper paradigme. Zato i ne čudi činjenica da u popularnosti dominira mlaďi brat Laravel koji promovira brzu i efikasnu izradu web aplikacija. Osobine kojima često karakteriziraju programere PHP aplikacija su površno razumijevanje i get things done pristup radu što Laravelu donosi simpatije zajednice. U posljednje vrijeme pojavljuju se i mikro razvojni okviri kao podrška sve popularnijem single page applications (SPA) konceptu. Njihov fokus je mala temelja baza kôda i pružanje funkcionalnosti za razvoj RESTful aplikacija, skraćeno od Representational State Transfer. MeĎu popularnijima su Lumen od autora okriva Laravel, Silex od autora Symfonyja, te Slim Proces izrade Administrativno sučelje izraďeno je kao podrška korisničkom sučelju i uvelike se razlikuje u pristupu izrade. Detaljnije o konceptu iza korisničkog sučelja može se pročitati u poglavlju 3. Front-end sučelje, ali u samom temelju korisničko sučelje izraďeno je kao aplikacija jednog dokumenta (en. Single Page Application, skraćeno SPA) koja intenzivno koristi XMLHttpRequest API. Administrativno sučelje temelji se na suprotnom principu gdje svaka radnja uzima jedan zahtjev za obradu. Takav pristup rezultira neznatno sporijim i tradicionalnijim radom aplikacije, ali za potrebe administracije dovoljnim, te bi svaki napredniji oblik izrade bio samo nepotrebno korištenje resursa. 4 Phalcon project. URL: < ( ) 5 Laravel: projects using Symfony. URL: < ( ) 7
13 Baza podataka Za potrebe Sustava korištena je MySQL baza podataka koja je ujedino i najpopularnija baza podataka u kombinaciji s PHP-om, te sastavni dio LAMP (Linux, Apache, MySQL, PHP) razvojnog okruženja 6. Koristeći Artisan, Laravelov API za konzolarne naredbe, moguće je generirati entitet (Model) i odgovarajuću migraciju za bazu podataka. Migracije su nadogradnja na Laravel Schema builder apstrakciju podatkovnog sloja aplikacije koje omogućuju jednostavno postavljanje i ažuriranje strukture baze podataka. Konkretno migracije su PHP klase u kojima se unutar definiranih metoda opisuje struktura baze podataka bez potrebe za pisanjem SQL upita na bazi. Artisan pruža mogućnost izrade Modela i odgovarajuće migracije u jednoj konzolarnoj naredbi, čime posao programera preostaje samo opisati strukturu migracije i relacije modela. Na primjeru izrade modela Kolegija, potrebno bi bilo izvršiti sljedeću naredbu: > php artisan make:model Course --migration Što bi rezultiralo automatskim generiranjem dvaju datoteka: app/course.php i database/migrations/2016_07_12_ _create_courses_table.php. Prva datoteka predstavlja stvoreni Model u aplikaciji, te iza nje ne postoje nikakva skrivena pravila, dok druga datoteka sa sobom nalaže nekoliko konvencija. Imenovanje migracija je automatizirani proces, a samo migriranje vrši se prema vremenskom žigu datoteke (timestamp) koji se nalazi kao prefiks imena datoteke. Vremenski žig prvi je detalj koji je važan kod Laravela jer definira poredak izvršavanja migracija. Ako migracija sadrži stupac sa stranim ključem koji se referira na tablicu u bazi za koju još nije izvršena migracija, doći će do greške prilikom izvršavanja upita na bazu. Zato je prilikom korištenja migracija uvijek važno pratiti poredak samih datoteka 7. Nadalje, Artisan generira i PHP kôd unutar same datoteke kako bi omogućio brži razvoj, pa time i pretpostavlja naziv same tablice na temelju naziva modela, prateći dogovoreni Laravel standard. Time će se za model Course generirati 6 What is LAMP. URL < ( ) 7 Laravel documentation: migrations. URL: < ( ) 8
14 migracija koja će pretpostaviti da se odgovarajuća tablica u bazi naziva kao i istoimeni model, u množini, pisan svim malim slovima, što će rezultirati nazivom tablice courses. Mehanizam odlučivanja o nazivu tablice je ipak malo kompleksniji, a unutar Artisan naredbe moguće je i definirati naziv tablice. MeĎutim ako se programer odluči za poštovanje Laravel standarda, mnoge skrivene funkcionalnosti Laravela će raditi bez ikakvog dodatnog namještanja (eng. out of the box) 8. Još jedna važna napomena prilikom izrade migracija odnosi se na pivot tablice gdje je standard imenovanja obavezan u pogledu da tablica mora nositi nazive oba Modela koje povezuje, u jednini, odvojenih povlakom _ i napisanih abecednim redom, što bi se na primjeru modela User i Course glasilo timestamp_create_course_user_table.php 9. Koristeći Artisan za potrebe Sustava za evaluaciju kolegija izraďeni su sljedeći Modeli i odgovarajuće tablice u bazi, te pivot tablice koje ih povezuju. Course Page Qset Question User Semester Kontroler Uz modele koji su sastavni dio Model-View-Controller arhitekture aplikacije o kojima je pisano u prethodnom poglavlju, važan element čine i kontroleri. Zadaća kontrolera je kontrola tijeka informacija, te zaprimanje i proslijeďivanje podataka. U izradi Sustava za evaluaciju kolegija izraďena je jednak broj kontrolera koliko je i korištenih Modela unutar aplikacije, s iznimkom jednog dodatnog kontrolera za upravljanje podacima Korisničkog dijela Sustava. Kontrolere je moguće izraditi jednako kao i Modele, korištenjem Laravel Artisana i konzolarnih naredbi. Sintaksta za izradu osnovnog kontrolera na primjeru Course modela glasi: > php artisan make:controller CourseController 8 Ibid 9 Ibid 9
15 Čime će se generirati datoteka app/http/controllers/coursecontroller.php. Dodatno moguće je proslijediti i modifikator naredbe (eng. flag) kako bi se prilikom generiranja datoteke postavile i sve potrebne funkcije za kontroler resursa (eng. resource controller) kakav se koristi kod RESTful aplikacija. ProslijeĎivanjem modifikatora --resource na kraju naredbe, generator će stvoriti i slijedeće metode unutar CourseController klase 10 : Tablica 1: Prikaz generiranih metoda korištenjem --resource modifikatora naredbe Naziv HTTP metoda Opis radnje index() GET, HEAD Prikaz svih resursa create() GET, HEAD Kreiranje novog resursa store() POST Pohranjivanje novog resursa show() GET, HEAD Prikaz pojedinačnog resursa edit() GET, HEAD UreĎivanje pojedinačnog resursa update() PUT, PATCH Ažuriranje pojedinačnog resursa destroy() DELETE Brisanje pojedinačnog resursa Zadatak kontrolera je zaprimanje proslijeďenih informacija, odlučivanje o daljnjim radnjama i proslijeďivanje podataka na View i Model komponente. Dakle kontroleri su točke poveznice ukupne aplikacije te trebaju biti dostupne putem definiranih adresa. Mapa adresa i odgovarajućih kontrolera nalazi se u datoteci app/http/routes.php gdje je moguće korištenjem Router klase i njegovih metoda jasno mapirati odreďene HTTP metode, obrasce adresa i još niz mogućnosti, prema odgovarajućim kontrolerima i metodama unutar kontrolera. Tako primjerice za usmjeravanje korisnika s adrese /korisnici/ prema index() metodi CourseControllera potrebno je zapisati sljedeći kôd u navedenu datoteku. Route::get('/korisnici', 'CourseController@index'); 10 Laravel documentation: Console commands. URL: < ( ) 10
16 View Na kraju, potrebno je prikazati odreďenu datoteku korisniku. Odabir datoteke prepušten je kontroleru, dok sam prikaz informacije, bilo varijabli ili statičnog sadržaja preostaje na datoteci unutar /resource/views/ mape. Korištenjem PHP-a moguće je na lagan način unutar samog HTML-a učitati sadržaj PHP varijable otvaranjem linije PHP-a, primjerice: <h1>pozdrav, <?php echo $ime;?></h1> Naravno, moguće je i veće segmente programskog kôda uključiti unutar HTML sadržaja, ali u takvim situacijama kôd postaje nečitak, a često se gubi i načelo podjele odgovornosti (eng. Separation of Concerns, skraćeno SoC). MeĎutim, iteriranje kroz listu korisnika i slične funkcionalnosti su česta potreba pri samom prikazu sadržaja, a kako bi HTML kôd ostao što čišći, Laravel koristi Blade 11 alat za obraďivanje predložaka (eng. templating engine). Korištenjem Bladea moguće je gore navedeni primjer prikazati na sljedeći način: <h1>pozdrav, {{ $ime }}</h1> 11 Laravel documentation: Blade templates. URL: < ( ) 11
17 3. FRONT-END SUČELJE 3.1. Uvod HTML 5 i promjena paradigme Osim znamenitih promjena u pristupu radu i razvoju serverskih aplikacija i rješenja, razvoj web aplikacija i web stranica doživio je značajne promjene i na klijentskoj strani. Prve promjene u paradigmi razvoja dogaďaju se dolaskom 5. verzije HTML-a kojom se uvode značajne promjene u percepciji toga što jest HTML i klijentski razvoj. Osim odreďenih estetskih izmjena u fundamentu samog HTML-a, poput odmicanja od sintaktičke striktnosti XML-a, te uvoďenja novih semantičkiih elemenata <section>, <header>, <footer> i ostalih, u sklopu HTML5 dolaze i razni drugi noviteti razreďeni u odvojenim specifikacijama, na primjer Web forms 2.0 i Web applications 1.0 od kojih će posljednja postati ono što se danas naziva HTML5. 12 Navedene specifikacije omogućile su ugradnju novih aplikacijskih programskih sučelja, skraćeno API (eng. Application Programming Interface). Time se efektivno pojam HTML-a uzdiže od same paradigme označavanja teksta u svrhu prikazivanja u preglednicima, te se usko povezuje s Javascriptom. Mnogi od navedenih noviteta upravo omogućuju funkcionalnosti kontrolirane pomoću Javascripta, a zajedno uklopljene pod nazivom HTML Kratka digresija u svijet Javascripta Dok se razvijala Web applications 1.0 specifikacija i ostali noviteti koji će kasnije biti prozvani HTML5, Javascript je kao primarni klijentski programski jezik takoďer doživljavao odreďenu renesansu. U posljednjih pet godina rapidan razvoj i sve učestalija ažuriranja Javascript specifikacije omogućile su da se spomenuti jezik odmakne od teške stigme koju je doživio početkom 2000-ih godian. U početcima razvoja web stranica, Javascript je služio kao šegrt HTML, namijenjen isključivo za uljepšavanje korisničkog iskustva. Nije nosio nikakvu značajnu dodatnu funkcionalnost, niti je bio presudan faktor u razvoju web stranica i aplikacija. Prva 12 Pilgrim, Mark: HTML5 Up and running. The past. O Reilly media:
18 pozitivna promjena koja je nagovjestila rast Javascripta bila je sve učestalija uporaba XMLHttpRequest API-ja, koji je u kombinaciji s Javascriptom dobio poznatiji naziv AJAX (eng. Asynchronous Javascript and XML). Njime se omogućila pozadinska komunikacija izmeďu klijentskog i serverskog dijela aplikacije, što je rezultiralo raznim uporabama, od popularnih chatova do ranih oblika SPA (eng. Single Page Application) koje nisu zahtjevale bilo kakva naknadna učitavanja. 13 Cjelokupni trend razvoja klijentski-orijentiranih aplikacija počeo je doživljavati sve veći zamah, pa se i organizacija zadužena za izradu Javascript specifikacija, ECMA International i njena radna skupina TC39 aktivirala, što je rezultiralo češćim ažuriranjima specifikacije, odnosno standarda zvanog ECMAScripta, u implementaciji poznatijeg kao Javascript. Primjera radi, ECMAScript 3 standard objavljen je godine, a nasljednik ECMAScript 5 tek deset godina kasnije godine. MeĎutim od početka godine i odluke radne skupine TC39, novi ECMAScript standard objavljuje se na godišnjoj razini pa tako aktualna verzija ECMAScripta jest broj 6, dok se trenutno izraďuje nacrt za ECMAScript Osim pukih brojki, značajne izmjene nad standardima omogućile su i značajan rast Javascripta kao programskog jezika. U skladu s time, Javascript se sve intenzivnije počeo koristiti za ozbiljnije zadatke. Tako recimo korištenjem Node.js izvršnog okruženja, programeri mogu koristiti Javascript za razvoj serverskih aplikacija, dok je NPM (eng. Node Package Manager) jedan od najvećih repozitorija programskih paketa (eng. library) za Javascript programski jezik 15. Upravo koristeći NPM i naredbeni redak (eng. Command line) razvijena je i aplikacija koja prati ovaj rad. Node package manager korišten je za instalaciju zavisnih programskih paketa o kojima će kasnije biti riječi Raslojavanje aplikacija na komponente Razvojem prethodno spomenutih tehnologija otvorila se mogućnost razvoja kompleksnijih aplikacija koristeći Javascript i nove značajke HTML-a. Jedan od značajnijih aktualnih trendova postalo je raslojavanje aplikacija na komponente. Komponentama se smatraju neovisni blokovi 13 Rauschmayer, Axel. Speaking JavaScript: An In-Depth Guide for Programmers, poglavlje 6. O Reilly media. 14 Ibid, poglavlje Understanding NPM. URL: < ( ) 13
19 programske logike i sučelja koji se mogu primjenjivati u web aplikacijama. Trenutno se koncept komponenti razvija u sklopu Web components specifikacije 16, ali mnogi Javascript razvojni okviri (eng. framework) već implementiraju temeljnu ideju komponenti. Način implementacije komponenti pak zavisi do razvojnog okvira. Popularni razvojni okvir React koristi samo logiku iza web komponenti, dok Googleov projekt Polymer implementira samu Web components specifikaciju za korištenje komponenti 17. Dodatna karakteristika komponenti jest i tijek podataka. Koncept komponenti temelji se na ideji da komponente kao takve djeluju neovisno jedna od druge, te raspolažu samo nužno potrebnim podacima za njen rad Vizualne komponente i korisničko sučelje Progresivno unaprijeďenje Progresivno unaprijeďenje (eng. Progressive enhancement) paradigma je prema kojoj se korisničko sučelje, bilo to web stranica ili web aplikacija, razvija tako što se primarno fokusira na mobilnog korisnika. Time se automatski postiže popularan trend responzivnog web dizajna (eng. Responsive web design, skraćeno RWD) gdje se jedno sučelje koristi za sve vrste ureďaja. Rastom mogućnosti preglednika i ureďaja, omogućuju se i dodatne funkcionalnosti sučelja. Suprotni pristup razvoju mogao bi se nazvati dostojna degradacija od engleskog pojma graceful degradation gdje se mogućnosti sučelja umanjuju prema mogućnostima preglednika i ureďaja. Upravo na principu progresivnog unaprijeďenja temelji se i korisničko sučelje Sustava za evaluaciju kolegija. Sustav koristi Bootstrap razvojni okvir i popis prijelomnih točaka ureďaja (eng. breakpoints) prema kojima se sučelje prilagoďava. Prijelomne točke ureďaja su numeričke vrijednosti izražena u pikselima koje označavaju širinu ekrana, a koristeći CSS3 media query konstrukt enkapsuliraju niz CSS pravila koja vrijede samo u slučaju da ureďaj svojom širinom zadovoljava prijelomnu točku. U slučaju korištenje paradigme progresivnog unaprijeďenja, pristup razvoju je sljedeći: 16 W3C Web components. URL: < ( ) 17 Vue.js documentation: Comparison with Other Frameworks. URL: < ( ) 14
20 /* Pravilo koje vrijedi za <300px uredaje */.selektor { width: 100%; } /* Pravilo koje vrijedi za [300, 600> uredaje (min-width: 300px) {.selektor { width:50%; } } /* Pravilo koje vrijedi za 599px> uredaje (min-width: 600px) {.selektor { width:33%; } } Suprotno, paradigma dostojne degradacija implementira sljedeći princip: /* Pravilo koje vrijedi za >599px uredaje */.selektor { width: 33%; } /* Pravilo koje vrijedi za <300, 600] uredaje (max-width: 600px) {.selektor { width:50%; } } /* Pravilo koje vrijedi za <300px uredaje (max-width: 300px) {.selektor { width:33%; } } CSS predobraďivači Pri razvoju većih web aplikacija ili stranica potrebno je razlomiti CSS u više cjelina kako bi se lakše održavao kôd. Za osnovne potrebe modularizacije CSS-a dovoljna je standardna sintaksa pomoću koje se može uključiti niz datoteka u glavnu CSS dizajn.css stranica/kontakt.css ; /* ostatak CSS-a */ 15
21 MeĎutim pri razvoju većih projekata import konstrukt nije dovoljan za svladavanje aplikacije. Ti problemi posebice se iskazuju u projektima na kojima radi više osoba. Kako bi sve osobe uključene u razvoj držale isti standard, svaka osoba trebala bi pohraniti niz vrijednosti u svojoj glavi jer CSS ne podržava varijable. U takvim situacijama koriste se CSS predobraďivači (eng. CSS preprocessor) od kojih su najpopularniji Less 18 i Sass 19. Takvi predobraďivači omogućuju programerima da koriste dodatne funkcionalnosti u CSS datotekama, poput varijabli i funkcija, a koje prije ugraďivanja CSS datoteke u web stranicu prolaze kroz interpreter kako bi se generirao u potpunosti važeći CSS kôd. Za potrebe Sustava za evaluaciju kolegija korišten je Sass interpreter, a kôd kojim su označena obilježja CSS-a pisan je pomoću SCSS sintakse. Korištene su varijable poput $c-primary koja označava primarnu boju sučelja te je definirana u na samom početku u sklopu datoteke _variables.scss čime je omogućena izmjena ukupnog dizajna sučelja putem samo jedne varijable. Sass osim varijabli pruža i dodatne mogućnosti, poput petlji i funkcija, čime je razvoj primarne palete boja moguć u samo tri linije kôda: /* generira dvije varijacije primarne boje */ $c-primary: #FF0000; $c-primary-light: lighten($c-primary, 10); $c-primary-dark: darken($c-primary, 10); Osim funkcija lighten() i darken() koje su ugraďene u Sass, korišten je Bourbon kao dodatni set funkcija dostupnih za Sass predobraďivač. Za uključivanje Bourbona korišten je Node package manager čime je ugradnja Bourbona u sustav odraďena jednom naredbenom linijom. > npm install bourbon 18 Less CSS. URL: < ( ) 19 SASS: Syntactically Awesome Style Sheets. URL: < ( ) 16
22 3.3. Aplikacijski sloj Single page applications (SPA) Single page applications (skraćeno SPA), što bi se moglo prevesti kao Aplikacije jednog (web) dokumenta, je paradigma izrade web aplikacija prema kojoj se sva funkcionalnost web aplikacije ili web stranice ugraďuje u jedinstveni web dokument. Primarni razlog takvog pristupa jest fluidnije korisničko iskustvo jer posjetioc ne mora niti jednom ponovno izvršavati potpuno učitavanje stranice. Takav pristup najočitije se manifestira u obliku bržeg otvaranja podstranica, kao i animiranog otvaranja podstranica. Web aplikacija tako ostavlja puno ozbiljniji dojam i više podsjeća na nativne računalne aplikacije. Velika mana SPA u samim početcima njenog pojavljivanja bila je problematika URI-ja (eng. Uniform Resource Identifiera) i korisničkog iskustva kretanja kroz aplikaciju. Kako se funkcionalnost kretanja zasnivala na učitavanju sadržaja koristeći XMLHttpRequest, korisnik je često u pogledu adresne trake preglednika ostajao na istoj lokaciji, najčešće naslovnici. Tako recimo i nakon ulaska u tri razine duboku hijerarhiju web stranice, adresna traka bi i dalje kao adresu samo prikazivala Time korisnik nije mogao poslati ili pohraniti poveznicu na odreďenu podstranicu već je morao pratiti put dolaska do željene informacije. TakoĎer, izvorna funkcionalnost navigacije korištenjem povijesti preglednika bila je onemogućena što je značajno štetilo korisničkom iskustvu jer pritiskom na gumb za povratak jedan korak u povijest pregledavanja bi rezultiralo potpunim odlaskom iz željene aplikacije. Današnje aplikacije jednog dokumenta koriste napredne tehnike kako bi u potpunosti isključile navedenu manu. Korištenjem History API-ja moguće je kontrolirati korake korisnika kroz aplikaciju, a izmjenom sidrene vrijednosti u adresnoj traci moguće je replicirati kretanja i pohranjivanje specifičnih informacija. Velik dio novih razvojnih okvira (eng. framework) koriste gotove paketa za usmjeravanje korisnika u SPA okruženju. Jedan od poznatijih takvih rješenja jest Director Github: Director. URL: < ( ) 17
23 Javascript razvojni okviri za aplikacije jednog dokumenta Osnovnu funkcionalnost učitavanja podstranica korištenjem XMLHttpRequest API-ja moguće je postići i bez korištenja dodatnih razvojnih okvira. Moguće je takoďer razviti i vlastitu komponentu za usmjeravanje korisnika unutar aplikacije. MeĎutim u jednom trenutku dosegne se razina na kojoj vlastita rješenja počinju rezultirati lošim aplikacijama, te se valja prikloniti nekom od gotovih razvojnih okvira koje održavaju i desetci programera. Postoji veliki izbor razvojnih okvira koji su u čestoj uporabi prilikom izrade web stranica i web aplikacija. Javascript razvojni okviri nisu nužno vezani uz pojam aplikacija jednog dokumenta već općenito pružaju dodatnu i lakšu funkcionalnost prilikom razvoja funkcionalnosti na klijentskoj strani. Vjerojatno najpoznatiji razvojni okvir današnjice jest jquery. Korištenjem navedenog okvira programeri je dugi niz godina bila olakšana osnovna funkcionalnost Javascripta kroz metode koje pruža. To je na kraju čak rezultiralo programerima koji nisu niti poznavali osnovnu sintaksu Javascripta, odnosno kako postići istu funkcionalnost bez korištenja jqueryja. Kroz godine jquery i dalje ostaje glavni razvojni okvir za osnovne funkcionalnosti koje pruža Javascript programski jezik. Drugi razvojni okviri gube takvu utrku, poput MooToolsa 21. Na tržište izlaze razvojni okviri (eng. framework) koji počinju pružati mnogo više od osnovih funkcionalnosti dohvaćanja elemenata iz Document object modela (DOM) ili kraće sintakse pisanja XMLHttpRequest zahtjeva. Okviri poput Angular.js, Ember.js, React.js, Backbone.js i Vue.js počinju pružati dodatne funkcionalnosti koje omogućuju razvoj kompleksnijih sustava i SPA korištenjem raznih koncepata, pretežito Model-View-Controller i Model-View-Viewmodel paradigmi. Takvi okviri pretežito se baziraju na prije spomenutom konceptu komponenti, te korištenjem HTML atributa vežu funkcionalnosti uz sâm HTML kôd čime se efektivno isprepliće HTML i Javascript odnosno stvara čvrst odnos izmeďu dvoje. 21 Usage statistics and market share of MooTools for websites. URL: < ( ) 18
24 Za razvoj Sustava za evaluaciju kolegija od navedenih izabran je Vue.js. Vue.js prihvaćen je kao Javascript razvojni okvir koji ide ruku-pod-ruku s Laravelom, PHP razvojnim okvirom koji je takoďer korišten za izradu sustava. Iako su navedeni okviri u potpunosti neovisni jedan o drugome, njihova kombinacija je toliko popularna da je nastao i fork Laravela i Vuea pod nazivom Laravue Vue.js Rani razvojni okviri, poput jqueryja i MooToolsa temelje se na imperativnom pristupu razvoja aplikacija. Ukratko, imperativni pristup nalaže da se sva funkcionalnost aplikacije, koja uključuje i vizualne promjene unutar DOM-a (eng. Document Object Model) mora specificirat unutar same aplikacije. Konkretno u pogledu jqueryja, svaka izmjena vrijednosti nekog HTML elementa mora se ručno izmijeniti. Takav postupak, pogotovo u pogledu većih aplikacija i SPA često postaje zamoran i repetitivan, a takoďer rezultira i velikom količinom programskog kôda čija je isključiva funkcija ažuriranje DOM-a. Vue.js implementira Model-View-ViewModel paradigmu koja omogućuje reaktivno vezanje podataka i Document Object Modela. Temeljna zamisao jest da podaci reaktivno diktiraju izgledom DOM-a, dakle izgledom web aplikacije ili web stranice. Svaka izmjena podataka automatski će se rezultirati izmjenom sadržaja DOM-a bez dodatne potrebe za manipulacijom HTML-a. Vue.js postiže navedenu funkcionalost vezanjem dodatnih atributa na HTML elemente čime se stvara poveznica izmeďu podataka i DOM-a. Najosnovniji oblik vezanja podataka i DOM-a je sljedeći 23 : <!-- HTML --> <div id= primjer > <p>pozdrav {{ ime }}</p> </div> /* Javascript */ var Model = { ime: Marko }; var ViewModel = new Vue({ el: #primjer, 22 Github: Laravue. URL: < ( ) 23 Vue.js documentation: Getting started. URL: < ( ) 19
25 }); Data: Model Stvaranjem objekta koji predstavlja Model, te instance Vuea koja predstavlja ViewModel i prima element vezivanja te Model, sadržaj HTML-a koji predstavlja View automatski će se ažurirati ovisno o vrijednosti u Modelu. Prilikom bilo kakve promjene vrijednosti imena u Modelu, izmjene će se uvijek odraziti i u samom HTML-u bez potrebe za dodatnom manipulacijom DOM-a. Vue.js omogućuje i dvosmjerno vezivanje čime izmjene u HTML-u (View) automatski ažuriraju vrijednost u Modelu 24. Navedena funkcionalnost postiže se posebnom v-model direktivom. Izmijenjena vrijednost odabranog polja u HTML-u rezultirat će ažuriranjem samog Modela, te reaktivnim ažuriranjem HTML-a na svim potrebnim lokacijama. Primjer direktive i dvosmjernog vezanja (eng. two-way data binding) podataka može biti sljedeći: <!-- HTML --> <div id= primjer > <p>pozdrav {{ ime }}</p> <input type= text v-model= ime value= {{ ime }} > </div> /* Javascript */ var Model = { ime: Marko }; var ViewModel = new Vue({ el: #primjer, Data: Model }); Navedeni primjer u pregledniku prikazat će se kao paragraf teksta s umetnutom vrijednosti Pozdrav Marko, te tekstualnim poljem vrijednosti Marko. Izmjenom vrijednosti polja u Mario automatski će se ažurirati vrijednost imena u Modelu, te shodno tome i paragraf teksta koji će ispisati Pozdrav Mario. Struktura koja odražava ovakav pristup naziva se Model-View-ViewModel, pri čemu je Model Javascript objekt koji sadrži potrebne informacije, View je HTML odnosno Document Object 24 Vue.js documentation: Two-way binding. URL: < ( ) 20
26 Model, a ViewModel predstavlja instanca razvojnog okvira Vue.js koja je zadužena za svu logiku povezivanja 25. Slika 2: Grafički prikaz Model-View-ViewModel strukture u Vue.js razvojnom okviru Sustav komponenti Vue.js razvio se na dva temeljna bloka. Jedan je već pojašnjeno reaktivno vezanje podataka, dok drugi temeljni blok čini sustav komponenti. Sustav komponenti nije isključivo vezan uz Vue.js i već je spomenut u poglavlju Raslojavanje aplikacije na komponente. Aplikacije se razvijaju kao skup komponenti od kojih svaka prima samo potrebne podatke te implementira samo vlastitu funkcionalnost. Komponente su hijerarhijski posložene Vue.js documentation: Overview. URL: < ( ) 26 Vue.js documentation: Components. URL: < ( ) 21
27 Slika 3: Hijerarhijsko raslojavanje aplikacije na komponente Konvencija o imenovanju i korištenju komponenti ne postoji, ali se dogovorno temelji na komponentama koje jedna web aplikacija ili stranica može sadržavati. Osnovni oblik sustava komponenti može se prikazati na primjeru članka teksta i komentara koji se prikazuju ispod članka, a učestali primjer su blogovi. Slika 4: Sustav komponenti na primjeru članka Članak je komponenta zadužena za prikaz jednog članka teksta i vezanih funkcionalnosti. Članak kao komponenta sastoji se od nekoliko pod-komponenti. Neizostavna komponenta je Sadržaj koja prikazuje sadržaj članka. TakoĎer moguće je da članak sadrži n komentara. Komentari se prikazuju u sklopu istoimene komponente Komentari. Funkcija komponente Komentari jest prikaz jednog komentara. Za rad komponente Komentari možemo reći da su potrebni podaci: autor komentara, tekst komentara i datum komentara. Komponenta Komentari tako uz primljene podatke može izvršiti svoju funkcionalnost nevezano uz njenu okolinu. Takav pristup omogućuje da se komponenta Komentari iskoristi i u drugim segmentima web aplikacije ili web stranice, ne nužno vezano uz članak teksta. Konačno, komponenta Članak može 22
28 sadržavati pod-komponentu Novi članak čija je isključiva funkcija pohranjivanje komentara na temelju jedinstvenog identifikatora (ID) nekog entiteta. Sustav komponenti snažna je funkcionalnost koja omogućuje apstrakciju aplikacije na velik broj zasebnih cjelina koje u ukupnosti rezultiraju web aplikacijom ili web stranicom. Koriste je svi moderni sustavi, a jedan primjer je društvena mreža Facebook i razvojni okvir React koji je razvijen u sklopu tvrtke Razvoj korisničkog sučelja Sustava za evaluaciju kolegija Gulp za ubrzanje razvojnog okruženja Prilikom razvoja Sustava za evaluaciju kolegija korišten je širok niz tehnologija. Neke od korištenih tehnologija zahtjevaju dodatnu obradu kako bi producirale željeni razultat. Najočitija primjer toga je Sass ( CSS predobraďivači) koji zahtjeva interpretiranje SCSS sintakse kako bi se pretvorila u CSS sintaksu koju preglednici mogu obraditi. Još jedan primjer je Vue.js i sustav komponenti. Kako ne bi sve komponente bile u jednoj Javascript datoteci moguće je uključiti HTML i Javascript komponente u treću Javascript datoteku. Ta funkcionalnost nije dostupna sama po sebi, ali ju je moguće postići korištenjem razvojnog alatara Browserifyja. Rezultat će u konačnici biti velika Javascript datoteka sa svim komponentama, iako se i tako nešto može izbjeći asinkronim učitavanjem, ali zbog jednostavnosti kôda korištenjem Browserifyja moguće je eksterno uključivanje. Browserify funkcionira na sličnom principu kao i Sass interpreter te je komandu potrebno izvršiti putem naredbene linije (eng. command line). 27 Gulp 28 je alat za izvršavanje vremenski zahtjevnih repetitivnih zadataka poput interpretiranja Sass datoka u CSS, minimizacije kôda za produkciju, generiranja ikona metodom dostojne degradacije (.svg,.png i.jpg) i sličih repetitivnih zadataka. Instalacijom Gulpa koristeći NPM (Node package manager) može se koristiti naredba gulp-watch. Ta naredba izvršavat će sve naredbe zapisane u gulp.js datoteci unutar projekta. 27 Embrey, Blake. Introduction to Browserify. URL: < ( ) 28 Gulp.js. URL: < ( ) 23
29 Pošto Sustav za evaluaciju kolegija koristi Laravel razvojni okvir, moguće je koristiti i Elixir, Laravelov API za jednostavno izvršavanje Gulp naredbi 29. Gulp.js datoteka u sklopu Sustava sljedećeg je sadržaja: /* gulp.js */ var elixir = require('laravel-elixir'); elixir(function(mix) { mix.sass('global.scss', 'public/ui/css'); }); require('laravel-elixir-vueify'); elixir(function(mix) { mix.browserify('app.js', 'public/ui/js'); } Izvršavanjem naredbe gulp-watch razvoj Sustava uvelike je olakšan. Svakom izmjenom global.scss datoteke, ili bilo koje pod-datoteka uključene u nju, Gulp će izvršiti naredbu za interpretiranje Sass datoteka i konačni CSS pohraniti u mapu public/ui/css. Svakom izmjenom app.js datoteke ili bilo koje pod-datoteka uključene u nju, Gulp će izvršiti browserify naredbe koja će interpretirati sve Javascript datoteke, te konačnu Javascript datoteku pohraniti u mapu public/ui/css Vueify i Vue.js komponente na jednom mjestu Koristeći Browserify i dodatak za podršku.vue datoteka imena Vueify 30 sustav komponenti Sustava za evaluaciju kolegija odvojen je u zasebne.vue datoteke. Koristeći Vue.js izraďene su komponente za svaku odvojenu funkcionalnost Sustava. Tako je svaka komponenta odvojena u zasebnu datoteku koja nosi ime komponente, a sam sadržaj odvojen je na dvije cjeline. 29 Laravel documentation: Elixir. URL: < ( ) 30 Github: Vueify. URL: < ( ) 24
30 Prva cjelina predstavlja HTML kôd komponente i Vue.js veze unutar same komponente koje povezuju Model. Druga cjelina predstavlja odgovarajući Javascript segment komponente. Unutar nje navedena je funkcionalnost same komponente. Važno je za napomenuti kako svaka komponente koristi Vue.component() metodu koja stvara zasebnu instancu Vuea čime je svaka komponenta de facto neovisna instanca Model-View- ViewModel paradigme. Dijeljenje podataka izmeďu roditelja i djeteta komponente postiže se korištenjem svojstava (eng. properites), unutar Vuea nazvanih props. Svojstva komponente navode informacije koje komponenta može zaprimiti u obliku HTML atributa, a potrebni su za rad same komponente. Tako recimo komponenta Članak može sadržavati pod-komponentu Komentar kojoj će proslijediti vrijednosti vlastitog Modela pod ključem komentar. Nadalje, sve čime se bavi komponenta Komentar jest prikazivanjem samog komentara na temelju svojstva komentar. Podrijetlo tog svojstva ne ulazi u jurisdikciju same komponente. Takvom hijerarhijskom strukturom komponenti postignut je završni oblik Sustava za evaluaciju kolegija. Grafički gledano Sustav se može prikazati na sljedeći način: Slika 5: Grafički prikaz hijerarhije komponenti u Sustavu za evaluaciju kolegija 25
31 Komunikacija izmeďu komponenti funkcionira u jednom smjeru. Ideja iza Sustava jest da podkomponenta ne smije biti zadužena za izmjenu vrijednosti u Modelu roditeljske komponente. Sve što dijete komponenta može jest zaprimiti vrijednosti putem svojstava. Ipak, u odreďenim situacijama dijete komponenta sadrži funkcionalnost koja zahtjeva izmjene koje nisu isključivo unutar same komponente već i na roditeljskoj komponenti, pa i globalno u sklopu cijelog Sustava. Takva komunikacija omogućena je uz pomoć dispečerskog sustava dogaďaja. U slučaju promjene na globalnoj razini, koristeći Event Javascript API komponenta će okinuti dogaďaj (eng. event) koji mogu pratiti roditeljske komponente. Kada roditeljska komponenta uhvati okinuti dogaďaj na njoj je da obradi dogaďaj, dohvati okinutu promjenu i izvede potrebnu logiku na vlastitoj razini. Ta izmjena u konačnici se može propagirati nazad niz lanac do same dijete komponente koja je i okinula dogaďaj, ali važno je za napomenuti kako sama komponenta nema mogućnost izmjene Modela izvan svog dosega SPA i povezivanje komponenti Kao što je je već spomenuto u Single page applications (SPA) povezivanje i učitavanje željenih informacija u aplikacijama jednog dokumenta prethodno je bio velik problem. Neki razvojni okviri poput Angular.js u samoj jezgri omogućuju funkcionalnost povezivanja komponenti i dinamičkog prikaza sadržaja. MeĎutim Vue je u temelju izraďen kao razvojni okvir koji ne pretpostavlja izradu SPA, te stoga ne sadrži nikakvu funkcionalnost u jezgri vezanu uz povezivanje koje zahtijevaju SPA. 32 Za funkcionalnost povezivanja korišten je Vue-router 33 paket koji na jednostavan način omogućuje povezivanje sadržaja. Funkcionira na principu objekta koji mapira definirane adrese s odabranim komponentama. Funkcionalnost dohvaćanja samog sadržaja preostaje pak na samoj komponenti i izlazi izvan opsega Vue-router paketa, radi čega je potrebno uvesti još jedan, završni paket zadužen za učitavanje i obradu XMLHTTP zahtjeva. Paket korišten za spomenutu funkcionalnost jest Vue-resource koji kroz jednostavan niz metoda omogućuju asinkrono 31 Vue.js documentation: Components. URL: < ( ) 32 Vue.js documentation: Comparison with Other Frameworks. URL: < ( ) 33 Github: Vue-router. URL: < ( ) 26
32 učitavanje sadržaja (AJAX), te dodatno podržava Javascript Promise 34 za fluidniji asinkroni rad aplikacije. Spajanjem svih komponenti i korištenjem Vue.js razvojnog okvira na kraju je postignuta funkcionalnost korisničkog sučelja Sustava za evaluaciju kolegija. Slika 6: Sustav za evaluaciju kvalitete kolegija, anketni dio i da/ne pitanje. 34 Javascript Promise object. URL: < ( ) 27
33 4. ZAKLJUČAK U konačnici, korištenjem niza tehnologija razvijen je Sustav za evaluaciju kolegija do razine potpune funkcionalnosti. Razvoj Sustava uključivao je širok niz tehnologija i još veću količinu dodatnih paketa što govori o gotovoj nemogućnosti i opsegu potrebnih znanja za razvoj jedne moderne aplikacije od samog početka. Na svu sreću korištenjem otvorenog kôda i znanja ostalih programera moguć je brz i efikasan način razvoja novih web stranica i web aplikacija. Ovaj rad takoďer prikazuje i značajan napredak web tehnologija koji se dogodio u posljednjih pet godina, ali i trend kojim se tehnologije dalje razvijaju, posebice unutar PHP i Javascript zajednica. Trend pokazuje sve veće približavanje nativnim aplikacijama i sve manje razlike u mogućnostima i funkcionalnosti web aplikacija. Iz svega viďenog, slobodno se može reći da je razvoj web aplikacija u sve većem zamahu, te da je u budućnosti realno vidjeti sve veći broj SaaS (eng. Software as a Service) aplikacija koje su dostupne primarno putem Interneta, kao najrasprostranjenijeg i najdostupnijeg medija. 28
34 5. LITERATURA 5.1. Knjige 1. Lerdorf, Rasmus; MacIntyre Peter; Tatroe, Kevin. Programming PHP, 3rd Edition. O Reilly media: Pilgrim, Mark: HTML5 Up and Running. O Reilly media: Rauschmayer, Axel. Speaking JavaScript: An In-Depth Guide for Programmers. O Reilly media: Poveznice 1. Embrey, Blake. Introduction to Browserify. URL: < ( ) 2. Github: Vue-router. URL: < ( ) 3. Github: Vueify. URL: < ( ) 4. Github: Laravue. URL: < ( ) 5. Github: Director. URL: < ( ) 6. Gulp.js. URL: < ( ) 7. Javascript Promise object. URL: < se> ( ) 8. Laravel documentation: Blade templates. URL: < ( ) 9. Laravel documentation: Console commands. URL: < ( ) 10. Laravel documentation: Elixir. URL: < ( ) 11. Laravel documentation: Migrations. URL: < ( ) 12. Laravel: projects using Symfony. URL: < ( ) 13. Less CSS. URL: < ( ) 14. Phalcon project, URL: < ( ) 29
35 15. PHP manual: History of PHP. URL: < ( ) 16. PHP: A fractal of bad design. URL: < ( ) 17. SASS: Syntactically Awesome Style Sheets. URL: < ( ) 18. Understanding NPM. URL: < ( ) 19. Usage statistics and market share of MooTools for websites. URL: < ( ) 20. Vue.js documentation: Comparison with Other Frameworks. URL: < ( ) 21. Vue.js documentation: Components. URL: < ( ) 22. Vue.js documentation: Getting started. URL: < ( ) 23. Vue.js documentation: Overview. URL: < ( ) 24. Vue.js documentation: Two-way binding. URL: < Binding> ( ) 25. W3C Web components. URL: < ( ) 26. What is LAMP. URL < ( ) 27. Yii framework documentation: automatic code generation. URL: < ( ) 30
36 6. PRILOZI Prilog 1. Popis grupa pitanja u administrativnom sučelju. 31
37 Prilog 2. Odabir predavača vezanog kolegija u administrativnom sučelju. 32
38 Prilog 3. Primjer anketnog pitanja u korisničkom sučelju. 33
39 Prilog 4. Popis dostupnih kolegija u korisničkom sučelju. 34
40 Prilog 5. Vidljivi dio korisničkog sučelja pregledavanjem izvornog kôda stranice. 35
Web programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju
Osnovni pojmovi WEB tehnologije korišteni u kolegiju Ivan Vazler Odjel za matematiku Sveučilište u Osijeku 16. listopada 2013. WWW - World Wide Web World Wide Web (WWW) svjetska mreža računala s izvorima
ВишеPowerPoint Presentation
IMPLEMENTACIJA NOVOG SUSTAVA ZA POTPORU NASTAVNOG PROCESA Dario Grd, mag.inf. Centar za razvoj programskih proizvoda UVOD Uvod 2012. godine razvijen sustav pod nazivom Nastava Tokom godina mijenjala se
ВишеPuTTY CERT.hr-PUBDOC
PuTTY CERT.hr-PUBDOC-2018-12-371 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA PUTTY... 4 3 KORIŠTENJE ALATA PUTTY... 7 3.1 POVEZIVANJE S UDALJENIM RAČUNALOM... 7 3.2 POHRANA PROFILA KORISNIČKIH SJEDNICA...
Више1 NOVO U MNG CENTRU!!! OVLADAJTE TEHNOLOGIJOM IZRADE JAVA EE APLIKACIJA KORIŠ C ENJEM ORACLE ADF-A O - Otkrijte brzinu razvoja aplikacija sa ADF-om -
1 NOVO U MNG CENTRU!!! OVLADAJTE TEHNOLOGIJOM IZRADE JAVA EE APLIKACIJA KORIŠ C ENJEM ORACLE ADF-A O - Otkrijte brzinu razvoja aplikacija sa ADF-om - Minimizujte pisanje programskog koda - Smanjite obim
Вишеeredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prij
eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prijavama koje građani mogu slati Upravnom odjelu za komunalno
ВишеNAPOMENA: Studenti na ispit donose kod urađenog zadatka
Пројекат из предмета Интернет програмирање за августовски и септембарски испитни рок школске 2018/19. године Коришћењем PHP технологије, технологије AJAX и MySQL базе података, реализовати следећу веб
ВишеSlide 1
Kako jednostavnije preći na višu verziju Formsa Ivan Lovrić, Vedran Latin 14.10.2009. Sadržaj prezentacije Predmet migracije Razlozi za migraciju Infrastruktura potrebna za migraciju Pilot migracija Migracija
ВишеMicrosoft Word - privitak prijedloga odluke
Informatički sustav za prikupljanje, simulaciju i prikaz podataka o cijenama javnih komunikacijskih usluga (dalje: Sustav e-tarife) Zagreb, HRVATSKA AGENCIJA ZA POŠTU I ELEKTRONIČKE KOMUNIKACIJE Roberta
ВишеMicrosoft PowerPoint - podatkovni promet za objavu.pptx
1 2 3 Što je složaj protokola (protocol suite)? Pojedini protokol se odnosi samo na jedno pitanje koje omogućava komunikaciju. Kada se kombinira više protokola, grupa protokola koja je rezultat takve kombinacije
ВишеFra Serafina Schoena Rijeka MB: MBO: Žiro račun: kod RBA d.d. GSM:
EKLIPS MINI CMS upute za korištenje v1.0 1. Sadržaj isporuke i opće informacije EKLIPS MINI CMS sustav napravljen je pomoću sljedećih open source tehnologija Java JDK 1.5 - http://java.sun.com/javase/downloads/index_jdk5.jsp
ВишеSVEUČILIŠTE U ZAGREBU SVEUČILIŠNI RAČUNSKI CENTAR UVJETI KORIŠTENJA USLUGE EDUADRESAR Zagreb, kolovoz 2013.
SVEUČILIŠTE U ZAGREBU SVEUČILIŠNI RAČUNSKI CENTAR UVJETI KORIŠTENJA USLUGE EDUADRESAR Zagreb, kolovoz 2013. S A D R Ž A J 1. TEMELJNI POJMOVI... 4 2. OPSEG I NAMJENA USLUGE... 4 3. PRAVA I OBVEZE SRCA...
ВишеMicrosoft PowerPoint - 6. CMS [Compatibility Mode]
Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd WEB TEHNOLOGIJE Drupal CMS(Content Managment System) Školska 2012/13. Marko M. Spasojević, spec. inž. Dr Nenad Kojić,
ВишеSveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba
Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Baze podataka Tema: Osnovna SELECT naredba Vježbu pripremili:
ВишеCPHP_19
Upotreba PHP-a u drugim jezicima Za ovu lekciju se podrazumevaju osnovna znanja iz JavaScript-a i ActionScript-a. Ono što smo do sada radili, jeste PHP van konteksta ili u veb kontekstu, što je zapravo
ВишеKORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA
KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA SADRŽAJ 1. UVOD... 3 1.1. Cilj i svrha... 3 1.2. Područje primjene... 3 2. POJMOVI I SKRAĆENICE... 4 3. PREDUVJETI KORIŠTENJA... 5 4. PREGLED APLIKACIJE...
ВишеDWA2
Sveučilište u Rijeci ODJEL ZA INFORMATIKU Radmile Matejčić 2, Rijeka Akademska 2018./2019. godina Studij: Preddiplomski jednopredmetni studij informatike Godina i semestar: 3. godina, 6 semestar Web stranica
ВишеSlide 1
Roland Miklid Patrik Frankovid Zoran Frlan HEP d.d. Sektor za informatiku i telekomunikacije Sadržaj Uvod O projektu i njegovim fazama Oracle Forms & Reports Web servisi & B2B WebLogic BI Publisher Flex
ВишеSveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 10 Zvonimir Bujanović Luka Grubišić Vinko Petričević
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 10 Zvonimir Bujanović Luka Grubišić Vinko Petričević JavaScript JavaScript je programski jezik prvenstveno namijenjen za davanje dinamičnosti
ВишеMicrosoft PowerPoint - GR_MbIS_12_IDEF
Menadžment poslovnih informacionih sistema - 12 metode modeliranja funkcija pripremila Doc. dr Gordana Radić Integfated DEFinition Definicija: je metoda (jezik) modeliranja bazirana je na kombinaciji grafike
ВишеSlide 1
Web site development using MCMS 2002 Koncept Autori: Multiautorsko okruženje sa podijeljenim ulogama Autori ne moraju imati tehnička predznanja Veza sa MicrosoftWord Developeri: Integracija sa VS.NET Integracija
ВишеRobert Labus - Diplomsi rad
SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni studij DRUŠTVENA MREŽA ZA OBJAVU I UREĐIVANJE SLIKOVNIH DATOTEKA Diplomski
ВишеDocument ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata
ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata Gospodarski subjekti Definicija: U skladu s Direktivom 2014/40/EU gospodarski subjekt svaka
ВишеSlide 1
Change the Rules SharePoint 2010 for.net developers Adis Jugo, daenet SharePoint Server 2010 Zašto SharePoint development? SharePoint je najzastupljenija platforma za kolaboraciju SharePoint je platforma
ВишеSELECT statement basic form
NAZIV OBJEKTA ZNANJA Uvod u JQuery PROLOG Autor * Katarina Kaplarski Klasifikacija * Težina * Osnovni nivo Ključne reči * Ko sluša * Student OAS Trajanje * Komentari autora SADRŽAJ Apstrakt Cilj * Uvodne
ВишеNAZIV PREDMETA OBLIKOVANJE WEB STRANICA Kod SIT132 Godina studija 3. Bodovna vrijednost Nositelj/i predmeta Haidi Božiković, predavač 6 (ECTS) Suradni
NAZIV PREDMETA OBLIKOVANJE WEB STRANICA Kod SIT132 Godina studija 3. Bodovna vrijednost Nositelj/i predmeta Haidi Božiković, predavač 6 (ECTS) Suradnici Status predmeta Ciljevi predmeta Uvjeti za upis
ВишеQlikView Training
QlikView Napredni Poslovni Sustavi d.o.o. Svjetlana Čubek Neven Kranjčec 7. 8. svibanj 2014 Sadržaj Što je QlikView? QlikView značajke Što čini QlikView jedinstvenim? Tipični korisnici QlikView alata Prezentacija
ВишеPowerPoint Presentation
Visoka škola strukovnih studija za informacione i komunikacione tehnologije MVC - Modeli Školska 2017/18. Dr Nenad Kojić, dipl. inž. Luka Lukić, struk. inž. Danijela Nikitin, spec.stuk.inž MVC.htaccess
Више8 2 upiti_izvjesca.indd
1 2. Baze podataka Upiti i izvješća baze podataka Na početku cjeline o bazama podataka napravili ste plošnu bazu podataka o natjecanjima učenika. Sada ćete izraditi relacijsku bazu u Accessu o učenicima
ВишеMicrosoft Word - IP_Tables_programski_alat.doc
1. IP Tables alat (pregled naredbi) 1.1. Osnovne IP Tables naredbe za filtriranje paketa U ovom poglavlju opisane su osnovne IP Tables naredbe korištene za filtriranje paketa. S programskim paketom IP
ВишеObjektno orjentirano programiranje 2P
Sveučilište u Rijeci ODJEL ZA INFORMATIKU Akademska 2016./2017. godina OBJEKTNO ORIJENTIRANO PROGRAMIRANJE Studij: Preddiplomski studij informatike (dvopredmetni) Godina i semestar: 2. godina, 3. semestar
ВишеR u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s
UPUTSTVO ZA BRZO UMREŽAVANJE PROGRAMA MPP2 Da bi program MPP2 radio u mrežnom okruženju po sistemu klijent-server, potrebno je da se na računarima koji su mrežno povezani instalira: serverska verzija programa
ВишеInženjering informacionih sistema
Fakultet tehničkih nauka, Novi Sad Inženjering informacionih sistema Dr Ivan Luković Dr Slavica Kordić Nikola Obrenović Milanka Bjelica Dr Jelena Borocki Dr Milan Delić UML UML (Unified Modeling Language)
ВишеMicrosoft Word - WP_kolokvij_2_rjesenja.doc
Napomena WEB PROGRAMIRANJE I PRIMJENE DRUGI KOLOKVIJ vrijeme predviđeno za rješavanje kolokvija je 60 minuta kolokvij se sastoji od 15 pitanja, a ukupan broj bodova je 165 (uz svaki zadatak istaknut je
ВишеPodružnica za građenje
Dodatak A OPIS USLUGA DODATAK A-1 PROJEKTNI ZADATAK Revizija scenarija i algoritama Regionalnih centara za nadzor i upravljanje prometom na autocestama Zagreb, srpanj 2019. 1. Uvod Sve veći porast prometa
ВишеRecuva CERT.hr-PUBDOC
Recuva CERT.hr-PUBDOC-2019-5-379 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA RECUVA... 4 3 KORIŠTENJE ALATA RECUVA... 7 4 ZAKLJUČAK... 13 Ovaj dokument izradio je Laboratorij za sustave i signale Zavoda za
ВишеSveučilište u Zagrebu
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA RAČUNALNA FORENZIKA SEMINAR VoIP enkripcija Ivan Laznibat Zagreb, siječanj, 2017. Sadržaj 1. Uvod... 1 2. VoIP enkripcija... 3 2.1 PKI (eng.
ВишеNIAS Projekt e-građani KORISNIČKA UPUTA za aplikaciju NIAS Verzija 1.1 Zagreb, srpanj 2014.
Projekt e-građani KORISNIČKA UPUTA za aplikaciju Verzija 1.1 Zagreb, srpanj 2014. Naslov: Opis: Korisnička uputa za aplikaciju Dokument sadrži upute korisnicima aplikacije u sustavu e-građani Ključne riječi:
ВишеPowerPointova prezentacija
ŽSV učitelja/nastavnika informatike Ličko-senjske županije Otočac, 19. studenog 2011. Ivanka Kranjčević-Orešković Sustav upravljanja kolegijima (Course Management System - CMS) otvorenoga koda (pod GNU
ВишеMarijan Gudelj-C.V.
Marijan Gudelj Dugopolje, Croatia +385 99 686 47 77 maky.st@gmail.com https://marijangudelj.com https://www.linkedin.com/in/marijangudelj https://stackoverflow.com/users/730919/m aky https://freelancer.com/u/macchiato
ВишеJMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.
Mreže računala Završni ispit Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter. Predajete samo papire koje ste dobili. Rezultati, uvid u ispit i upis ocjena:... Zadatak
ВишеOpenVPN GUI CERT.hr-PUBDOC
OpenVPN GUI CERT.hr-PUBDOC-2019-7-384 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA OPENVPN GUI... 5 3 KORIŠTENJE ALATA OPENVPN GUI... 17 4 ZAKLJUČAK... 27 Ovaj dokument izradio je Laboratorij za sustave i signale
ВишеXHTML 2.0 and HTML 5
Uvod -o nama, o predmetu, o Internetu O nama Ljiljana Šerić - predavanja Soba: A401 Email: ljiljana@fesb.hr Marin Bugarić, Andrija Sommer - vježbe Email: marin.bugaric@fesb.hr, A420 andrija.sommer@fesb.hr
ВишеObjektno orijentirano modeliranje
Sveučilište u Rijeci ODJEL ZA INFORMATIKU Akademska 2018./2019. godina OBJEKTNO ORIJENTIRANO MODELIRANJE Studij: Preddiplomski studij informatike (JP) Preddiplomski dvopredmetni studij informatike (DP)
ВишеPDO
PDO Marijan Šuflaj FER, 2018 Sadržaj PDO Osnove Izvršavanje upita Ranjivosti Dohvaćanje rezultata upita PDO - PHP Data Objects Jednostavno i konzistetno sučelje za pristup bazama podataka iz PHP-a Isti
ВишеMerlin: Priručnik za institucijske administratore Srce Centar za e-učenje (CEU) Sadržaj: 1. Otvaranje novog e-kolegija Otvaranje više e-kole
Sadržaj: 1. Otvaranje novog e-kolegija... 3 1.1. Otvaranje više e-kolegija obrazac... 3 1.2. Otvaranje više e-kolegija - ISVU... 3 1.3. Otvaranje pojedinačnih e-kolegija... 5 2. Otvaranje e-kolegija Zbornica
ВишеPowerPoint Presentation
Poslovna informatika Ekonomski fakultet u Osijeku Što se događa na internetu u 1 minuti? Par činjenica Svaki dan kreira se 2,5 kvintilijuna bajtova podataka! 90% svih podataka u svijetu kreirano je u zadnje
ВишеIEP - Projekat 2018/2019
Elektrotehnički fakultet u Beogradu Katedra za računarsku tehniku i informatiku Predmet: Infrastruktura za elektronsko poslovanje SI3IEP Veb portal za tehničku podršku - projekat - Osnovni cilj projekta
ВишеMicrosoft Word - KORISNIČKA UPUTA za pripremu računala za rad s Fina potpisnim modulom_RSV_ doc
Uputa za pripremu računala za rad s Fininim potpisnim modulom Zagreb, lipanj 2019. Sadržaj: 1. UVOD... 3 2. POJMOVI I SKRAĆENICE... 3 3. TEHNIČKI PREDUVJETI KORIŠTENJA... 3 4. PODEŠAVANJE INTERNET PREGLEDNIKA
ВишеPDF = Potencijalno destruktivan fajl
PDF = Potencijalno Destruktivan Fajl Filip Vlašić, NCERT Sadržaj O PDF formatu Struktura PDF dokumenta Rizici Ranjivosti Exploit - primjeri Zaštita O PDF formatu Portable Document Format, nastao 1993.
ВишеAKD KID Middleware Upute za Macintosh instalaciju V1.0
AKD KID Middleware Upute za Macintosh instalaciju V1.0 Izdanje Datum Opis izmjene 1.0 06.04.2018. Inicijalna verzija dokumenta Sadržaj Instalacija... 2 Uklanjanje instalacije... 7 2.1 Uklanjanje instalacije
ВишеPowerPoint Presentation
Moodle 3.6 i 3.7 - novosti Ana Zemljak, Kristina Golem Sveučilišni računski centar (Srce) O inačicama Inačica Moodle 3.6 prosinac 2018. Inačica Moodle 3.7 svibanj 2019. dodane nove funkcionalnosti koje
ВишеSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Seminarski rad u okviru predmeta Računalna forenzika BETTER PORTABLE GRAPHICS FORMAT Matej
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Seminarski rad u okviru predmeta Računalna forenzika BETTER PORTABLE GRAPHICS FORMAT Matej Crnac Zagreb, siječanj 2018 Sadržaj Uvod 2 BPG format
ВишеPowerPoint Presentation
i n f o r m a c i j s k i i n ž e n j e r i n g Usporedba Microsoft Analysis Services i Hyperion Essbase OLAP Marko Hilak Krešimir Futivić Maja Inđić 15.10.2009 Microsoft Analysis Services i Hyperion Essbase
Више(Microsoft PowerPoint - 902_\320ur\360evi\346 Atlassian JIRA - \232to je sve issue.pptx)
Atlassian JIRA što je sve issue? because you've got issues Agenda Što je sve Atlassian JIRA? Osnovni JIRA koncepti Što je sve issue: razvoj softvera Proširivost i nadogradivost Što je sve issue: helpdesk,
ВишеPowerPoint Presentation
Kompetencijski profil nastavnika u visokom obrazovanju Prof. dr. sc. Aleksandra Čižmešija Sveučilište u Zagrebu Prirodoslovno-matematički fakultet cizmesij@math.hr Educa T projekt Kompetencijski profil
ВишеUVJETI KORIŠTENJA INTERNETSKE STRANICE Korisnik posjetom web stranicama potvrđuje da je pročitao i da u cijelosti prihvaća o
UVJETI KORIŠTENJA INTERNETSKE STRANICE WWW.TELE2.HR Korisnik posjetom www.tele2.hr web stranicama potvrđuje da je pročitao i da u cijelosti prihvaća ove Uvjete korištenja web stranice www.tele2.hr (dalje
ВишеRačunarski praktikum II - Predavanje 03 - Apache Web server
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM II Predavanje 03 - Apache Web server 11. ožujka 2019. Sastavio: Zvonimir Bujanović Uloga web-servera (ponovno)
ВишеPHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji
PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji podrška za IBM DB2, Oracle, Ingres, MySQL, PostgreSQL,
ВишеSmjernice za korištenje sustava online prijava Ukoliko imate pristupno korisničko ime i lozinku ili ste navedeno dobili nakon zahtjeva za otvaranje no
Smjernice za korištenje sustava online prijava Ukoliko imate pristupno korisničko ime i lozinku ili ste navedeno dobili nakon zahtjeva za otvaranje novog korisničkog računa (poslati zahtjev na javnipoziv.opp@havc.hr
ВишеSlide 1
predmet Inženjerska informatika Operativni sistem dr Anica Milošević Koji operativni sistemi postoje? Microsoft Windows Linux Suse Red Hat Ubuntu Unix 26.1.2018. 2 Šta je Windows operativni sistem? Operativni
ВишеVELEUČILIŠTE VELIKA GORICA REZULTATI STUDENTSKE ANKETE PROVEDENE NA VELEUČILIŠTU VELIKA GORICA ZA ZIMSKI SEMESTAR AKADEMSKE 2013/2014 GODINE 1. Uvod E
REZULTATI STUDENTSKE ANKETE PROVEDENE NA VELEUČILIŠTU VELIKA GORICA ZA ZIMSKI SEMESTAR AKADEMSKE 2013/2014 GODINE 1. Uvod Evaluacijska anketa nastavnika i nastavnih predmeta provedena je putem interneta.
ВишеCARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:
Sadržaj... 1 1. Predgovor... 2 2. Prijava u sustav... 2 3. Postavke... 3 4. Kreiranje zahtjeva za nadzorom razrednih knjiga... 4 5. Pregled razredne knjige... 6 5.1 Dnevnik rada... 7 5.2 Imenik... 11 5.3
ВишеTest ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime
Test ispravio: () () Ukupan broj bodova:. veljače 04. od 3:00 do 4:00 Ime i prezime Razred Škola Županija Mentor Sadržaj Upute za natjecatelje... Zadaci... Upute za natjecatelje Vrijeme pisanja: 60 minuta
ВишеDaljinski upravljiva utičnica
Zvonimir Miličević;Martin Berić SEMINARSKI RAD - SPVP Projekt u sklopu Pametna kuća Poznavanje ugradbenih računalnih sustava Načini upravljanja na daljinu 14. lipnja 2018 Sažetak Svakome se dogodilo da
ВишеУПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након
УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: http://www.srpskiarhiv.rs/ Након тога се на екрану појављује форма за пријаву на часопис
ВишеSlajd 1
Luka Vidoš UMAS, studeni 2007 Uvod 2.0 Druga verzija weba? Web 2.0 je fraza, metafora za suvremeno napravljene webove sadrže i socijalizacijsku notu omogućuju posjetiteljima sudjelovanje u kreiranju njihova
ВишеMinistarstvo poljoprivrede Portal gospodarskog ribarstva Registracija prvih kupaca Uputa za korisnike
Ministarstvo poljoprivrede Portal gospodarskog ribarstva Registracija prvih kupaca Uputa za korisnike 1. Uvod Ova uputa namijenjena je korisnicima koji se žele registrirati kao prvi kupci na Portalu gospodarskog
ВишеSVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni studij WEB APLIKACIJA ZA
SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni studij WEB APLIKACIJA ZA EVIDENCIJU POSUDBE KNJIGA U KNJIŽNICI Završni rad
ВишеOpći uvjeti korištenja servisa e-Račun za državu povezivanjem_obveznici javne nabave_052019_konačna verzija
Opći uvjeti korištenja servisa e-račun za državu povezivanjem web servisom za obveznike javne nabave 1. Uvod i značenje pojmova 1.1. Ovim Općim uvjetima korištenja servisa e-račun za državu (u daljnjem
ВишеMicrosoft Word - SYLLABUS -Dinamicki
Univerzitet UKSHIN HOTI PRIZREN Fakultet kompjuterskih nauka Nastava na bosanskom jeziku NASTAVNI PLAN - PROGRAM SYLLABUS Akademska Nivo studija Bachelor Departament god. PREDMET Dinamički sadržaj web
ВишеSlide 1
OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene radnje. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Pisanje programa zovemo programiranje. Programski jezik
ВишеIme i prezime učenika
UPUTE ZA KORIŠTENJE TABLETA GIMNAZIJA ŽUPANJA VELIKI KRAJ 42, ŽUPANJA Škola za život U sklopu eksperimentalnog programa Škola za život, čiji je nositelj Ministarstvo znanosti i obrazovanja, svaki učenik
Више(Microsoft PowerPoint Ben\232i\346.ppt [Compatibility Mode])
Modelirajmo podatke za poslovanje Darko Benšić, dbensic@croz.net HrOUG 2011, Rovinj, 18. do 22. listopada 2011. Kako se Oracle SQL Developer DataModeler uklopio u agilni proces razvoja modela??? Agenda
ВишеMicrosoft Word - 6. RAZRED INFORMATIKA.doc
Kriteriji ocjenjivanja i vrednovanja INFORMATIKA - 6. razred Nastavne cjeline: 1. Život na mreži 2. Pletemo mreže, prenosimo, štitimo, pohranjujemo i organiziramo podatke 3. Računalno razmišljanje i programiranje
ВишеRačunarski praktikum I - Vježbe 01 - Uvod
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 01 - Uvod v2018/2019. Sastavio: Zvonimir Bujanović Gradivo i način polaganja Gradivo: osnove jezika
ВишеProgramiranje 1
Sveučilište u Rijeci ODJEL ZA INFORMATIKU Ulica Radmile Matejčić 2, Rijeka Akademska 2018./2019. godina PROGRAMIRANJE 1 Studij: Preddiplomski studij informatike (jednopredmetni) Godina i semestar: 1. godina,
ВишеSVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE DIPLOMSKI RAD Janko Strusa Zagreb, 2016.
SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE DIPLOMSKI RAD Zagreb, 2016. SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE DIPLOMSKI RAD Mentori: Prof. dr. sc. Mario Essert, dipl.
ВишеPowerPoint Presentation
УВОД Дa би рaчунaри нa мрежи могли међусобно да кoмуницирaју и рaзмeњују пoдaткe, пoтрeбнo je: дa сe увeду ПРOТOКOЛИ (утврђeна прaвилa и процедуре за комуникацију) да постоје АДРEСE кoje су jeдинствeнe
ВишеSVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET Preddiplomski sveučilišni studij računarstva Završni rad WEB APLIKACIJA ZA PREZENTACIJU I REZERVACIJE TURISTIČK
SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET Preddiplomski sveučilišni studij računarstva Završni rad WEB APLIKACIJA ZA PREZENTACIJU I REZERVACIJE TURISTIČKIH APARTMANA Emrah Tahirović Rijeka, rujan 2014. 0069051032
ВишеSVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Leo Siniša Radošić Modreni upravitelj zaporkama ZAVRŠNI RAD Varaždin,
SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Leo Siniša Radošić Modreni upravitelj zaporkama ZAVRŠNI RAD Varaždin, 2018. SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE
ВишеWAMSTER Prezentacija
WAMSTER Mi smo Studio Elektronike Rijeka d.o.o. tvrtka za razvoj tehnoloških rješenja u automatici i elektronici tvrka osnovana 2006. na temelju komercijalizacije rezultata magistarskog rada locirani u
ВишеEkonomski fakultet u Osijeku Kolegij: Elektroničko i mobilno poslovanje Nositelj: prof. dr. sc. Branimir Dukić Zadaci za vježbe 7. JavaScript - zadaci
Ekonomski fakultet u Osijeku Kolegij: Elektroničko i mobilno poslovanje Nositelj: prof. dr. sc. Branimir Dukić Zadaci za vježbe 7. JavaScript - zadaci za vježbu Funkcija će prebrojati parne brojeve
ВишеMicrosoft Word - CCERT-PUBDOC doc
Analiza Look@LAN programskog paketa CCERT-PUBDOC-2007-09-204 Sigurnosni problemi u računalnim programima i operativnim sustavima područje je na kojem CARNet CERT kontinuirano radi. Rezultat toga rada ovaj
ВишеMicrosoft Word - InveoP_01.docx
0 INVEO-P Inveo-P je jedinstveno rješenje na tržištu razvijeno upravo za paušalne obrte i jedino koje paušalnim obrtima omogućava potpuni pregled poslovanja. Razvijen je kao integrirano poslovno rješenje
ВишеNaslov završnog rada
Završni rad br. 599/MM/2018 Izrada hibridne mobilne aplikacije korištenjem Ionic razvojnog okvira Iva Sinković, 0797/336 Varaždin, rujan 2018. godine Odjel za Multimediju, oblikovanje i primjenu Završni
ВишеCityCoin Tehnička dokumentacija Autor: Antonio Erdeljac Škola: Prva riječka hrvatska gminazija Mentor: Tamara Široka, prof. Vanjski mentor: Dino Ilić,
CityCoin Tehnička dokumentacija Autor: Antonio Erdeljac Škola: Prva riječka hrvatska gminazija Mentor: Tamara Široka, prof. Vanjski mentor: Dino Ilić, univ. bacc. ing. comp. 1 2 Sadržaj 1. Uvod 5 1.1 Problem
ВишеPowerPoint Presentation
Prof. dr Pere Tumbas Prof. dr Predrag Matkovid Identifikacija i izbor projekata Održavanje sistema Inicijalizacija projekata i planiranje Implementacija sistema Dizajn sistema Analiza sistema Faze životnog
ВишеMicrosoft PowerPoint - vjezba_03_0809_WWWBR (1) [Compatibility Mode]
SVEUČILIŠTE U ZADRU Odjel za promet i pomorstvo Agenda Primjena računala Vježba 3 Web preglednici Internet i internet protokoli Klijentsko poslužiteljska arhitektura WWW WEB preglednici Osnove rada Mozilla
ВишеKATUŠIĆ ANTONIO.pdf
SVEUILIŠTE JOSIP JURAJ STROSSMAYER ELEKTROTEHNIKI FAKULTET OSIJEK Preddiplomski studij raunarstva PROGRAMSKI JEZIK RUBY ZAVRŠNI RAD Antonio Katuši OSIJEK, svibanj 2015. SVEUILIŠTE JOSIP JURAJ STROSSMAYER
ВишеUpute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa
1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa koju možete pronaći na sljedećem linku: http://wordpress.org/download/ Kliknite na
ВишеMultiBoot Korisnički priručnik
MultiBoot Korisnički priručnik Autorsko pravo 2006., 2007. Hewlett- Packard Development Company, L.P. Informacije sadržane u ovom dokumentu podložne su promjenama bez najave. Jedina jamstva za HP-ove proizvode
Више3 DNEVNI SEMINAR INTERNET POSLOVANJE TEME: 1. INTERNET POSLOVANJE 2. INTERNET MARKETING, INTERNET PR I ANALITIKA 3. UPRAVLJANJE SADRŽAJEM, DOMENE, HOS
3 DNEVNI SEMINAR INTERNET POSLOVANJE TEME: 1. INTERNET POSLOVANJE 2. INTERNET MARKETING, INTERNET PR I ANALITIKA 3. UPRAVLJANJE SADRŽAJEM, DOMENE, HOSTING, SECURITY I. DAN UVOD U INTERNET POSLOVANJE 15:00
ВишеMicrosoft PowerPoint - Rittal konfigurator 2019_prezentacija__HR
Rittal Configuration System Online konfigurator za Rittalove ormare PM-M N. Treml 19.07.2018 1 Jednostavnost konfiguracije Odaberite sustav Samostalni ormar, sustav ormara, različite dimenzije Konfigurirajte
ВишеSVEUČILIŠTE U ZADRU Odjel za promet i pomorstvo Primjena računala Vježba 3 Web preglednici Agenda Internet i internet protokoli Klijentsko
SVEUČILIŠTE U ZADRU Odjel za promet i pomorstvo Primjena računala Vježba 3 Web preglednici Agenda Internet i internet protokoli Klijentsko poslužiteljska arhitektura WWW WEB preglednici Osnove rada Mozilla
ВишеProgramiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj
Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite
ВишеMicrosoft PowerPoint - OOPpredavanja05 [Compatibility Mode]
OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 5 OBJEKTI U INTERAKCIJI Miloš Kovačević Đorđe Nedeljković 1 /25 OSNOVNI KONCEPTI - Abstrakcija - Modularizacija - Objektne reference - Klasni dijagram - Objektni
ВишеSlide 1
Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Projektovanje Namenskih Računarskih Struktura 1 Sistemi zasnovani na Androidu Uvod u Android platformu
ВишеUpute - JOPPD kreiranje obrasca
Verzija uputa: 1.0 - JOPPD obrazac IPIS-PLAĆE, IPIS-UGOVORI O DJELU Ove upute će se još nadopunjavati, pa molim korisnike da redovito provjere da li imaju zadnje upute. Verzija uputa prikazana je na početku!
ВишеFokusne grupe s novim studenticama diplomskog studija
Usklađivanje ishoda učenja i metoda vrednovanja u visokoškolskim kolegijima Prof. dr. sc. Željka Kamenov Odsjek za psihologiju Filozofskog fakulteta u Zagrebu, rujan 2015. Upoznavanje 1. pronađite u dvorani
ВишеWikipedija [[Wikipedija]]
Wikipedija [[Wikipedija]] Što je Wikipedija? Wikipedija je projekt Wikipedija je enciklopedija Wikipedija je zajednica Wikipedija je slobodna Wikipedija je dokumentacija Wikipedija je organizacijsko središte
Више