Sveučilište u Rijeci
ODJEL ZA INFORMATIKU
Ulica Radmile Matejčić 2, Rijeka
Akademska 2020/2021. godina

DINAMIČKE WEB APLIKACIJE 2

Studij: Preddiplomski studij informatike
Godina i semestar: 3. godina, 6. semestar
Studij: Preddiplomski dvopredmetni studij informatike
Godina i semestar: 3. godina, 6. semestar

Web stranice predmeta: https://lab.miletic.net/hr/nastava/kolegiji/DWA2/ https://moodle.srce.hr/2020-2021/

ECTS bodovi: 4 (3)

Nastavno opterećenje: 2 + 2 (2 + 1)

Nositelj predmeta:

v. pred. dr. sc. Vedran Miletić

Ured: Ulica Radmile Matejčić 2, O-520
Vrijeme konzultacija: ponedjeljkom od 14 do 16 sati ili po dogovoru e-mailom

Asistent:

Milan Petrović, mag. inf.

Ured: Ulica Radmile Matejčić 2, O-522
Vrijeme konzultacija: ponedjeljkom od 14 do 16 sati ili po dogovoru e-mailom

DINAMIČKE WEB APLIKACIJE 2

Razvijanje općih i specifičnih kompetencija (znanja i vještina)

  • usvajanje naprednijih znanja o metodama programiranja dinamičkih web aplikacija i servisa u programskim jezicima i okvirima za web

  • usvajanje tehnika korištenja sustava za upravljanje relacijskim bazama podataka (kao što su MySQL, PostgreSQL i druge koje koriste upitni jezik SQL) u procesu izrade dinamičkih web aplikacija i servisa

Korespodentnost i korelativnost programa

Sadržaj ovog kolegija izravno se nadovezuje na sadržaj kolegija Dinamičke web aplikacije 1, a intenzivno koristi znanja iz kolegija Objektno orjentirano programiranje, Uvod u baze podataka, Operacijski sustavi 1, Operacijski sustavi 2 i Računalne mreže 2.

Okvirni sadržaj predmeta

Relacijski model podataka i jezik SQL: definiranje tipova podataka; primarni, sekundarni i vanjski ključ; indeksiranje. Temeljna načela oblikovanja podataka. Tvorba baze podataka i tvorba tablica.

Konfiguracija baze podataka u dinamičkoj web aplikaciji ili servisu. Tvorba sastavljenih izraza. Metode rada sa bazom podataka. Transakcije. Količina podataka i učinkovitost mrežnih aplikacija i servisa. Rukovanje sa vremenom za izvršenje operacija. Zaštita integriteta baze podataka.

Objektno orjentirano programiranje u programskim jezicima za web: klase, objekti, metode; konstruktori, nasljeđivanje, nadjačavanje. Izrada dinamičkog web sjedišta uz uporabu klasa i ponovno iskorištavanje koda; korištenje okosnice. Objektno-relacijsko preslikavanje.

Sigurnost i zaštita podataka: identifikacija korisnika, ograničavanje pristupa i operacija; specifične ovlasti korisnika u dinamičkoj web aplikaciji ili servisu.

Strukturiranje i oblikovanje koda. Rukovanje greškama; strukturne greške, sintaktičke greške, logičke greške, greške pri izođenju aplikacija i servisa. Testiranje, metode traženja i ispravljanja grešaka (debugging). Uporaba prototipa i dokumentiranje.

