40
Nikolina Đapić | Luka Ibrišimović | Ivan Pandžić | Jurica Šeparović PROGRAMSKO INŽENJERSTVO 550 - FESB 2016. REFERADA

REFERADA. semestar...5. SPECIFIKACIJA DIZAJNA WEB APLIKACIJE.....28 5.1. Opis rada 5.2. Opis pojedinih skripti .....29 ... Korisničko sučelje je internet stranica, koja će biti

  • Upload
    lydat

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Nikolina Đapić | Luka Ibrišimović | Ivan Pandžić | Jurica Šeparović

PROGRAMSKO INŽENJERSTVO 550 - FESB 2016.

REFERADA

Sadržaj 1. UVOD .........................................................................................................................................1

1.1. Svrha i područja primjene dokumenta ...................................................................................................................... 1

1.2. Pregled dokumenta ...................................................................................................................................................... 1

1.3. Opseg i perspektiva projekta ...................................................................................................................................... 1

1.4. Namjena i kratak opis sustava .................................................................................................................................... 1

1.5. Platforme i alati ............................................................................................................................................................. 2

2. PREGLED SUSTAVA ....................................................................................................................3

2.1. Mogućnosti .................................................................................................................................................................... 3

2.2. Zahtjevi sustava ............................................................................................................................................................. 4

2.2.1. Hardverski zahtjevi .......................................................................................................................................... 5

2.2.2. Softverski zahtjevi ............................................................................................................................................ 5

3. ARHITEKTURA SUSTAVA............................................................................................................6

3.1. Pregled sustava kao cjeline ......................................................................................................................................... 6

3.2. Podjela sustava na podsustave ................................................................................................................................... 7

3.2.1. Web aplikacija (front end i back end)........................................................................................................ 7

3.2.2. Baza podataka................................................................................................................................................... 8

3.3. Softverska sučelja među podsustavima .................................................................................................................... 8

3.3.1. Veza između korisničkog sučelja i pozadinskog sustava .................................................................... 8

3.3.2. Veza između pozadinskog sustava i baze podataka ............................................................................ 8

3.6. Administrator i ostali korisnici kao dijelovi sustava ................................................................................................. 9

3.7. Administrator ................................................................................................................................................................ 9

3.7.1. Funkcije dostupne administratoru.............................................................................................................. 9

3.8. Djelatnik referade .......................................................................................................................................................10

3.8.1. Funkcije dostupne djelatniku referade....................................................................................................10

3.9. Profesor........................................................................................................................................................................13

3.9.1. Funkcije dostupne profesoru .....................................................................................................................13

3.10. Student .........................................................................................................................................................................14

3.10.1. Funkcije dostupne studentu .......................................................................................................................14

4. SPECIFIKACIJA DIZAJNA BAZE PODATAKA.............................................................................. 17

4.1. Model baze podataka ................................................................................................................................................17

4.2. Popis tablica i atributa ...............................................................................................................................................19

5. SPECIFIKACIJA DIZAJNA WEB APLIKACIJE ............................................................................... 28

5.1. Opis rada aplikacije.....................................................................................................................................................28

5.2. Opis pojedinih skripti .................................................................................................................................................29

5.3. Korisničko sučelje .......................................................................................................................................................32

1

1. Uvod

Ovaj dokument predstavlja specifikaciju dizajna (engl. Software Design Specification - SDS) za

sustav referade nekog fakulteta. Namijenjen je članovima projektnog tima zaduženim za

implementaciju i verifikaciju funkcionalnosti sustava.

U nastavku dokumenta definiran je dizajn aplikacije i baze podataka kojom se koristi ova aplikacija.

1.1. Svrha i područja primjene dokumenta

Glavna svrha ovog dokumenta je dekompozicija sustava na prikladne manje dijelove (module)

koje je kao takve lakše razumjeti i u konačnici implementirati. Sve navedeno vodi kvalitetnijoj

aplikaciji koja u potpunosti zadovoljava prethodno definirane zahtjeve, što i jest konačni cilj projekta.

1.2. Pregled dokumenta

Dokument je temeljiti opis dizajna sustava. Nakon uvoda u prvom poglavlju, u drugom poglavlju

je dan pregled sustava. U trećem poglavlju, nazvanom arhitektura sustava, opisana je podjela

sustava na podsustave te su opisana sučelja između podsustava. U zadnja dva poglavlja su

detaljno razrađeni podsustavi od kojih se sustav sastoji.

1.3. Opseg i perspektiva projekta

Sustav referade pruža korisnicima olakšani rad svih djelatnosti vezanih za rad referade fakulteta.

Putem interneta korisnici mogu na jednostavan način pristupiti svim potrebnim uslugama.

Zadatak aplikacije je povezati više grupa korisnika u istom sustavu kako bi mogli pristupiti

podacima na adekvatan način.

Cilj projekta je, osim osiguravanja traženih funkcionalnosti, omogućiti praktičnost, brzinu i jednostavnost rukovanja aplikacijom.

Perspektiva aplikacije se očituje u tome što se uz potrebne izmjene modula može poboljšati i

izmijeniti dio sustava sukladno pojavi novih zahtjeva.

1.4. Namjena i kratak opis sustava

Proizvod se sastoji od web aplikacije i baze podataka. Na web stranici dostupan je pregled svih

mogućnosti i radnji koje su vezane uz pojedinog korisnika. Uređivanjem baze podataka mijenjaju

se i podaci koji su prikazani putem web sučelja.

2

Djelatnik referade, budući da ima najveća prava, ima i najviše ponuđenih mogućnosti prilikom

otvaranja aplikacije. Drugi korisnici sustava, poput profesora i studenta, imaju manje ponuđenih

mogućnosti. Profesor u pregledu web aplikacije dobiva mogućnost pregleda svih studenata na

njegovim kolegijima i mogućnost unosa ocjena nakon završetka ispita. Student dobiva formu za

upis nove godine kada to odrede djelatnici referade, a također u sustavu može koristiti

mogućnosti izdavanja potvrda i pregleda vlastitih podataka ili primjerice obrazaca za ispunjavanje

molbi.

Sustavom je osigurano da upis bude ispravno unesen. Iako su pogreške moguće, sve slučajeve

koji odstupaju od normalnog pregledat će djelatnici referade. Prilikom korištenja usluge

izdavanja potvrda, korisniku se dostavlja potvrda u obliku PDF datoteke. Kako bi korisnici bili sigurni da je transakcija uspješno obavljena, bit će im dostavljen e-mail s detaljima.

1.5. Platforme i alati

Web aplikacija će biti zasnovana na Symfony 3 framework-u i napisana u programskom jeziku

PHP. Za grafičko korisničko sučelje koristit će se HTML5 i CSS3 uz JavaScript i JQuery. Sustav

koristi bazu podataka (IRAĐENU KROZ JE PODCRTANO)izrađenu kroz PHPMyAdmin. Prilikom

dizajniranja i programiranja aplikacije i baze podataka koristit će se alati poput Notepad++,

PHPStorm-a, PHPMyAdmina i XAMPP lokalnog servera.

3

2. Pregled sustava

Ovo poglavlje ukratko opisuje funkcionalne zahtjeve sustava i ograničenja koja se odnose na

njegovu implementaciju, radnu okolinu i način korištenja. Toga se treba pridržavati u fazi

dizajniranja i implementacije sustava.

2.1. Mogućnosti

U ovom dijelu navedene su mogućnosti koje pojedini korisnik ima u aplikaciji.

Administrator:

- Unos obavijesti

- Upis studenata

- Upis profesora

- Dodavanje predmeta

- Dodavanje djelatnika

- Potvrde

- Prijava

Djelatnik referade:

- Unos obavijesti

- Upis studenta

- Upis profesora

- Dodavanje predmeta

- Potvrde

- Prijava

Profesor:

- Prijava

- Pregled kolegija

- Upis ocjena

Student:

- Potvrde

- Prijava

- Osobne informacije

- Pregled kolegija

- Upis viših godina

4

Ove mogućnosti vidljive su u navedenom dijagramu aktivnosti (slika 1) koji je također naveden i u dokumentu specifikacije zahtjeva kao i detaljan opis navedenih mogućnosti.

Slika 1 - Dijagram aktivnosti

2.2. Zahtjevi sustava

Dio ovih zahtjeva je već obrađen u dokumentu specifikacije zahtjeva, dok se u nastavku opisuju

zahtjevi aplikacije prema sklopovlju računala na kojem će se izvoditi aplikacija i okruženju u kojem će se izvoditi. Ograničenja su prikazana kroz softverske i hardverske zahtjeve aplikacije.

5

2.2.1. Hardverski zahtjevi

Jedna od ideja koje bi se trebalo držati prilikom dizajna ove web aplikacije je da nema

hardverskih zahtjeva. Budući da je predviđeno da aplikacija radi u bilo kojem internet

pregledniku, nema potrebe za pisanjem specifikacije za određene operacijske sustave nego je

potrebna optimizacija za starije verzije Internet preglednika. Hardverski zahtjevi će zapravo biti vezani uz zahtjeve samih web preglednika gdje će se aplikacija izvoditi.

Minimalni zahtjevi za rad web aplikacije referade za sve korisnike su:

- 32-bitni (x86) ili 64-bitni (x64) Intel/AMD procesor, 2Ghz

- 256MB RAM memorije

- 32MB memorijskog prostora na HDD-u

- Miš i tipkovnica

- Monitor

- Pristup Internetu, uz brzinu veću od 2Mbit/s

Minimalni zahtjevi za rad aplikacije referade na serveru za 500 trenutnih korisnika:

- 64-bitni (x64) Intel/AMD server procesor, preko 3Ghz (multiprocesor)

- 32GB RAM memorije

- 128GB memorijskog prostora na SSD-u

- 256GB memorijskog prostora na HDD-u (backup)

- Optički pristup internetu, preko 500Mbit/s

- Udaljeni SSH i sFTP serveru

2.2.2. Softverski zahtjevi

Aplikacija će imati podršku za rad u gotovo svim trenutnim verzijama operacijskih sustava, kao

što su Windows XP, Vista, 7, 8, 10, ali i različite Linux/Unix distribucije. Budući da podrška za rad

ne ovisi o operacijskom sustavu, već o pregledniku, treba se uzeti u obzir na kojim verzijama

internet preglednika će sve funkcije sustava raditi normalno. Glavni preglednik preko kojeg će se

vršiti testiranje aplikacije će biti Google Chrome 55 sa sekundarnim preglednicima Mozilla Firefox i Microsoft Edge.

Budući da će sustav biti pisan s novim tehnologijama, očekuje se i ažurnost web preglednika na

korisničkom računalu, što je osigurano preko „nevidljivog“ ažuriranja trenutno vodećih web

preglednika. Što se tiče servera, on će raditi na CentOS distribuciji Linuxa, PHP verzija 7.0, uz Symfony 3 framework.

6

3. Arhitektura sustava

3.1. Pregled sustava kao cjeline

Sustav je logički podijeljen na komponente s kojima pojedini korisnici sustava surađuju kako bi od

sustava dobili adekvatan odgovor na postavljeni upit, bez obzira odnosi li se taj zahtjev na unos

ocjene, upis iduće godine ili dohvaćanje potvrde (slika 2). Web aplikacija je predstavljena kroz

grafičko sučelje, a funkcionalnosti će nuditi kroz razne forme za unos, prikaz i uređivanje podataka.

Slika 2 – Pregled sustava kao cjeline

7

3.2. Podjela sustava na podsustave

Sustav je podijeljen u dva (tri) nezavisna podsustava pri čemu podsustavi međusobno

komuniciraju kako bi odgovorili na korisnikov upit. Svaki od podsustava brine se za različite

komponente i funkcije sustava zajedno sa svojim pripadajućim softver te se izvršava na nekom

od nezavisnih uređaja u sustavu.

3.2.1. Web aplikacija (front end i back end)

Web aplikacije je predstavljena kao grafičko sučelje koje korisnika povezuje s bazom gdje se

zapisuju aktivnosti korisnika koje se vrše kroz forme. Kvalitetna realizacija grafičkog sučelja

rezultirat će jednostavnošću i efikasnošću rada.

Web aplikaciju možemo podijeliti na dva dijela: korisničko sučelje (front end) i pozadinski sustav (back end).

Korisničko sučelje je internet stranica, koja će biti napisana u HTML-u 5 i CSS-u 3. Za dodatne

funkcionalnosti koristit će se JavaScript uz svoje pripadajuće biblioteke, ponajviše JQuery. Budući

da je stranica ujedno i sučelje prema korisniku, kroz JavaScript biblioteke će se izvršavati pregled

formi za unos podataka i zaštita od unosa velikog broja zahtjeva pomoću Google ReCaptcha.

Stranica će biti smještena na serveru gdje je prethodno instaliran Apache web server. Web

stranica ima sljedeća svojstva:

- Napisana uz pomoć HTML5 i CSS3

- Dodatne funkcionalnosti omogućene putem JavaScript biblioteka

- Stranici se pristupa putem web preglednika

- Dizajnirana po UI/UX principu

- Provjera podataka i formi uz JQuery

- Responzivan i brz odziv uz pomoć AJAX poziva.

Pozadinski sustav se nalazi na istom serveru na kojem se nalazi i internet stranica. Svi podaci,

prije nego dođu u bazu podataka ili na internet stranicu moraju proći kroz pozadinski sustav, koji

će osigurati njihovo ispravno i točno prikazivanje. Uz pomoć Composer -a se instaliraju svi

potrebni paketi i biblioteke koji su neophodni za neometan rad web aplikacije. Potreban je PHP

7, a uz njega se na server instalira i Symfony 3 framework. Pozadinski sustav ima sljedeća

svojstva:

- Najnovija verzija PHP-a i Symfony-a omogućavaju jako brzu obradu podataka

- Composer se brine za sve ovisnosit između paketa

- Olakšano održavanje uz korištenje Composer-a i Symfony-a uz PSR-4 autoload

- TWIG kao template engine.

8

3.2.2. Baza podataka

Za bazu podataka je odabrana relacijska baza podataka zasnovana na MySQL jeziku uz InnoDB.

Uz pravilno korištenje indeksa te kvalitetnim optimiziranjem samih tablica, postiže se brz i

neometan pristup podacima kako bi se korisnicima na upit odgovorilo što brže. Podaci su očuvani

redovitom izradom sigurnosnih kopija (backup-a). Za ispravan i neometan unos podataka u bazu,

koristit će se transakcije. Za rad baze podataka potreban je MySQL server uz PHPMyAdmin.

Detaljna specifikacija baze podataka nalazi se u slijedećem poglavlju.

3.3. Softverska sučelja među podsustavima

U ovom potpoglavlju su ukratko opisane veze između podsustava.

3.3.1. Veza između korisničkog sučelja i pozadinskog sustava

Veza između korisničkog sučelja i pozadinskog sustava je ostvarena najviše pomoću TWIG-a,

ponajviše radi korištenja predložaka (template-a). Naime, svaka pojedinačna stranica posjeduje

isto zaglavlje koje će se dinamički dodati svakoj novoj stranici. Sve stranice koriste istu CSS

datoteku, ali imaju različite JavaScript funkcije, ovisno o tome što im je potrebno.

3.3.2. Veza između pozadinskog sustava i baze podataka

Veza između pozadinskog sustava i baze podataka je je ostvarena preko Doctrine biblioteka za

pristup i razvoj baze podataka. Svi osjetljivi podaci koji se koriste za pristup MySQL serveru će biti

sigurno zapisani kroz sami Symfony framework. Pristup kroz pozadinski sustav će se najviše vršiti

kroz Symfony koji ujedno posjeduje i Doctrine, uz pomoć klasa iz navedenih biblioteka.

9

3.6. Administrator i ostali korisnici kao dijelovi sustava

U sustavu postoje četiri glavne klase korisnika. Ovisno o tome je li osoba prijavljena u sustav kao

administrator, djelatnik referade, profesor ili student bit će mu dostupne neke ili sve

funkcionalnosti, ovisno o njegovim potrebama.

3.7. Administrator

Administrator je korisnik sustava koji ima najveće ovlasti u sustavu, odnosno ima pristup svim

funkcijama i podacima u sustavu. On je jedini korisnik sustava koji ima direktan pristup bazi

podataka, a može mijenjati sam izgled baze podataka te ispravljati sve one vrijednosti koje nisu

vidljive ostalim korisnicima sustava. Administrator ima pristup istim funkcionalnostima koje ima

djelatnik referade, jedina razlika je što administrator ima mogućnost dodavanja novih djelatnika

u sustav.

3.7.1. Funkcije dostupne administratoru

Administratoru su dostupne iste funkcije kao i djelatniku referade, uz dodatnu funkciju koja mu omogućava dodavanje novih djelatnika referade u sustav (tablica 1).

Tablica 1 - Dodavanje djelatnika

DODAVANJE DJELATNIKA

Funkcija Dodavanje novih djelatnika referade u sustav.

Preduvjet Administrator koji pristupa ovoj funkciji je prijavljen u aplikaciju.

Posljedica Nakon što je odabrano polje Dodavanje djelatnika, otvara se forma

za dodavanje djelatnika. Nakon što se popune sva polja forme

(ime, prezime, broj mobitela, OIB), klikom na polje Potvrdi se izvrši

dodavanje novog djelatnika referade u sustav. Djelatnik referade je

upisan u sustav, dodijeljena su mu njegova prava pristupa i nakon toga on može pristupati aplikaciji.

10

3.8. Djelatnik referade

Djelatnik referade je, nakon administratora, osoba koja ima najveće ovlasti u sustavu što se tiče

pristupa bazi, budući da može dodavati studente i profesore te predmete i kolegije. Međutim,

njegov pristup bazi podataka je indirektan. Naime, omogućeno mu je dodavanje i uređivanje, kao

i brisanje, ali uz određene provjere prije nego što se sami upiti izvrše na bazi podataka da ne bi došlo do unosa krivih ili nedopuštenih vrijednosti.

3.8.1. Funkcije dostupne djelatniku referade

Sukladno ovlastima koje su dodijeljene djelatniku referade, on ima funkcije navedene u

tablicama 2-7.

Tablica 2 - Prijava

PRIJAVA

Funkcija Unos korisničkih podataka sa svrhom pristupanja sustavu.

Preduvjet Djelatnik mora imati dodijeljene važeće podatke kako bi se mogao

prijaviti.

Posljedica Djelatnik u polja forme za prijavu unosi svoje korisničko ime i

lozinku, a svoj unos potvrđuje klikom na polje Prijava. Ukoliko su

uneseni ispravni podaci, djelatnik je uspješno prijavljen u sustav te

može koristiti njemu dodijeljene funkcionalnosti sustava.

Tablica 3 - Potvrde

POTVRDE

Funkcija Pruža mogućnost izdavanja potvrda za studente.

Preduvjet Djelatnik je prijavljen u aplikaciju.

Posljedica Nakon što se otvori forma za izdavanje potvrda, potrebno je

odabrati svrhu izdavanja potvrde klikom na jedno od ponuđenih

polja (povlašteni prijevoz, prijepis ocjena, stipendija, zdravstveno

osiguranje, studentski dom, CARNet internet) nakon čega se

otvara nova forma, ovisno o tipu odabrane potvrde. Djelatnik

unosi broj indeksa studenta, nakon čega se automatski

popunjavaju studentovi osobni podaci. Klikom na polje Isprintaj se

printa potvrda.

11

Tablica 4 - Unos obavijesti

UNOS OBAVIJESTI

Funkcija Unos obavijesti za sve (ili neke) korisnike sustava.

Preduvjet Djelatnik je prijavljen u aplikaciju.

Posljedica Klikom na polje Obavijesti se otvara forma za unos obavijesti.

Djelatnik popunjava polja te forme (naslov, tekst obavijesti). Nakon

što završi s unosom, klikom na polje Objavi se obavijest upisuje u sustav te je vidljiva svim korisnicima sustava.

Tablica 5 - Upis studenta

UPIS STUDENTA

Funkcija Upis studenata i njihovih osobnih podataka u sustav.

Preduvjet Djelatnik je prijavljen u aplikaciju.

Posljedica Nakon odabira polja Upis studenta, otvara se forma za upis

studenta. Nakon što djelatnik popuni polja te forme (ime, prezime,

adresa stanovanja, broj mobitela, datum rođenja, mjesto rođenja,

datum upisa, OIB, smjer, godina), klikom na polje Potvrdi se

izvršava proces upisa. Student je upisan u sustav, njegovi podaci se

zapisuju u bazu podataka, kao i dodijeljeni mu kolegiji. Dodijeljeno

mu je korisničko ime i lozinka pomoću kojih student može pristupiti aplikaciji.

12

Tablica 6 - Upis profesora

UPIS PROFESORA

Funkcija Upis profesora i njegovih osobnih podataka u sustav.

