PROGRAMIRANJE WEB APLIKACIJA I
Cilj
Temeljni cilj kolegija upoznavanje je studenata s osnovnim konceptima i procesima razvoja web sustava (web stranica, web servisa i web aplikacija). U sklopu kolegija studenti će ovladati vještinama potrebnim za prepoznavanje i razlikovanje web sustava, predlaganje i dizajn arhitekture web sustava, samostalni razvoj web sustava te generalno korištenje web tehnologija.
Uvjeti upisa
Uvjet za polaganje kolegija je položen kolegij Osnove programiranja, Uvod u (X)HTML, Javascript i CSS.
Ishodi učenja
- Razviti web sustav slijedeći potrebne faze implementacije (izrada specifikacije, dokumentiranje, testiranje i drugo)
- Implementirati gotova rješenja u vlastiti web sustav
- Koristiti web programske jezike za automatizaciju poslova i obradu podataka
- Kreirati funkcionalno okruženje za rad web sustava (server)
Nastavni plan
- Uvod u kolegij. Detaljni izvedbeni plan nastave. Uvod u web ekosustav
- a. Kratak osvrt na povijest weba
- b. Razlike WWW i Interneta
- Web sustavi i njihova okolina / ekosustav
- a. Razlike i međuodnos Interneta, WWW-a, HTTP-a
- b. Klasifikacija i osobine web sustava
- c. HTTP i osnovni koncepti potrebni za rad s web sustavima (request, response, headers, cookie, session)
- d. Pregled popularnih tehnologija današnjice. Analiza popularnih web sustava i dekompozicija na sastavne elemente.
- Arhitektura web aplikacija
- a. Uvod u client-server arhitekturu.
- b. Protokoli i formati komunikacije (REST, SOAP, JSON, XML)
- c. Uvod u programiranje na strani poslužitelja i PHP jezik (povijest, osnovna sintaksa, verzije jezika)
- Programiranje na strani poslužitelja: PHP - uvod
- a. Tipovi podataka
- b. Varijable, nizovi, kontrolne strukture (if, switch), petlje (for, foreach, while), operatori
- c. Korištenje službene dokumentacije
- d. Pokretanje osnovnog PHP programa
- e. Uvod u verzioniranje koda s Git-om
- f. Varijable okoline, globalne i superglobalne varijable
- Programiranje na strani poslužitelja: PHP - Objektno orijentirano programiranje I
- a. Klase, objekti, namespaces
- b. Autoloading
- c. Vidljivost atributa i metoda
- d. Statične metode
- e. “Magic methods”
- f. Konstante
- Programiranje na strani poslužitelja: PHP - Objektno orijentirano programiranje II
- a. Organizacija koda i slojevi u arhitekturi web aplikacije
- b. Rad s konzolnim sučeljem PHP-a
- c. Alati za testiranje koda
- d. Alati za kontrolu kvalitete koda (PhpStan, PhpCsFixer)
- e. Verzioniranje koda s Git-om
- f. Slanje HTTP zahtjeva iz terminala - CURL
- Predstavljanje projektnog zadatka
- Programiranje na strani poslužitelja: PHP - obrada obrazaca (forme), rad s bazom, obrada grešaka, radni izvještaji (logovi)
- a. Obrada korisničkih obrazaca i osnove validacije
- b. Povezivanje s bazom (MySQL; PostgreSQL) i izvršavanje upita
- c. Primjeri grešaka i iznimaka; upravljanje greškama; razine izvještavanja (log levels)
- d. Uvod u ručno i automatiziranje testiranje web servisa; Automatizirani i ručni testovi s Postman alatom
- Programiranje na strani poslužitelja: PHP - Rad sa slikama, datotekama, mrežnim sučeljima, emailom
- a. Generiranje i obrada slika (resize, crop, recolor)
- b. Čitanje i pisanje strukturiranih i nestrukturiranih datoteka
- c. Povezivanje s vanjskim web sustavima kroz HTTP
- d. Rad s email poslužiteljem i slanje email poruka (SMTP protokol)
- 10.Programiranje na strani klijenta: JavaScript - uvod, motivacija i osnovna sintaksa
- a. Dinamični web sustavi
- b. Kratak pregled povijesti, stanje JavaScripta danas
- c. Alati za razvoj u preglednicima (Chrome Dev Tools i sl.)
- d. Programska logika na strani klijenta
- e. Tipovi podataka
- f. Ugrađeni objekti i mehanizmi
- g. Varijable, nizovi, objekti, kontrolne strukture, petlje
- Programiranje na strani klijenta: JavaScript - manipulacija HTML dokumentom, asinkroni pozivi, povratne funkcije (callbacks), pohrana podataka
- a. Interne i eksterne skripte
- b. Obrada specijalnih događaja (click, mouseover, ...), propagacija događaja, prioriteti
- c. jQuery
- d. AJAX
- e. Chrome dev tools - network tab
- f. Lokalna pohrana podataka
- g. Kolačići
- Rad s predlošcima; generiranje dokumenata i sučelja na strani poslužitelja (server-side rendering)
- a. Uvod u Bootstrap framework
- b. Uvod u rad sa predlošcima
- c. Rad s Twig sustavom za predloške
- d. Razvoj predložaka i naslijeđivanje
- e. Kontrolni mehanizmi, petlje, funkcije, filteri
- f. Generiranje izvješća u PDF formatu
- Praktična primjena: Implementacija mehanizama autentikacije i autorizacije
- a. PHP Session management
- b. Razvoj autentikacijskih sučelja korištenjem HTML, CSS, JavaScript i PHP jezika
- c. Korisničke uloge i prava pristupa
- d. Zaključavanje korisničkog računa
- e. Regularni izrazi - Regex
- Praktična primjena: Implementacija mehanizama autentikacije i autorizacije
- a. PHP Session management
- b. Razvoj autentikacijskih sučelja korištenjem HTML, CSS, JavaScript i PHP jezika
- c. Korisničke uloge i prava pristupa
- d. Zaključavanje korisničkog računa
- e. Regularni izrazi - Regex
- Prezentacija i obrana projektnog zadatka
Satnica
| Vrsta nastave | Broj sati |
|---|---|
| Predavanja | 30 |
| Seminari | 0 |
| Vježbe (PK: 30) | 30 |
| Terenska nastava | 0 |
Tablice vrednovanja
Vrednovanje tijekom nastave
| Aktivnost | Vrijednost 1 | Bodovi |
|---|---|---|
| Zadaci s vježbi | 50 | 60 |
| PTP projektni zadatak | 50 | 20 |
| Zaključni (usmeni) ispit | 50 | 20 |
Vrednovanje na ispitu
| Aktivnost | Vrijednost 1 | Bodovi |
|---|---|---|
| Zadaci s vježbi | 50 | 60 |
| PTP projektni zadatak | 50 | 20 |
| Zaključni (usmeni) ispit | 50 | 20 |
Kriteriji ocjenjivanja
| Bodovi / raspon | Opis uspjeha | Ocjena |
|---|---|---|
| 0-49 | ne zadovoljava minimalne kriterije | nedovoljan (1) |
| 50-59 | zadovoljava minimalne kriterije | dovoljan (2) |
| 60-74 | prosječan uspjeh | dobar (3) |
| 75-89 | iznad prosječan uspjeh | vrlo dobar (4) |
| 90-100 | izvrstan uspjeh | izvrstan (5) |
Obvezna literatura
- Choi, W. et al. (2000) Beginning PHP 4. Indianopolis : Wiley publishing.Broj primjeraka: 1
- Svekirs Lars, L. (2021) JavaScript from Beginner to Professional: Learn JavaScript quickly by building fun, interactive, and dynamic web apps, games, and pages. Birmingham : Packt Publishing. Otvori izvor
- World Wide Web Consortium. Otvori izvor
- PHP Tutorial.
- W3 Schools web portal Otvori izvor