Dominantni sustavi za izradu dinamičkih web aplikacija i servisa: ASP.NET Core (C#), Ruby on Rails (Ruby), Django (Python), Laravel (PHP), Spring (Java), Express (Node.js), Flask (Python), Lumen (PHP), Play (Java, Scala), Phoenix (Elixir), Sinatra (Ruby), Vapor (Swift), beego (go), Actix (Rust), Drogon (C++), Oat++ (C++); React, Angular, Vue, Svelte; usporedni prikaz specifičnosti, prednosti i ograničenja pojedinih tehnologija.

Oblici provođenja nastave i način provjere znanja

Predavanja, vježbe, samostalni zadaci, konzultacije.

Popis literature potrebne za studij i polaganje ispita

  1. Kappel, G., Prýýll B., Reich, S., Retschitzegger, W. Web Engineering: The Discipline of Systematic Development of Web Applications. (Wiley, 2006).

  2. Fowler, M., Rice, D., Foemmel, M., Hieatt, E., Mee, R., Stafford, R. Patterns of Enterprise Application Architecture. (Addison-Wesley, 2002).

  3. Bendoraitis, A. Web Development with Django Cookbook, Second Edition. (Packt Publishing, 2016).

  4. Wiggins, A. The Twelve-Factor App. (Heroku, 2017). Dostupno na: https://12factor.net/

  5. Skripte, prezentacije i ostali materijali za učenje dostupni u e-kolegiju.

Popis literature koja se preporučuje kao dopunska

  1. Welling, L., Thompson, L. PHP and MySQL Web Development, Fifth Edition. (Addison-Wesley, 2017).

  2. Ullman, L. PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide, Fourth Edition. (Peachpit Press, 2011).

  3. Tailwind CSS Documentation. Dostupno na: https://tailwindcss.com/

  4. Vue.js Documentation. Dostupno na: https://vuejs.org/

Način praćenja kvalitete i uspješnosti izvedbe predmeta

Kroz ustrojeni sustav osiguranja kvalitete Odjela za informatiku.

Mogućnost izvođenja na stranom jeziku

Nema.

R . BR.

OČEKIVANI ISHODI

1.

integrirati elemente strukture sustava dinamičke web aplikacije i definirati dvosmjerne komunikacije između elemenata toga sustava (korisnički agent, dio web aplikacije koji se izvodi na strani klijenta (front-end), dio web aplikacije koji se izvodi na strani poslužitelja (back-end), PHP interpreter, sustav za upravljanje bazom podataka)

2.

složiti relacijsku bazu podataka korištenjem danog sustava za upravljanje i povezati je dinamičkom web aplikacijom ili servisom

3.

odabrati odgovarajuće dijelove okosnice za razvoj pojedinih značajki web aplikacije ili servisa

4.

stvoriti web aplikaciju ili servis prema zadanim funkcionalnim i nefunkcionalnim zahtjevima

5.

klasificirati i analizirati različite pristupe razvoju web aplikacija i servisa

6.

odabrati i primijeniti tehnike za dokumentiranje i testiranje koda web aplikacija ili servisa

7.

odabrati i primijeniti tehnike za traženje i ispravljanje grešaka web aplikacije ili servisa

8.

odabrati i primijeniti odgovarajući pristup analizi performansi web aplikacije ili servisa

AKTIVNOSTI I OCJENJIVANJE STUDENATA

VRSTA AKTIVNOSTI

ECTS

ISHODI UČENJA

SPECIFIČNA AKTIVNOST

METODA PROCJENJIVANJA

BODOVI MAX.

Pohađanje nastave

1

1–8

Prisutnost studenata

Popisivanje (evidencija)

0

Pisani ispit

0,5

1, 5

Online test na Merlinu

0–20 bodova, ovisno o stupnju točnosti i potpunosti

20

Kontinuirana provjera znanja

2

2, 3, 4, 7

Dvije kontrolne zadaće

0–25 bodova za svaki kontrolnu zadaću, ovisno o stupnju točnosti i potpunosti

50

Završni ispit

0,5

1–8

Implementacija web aplikacije ili servisa i prezentacija projekta

0–30 bodova, ovisno o stupnju točnosti i potpunosti

30

UKUPNO

4

100

Obveze i vrednovanje studenata

Pohađanje nastave

Nastava se odvija prema mješovitom modelu u kombinaciji klasične nastave u učionici i online nastave uz pomoć sustava za e-učenje Merlin (https://moodle.srce.hr/2020-2021/).

Pisani ispit

Tijekom semestra pisat će se online test na Merlinu koji će uključivati pitanja iz dijela gradiva predavanja i njemu će student moći skupiti maksimalno 20 bodova.

Kontinuirana provjera znanja

Tijekom semestra pisat će se dvije kontrolne zadaće koje će uključivati praktične zadatke iz gradiva vježbi. Na svakoj kontrolnoj zadaći student će moći skupiti najviše 25 bodova. Da bi ostvario ocjenske bodove na pojedinoj kontrolnoj zadaći, student mora ostvariti barem 50% bodova od ukupnog broja bodova na toj kontrolnoj zadaći.

U unaprijed danom terminu krajem semestra moguće je ispravljati najviše jednu kontrolnu zadaću; bodovi ostvareni na ispravku zamjenjuju bodove ostvarene na odgovarajućoj kontrolnoj zadaći. Ispravku kontrolne zadaće mogu, ako žele, pristupiti i studenti koji su ostvarili 50% i više bodova na kontrolnoj zadaći.

Završni ispit

Tijekom semestra studenti će u grupama po dvoje ili troje odabrati projekt koji će izraditi i predati neposredno prije ispitnog roka, a zatim na završnom ispitu obraniti usmenim putem. Projekt se sastoji se od izrade web aplikacije ili servisa prema zadanim funkcionalnim i nefunkcionalnim zahtjevima, testova i pripadne dokumentacije. Vrednovat će se točnost i potpunost predanog programskog koda i pripadne dokumentacije te opis načina rješavanja danog problema. Da bi student mogao pristupiti usmenoj obrani projekta, mora barem jednom doći na konzultacije s djelomično izrađenim projektom.

Ocjena iz kolegija

Završni ispit

Kontinuiranim radom tijekom semestra na prethodno opisani način studenti mogu ostvariti najviše 70 ocjenskih bodova, a da bi mogli pristupiti završnom ispitu moraju ostvarili 50% i više bodova (minimalno 35).

Studenti koji su skupili najmanje 35 ocjenskih bodova, mogu pristupiti završnom ispitu.

Završni ispit nosi udio od maksimalno 30 ocjenskih bodova, a smatra se položenim samo ako na njemu student postigne minimalno 50%-ni uspjeh (ispitni prag je 50% uspješno riješenih zadataka).

Ukoliko je završni ispit prolazan, skupljeni bodovi će se pribrojati prethodnima i prema ukupnom rezultatu formirati će se pripadajuća ocjena. U suprotnom, student ima pravo pristupa završnom ispitu još 2 puta (ukupno do 3 puta).

Konačna ocjena

Donosi se na osnovu zbroja svih bodova prikupljenih tijekom izvođenja nastave prema sljedećoj skali:

  • A – 90%–100% (ekvivalent: izvrstan 5)

  • B – 75%–89,9% (ekvivalent: vrlo dobar 4)

  • C – 60%–74,9% (ekvivalent: dobar 3)

  • D – 50%–59,9% (ekvivalent: dovoljan 2)

  • F – 0%–49,9% (ekvivalent: nedovoljan 1)

Ispitni rokovi

Redoviti:

  • 28. lipnja 2021.

  • 12. srpnja 2021.

Izvanredni:

  • 30. kolovoza 2021.

  • 13. rujna 2021.

RASPORED NASTAVE – ljetni (VI) semestar ak. godine 2020./2021.

Nastava će se na predmetu odvijati u ljetnom semestru prema sljedećem rasporedu:

  • predavanja: ponedjeljak 12:00–13:30, prostorija O-S32

  • vježbe: četvrtak 14:00–17:15, prostorija O-365

Tj.

Datum

Vrijeme

Prostor

Tema

Nastava

Izvođač

1.

1. 03. 2021.

12:00–13:30

O-S32

Arhitekture web aplikacija: monolitna i servisno orjentirana. Paradigme programiranja u web aplikacijama: proceduralna, objektno orjentirana, funkcijska

P

v. pred. dr. sc. Vedran Miletić

1.

4. 03. 2021.

14:00–17:15

O-365

Postavljanje razvojnog okruženja web aplikacija na operacijskim sustavima sličnim Unixu i Windowsima. Stvaranje projekta i organizacija koda. Korištenje dokumentacije

V

Milan Petrović, mag. inf.

2.

8. 03. 2021.

12:00–13:30

O-S32

Objektno modeliranje i programiranje web aplikacija. Objektno-relacijsko preslikavanje

P

v. pred. dr. sc. Vedran Miletić

2.

11. 03. 2021.

14:00–17:15

online

Korištenje baze podataka. Stvaranje modela i objektno-relacijsko preslikavanje

V

Milan Petrović, mag. inf.

3.

15. 03. 2021.

12:00–13:30

O-S32

Uzorci dizajna u web aplikacijama. Uzorci model-pogled-upravitelj i model-pogled-predložak

P

v. pred. dr. sc. Vedran Miletić

3.

18. 03. 2021.

14:00–17:15

online

Relacije među modelima. Upiti

V

Milan Petrović, mag. inf.

4.

22. 03. 2021.

12:00–13:30

O-S32

Faktori razvoja web aplikacije: kod, ovisnosti, konfiguracija, usluge, izgradnja, procesi

P

v. pred. dr. sc. Vedran Miletić

4.

25. 03. 2021.

14:00–17:15

online

Usmjeravanje i URL-i. Stvaranje pogleda kao odgovora na HTTP zahtjeve

V

Milan Petrović, mag. inf.

5.

29. 03. 2021.

12:00–13:30

O-S32

Faktori razvoja web aplikacije: vezivanje na vrata, konkurentnost, jednokratnost, paritet razvojne i produkcijske verzije, logging, administracijski procesi

P

v. pred. dr. sc. Vedran Miletić

5.

1. 04. 2021.

14:00–17:15

online

Generički pogledi. Sesije

V

Milan Petrović, mag. inf.

6.

8. 04. 2021.

14:00–17:15

online

Predaja obrazaca HTTP metodama GET i POST. Provjera unosa i prikaz poruka o greškama

V

Milan Petrović, mag. inf.

7.

12. 04. 2021.

12:00–13:30

O-S32

Pisanje i provođenje automatiziranih testova koda. Statička analiza koda

P

v. pred. dr. sc. Vedran Miletić

7.

15. 04. 2021.

14:00–17:15

online

Predlošci obrazaca. Stvaranje obrazaca iz modela

V

Milan Petrović, mag. inf.

8.

19. 04. 2021.

12:00–13:30

O-S32

Kontinuirana integracija i isporuka. Podrška za izvođenje na različitim verzijama platforme

P

v. pred. dr. sc. Vedran Miletić

8.

22. 04. 2021.

14:00–17:15

O-365

1. kontrolna zadaća

I

Milan Petrović, mag. inf.

9.

26. 04. 2021.

12:00–13:30

O-S32

Mjerenje i tehnike poboljšanja performansi: smanjenje broja zahtjeva, kompresija, korištenje mreža za distribuciju sadržaja, DNS prefetch, HTTP/2, web fontovi

P

v. pred. dr. sc. Vedran Miletić

9.

29. 04. 2021.

14:00–17:15

online

Migracije. Sijanje

V

Milan Petrović, mag. inf.

10.

3. 05. 2021.

12:00–13:30

O-S32

Mjerenje i tehnike poboljšanja performansi: optimizacije relacijske baze, keširanje podataka, keširanje operacija, JIT

P

v. pred. dr. sc. Vedran Miletić

10.

6. 05. 2021.

14:00–17:15

online

Autentifikacija. Autorizacija

V

Milan Petrović, mag. inf.

11.

10. 05. 2021.

12:00–13:30

O-S32

Sigurnost dinamičkih web aplikacija

P

v. pred. dr. sc. Vedran Miletić

11.

13. 05. 2021.

14:00–17:15

online

Slanje e-maila. Testiranje

V

Milan Petrović, mag. inf.

12.

17. 05. 2021.

12:00–13:30

O-365

Online test na Merlinu

I

v. pred. dr. sc. Vedran Miletić

12.

20. 05. 2021.

14:00–17:15

online

Izrada REST API-ja. Primjer izvedbe projekta razvoja web aplikacije

V

Milan Petrović, mag. inf.

13.

24. 05. 2021.

12:00–13:30

O-S32

Pregled postojećih sustava za razvoj web aplikacija: stog LAMP (Linux, Apache, MySQL i PHP), okviri Laravel i Lumen

P

v. pred. dr. sc. Vedran Miletić

13.

27. 05. 2021.

14:00–17:15

O-365

2. kontrolna zadaća

I

Milan Petrović, mag. inf.

14.

31. 05. 2021.

12:00–13:30

O-S32

Pregled postojećih sustava za razvoj web aplikacija: stog MERN (MongoDB, Express.js, React i Nginx)

P

v. pred. dr. sc. Vedran Miletić

15.

7. 06. 2021.

12:00–13:30

O-S32

Pregled postojećih sustava za razvoj web aplikacija: ASP.NET Core (C#) i Spring (Java)

P

v. pred. dr. sc. Vedran Miletić

15.

10. 06. 2021.

14:00–17:15

O-365

Ispravak kontrolne zadaće. Konzultacije za izradu projekta

V

Milan Petrović, mag. inf.

16.

14. 06. 2021.

12:00–13:30

O-S32

Pregled postojećih sustava za razvoj web aplikacija: Ruby on Rails i Sinatra (Ruby), Django i Flask (Python)

P

v. pred. dr. sc. Vedran Miletić

16.

17. 06. 2021.

14:00–17:15

O-365

Konzultacije za izradu projekta

V

Milan Petrović, mag. inf.

P – predavanja
V – vježbe
I – pisani ili usmeni ispit, kontinuirana provjera znanja

Napomena: Moguće su izmjene rasporeda nastave. Za nove verzije rasporeda potrebno je pratiti obavijesti u e‑kolegiju.