Spletno programiranje

Spletno programiranje

Ure predavanj: 45

Ure seminarjev: 20

Ure vaj: 10

ECTS točke: 6

Predavanja:
Uvod v spletno programiranje
• Svetovni splet, internet, arhitektura odjemalec/strežnik, celostni razvoj programske opreme, metodologija razvoja, Git,
• Spletna standarda HTML in CSS ter Bootstrap,
JavaScript – programski jezik spleta na strani odjemalca in strežnika
• Razvoj jezika, funkcije višjega reda, regularni izrazi, moduli, JavaScript in spletni brskalnik, DOM, obvladovanje dogodkov, HTTP,
• Node.js, npm, datotečni strežnik, MVC in različna okolja (Docker, oblačno gostovanje),
Zaledni del in dostop do podatkov
• Podatkovnega model, shema, lokalna in gostujoča podatkovna baza, REST API, metoda, odgovor in status zahteve, (geografske) poizvedbe z GET,
• Dodajanje podatkov s POST, ažuriranje s PUT in brisanje podatkov z DELETE, dokumentiranje s Swagger in OpenAPI,
Uporabniški vmesnik
• TypeScript, Angular (moduli, komponente, storitve, cevi, izrazi), komunikacija z zalednim delom,
• Angular SPA, usmerjanje, navigacija, vgnezdene komponente, geolociranje, prenos podatkov med komponentami, varnostne izjeme, delo s spletnimi obrazci, modalno okno, dvosmerno povezovanje podatkov,
• Preverjanje istovetnosti uporabnika, enosmerno šifriranje gesel, žeton JWT, API za avtentikacijo, varnostna zaščita dostopnih točk API, avtorizacija pri ažuriranju, posodobitev Swagger dokumentacije, storitev avtentikacije na strani odjemalca, registracija in prijava, zgodovina brskanja, uporabniške nastavitve v brskalniku,
Decentralizirane aplikacije in veriga blokov
• DApps, veriga blokov, omrežje Ethereum, Ether, gas, klici, transakcije, EVM, pametne pogodbe,
• Solidity (spremenljivka stanja, konstruktor, funkcije, testiranje, večkratno dedovanje), knjižnice, vmesniki, ERC20, Truffle,
• Web3 (uporabniški vmesnik, testiranje z Ganache, postavitev pametne pogodbe, MetaMask).
Dodatne funkcionalnosti
• Varnost spletnih aplikacij, OWASP, trend največjih varnostnih tveganj spletnih aplikacij, priporočila za razvijalce, varnostni pregled z OWASP ZAP
• Testiranje, funkcionalni testi s Selenium, pregled aplikacije z Lighthouse, progresivne spletne aplikacije (PWA), brskanje brez povezave. medponjenje oddaljenih podatkov.

Vaje:
Laboratorijski projekt izdelave celostne rešitve porazdeljene spletne aplikacije, razdeljen v posamezne faze (statične strani, kode na strani odjemalca, strežniška koda, storitve) in samostojno delo na projektih z zaključno predstavitvijo študentov.

1. Robert W. Sebesta: Programming the World Wide Web, Pearson Education, 2014.
2. Paul J. Deitel, Harvey M. Deitel, Abbey Deitel et al.: Internet & World Wide Web: How to program, Pearson, 2012.
3. Marijn Haverbeke: Eloquent JavaScript: A Modern Introduction to Programming, 3rd edition, No Starch Press, 2018.
4. Simon Holmes: Getting MEAN with Mongo, Express, Angular, and Node, 2nd edition, Manning Publications, 2019.
5. Cedric Exbrayat: Become a Ninja with Angular, Ninja squad, 2021.
6. Roberto Infante: Building Ethereum DApps: Decentralized Applications on the Ethereum Blockchain, Manning Publications, 2019.