3. semestar · Obvezni · 6 ECTS
Programiranje za web
O kolegiju
Razvoj suvremene web aplikacije s odvojenim poslužiteljskim i klijentskim dijelom koji komuniciraju putem sučelja HTTP API, od poslužiteljskog dijela u Pythonu i okviru FastAPI s relacijskom bazom podataka do jednostranične klijentske aplikacije u okviru Vue. Uz to se obrađuju autentikacija i autorizacija, testiranje te objava aplikacije na platformi u oblaku.Ishodi i teme
- Arhitektura web aplikacije s odvojenim poslužiteljskim i klijentskim dijelom te razvojno okruženje uz Docker i Git
- Uvod u FastAPI: rute, ubrizgavanje ovisnosti, sheme Pydantic i obrada pogrešaka
- Baze podataka u aplikacijama FastAPI: modeliranje podataka, ORM SQLAlchemy i migracije alatom Alembic
- Autentikacija: sigurna pohrana zaporki te pristupni i osvježavajući tokeni JWT
- Autorizacija prema korisničkim ulogama i vlasništvu nad podacima te postavke CORS
- Oblikovanje sučelja REST API i validacija podataka: operacije CRUD i statusni kodovi HTTP
- Poslovna pravila i organizacija projekta u slojeve: rute, sheme, servisi, repozitoriji i modeli
- Jednostranične aplikacije (SPA) u okviru Vue: usmjeravanje i raspored stranica
- Komunikacija s API-jem i autentikacija u aplikaciji Vue te zaštita ruta prema ulogama
- Upravljanje stanjem aplikacije bibliotekom Pinia i web forme
- Tablice, filtriranje i straničenje podataka
- Testiranje web aplikacija: pytest, Vitest, Playwright i pokrivenost koda testovima
- Objava aplikacije na platformi u oblaku: zapisivanje događaja, konfiguracija okruženja i provjera koda u cjevovodu CI
Izvođenje nastave i provjera znanja
Nastava se izvodi kroz predavanja i vježbe na kojima studenti uz praktične primjere i samostalne zadatke razvijaju vlastitu cjelovitu web aplikaciju. Projekt poslužiteljskog dijela i projekt cjelovite aplikacije u radu nose po 40 posto ocjene, a usmeni ispit 20 posto, uz prag od 50 posto na svakom elementu.