Uvod u razvoj internetskih aplikacija

Naziv predmeta
Uvod u razvoj internetskih aplikacija
Oznaka predmeta
08303
Semestar
1
Status predmeta
Obvezni
ECTS
6
Predavanja
30
Vježbe
30
Samostalni rad
120
Ukupno
180
Nastavnici i suradnici
Danijel Kučak, dipl. ing.
Cilj predmeta
Kolegij je oblikovan tako da približi programersku struku „neprogramerima“. Polazeći od osnova uvodi studente u svijet programskog jezika PHP kojim su napisane interaktivne aplikacije koje svakodnevno koristimo. Složeni internetski sustavi poput Facebooka, WordPressa ili Wikipedije pogonjeni su upravo PHPom. Studenti će tijekom ovog kolegija ovladati osnovama PHP programskog jezika kako bi mogli izvršavati funkcije poput manipulacije varijablama, petljama, grananjem te pohranom i dohvatom sadržaja u i iz baze podataka MySQL. Kako je ovaj kolegij ujedno i uvod u baze podataka, studenti će se ovdje stečenim znanjem koristiti i nadograđivati ga u važnim kolegijima koji slijede, a temelje se na poznavanju baza podataka.
Sadržaj
P1: Uvod u web programiranjem - Komunikacija – klijent – poslužitelj, Statičke i dinamičke stranice, HTML Obrasci (engl. forms) i GET i POST metoda, HTML tablice, HTML linkovi i GET metoda, PHP skriptni jezik, Kombiniranje PHP i HTML, Korištenje uključivanja (engl. include) na strani poslužitelja za zajedničke elemente stranice V1: Izrada osnovnog obrasca za prijavu korisnika na konferenciju. Modifikacija izrađenog obrasca da se pomoću svojstva za uključivanje razloži na osnovne dijelove u više programskih skripti. P2: PHP osnove skriptnog jezika - Pregled sintakse, Upotreba navodnika, Komentiranje programskog koda, Specijalni znakovi i simboli, Tipovi podataka V2: Izrada nekoliko različitih PHP skripti sa osnovnim naredbama radi ovladavanja osnovnom sintaksom i načinom pisanja programskog koda i tipovima podataka P3: Varijable u PHP-u – Varijable, Djelokrug varijabli, Konstante, Polja, Super globalne varijable, Obrada podataka iz HTML obrasca V3: Izrada programskih skripti koje obrađuju podatke poslane iz obrasca za prijavu korisnika na konferenciju i sprema ih u varijable (polja, varijable $_POST) te ispisuje na ekran u definiranoj HTML tablici P4: Varijable u PHP-u - Obrada podataka iz URL-a, Operacije s brojevima, Operacije s datumima i vremenima V4: Izraditi programske skripte koje predstavljaju kostur neke stranice i aplikacije. Stvoriti index.php i tri dodatne pod stranice. Urediti i povezati ih tako da index.php postane glavna stranica i sav sadržaj ide preko nje korištenjem metoda za uključivanje sadržaja i poveznica za odabir (linkova). Index sadržava sve zajedničke elemente, a tri pod stranice samo centrali promjenjivi dio. P5: Polja - Stvaranje polja i dodavanje vrijednosti iz više varijabli, Dohvaćanje podataka iz polja, Provjera da li podatak postoji u polju V5: Izrada programskih skripte koja sadrži višedimenzionalno polje podataka o reklamnim oglasima (bannerima) koji se moraju prikazati na nekoj stranici. Uključiti tu skriptu u novu i napraviti ispis unutar zadanog HTML okvira koji ima predefinirana mjesta za prikaz slikovnog sadržaja. Ako se iz polja ukloni neki element on se ne smije prikazati na stranici. P6: Polja - Funkcije za rad s poljima V6: Izraditi programsku skriptu sa obrascem za pretraživanje. Upisani pojam se mora pronaći u polju korisnika prijavljenih za konferenciju, a svi rezultati koji odgovaraju rezultatu pretrage prikazati u HTML tablici ispod obrasca za pretragu P7: Sesije i kolačići - Osnovni mehanizam sesija, Pohrana i dohvaćanje podataka iz sesije, Način rada kolačića, Pohrana i dohvaćanje podataka iz kolačića V7: Izraditi programsku skriptu koja prepoznaje da li je korisnik već bio na stranici te svakom korisniku prikazuje informaciju njegovog zadnjeg posjeta. P8: Kontrolne strukture i petlje - Kontroliranje toka izvođenja skripte pomoći kontrolnih struktura, If-else, Switch-case V8: Izraditi programsku skriptu koja sadrži polje sa prijevodima na više jezika različitih tekstova na stranici. Stvoriti poveznice (linkove) za odabir jezika i u ovisnosti koji je jezik odabran prikazati sadržaj na tom jeziku koristeći pripremljene tekstove iz polja. P9: Kontrolne strukture i petlje - Upotreba petlji u razvoju programskog rješenja, While i Do-While petlje, For petlja, Foreach petlja V9: Izraditi programsku skriptu koja će poslati e-mail poruke svim korisnicima koji su definirani u polju. Poruka mora biti personalizirana na temelju podataka o imenu i spolu koji se nalaze u polju podataka. P10: Funkcije - Tipovi funkcija – ugrađene i vlastite, Pozivanje funkcija, Stvaranje nove funkcije, Parametri funkcija – obvezni, opcionalni i varijabilni V10: Izraditi programsku skriptu koja će sadržavati funkciju za nasumični prikaz slike (bannera) na stranici. Slike se nalaze u polju podataka koje se funkciji predaje kao parametar. P11: Uvod u baze podataka i SQL jezik - Relacijski model baze, Normalizacija baze V11: Definirati bazu u koju se upisuju svi podaci o korisnicima koji su se prijavili na konferenciju i koja sadrži sve potrebne podatke koji se nalaze u obrascu za prijavu. Definiranu bazu normalizirati i prenijeti u MySQL DB serveru P12: Uvod u baze podataka i SQL jezik - SQL jezik, INSERT, UPDATE, DELETE, SELECT V12: Napisati SQL naredbe za unos podataka o korisniku u bazi. Unijeti 5 novih korisnika korištenjem te naredbe. Napisati SQL SELECT naredbu koja dohvaća sve unesene podatke o korisnicima i prikazuje ih u tablici. P13: PHP funkcije za rad s MySQL bazom podataka - Različite PHP funkcije za rad s bazom, Konekcija na bazu podataka V13: Izraditi php skriptu (db_connection.php) koja će predstavljati konekciju na bazu i podlogu za budući razvoj aplikacije. Koristiti napravljenu skriptu tak da se uključi (includ) u novu skriptu (provjera.php) koja će prikazati da li postoji konekcija prema bazi ili ne postoji. P14: PHP funkcije za rad s MySQL bazom podataka - Različite PHP funkcije za rad s bazom, Izvršavanje SQL upita, Obrada rezultata SQL upita V14: Izraditi programsku skriptu koja će se spojiti na bazu podataka u kojoj su upisani svi korisnici koji su se prijavili na konferenciju i ispisati njihove podatke. Dohvatiti sve korisnike, složiti ih abecednim redom i prikazati u tablici. Dodati polje za pretraživanje po imenu i prezimenu korisnika iznad tablice i aktivirati opciju pretraživanja po imenu i prezimenu. P15: PHP funkcije za rad s MySQL bazom podataka - Različite PHP funkcije za rad s bazom, Pohrana podataka u bazu, Ažuriranje podataka u bazi, Brisanje podataka V15: Definirati i stvoriti bazu za pohranu slika (bannera) za stranicu te izraditi formu za unos novih. Uz njih vezati osnovne informacije kao što su URL na koji vodi kada se klikne na sliku, vrijeme isteka, naziv, opis, status (aktivna/neaktivna). Omogućiti ažuriranje i brisanje unesenih slika.
Osnovna literatura:
Božajić, I.: Uvod u PHP i objektno orijentirano programiranje. Zagreb: Algebra učilište, 2011.
Božajić, I.: PHP i MySQL. Zagreb: Algebra učilište, 2011.
Božajić, I.: Napredno PHP programiranje i izrada web aplikacijia. Zagreb: Algebra učilište, 2011.
Preporučena dopunska literatura
Rasmus Lerdorf, Kevin Tatroe i Peter MacIntyre: Programirnje PHP. Zagreb: Dobar plan (O\'Reilly), 2006.
Ivan Mesic: Programiranje, Zagreb: Algebra, 2009.
Julijan Šribar, Boris Motik: Demistificirani C++, Element, 2010.
Domagoj Kusalić: Napredno programiranje i algoritmi u C-u i C++-u, Element, 2011.

Minimalni ishodi učenja

  1. Kreirati vlastita programska rješenja pomoću HTML elemenata na razini jedne do pet umreženih stranica
  2. Kreirati programska rješenja uz korištenje varijabli i funkcija na razini umreženih neovisnih stranica
  3. Odabrati ispravnu programsku strukture za upravljanje tokom unutar aplikacije uz primjenu jednostrukih petlji i grananja
  4. Dizajnirati vlastite funkcije prilikom izrade programskih rješenja uz optimizaciju koda na razini stranice
  5. Kombinirati osnovne SQL naredbe za upravljanje podacima (INSERT; UPDATE; DELETE i SELECT) na razini jedne tablice
  6. Dizajnirati PHP funkcije za rad s MySQL bazom podataka u programskim rješenjima

Željeni ishodi učenja

  1. Kreirati vlastita programska rješenja pomoću HTML elemenata na razini više od pet umreženih stranica
  2. Kreirati programska rješenja uz korištenje varijabli i funkcija na razini umreženih neovisnih stranica, kao i koristeći rekurziju stranice
  3. Odabrati ispravnu programsku strukture za upravljanje tokom unutar aplikacije uz primjenu višestrukih petlji i grananja
  4. Dizajnirati vlastite funkcije prilikom izrade programskih rješenja uz optimizaciju koda na razini umreženih stranica s odvojenom datotekom za funkcije
  5. Kombinirati osnovne SQL naredbe za upravljanje podacima (INSERT; UPDATE; DELETE i SELECT) na razini relacijskog modela
  6. Dizajnirati PHP funkcije za rad s MySQL bazom podataka u programskim rješenjima i rangirati rezultate prema zadanom kriteriju