Hrvatski
Hrvatski
English

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
1. Uvod u kolegij. Detaljni izvedbeni plan nastave. Uvod u web ekosustav
a. Kratak osvrt na povijest weba
b. Razlike WWW i Interneta

2. 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.

3. 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)

4. 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

5. 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

6. 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

7. Predstavljanje projektnog zadatka
8. 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

9. 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

11. 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

12. 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

13. 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

14. 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

15. Prezentacija i obrana projektnog zadatka
Način ocjenjivanja
Ocjenjivanje i vrednovanje rada studenata tijekom nastave
Bodovi
Zadaci s vježbi 60
PTP projektni zadatak 20
Zaključni (usmeni) ispit 20
Ocjenjivanje i vrednovanje rada studenata na ispitu
Zadaci s vježbi 60
PTP projektni zadatak 20
Zaključni (usmeni) ispit 20
Literatura
  • Choi, W. et al. (2000) Beginning PHP 4. Indianopolis : Wiley publishing.
  • 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.
  • World Wide Web Consortium.
  • PHP Tutorial.
  • W3 Schools web portal
Program: Elektroničko poslovanje i programsko inženjerstvo
ID: 12891
Vanjski ID: 251523
Ects: 6
Online postotak: 20
Ocjenjivanje:
90-100 izvrstan (5)
75-89 vrlo dobar (4)
60-74 dobar (3)
50-59 dovoljan (2)
0-49 nedovoljan (1)
Sati:
30 Predavanja
0 Seminari
30 Vježbe
0 Terenska nastava
Predavač/i: