Preskoči na sadržaj

SVEUČILIŠTE U RIJECI
ODJEL ZA INFORMATIKU
Ulica Radmile Matejčić 2, Rijeka
Akademska godina 2020./2021.

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: lab.miletic.net/hr/nastava/kolegiji/DWA2/ moodle.srce.hr/2020-2021/

ECTS bodovi: 4 (3)

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

Nositelj predmeta:

v. pred. dr. sc. Vedran Miletić

E-mail: vmiletic@inf.uniri.hr
Web stranica: vedran.miletic.net
Ured: Ulica Radmile Matejčić 2, O-520
Vrijeme konzultacija: ponedjeljkom od 14 do 16 sati ili po dogovoru e-mailom

Asistent:

Milan Petrović

E-mail: milan.petrovic@inf.uniri.hr
Web stranica: portal.uniri.hr/Portfelj/4166
Ured: Ulica Radmile Matejčić 2, O-522
Vrijeme konzultacija: ponedjeljkom od 14 do 16 sati ili po dogovoru e-mailom

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 orijentirano 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 orijentirano 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: 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: tailwindcss.com
  4. Vue.js Documentation. Dostupno na: 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 (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

Kontinuirani rad i 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. god. 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 orijentirana. Paradigme programiranja u web aplikacijama: proceduralna, objektno orijentirana, 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ć
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ć
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ć
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ć
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ć
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ć
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ć
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ć
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ć
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ć
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ć
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ć
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ć
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ć
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ć

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.