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
- Kappel, G., Prýýll B., Reich, S., Retschitzegger, W. Web Engineering: The Discipline of Systematic Development of Web Applications. (Wiley, 2006).
- Fowler, M., Rice, D., Foemmel, M., Hieatt, E., Mee, R., Stafford, R. Patterns of Enterprise Application Architecture. (Addison-Wesley, 2002).
- Bendoraitis, A. Web Development with Django Cookbook, Second Edition. (Packt Publishing, 2016).
- Wiggins, A. The Twelve-Factor App. (Heroku, 2017). Dostupno na: 12factor.net
- Skripte, prezentacije i ostali materijali za učenje dostupni u e-kolegiju.
Popis literature koja se preporučuje kao dopunska
- Welling, L., Thompson, L. PHP and MySQL Web Development, Fifth Edition. (Addison-Wesley, 2017).
- Ullman, L. PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide, Fourth Edition. (Peachpit Press, 2011).
- Tailwind CSS Documentation. Dostupno na: tailwindcss.com
- 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.