Predmet ima za cilj upoznati studente s osnovama modernog razvoja web aplikacija. Pretpostavka je da studenti već poznaju osnove web tehnologija (HTML i CSS) i Python programski jezik. Ovaj predmet studente vodi upoznavanju sljedećih bitnih područjima web razvoja: izradi dinamičkih poslužiteljskih web stranica (tj. server-side programiranju), te izradi dinamičkih klijentskih web stranica korištenjem JavaScript programskog jezika.
Od studenata se očekuje ovladavanje ovim područjima razvoja weba, i to prvenstveno kroz praktične primjere i radom na vlastitim web projektima.
- Razumjeti osnovne pojmove web razvoja, tj. HTML i CSS jezika, te iste koristiti u razvoju web stranica
- Razumjeti što je server-side programiranje, kako rade web poslužitelji, koje alate možemo koristiti i koji su najpoznatije platforme za razvoj
- Upoznati se s Flaskom, web platformom za razvoj u Python programskom jeziku.
- Naučiti postaviti razvojnu okolinu, instalirati sve potrebne komponente i koristiti standardne alate za razvoj
- Upoznati koncept predložaka (templates), te naučiti razvijati iste korištenjem Jinja2 ekstenzije
- Upoznati se s HTML formama, te WFTForms ekstenzijom za rad s formama u Flasku
- Naučiti organizirati projektnu strukturu aplikacije koja se može koristiti i na složenijim web projektima
- Upoznati se s pojmovima sigurnosti na web i kako implementirati osnovne koncepte sigurnosti u Flasku
- Upoznati se s Rest API konceptom, Json (i drugim) formatima za razmjenu podataka, te konzumiranjem web servisa
- Naučiti testirati web aplikacije korištenjem unit i end-to-end testova
- Naučiti debugirati web aplikacije
- Uspješno objaviti web aplikaciju na vanjskim poslužiteljima
- Upoznati se s JavaScript programskim jezikom i njenim osnovnim izgradbenim blokovima
- Naučiti pisati JavaScript kôd za manipuliranje web stranicama
- Naučiti riješiti neke standardne probleme korištenjem JavaScripta
- Upoznati jQuery, JavaScript biblioteku koja nam olakšava rad s klijentskim web programiranjem.
- biti sposobni razlikovati statičke i dinamičke web stranice, te uvidjeti prednosti i mane svakog od navedenih pristupa pri razvoju web stranica
- razumjeti princip funkcioniranja web poslužitelja te će naučiti kako instalirati i konfigurirati različite tipove poslužitelja
- se upoznati s različitim tipovima web platformi, njihovim karakteristikama, načinima i scenarijima primjene
- se detaljno upoznati s Flaskom, web platformom za razvoj dinamičkih web stranica u Python programskom jeziku. Naučit će instalirati * potrebne komponente za rad, postaviti razvojnu okolinu na računalu i koristiti Werkzeug biblioteku u radu s web poslužiteljem
- uvidjeti prednosti korištenja web predložaka te naučiti raditi s Jinja2 bibliotekom za podršku predlošcima u Flask-u
- razumjeti svrhu i način korištenja HTML formi u razvoju web aplikacija, upoznati se s WTForms Python bibliotekom za validaciju i iscrtavanje HTML formi, te Flask-WTF ekstenzijom
- biti sposobni da samostalno organiziraju strukturu većeg web projekta u pakete i module
- biti sposobni razumjeti i implementirati različite sigurnosne koncepte pri razvoju web aplikacija, uključujući upravljanje korisničkim sesijama, zaštitom aplikacije, rad sa zaporkama i njihovom validacijom, kriptografski rad s generiranjem tokena i njihovom verifikacijom, te definiranjem i implementacijom korisničkih uloga i profila u web aplikacijama
- razumjeti principe web servisa, upoznati se načinima konzumiranja različitih Rest API servisa, te formatima za razmjenu podataka preko weba poput Json-a, XML-a, CSV-a i sl.
- razumjeti ostale dobre prakse i koncepte koje se koriste u web programiranju poput debug-iranja, cache-iranja, zapisivanja logova, analize performansi rada web aplikacija i njihovoj optimizaciji
- naučiti objaviti svoje web aplikacije, odabrati web poslužitelj, te ga znati konfigurirati i administrirati iste
- upoznati se s konceptom i svrhom testiranja web aplikacija, te će naučiti pisati i provoditi unit i end-to-end testove
- razumjeti princip razvoja klijentskih web aplikacija uz pomoća JavaScripta i različitih biblioteka namijenjenih toj svrsi
- naučiti programirati u JavaScriptu, te upoznati načine za manipulaciju DOM strukture web stranica uz pomoć tog jezika
- naučiti koristiti jQuery biblioteku namijenjenu lakšem radu u klijentskom web programiranju
- biti sposobni napraviti i objaviti složenu web aplikaciju koja implementira sve koncepte naučene tijekom kolegija