Upload
others
View
2
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.