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