HrvatskiHrvatski
HrvatskiHrvatski
EnglishEnglish

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
  2. a. Kratak osvrt na povijest weba
  3. b. Razlike WWW i Interneta
  4. Web sustavi i njihova okolina / ekosustav
  5. a. Razlike i međuodnos Interneta, WWW-a, HTTP-a
  6. b. Klasifikacija i osobine web sustava
  7. c. HTTP i osnovni koncepti potrebni za rad s web sustavima (request, response, headers, cookie, session)
  8. d. Pregled popularnih tehnologija današnjice. Analiza popularnih web sustava i dekompozicija na sastavne elemente.
  9. Arhitektura web aplikacija
  10. a. Uvod u client-server arhitekturu.
  11. b. Protokoli i formati komunikacije (REST, SOAP, JSON, XML)
  12. c. Uvod u programiranje na strani poslužitelja i PHP jezik (povijest, osnovna sintaksa, verzije jezika)
  13. Programiranje na strani poslužitelja: PHP - uvod
  14. a. Tipovi podataka
  15. b. Varijable, nizovi, kontrolne strukture (if, switch), petlje (for, foreach, while), operatori
  16. c. Korištenje službene dokumentacije
  17. d. Pokretanje osnovnog PHP programa
  18. e. Uvod u verzioniranje koda s Git-om
  19. f. Varijable okoline, globalne i superglobalne varijable
  20. Programiranje na strani poslužitelja: PHP - Objektno orijentirano programiranje I
  21. a. Klase, objekti, namespaces
  22. b. Autoloading
  23. c. Vidljivost atributa i metoda
  24. d. Statične metode
  25. e. “Magic methods”
  26. f. Konstante
  27. Programiranje na strani poslužitelja: PHP - Objektno orijentirano programiranje II
  28. a. Organizacija koda i slojevi u arhitekturi web aplikacije
  29. b. Rad s konzolnim sučeljem PHP-a
  30. c. Alati za testiranje koda
  31. d. Alati za kontrolu kvalitete koda (PhpStan, PhpCsFixer)
  32. e. Verzioniranje koda s Git-om
  33. f. Slanje HTTP zahtjeva iz terminala - CURL
  34. Predstavljanje projektnog zadatka
  35. Programiranje na strani poslužitelja: PHP - obrada obrazaca (forme), rad s bazom, obrada grešaka, radni izvještaji (logovi)
  36. a. Obrada korisničkih obrazaca i osnove validacije
  37. b. Povezivanje s bazom (MySQL; PostgreSQL) i izvršavanje upita
  38. c. Primjeri grešaka i iznimaka; upravljanje greškama; razine izvještavanja (log levels)
  39. d. Uvod u ručno i automatiziranje testiranje web servisa; Automatizirani i ručni testovi s Postman alatom
  40. Programiranje na strani poslužitelja: PHP - Rad sa slikama, datotekama, mrežnim sučeljima, emailom
  41. a. Generiranje i obrada slika (resize, crop, recolor)
  42. b. Čitanje i pisanje strukturiranih i nestrukturiranih datoteka
  43. c. Povezivanje s vanjskim web sustavima kroz HTTP
  44. d. Rad s email poslužiteljem i slanje email poruka (SMTP protokol)
  45. 10.Programiranje na strani klijenta: JavaScript - uvod, motivacija i osnovna sintaksa
  46. a. Dinamični web sustavi
  47. b. Kratak pregled povijesti, stanje JavaScripta danas
  48. c. Alati za razvoj u preglednicima (Chrome Dev Tools i sl.)
  49. d. Programska logika na strani klijenta
  50. e. Tipovi podataka
  51. f. Ugrađeni objekti i mehanizmi
  52. g. Varijable, nizovi, objekti, kontrolne strukture, petlje
  53. Programiranje na strani klijenta: JavaScript - manipulacija HTML dokumentom, asinkroni pozivi, povratne funkcije (callbacks), pohrana podataka
  54. a. Interne i eksterne skripte
  55. b. Obrada specijalnih događaja (click, mouseover, ...), propagacija događaja, prioriteti
  56. c. jQuery
  57. d. AJAX
  58. e. Chrome dev tools - network tab
  59. f. Lokalna pohrana podataka
  60. g. Kolačići
  61. Rad s predlošcima; generiranje dokumenata i sučelja na strani poslužitelja (server-side rendering)
  62. a. Uvod u Bootstrap framework
  63. b. Uvod u rad sa predlošcima
  64. c. Rad s Twig sustavom za predloške
  65. d. Razvoj predložaka i naslijeđivanje
  66. e. Kontrolni mehanizmi, petlje, funkcije, filteri
  67. f. Generiranje izvješća u PDF formatu
  68. Praktična primjena: Implementacija mehanizama autentikacije i autorizacije
  69. a. PHP Session management
  70. b. Razvoj autentikacijskih sučelja korištenjem HTML, CSS, JavaScript i PHP jezika
  71. c. Korisničke uloge i prava pristupa
  72. d. Zaključavanje korisničkog računa
  73. e. Regularni izrazi - Regex
  74. Praktična primjena: Implementacija mehanizama autentikacije i autorizacije
  75. a. PHP Session management
  76. b. Razvoj autentikacijskih sučelja korištenjem HTML, CSS, JavaScript i PHP jezika
  77. c. Korisničke uloge i prava pristupa
  78. d. Zaključavanje korisničkog računa
  79. e. Regularni izrazi - Regex
  80. Prezentacija i obrana projektnog zadatka