Preduvjet Djelatnik je prijavljen u aplikaciju.

Posljedica Nakon odabira polja Upis profesora, otvara se forma za upis

profesora. Nakon što djelatnik popuni polja te forme (ime,

prezime, broj mobitela, OIB, kolegij/i), klikom na polje Potvrdi

izvršava se proces upisa.

Profesor je upisan u sustav, njegovi podaci se zapisuju u bazu

podataka. Dodijeljeno mu je korisničko ime i lozinka pomoću kojih

student može pristupiti aplikaciji.

Tablica 7 - Dodavanje predmeta

DODAVANJE PREDMETA

Funkcija Dodavanje predmeta za smjerove.

Preduvjet Djelatnik je prijavljen u aplikaciju.

Posljedica Nakon odabira polja Dodavanje predmeta, otvara se forma za

dodavanje predmeta. Nakon što djelatnik popuni polja te forme

(naziv predmet, smjer, ECTS bodovi, semestar), klikom na polje

Dodaj izvršava se dodavanje novog predmeta u sustav. Predmet je

dodan u sustav i može se dodijeliti profesorima koji ga predaju,

odnosno studentima koji su ga upisali.

13

3.9. Profesor

Profesor je korisnik aplikacije koji se koristi njenim grafičkim sučeljem kako bi putem formi mogao

obavljati svoje funkcije, što je prvenstveno upis ocjena za studente. Osim upisa ocjena, nema i drugih bitnih funkcija.

3.9.1. Funkcije dostupne profesoru

Sukladno ovlastima koje su dodijeljene profesoru, on ima funkcije navedene u tablicama 8-10.

Tablica 8 - Prijava

PRIJAVA

Funkcija Unos korisničkih podataka sa svrhom pristupanja sustavu.

Preduvjet Profesor mora imati dodijeljene važeće podatke kako bi se mogao

prijaviti.

Posljedica Profesor u polja forme za prijavu unosi svoje korisničko ime i

lozinku, a svoj unos potvrđuje klikom na polje Prijava. Ukoliko su

uneseni ispravni podaci, profesor je uspješno prijavljen u sustav te može koristiti njemu dodijeljene funkcionalnosti sustava.

Tablica 9 - Pregled kolegija

PREGLED KOLEGIJA

Funkcija Pristup kolegijima koje pojedini profesor predaje.

Preduvjet Profesor je prijavljen u aplikaciju.

Posljedica Nakon što profesor odabere polje Pregled kolegija, prikazuje mu se

popis kolegija koje on predaja. Omogućen mu je i prikaz studenata

upisanih na pojedinom kolegiju.

14

Tablica 10 - Upis ocjena

UPIS OCJENA

Funkcija Upis ocjena svim studentima koji su upisali (i položili) pojedini kolegij.

Preduvjet Profesor je prijavljen u aplikaciju.

Posljedica Nakon što se odabere jedan od kolegija koje profesor predaje,

otvara mu se popis studenata upisanih na tom kolegiju. Profesor

odabere određenog studenta i upisuje njegovu ocjenu. Studentima

su upisane ocjene koje su nakon toga vidljive profesorima, ali i studentima kojima je pojedina ocjena upisana.

3.10. Student

Student je korisnik aplikacije koji ima mogućnost pregleda svojih informacija , ocjena, mogućnost

online upisa u više godine te preuzimanje potvrda i pregled važnih obavijesti studentske referade.

3.10.1. Funkcije dostupne studentu

Sukladno ovlastima koje su dodijeljene studentu, on ima funkcije navedene u tablicama 11-15.

Tablica 11 - Potvrde

POTVRDE

Funkcija Pruža mogućnost izdavanja potvrda.

Preduvjet Student je prijavljen u aplikaciju.

Posljedica Nakon odabira polja Potvrde, otvara se forma za izdavanje

potvrda. Student odabire željenu potvrdu, a sustav automatski

popunjava sve potrebne podatke. Klikom na Preuzmi student

prima traženu potvrdu u PDF formatu.

15

Tablica 12 - Prijava

PRIJAVA

Funkcija Unos korisničkih podataka sa svrhom pristupanja sustavu.

Preduvjet Student mora imati dodijeljene važeće podatke kako bi se mogao prijaviti.

Posljedica Student u polja forme za prijavu unosi svoje korisničko ime i

lozinku, a svoj unos potvrđuje klikom na polje Prijava. Ukoliko su

uneseni ispravni podaci, student je uspješno prijavljen u sustav te

može koristiti njemu dodijeljene funkcionalnosti sustava.

Tablica 13 - Osobne informacije

OSOBNE INFORMACIJE

Funkcija Pregled osobnih informacija studenta.

Preduvjet Student je prijavljen u aplikaciju.

Posljedica Nakon što student odabere polje Osobne informacije, omogućen

mu je prikaz svih njegovih osobnih informacija (ime, prezime,

adresa stanovanja, broj mobitela, datum rođenja, mjesto rođenja,

datum upisa, OIB, smjer, godina).

Tablica 14 - Pregled kolegija

PREGLED KOLEGIJA

Funkcija Pristup kolegijima koje je pojedini student upisao.

Preduvjet Student je prijavljen u aplikaciju.

Posljedica Nakon što student odabere polje Pregled kolegija, prikazuju mu se svi kolegiji koje je upisao.

16

Tablica 15 - Upis viših godina

UPIS VIŠIH GODINA

Funkcija Upis kolegija na višoj godini studija.

Preduvjet Student je prijavljen u aplikaciju i položio je barem neke od kolegija

s prve (ili viših) godina. Sustav dozvoljava upis (za vrijeme upisa na

fakultetu).

Posljedica Nakon što student odabere polje Upis, otvara mu se forma za upis.

Studentu se prikazuju predmeti godine koje upisuje. Pri tome su

nepoloženi predmeti automatski označeni. Student treba označiti

predmete koje želi upisati (evidenciju o broju ECTS vodi sam

sustav). Završetak odabira student signalizira pritiskom na polje

Potvrdi. Nakon toga, ovisno o tome jesu li zadovoljeni uvjeti upisa, student je upisan u višu godinu.

17

4. Specifikacija dizajna baze podataka

Svi podaci u sustavu referade su smješteni u bazi podataka s kojom korisnici komuniciraju putem

sučelja web aplikacije koje im omogućuje pregled podataka u bazi, kao i unos novih podataka,

mijenjanje ili brisanje podataka, ovisno o kojoj se klasi korisnika radi.

4.1. Model baze podataka

Na slikama 3 i 4 se nalazi prikaz modela baze podataka za sustav referade.

Slika 3 - Model baze podataka

18

Slika 4 - Model baze podataka

19

4.2. Popis tablica i atributa

Tablice u ovom poglavlju (od tablice 16 do tablice 32) predstavljaju detaljan pregled tablica koje

se nalaze u bazi podataka i njihovih atributa.

Tablica 16 - Tablica TREN_STATUS

TREN_STATUS

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

tren_status_id (PK) Jedinstveni identifikator trenutnog statusa

integer Ne smije biti NULL.

tren_status_ime Naziv trenutnog statusa varchar Ne smije biti NULL.

Tablica 17 - Tablica MJESTO

MJESTO

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

mjesto_id (PK) Jedinstveni identifikator mjesta

integer Ne smije biti NULL.

ime_mjesta Naziv mjesta varchar Ne smije biti NULL.

post_br Poštanski broj mjesta varchar

20

Tablica 18 - Tablica STUDENT

STUDENT

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

student_id (PK) Jedinstveni identifikator

studenta

integer Ne smije biti NULL.

ime Ime studenta varchar Ne smije biti NULL.

prezime Prezime studenta varchar Ne smije biti NULL.

jmbg JMBG studenta varchar Ne smije biti NULL.

dat_rodenja Datum rođenja

studenta

date Ne smije biti NULL.

mjesto_rod Mjesto rođenja

studenta

varchar Ne smije biti NULL.

mjesto_stan Mjesto prebivališta studenta

varchar Ne smije biti NULL.

ime_oca Ime oca varchar Ne smije biti NULL.

dat_upisa Datum upisa date Ne smije biti NULL.

matbr Broj indeksa varchar Ne smije biti NULL.

tren_status_id Jedinstveni identifikator

trenutnog statusa

integer Ne smije biti NULL.

Atribut iz tablice TREN_STATUS.

adresa Adresa studenta u mjestu prebivališta

varchar Ne smije biti NULL.

korisnicko_ime Korisničko ime

studenta u sustavu

varchar Ne smije biti NULL.

lozinka Lozinka varchar Ne smije biti NULL.

21

Tablica 19 - Tablica NASTAVNI_PLAN

NASTAVNI_PLAN

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

predmet_id (PK) Jedinstveni identifikator predmeta

integer Ne smije biti NULL. Atribut iz tablice PREDMET.

predmet_sem Semestar kojem

pripada predmet

integer Ne smije biti NULL.

nastavnik1_ID Jedinstveni identifikator nastavnika

integer Ne smije biti NULL.

nastavnik2_ID Jedinstveni identifikator nastavnika

integer

obr_prog_id (PK) Jedinstveni indikator obrazovnog programa

integer Ne smije biti NULL.

sk_god (PK) Školska godina varchar Ne smije biti NULL.

Tablica 20 - Tablica NASTAVNIK

NASTAVNIK

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

nastavnik_id (PK) Jedinstveni identifikator nastavnika

integer Ne smije biti NULL.

nastavnik_ime Ime nastavnika varchar Ne smije biti NULL.

nastavnik_prezime Prezime nastavnika varchar Ne smije biti NULL.

korisnicko_ime Korisničko ime nastavnika u sustavu

varchar Ne smije biti NULL.

lozinka Lozinka nastavnika varchar Ne smije biti NULL.

22

Tablica 21 - Tablica OBR_PROG

OBR_PROG

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

obr_prog_id (PK) Jedinstveni identifikator obrazovnog programa

integer Ne smije biti NULL.

obr_prog_ime Naziv obrazovnog programa

varchar Ne smije biti NULL.

poc_sem Početak semestra date

kraj_sem Kraj semestra date

Tablica 22 - Tablica PREDMET

PREDMET

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

predmet_id (PK) Jedinstveni identifikator predmeta

integer Ne smije biti NULL.

ime_predmeta Naziv predmeta varchar Ne smije biti NULL.

sati_pred Broj sati predavanja smallint

sati_av Broj sati auditornih vježbi

smallint

sati_lab Broj sati laboratorijskih

vježbi

smallint

usm_ispit Datum usmenog ispita date

pism_ispit Datum pismenog ispita date

ispitna_grupa Broj ispitne grupe smallint

23

Tablica 23 - Tablica IND_UPISA

IND_UPISA

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

ind_upisa_id (PK) Jedinstveni identifikator indikatora upisa

integer Ne smije biti NULL.

ime_indikatora Naziv indikatora varchar Ne smije biti NULL.

Tablica 24 - Tablica UPISNI_LIST

UPISNI_LIST

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

ulist_id (PK) Jedinstveni identifikator upisnog lista

integer Ne smije biti NULL.

student_id Jedinstveni identifikator studenta

integer Ne smije biti NULL. Atribut iz tablice STUDENT.

sk_god Školska godina varchar Ne smije biti NULL.

Atribut iz tablice NASTAVNI_PLAN.

sem Semestar smallint Ne smije biti NULL.

obr_prog_id Jedinstveni identifikator obrazovnog programa

integer Ne smije biti NULL. Atribut iz tablice OBR_PROG.

ind_upisa_id Jedinstveni identifikator

indikatora upisa

integer Ne smije biti NULL.

Atribut iz tablice IND_UPISA.

24

Tablica 25 - Tablica UPISUJE

UPISUJE

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

ulist_id (PK) Jedinstveni indikator

upisnog lista

integer Ne smije biti NULL.

Atribut iz tablice UPISNI_LIST.

predmet_id (PK) Jedinstveni identifikator

predmeta

integer Ne smije biti NULL.

Atribut iz tablice PREDMET.

broj_polaganja Broj polaganja smallint

dat_polaganja Datum polaganja date

Tablica 26 - Tablica ISP_GRUPA

ISP_GRUPA

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

grupa_id Jedinstveni identifikator

ispitne grupe

integer Ne smije biti NULL.

broj Broj ispitne grupe smallint

datum Datum za pojedinu grupu

date

25

Tablica 27 - Tablica ISPITNA_GRUPA

ISPITNA_GRUPA

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

isp_grupa_id (PK) Jedinstveni identifikator

ispitne grupe

integer Ne smije biti NULL.

isp_grupa_br Broj ispitne grupe smallint

rok_id Jedinstveni indikator ispitnog roka

integer Ne smije biti NULL.

datum Datum ispitne grupe date

deadline_dat Datum zadnjeg roka date

Tablica 28 -Tablica ROKOVI

ROKOVI

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

rok_id (PK) Jedinstveni identifikator roka

integer Ne smije biti NULL.

rok_br Broj roka smallint Ne smije biti NULL.

sk_godina Školska godina varchar Ne smije biti NULL.

datum Datum ispitnog roka date Ne smije biti NULL.

max_broj_ispita Maksimalan broj ispita smallint

dekanski_rok Datum dekanskog roka date

26

Tablica 29 - Tablica DJELATNIK_REFERADE

DJELATNIK_REFERADE

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

id_djelatnika (PK) Jedinstveni identifikator

djelatnika

integer Ne smije biti NULL.

djelatnik_ime Ime djelatnika varchar Ne smije biti NULL.

djelatnik_prezime Prezime djelatnika varchar Ne smije biti NULL.

korisnicko_ime Korisničko ime djelatnika u sustavu

varchar Ne smije biti NULL.

lozinka Lozinka djelatnika u sustavu

varchar Ne smije biti NULL.

Tablica 30 - Tablica OBAVIJESTI

OBAVIJESTI

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

obavijest_id (PK) Jedinstveni

identifikator obavijesti

integer Ne smije biti NULL.

obavijest_naslov Naslov obavijesti varchar Ne smije biti NULL.

obavijest_datum Datum obavijesti date Ne smije biti NULL.

obavijest_text Tekst obavijesti varchar Ne smije biti NULL.

id_djelatnika Jedinstveni

identifikator djelatnika

integer Ne smije biti NULL.

27

Tablica 31 - Tablica POTVRDA

POTVRDA

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

id_djelatnika (PK) Jedinstveni

identifikator djelatnika

integer Ne smije biti NULL.

Atribut iz tablice DJELATNIK_REFERADE.

id_potvrde (PK) Jedinstveni

identifikator potvrde

varchar Ne smije biti NULL.

potvrda_naziv Naziv potvrde varchar Ne smije biti NULL.

potvrda_url URL potvrde varchar Ne smije biti NULL.

Tablica 32 - Tablica OBRAZAC

OBRAZAC

NAZIV ATRIBUTA OPIS ATRIBUTA TIP PODATKA NAPOMENA

obrazac_id (PK) Jedinstveni identifikator obrasca

integer Ne smije biti NULL.

obrazac_naziv Naziv obrasca varchar Ne smije biti NULL.

obrazac_url URL obrasca varchar Ne smije biti NULL.

28

5. Specifikacija dizajna web aplikacije

Sustav je podijeljen u tri podsustava koji zajedno komuniciraju da bi korisniku odgovorili na upit.

Svaki od ta tri podsustava se brinu za različite komponente i funkcije sustava s svojim

pripadajućim softverom.

5.1. Opis rada aplikacije

Pristupom web aplikaciji otvara se forma za prijavu koja je zajednička svim korisnicima. Nakon

točno upisanih pristupnih podataka korisnik sustava se preusmjerava na njemu namijenjeno

korisničko sučelje.

Za izradu web aplikacije koristi se gotovo razvojno okruženje koje se temelji na MVC obrazcu

softverske arhitekture. MVC arhitektura dijeli aplikaciju u tri osnovne komponente Model,

Pogled (View) i Kontroler (Controller). Takva podjela omogućuje razdvajanje programiranja same

obrade podataka od programiranja sučelja i zaprimanja zahtjeva korisnika.

Index.php je početna skripta na kojoj se učitavaju sve potrebne stvari za rad web apl ikacije, a to

su baza podatak rute i stvari potrebne za rad razvojnog okruženja. Svaki zahtijev se

preusmjerava na Index.php datoteku koja provjerava postoji li definirana ruta za korisnikov

zahtijev. Ako postoji poziva se odgovarajući kontroller koji izvršava određne zadatke i generira

pogled koji će se prikazati korisniku.

Primjer prikaza forme za prijavu.

29

5.2. Opis pojedinih skripti

Index.php

Ppredstavlja početnu točku web aplikacije. Svaki korisnički zahtijev se preusmjerava na ovu

skriptu. Ovdje se učitavaju osnovne postavke web aplikacije kao i komponente razvojnog

okruženja koja služi za rutiranje. Učitavaju se sve definirane rute iz skripte routes.php te se na

temelju korisničkog zahtjeva i HTTP metdoe poziva određeni kontroler. Ukoliko ruta nije

definirana prikazuje se pogled sa informacijom o pogreški.

Bootstrap.php

Ova skripta učitava osnovne komponente razvojnog okruženja te parametre potrebne za

povezivanje na bazu podataka. Poziva se iz indeks.php skripte.

30

Routes.php

U ovoj skripti su definirane sve rute web aplikacije. Radi jednostavnosti na slici su prikazane

samo rute za podsustav studenta. Kada se student prijavi u sustav automatski se preusmjerava

na „student“ rutu te se poziva StudentController i akcija index. Akcija index predstavlja metodu

kontrolera. Isti postupak vrijedi i za sve ostale rute. Na temelju zahtjeva korisnika poziva se

određeni kontroler i njegova akcija.

StudentController.php

Metoda index pronalazi korisnika koji je trenutno logiran te ga mapira za model Student. Nakon

toga poziva pogled „home“ te mu prosljeđuje podatke pojedinog studenta. Podatci služe za

generiranje korisničkog sučelja (npr. Ime i prezime studenta u navigaciji).

31

Student.php

Svi podatci koji se učitavaju iz baze podataka spremaju se u objekt klase student koji služi za

manipulaciju i dohvaćanje tih podataka. Ova klasa se naziva model. Zbog jednostavnosti

prikazana je samo metoda „getName“ koja služi za dohvaćanje imena studenta, ali takva metoda

postoji za sve pojedine atribute klase student.

32

5.3. Korisničko sučelje

Budući da u sustavu postoje četiri klase korisnika, ovisno o tome je li osoba prijavljena u

aplikaciju kao administrator, djelatnik referade, profesor ili student, korisničko sučelje će nuditi različite mogućnosti koje odgovaraju njegovim potrebama.

3.1.1. Login forma

Login forma je zajednička za sve klase korisnika. Nakon što korisnik upiše korisničko ime i lozinku

web aplikacija provjerava unos te ako su korisničko ime i lozinka točni preusmjerava ga na

njegov podsustav.

33

3.1.2. Studentsko korisničko sučelje

Obavijesti

Ovo je početna stranica za studente. Sadrži obavijesti koje su napisali djelatnici referade.

Ovakvim pristupom studenti mogu jednostavno pregledati najnovije obavijesti referade bez

potrebe za doslaskom na fakultet i traženje obavijesti na staklu referade.

Osobne informacije

Pritiskom na ime i prezime otvara se padajući izbornik u kojemu je implementirano nekoliko

opcija. Pritiskom na opciju profil otvara se forma sa osobnim infromacijama studenta. Ukoliko

student uoči pogrešku može je prijaviti pritiskom na dugme „Prijavi grešku“.

34

ePotvrde

Student ima mogućnost preuzimanja epotvrda u nekoliko klikova. Potvrde se automatski

generiraju na temelju korisnikovih informacija koje su prethodno unesene u sustav.

eIdnex

Jednostavan pregled ocjena i informacijama o pojedinim kolegijima koje je student upisao.

35

eUpis

Sučelje sustava elektroničkog upisa dizajnirano je na način da studentima omogući vrlo

jednostavan i siguran upis u više godine studija.

Obrasci

Jednostavan ispis svih obrazaca koje student može zatrebati.

36

3.1.3. Profesorko korisničko sučelje

Početno sučelje

Ovo je početno sučelje profesora. Prikazani su svi kolegiji za pojedinog profesora kao i detalji o samom kolegiju poput studija, semestra i broja upisanih studenata.

Pregled pojedinog kolegija

Prikazuju se detalji o studentima na pojedinom kolegiju.

Pritiskom na ikonu za uređivanje studenta otvara se forma u kojoj se može upisati i urediti ocjena

studenta.

37

3.1.4. Korisničko sučelje djelatnika referade

Kontrolna ploča

Početno korisničko sučelje za svakog prijavljenog djelatnika.

Obavijesti

Kroz jednostavno korisničko sučelje omogućeo je pregledavanje, uređivanje i dodavanje novih obavijesti.