Hrvatski
Hrvatski
English

PRIMIJENJENO WEB PROGRAMIRANJE

Cilj
Nakon uspješno savladanog objektno orijentiranog pristupa, cilj ovog predmeta je upoznati studente sa realnim izazovima izrade web aplikacije. Kolegij obuhvaća analizu dobrih praksi za obradu i prikazivanje podataka. Naglasak se stavlja na iskoristivost postojećih funkcionalnosti i alata u postizanju naprednih svojstava rada web aplikacije.
Uvjeti upisa
Uvjet za polaganje kolegija je položen kolegij Osnove programiranja, Objektno orijentirano programiranje, Uvod u (X)HTML, Javascript i CSS.
Ishodi učenja
- Objasniti ulogu nadogradnji na web sustave u proširenju funkcionalnosti prikupljanja i analize podataka, te upravljanju podacima.
- Analizirati web sustav, prepoznati nedostatke primjene dobrih industrijskih praksi, te argumentirati uvođenje dobrih praksi u izgradnji kvalitetnijeg web sustava.
- Uočiti nedostatke dobrih praksi te uporabom dobrih praksi otkloniti nedostatke i izgraditi poboljšanu verziju web sustava.
Nastavni plan
1. Uvod u primijenjeno web programiranje. Razlikovanje serversko / klijentske infrastrukture. Prikupljanje i analiza zahtjeva za izradu web aplikacije. Troslojna arhitektura. Utjecaj potrebe programskih sučelja za izgradnju mobilnih aplikacija na arhitekturu web aplikacije. Dekomponiranje programske logike web aplikacije usmjerno prema pregledniku te prema poslužitelju. Sjednica korisnika, ponavljanje spremanja podataka u pregledniku naspram spremanja podataka na poslužitelju.
2. Dostupnost i otvorenost podataka u pregledniku. Doseg vidljivosti podatka u pregledničkom prozoru, DOM-u i karticama. Prikupljanje podataka o korisniku. Sustavi za analize podataka. Analiza korisnikove sjednice na stranici.
3. Analiza korisnikove sjednice na stranici - drugi dio. Cikus učitavanja podataka u preglednik i vidljivost podataka. Ugrađeni objekti za pregled navigacije. Transformacija podataka u pregledniku, metode evaluacije programske logike i rizici za sigurnost. Kontekst dodataka u pregledniku.
4. JavaScript odabrani koncepti 1/3, ponavljanje. Jednodretvenost izvođenja programske logike u pregledniku. Asinkronost slanja HTTP zahtjeva i obrada povratnih rezultata. Konkurentnost izvođenja logike u pregledniku. Djelokrug varijabli i uspostava izoliranog djelokruga.
5. JavaScript odabrani koncepti 2/3. Konstrukcija objekata.
6. JavaScript odabrani koncepti 3/3. Izvođenje skripti i naknadno dodanih elemenata stranice. Zaobilazak politike istog izvorišta u pregledniku, JSONP. Uporaba ugradbenih elemenata sa drugih stranica (postovi, gumbi). Primjeri. Objave događaja u pregledniku i PubSub obrazac. Reaktivno izvođenje logike u pregledniku.
7. Politika istog izvorišta na poslužitelju. Višedretvenost obrade zahtjeva na poslužitelju. Optimiziranje posluživanja, oslobadjanje dretvi i dugotrajni zadaci. Reaktivno programiranje na poslužitelju.
8. Sigurnost podataka u pregledniku. Enkripcija podataka i uspostava sigurnog komunikacijskog kanala poslužitelja sa preglednikom. Vrste ugrožavanja sigurnosti i površina izložena napadima. Autentikacija 1/2. Spremanje podataka u bazu, enkripcija i provjera autentičnosti. Protokoli autentikacije. Osnovni protokol HTTP authentikacije, HTTP zaglavlja. Podaci u zahtjevu i odgovoru autentikacije. Ograničenje vremena trajanja sjednice, osvježavanje autenticirane sjednice.
9. Napredna autentikacija 2/2, JWT, protocol OAuth 1.0 i OAuth 2. OpenID Connect. 7. Certifikati i Lets encrypt inicijativa. Vanjski servisi za autentikaciju. Federacija i upravljanje identitetom i pravima pristupa korisnika (IAM).
10. Povezivanje web aplikacije na zaštičena sučelja vanjskih sustava, registriranje aministratora, prstupni kljuc/token web aplikacije. Sustavi za pojednostavljenje i automatizaciju povezivanja web aplikacija (Zapier).
11. Dizajn programskih sučelja web aplikacije. Sustavi za specificiranje i generiranje programskih sučelja web usluga. Dokumentacija strukture zahtjeva i odgovora sučelja. Mogući standardi i protokoli. Transformiranje podataka.
12. Testiranje web aplikacije. Upravljanje programskim bibliotekama. Razlikovanje produkcijskog okruženja od testnog okruženja. Logiranje podataka. Minifikacija datoteka za prikaz i programsku logiku. Dobre prakse dokumentiranja. Pakiranje web aplikacije u kontejner za nezavisno postavljanje u rad. Skaliranje web aplikacije. Obrada velikih skupova podataka. Redovi čekanja za asinkronu obradu. Dozvoljena nepreciznost.
13. Spremanje podataka na poslužitelju 1/2. ORM sustavi osnove. Izazovi spajanja podataka.
14. Spremanje podataka na poslužitelju 2/2. Nerelacijske baze podataka noSQL. Fleksibilnost.Graf baze podataka. Prednosti i nedostaci.
15. Metode i alati za vizualizaciju podataka. OLAP principi, klasteriranje na mapi.
Način ocjenjivanja
Ocjenjivanje i vrednovanje rada studenata tijekom nastave
Bodovi
Kolokvij IU1 30
Kolikvij IU2 30
Praktični rad - ispit 40
Ocjenjivanje i vrednovanje rada studenata na ispitu
Ispit IU1 30
Ispit IU2 30
Praktični rad - ispit 40
Literatura
  • Chemuturi, M. (2018) Software Design: a comprehensive guide to software development projects. Boca Raton: CRC Press.
  • Choi, W. et al. (2000) Beginning PHP 4. Indianopolis : Wiley publishing.
  • Svekirs Lars, L. (2021) JavaScript from Beginner to Professional: Learn JavaScript quickly by building fun, interactive, and dynamic web apps, games, and pages. Birmingham : Packt Publishing.
  • World Wide Web Consortium.
  • PHP Tutorial.
Program: Elektroničko poslovanje i programsko inženjerstvo
ID: 6284
Vanjski ID: 243799
Ects: 5
Online postotak: 20
Ocjenjivanje:
90-100 izvrstan (5)
75-89 vrlo dobar (4)
60-74 dobar (3)
50-59 dovoljan (2)
0-49 nedovoljan (1)
Sati:
30 Predavanja
0 Seminari
30 Vježbe
0 Terenska nastava
Predavač/i: