40
Univerzitet u Novom Sadu Tehnički fakultet »MihajloPupin« Zrenjanin SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb aplikacija za unos rasporeda časova na fakultetu Profesor : doc. dr Ljubica Kazi Student: Miloš Stambolija Asistent : doc. dr Ljubica Kazi Indeks: IT 67/15 Smer: Informacione tehnologije Zrenjanin, 2018. godina

SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

Univerzitet u Novom Sadu

Tehnički fakultet

»MihajloPupin«

Zrenjanin

SEMINARSKI RAD

Predmet: Softversko inženjerstvo 2

Tema: Veb aplikacija za unos rasporeda časova na fakultetu

Profesor : doc. dr Ljubica Kazi Student: Miloš Stambolija

Asistent : doc. dr Ljubica Kazi Indeks: IT 67/15

Smer: Informacione tehnologije

Zrenjanin, 2018. godina

Page 2: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

Sadržaj

1. Predmetni cilj ........................................................................................................................................ 4

2. Prijava studentskog projekta ................................................................................................................ 5

3. Uvod ...................................................................................................................................................... 9

4. Korišćene tehnologije ......................................................................................................................... 10

4.1 MySQL ......................................................................................................................................... 10

4.2 HTML ........................................................................................................................................... 10

4.3 CSS ............................................................................................................................................... 10

4.4 PHP .............................................................................................................................................. 10

5. Implementacija web aplikacije............................................................................................................ 11

5.1 UML dijagrami ............................................................................................................................. 11

5.1.1 Use Case dijagrami .............................................................................................................. 11

5.1.2 Dijagram komponenti ......................................................................................................... 12

5.1.3 Dijagram razmeštaja ........................................................................................................... 13

5.1.4 Dijagram klasa ..................................................................................................................... 14

5.1.5 Dijagram sekvenci ............................................................................................................... 15

5.2 Tabelarni prikaz višeslojne arhitekture softvera ......................................................................... 16

5.3 Opis baze podataka ..................................................................................................................... 17

6. Prikaz razvijene veb aplikacije za evidenciju softverskih zahteva ....................................................... 27

6.1 Forma za unos rasporeda casova ................................................................................................ 27

6.2 Tabelarni prikaz rasporeda nakon unosa i biranje semestra i smera ......................................... 28

6.3 Izmena i brisanje su mogući unutar prikaza i prikazano je na sledećoj slici ............................... 29

7. Delovi koda sa objašnjenjima.............................................................................................................. 30

7.1 Prezentacioni sloj ........................................................................................................................ 30

7.2 Sloj poslovne logike ..................................................................................................................... 34

7.2.1 Poslovna pravila .................................................................................................................. 34

7.3 Sloj za rad sa podacima ............................................................................................................... 38

8. Zaključak.............................................................................................................................................. 39

9. Literatura............................................................................................................................................. 40

Page 3: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je
Page 4: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

1. Predmetni cilj

Osnovni cilj predmeta je sinteza stečenih znanja iz informatike usmerena na primenu savremenih

alata za razvoj softverskih proizvoda. Poseban cilj predmeta je osposobljavanje studenta za

samostalan rad pri izradi softverskog proizvoda.

Zadaci koje ovaj predmet treba da ostvari je ovladavanje teorijskim, metodološkim i praktičnim

znanjima razvoja softverskog inženjeringa, koja se primenjuju kroz upotrebu savremenih

projektantskih alata. Posebni zadaci se odnose na:

izradu web aplikacije

višeslojnu arhitekturu softvera

realizaciju poslovnog sloja sa poslovnim entitetima i poslovnim pravilima

Page 5: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

2. Prijava studentskog projekta

TEMA: Raspored časova

TIP: pojedinacni / timski

KATEGORIJA: unapredjenje / nov

VREME IZRADE: (datum od, datum do): 20.10.2018. – 22.11.2018.

UCESNICI: a) RUKOVODILAC ... Miloš Stambolija

b) UCESNIK ... Miloš Stambolija

c) ZAINTERESOVANA STRANA ... Fakultet

d) KORISNIK ... Fakultet

OPIS POSLA (tok

poslovnih procesa):

Raspored časova se kreira na osnovu raspodele predmeta na

nastavno osoblje – nastavnike i saradnike fakulteta. Posebno se

kreira za zimski i letnji semestar.

SNIMAK STANJA: unošen u excel fajl koji je kasnije bio upload-ovan na sajt fakulteta.

ANALIZA

DOKUMENTACIJE:

Pravna regulativa: Pravilnik o organizaciji nastave

Obrasci dokumenata: Izgled rasporeda časova sa sajta fakulteta

Standardi: -

ANALIZA POSTOJEĆIH

REŠENJA U SVETU U

OVOJ OBLASTI:

Schedule - sistemi za raspored rada i raspored časova u školama.

ZAHTEVI KORISNIKA: Osoba zadužena za unos rasporeda:

- validacija unosa podataka

- provera postojećih podataka u odnosu na izabrane

- tabelarni prikaz rasporeda za sve smerove

- novi dizajn (opcionalno)

POTREBE KORISNIKA: Pojednostavljenje prikaza rasporeda

INTERESI

ZAINTERESOVANIH

STRANA:

Jednostavnost i ekonomicnost procesa administracije rasporeda

časova.

Page 6: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

PREDNOSTI OVOG

RESENJA U ODNOSU

NA RANIJA RESENJA:

Lakša realizacija u oblasti izrade rasporeda časova.

OCEKIVANI

REZULTATI

1. modeli – model funkcija, model podataka

2. baza podataka – SQL skript

3. program – korisnički interfejs i izvorni kod

4. dokumentacija – opis posla, snimak stanja, specifikacija zahteva

korisnika, korisničko uputstvo

PLANIRANI OBUHVAT

FUNKCIJA I PROFILI

KORISNIKA:

Profil korisnika – admin:

Unos predmeta, nastavnika

Unos rasporeda časova

Izmena rasporeda časova

Profil korisnika – neimenovani korisnik sajta:

Prikaz rasporeda časova o svim smerovima

OGRANICENJA

PROJEKTA I PROCENA

RIZIKA:

- vreme izrade – kratko vreme izrade (RIZIK)

- broj ljudi na projektu – samo jedan učesnik (RIZIK)

- raspolozivi alati – na raspolaganju su, nema rizika

- raspolozivi finansijski resursi – nema, ali nema potrebe ni rizika

INTEGRACIJA SA

POSTOJECIM I NOVIM

SISTEMOM:

Trenutno nema postojeće web aplikacije.

METRIKE KVALITETA

PROJEKTA:

karakteristike projekta:

Troskovi – nema troskova

Kvalitet – kvalitet softvera (baze podataka, programa,

dokumentacije)

Vreme – realizovan projekat na vreme

karakteristike programa:

Usklađenost rešenja sa strateškim ciljevima organizacije,

potrebama i zahtevima korisnika i interesima

zainteresovanih strana

o Dizajn korisničkog interfejsa – funkcionalni (intuitivni,

Page 7: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

jednostavan za korišćenje, minimizacija napora i broja

akcija za željeni cilj, interaktivan sa obaveštenjima,

automatizmi kojima se ubrzava i skraćuje rad (uz

korišćenje transakcija), vizualni (pregledan, prijatne boje)

o Performanse – brzina rada

o Pouzdanost – da ne puca, testiran na greske, ima kontrolu

grešaka

o Pogodnost za integraciju u postojeći sistem, pogodnost za

održavanje (složenost rešenja, raspoloživost alata,

otvoreni kod, raspoloživost osoblja za uslugu održavanja)

NACIN REALIZACIJE PROJEKTA:

Nacin komunikacije

ucesnika

/

Rizici, SWOT analiza SWOT:

- Strength (snaga): prethodno predznanje u radu sa različitim

tehnologijama

- Weakness (slabost): samo 1 učesnik, ne mnogo iskustva u php

programiranju

- Opportunity: dobra referenca u biografiji, iskustvo

- Treat: ako ne uspe realizacija web aplikacije, teža organizacija

svih aktivnosti u koordinaciji rada velikog broja studentskih

projekata

RIZICI REŠENJA

Nema

Potrebna sredstva (alati,

materijal)

Operativni sistem: Windows 10, Home Edition

DBMS: MYSQL

Vizualni alat za rad sa bazom podataka: MYSQL Workbench

Jezik programiranja: PHP

Alat za programiranje: Visual Studio Code

Page 8: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

Potrošni materijal:

1. CD

Troskovi (alat, materijal,

transport)

Sopstvena sredstva

Aktivnosti (ko, kad, sta

radi)

Sve aktivnosti radi Miloš Stambolija.

Aktivnosti uključuju:

1. Kreiranje novog dizajna – 1 nedelja

2. Kreiranje provere podataka – 1 nedelja

3. Provera validacije i postojanja unetih podataka i njihov upis

u bazu podataka – 2 nedelje

4. Tabelarni prikaz rasporeda – 1 nedelja

Page 9: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

3. Uvod

Ovaj seminarski rad je rađen na temu Web aplikacije, kod kojeg se koriste dve glavne

tehnologije. Za front-end je HTML i CSS, a za back-end je korišćen PHP koji komunicira sa

MySQL bazom podataka.

PHP je jedan od najpoznatijih jezika koji se koristi za razvoj web aplikacija. Korišćena je

najnovija verzija PHP-a a to je PHP 7.2.7. Aplikacija je jednostavna što se tiče broja tehnologija

koje se koriste, ali sama funkcionalnost aplikacije je dosta komplikovana. Moguće je razraditi

aplikaciju i osigurati je što se tiče unosa podataka.

Page 10: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

4. Korišćene tehnologije

4.1 MySQL

MySQL je jedan od najpopularnijih “open source” SQL baza podataka koje postoje [7]. Razlog

korišćenja MySQL baze podatak jeste zbog toga što je jako brza, skalabilna i jako lako se koristi.

MySQL se nalazi pod GPL licencom (GNU General Public Licence). MySQL server je

prvobitno bio kreiran da bi se rešili problemi oko same brzine rada baze (kod velikih baza), što

ostali serveri za rad sa bazom podataka nisu do tad pružali.

4.2 HTML

HTML je pisan ručno i dizajn je rađen po izboru.

4.3 CSS

Što se tiče CSS-a, u okviru HTML-a se koristi link prema fajlu koji je ručno pisan. Kada se

HTML kod izvršava, sa pomenutog linka se preuzima CSS fajl koji služi sa uređivanje HTML

stranice.

4.4 PHP

PHP predstavlja programski jezik koji je među najzastupljenijim programskim jezicima za izradu

web aplikacija.

Page 11: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

5. Implementacija web aplikacije

5.1 UML dijagrami

5.1.1 Use Case dijagrami

Slika 1 Use Case dijagram

Page 12: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

5.1.2 Dijagram komponenti

Slika 2 Prikaz dijagrama komponenti

Page 13: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

5.1.3 Dijagram razmeštaja

Slika 3 Prikaz dijagrama razmestaja

Page 14: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

5.1.4 Dijagram klasa

Slika 4 Prikaz klasa koje se koriste

Page 15: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

5.1.5 Dijagram sekvenci

Slika 5 Prikaz dijagrama jednog slučaja korišćenja

Page 16: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

5.2 Tabelarni prikaz višeslojne arhitekture softvera

Glavni sloj MVC dizajn patern Podsloj Tehnološka

implementacija

Prezentacioni sloj View Korisnički interfejs HTML i CSS

Fajlovi: index.php,

header.php i footer.php

Control Klase prezentacione

logike

Fajlovi:

RasporedForma.php

Servisni sloj Web servis Apache veb server

Sloj poslovne logike Klase za mapiranje

slojeva

Radni tokovi

Model Poslovni objekti Klase koje predstavljaju

poslovne objekte koji se

po nazivu razlikuju od

naziva tabela iz baze

podataka

Poslovna pravila Provera poslovnih

pravila se vrsi u okviru

klase za proveru

Fajlovi:

BusinessLogic.php

Sloj za rad sa podacima Rad sa relacionom

bazom podataka

Rad sa podacima iz

tabele podataka

DBMS sa bazom

podataka

Relaciona baza

podataka sa tabelama i

relacijama kao i klasa

koja se bavi

upravljanjem podacima

u bazi podataka

Fajlovi: Konekcija.php

Rad sa drugim

formatima podataka

XML

Objekat unutar PHP-a

za za čitanje XML fajla

Fajlovi: metoda unutar

klase Konekcija

Page 17: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

5.3 Opis baze podataka

Opis baze podataka i skripta za formiranje iste je prikazana u nastavku ovog poglavlja.

Slika 6 Prikaz opisa baze podataka

U ovom projektu se kao baza podataka koristi MySQL baza podataka koja je lokalna i SQL

skript je prikazan u nastavku:

-- phpMyAdmin SQL Dump

-- version 4.8.2

-- https://www.phpmyadmin.net/

--

-- Host: 127.0.0.1

-- Generation Time: Dec 03, 2018 at 09:37 PM

-- Server version: 10.1.34-MariaDB

-- PHP Version: 7.2.7

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET AUTOCOMMIT = 0;

START TRANSACTION;

Page 18: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS

*/;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8mb4 */;

--

-- Database: `rasporedcasova`

--

CREATE DATABASE rasporedcasova;

USE rasporedcasova;

-- --------------------------------------------------------

--

-- Table structure for table `cas`

--

CREATE TABLE `cas` (

`idCas` int(10) NOT NULL,

`idProfesor` int(10) DEFAULT NULL,

`idDan` int(10) DEFAULT NULL,

`idSmer` int(10) DEFAULT NULL,

`idVreme` int(10) DEFAULT NULL,

`idPredmet` int(10) DEFAULT NULL,

`idPredaje` int(10) DEFAULT NULL,

`ucionica` varchar(5) DEFAULT NULL,

`trajanje` int(5) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `cas`

--

INSERT INTO `cas` (`idCas`, `idProfesor`, `idDan`, `idSmer`, `idVreme`, `idPredmet`,

`idPredaje`, `ucionica`, `trajanje`) VALUES

(331, 4, 1, 1, 4, 2, 5, 'a30', 3),

(332, 4, 1, 1, 5, 2, 5, 'a30', 3),

(333, 4, 1, 1, 6, 2, 5, 'a30', 3),

(337, 5, 1, 2, 4, 1, 2, 'a30', 3),

(338, 5, 1, 2, 5, 1, 2, 'a30', 3),

(339, 5, 1, 2, 6, 1, 2, 'a30', 3),

(340, 5, 1, 4, 4, 1, 4, 'a30', 2),

(341, 5, 1, 4, 5, 1, 4, 'a30', 2),

Page 19: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

(342, 3, 3, 1, 4, 7, 8, 'a29', 3),

(343, 3, 3, 1, 5, 7, 8, 'a29', 3),

(344, 3, 3, 1, 6, 7, 8, 'a29', 3);

-- --------------------------------------------------------

--

-- Table structure for table `dan`

--

CREATE TABLE `dan` (

`idDan` int(10) NOT NULL,

`NazivDana` varchar(12) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `dan`

--

INSERT INTO `dan` (`idDan`, `NazivDana`) VALUES

(1, 'Ponedeljak'),

(2, 'Utorak'),

(3, 'Sreda'),

(4, 'Cetvrtak'),

(5, 'Petak'),

(6, 'Subota');

-- --------------------------------------------------------

--

-- Table structure for table `predmet`

--

CREATE TABLE `predmet` (

`idPredmet` int(10) NOT NULL,

`NazivPredmeta` varchar(50) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `predmet`

--

INSERT INTO `predmet` (`idPredmet`, `NazivPredmeta`) VALUES

(1, 'Matematika 1'),

(2, 'Matematika 2'),

(3, 'Matematika 3'),

Page 20: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

(4, 'Baze podataka 1'),

(5, 'Baze podataka 2'),

(6, 'Informacioni sistemi 1'),

(7, 'Informacioni sistemi 2'),

(8, 'Softversko inzenjerstvo 1'),

(9, 'Softversko inzenjerstvo 2'),

(10, 'Multimedijalni sistemi');

-- --------------------------------------------------------

--

-- Table structure for table `profesor`

--

CREATE TABLE `profesor` (

`idProfesor` int(10) NOT NULL,

`Ime` varchar(20) DEFAULT NULL,

`Prezime` varchar(35) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `profesor`

--

INSERT INTO `profesor` (`idProfesor`, `Ime`, `Prezime`) VALUES

(1, 'Ljubica', 'Kazi'),

(2, 'Dragica', 'Radosav'),

(3, 'Zoltan', 'Kazi'),

(4, 'Dragana', 'Draskovic'),

(5, 'Momcilo', 'Bjelica'),

(6, 'Dragana', 'Glusac'),

(7, 'Dusanka', 'Milanov');

-- --------------------------------------------------------

--

-- Table structure for table `profesorpredaje`

--

CREATE TABLE `profesorpredaje` (

`idPredaje` int(10) NOT NULL,

`idProfesor` int(10) DEFAULT NULL,

`idSmer` int(10) DEFAULT NULL,

`idPredmet` int(10) DEFAULT NULL,

`tippredavanja` varchar(10) DEFAULT NULL,

`semestar` int(10) DEFAULT NULL

Page 21: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `profesorpredaje`

--

INSERT INTO `profesorpredaje` (`idPredaje`, `idProfesor`, `idSmer`, `idPredmet`,

`tippredavanja`, `semestar`) VALUES

(1, 5, 1, 1, 'Predavanja', 1),

(2, 5, 2, 1, 'Predavanja', 1),

(3, 5, 3, 1, 'Predavanja', 1),

(4, 5, 4, 1, 'Predavanja', 1),

(5, 4, 1, 2, 'Vezbe', 1),

(6, 4, 4, 1, 'Vezbe', 1),

(7, 1, 1, 7, 'Predavanja', 1),

(8, 3, 1, 7, 'Vezbe', 1);

-- --------------------------------------------------------

--

-- Table structure for table `smer`

--

CREATE TABLE `smer` (

`idSmera` int(10) NOT NULL,

`NazivSmera` varchar(60) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `smer`

--

INSERT INTO `smer` (`idSmera`, `NazivSmera`) VALUES

(1, 'Informacione tehnologije - inzenjerstvo'),

(2, 'Inzenjerski menadzment'),

(3, 'Masinsko inzenjerstvo'),

(4, 'Industrijsko inzenjerstvo u eksploataciji nafte i gasa');

-- --------------------------------------------------------

--

-- Table structure for table `vreme`

--

CREATE TABLE `vreme` (

`idVreme` int(10) NOT NULL,

Page 22: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

`pocetak` varchar(15) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `vreme`

--

INSERT INTO `vreme` (`idVreme`, `pocetak`) VALUES

(1, '8:00 - 8:45'),

(2, '8:45 - 9:30'),

(3, '9:45 - 10:30'),

(4, '10:30 - 11:15'),

(5, '11:30 - 12:15'),

(6, '13:15 - 14:00'),

(7, '14:15 - 15:00'),

(8, '15:00 - 15:45'),

(9, '16:00 - 16:45'),

(10, '16:45 - 17:30'),

(11, '17:45 - 18:30'),

(12, '18:30 - 19:15'),

(13, '19:30 - 20:15'),

(14, '20:15 - 21:00');

--

-- Indexes for dumped tables

--

--

-- Indexes for table `cas`

--

ALTER TABLE `cas`

ADD PRIMARY KEY (`idCas`),

ADD KEY `FK_PROFESOR_REFERENCE_PREDMET` (`idPredmet`),

ADD KEY `FK_PROFESOR_REFERENCE_PROFESOR` (`idProfesor`),

ADD KEY `FK_PROFESOR_REFERENCE_SMER` (`idSmer`),

ADD KEY `FK_PROFESOR_REFERENCE_VREME` (`idVreme`),

ADD KEY `FK_PROFESOR_REFERENCE_DAN` (`idDan`),

ADD KEY `FK_PROFESORPREDAJE_REFERENCE_CAS` (`idPredaje`);

--

-- Indexes for table `dan`

--

ALTER TABLE `dan`

ADD PRIMARY KEY (`idDan`);

--

Page 23: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

-- Indexes for table `predmet`

--

ALTER TABLE `predmet`

ADD PRIMARY KEY (`idPredmet`);

--

-- Indexes for table `profesor`

--

ALTER TABLE `profesor`

ADD PRIMARY KEY (`idProfesor`);

--

-- Indexes for table `profesorpredaje`

--

ALTER TABLE `profesorpredaje`

ADD PRIMARY KEY (`idPredaje`),

ADD KEY `FK_PROFESORPREDAJE_REFERENCE_PREDMET` (`idPredmet`),

ADD KEY `FK_PROFESORPREDAJE_REFERENCE_PROFESOR` (`idProfesor`),

ADD KEY `FK_PROFESORPREDAJE_REFERENCE_SMER` (`idSmer`);

--

-- Indexes for table `smer`

--

ALTER TABLE `smer`

ADD PRIMARY KEY (`idSmera`);

--

-- Indexes for table `vreme`

--

ALTER TABLE `vreme`

ADD PRIMARY KEY (`idVreme`);

--

-- AUTO_INCREMENT for dumped tables

--

--

-- AUTO_INCREMENT for table `cas`

--

ALTER TABLE `cas`

MODIFY `idCas` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=345;

--

-- AUTO_INCREMENT for table `dan`

--

ALTER TABLE `dan`

Page 24: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

MODIFY `idDan` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--

-- AUTO_INCREMENT for table `predmet`

--

ALTER TABLE `predmet`

MODIFY `idPredmet` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

--

-- AUTO_INCREMENT for table `profesor`

--

ALTER TABLE `profesor`

MODIFY `idProfesor` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--

-- AUTO_INCREMENT for table `profesorpredaje`

--

ALTER TABLE `profesorpredaje`

MODIFY `idPredaje` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

--

-- AUTO_INCREMENT for table `smer`

--

ALTER TABLE `smer`

MODIFY `idSmera` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--

-- AUTO_INCREMENT for table `vreme`

--

ALTER TABLE `vreme`

MODIFY `idVreme` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;

--

-- Constraints for dumped tables

--

--

-- Constraints for table `cas`

--

ALTER TABLE `cas`

ADD CONSTRAINT `FK_PROFESORPREDAJE_REFERENCE_CAS` FOREIGN KEY

(`idPredaje`) REFERENCES `profesorpredaje` (`idPredaje`),

ADD CONSTRAINT `FK_PROFESOR_REFERENCE_DAN` FOREIGN KEY (`idDan`)

REFERENCES `dan` (`idDan`),

ADD CONSTRAINT `FK_PROFESOR_REFERENCE_PREDMET` FOREIGN KEY

(`idPredmet`) REFERENCES `predmet` (`idPredmet`),

Page 25: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

ADD CONSTRAINT `FK_PROFESOR_REFERENCE_PROFESOR` FOREIGN KEY

(`idProfesor`) REFERENCES `profesor` (`idProfesor`),

ADD CONSTRAINT `FK_PROFESOR_REFERENCE_SMER` FOREIGN KEY (`idSmer`)

REFERENCES `smer` (`idSmera`),

ADD CONSTRAINT `FK_PROFESOR_REFERENCE_VREME` FOREIGN KEY

(`idVreme`) REFERENCES `vreme` (`idVreme`);

--

-- Constraints for table `profesorpredaje`

--

ALTER TABLE `profesorpredaje`

ADD CONSTRAINT `FK_PROFESORPREDAJE_REFERENCE_PREDMET` FOREIGN

KEY (`idPredmet`) REFERENCES `predmet` (`idPredmet`),

ADD CONSTRAINT `FK_PROFESORPREDAJE_REFERENCE_PROFESOR` FOREIGN

KEY (`idProfesor`) REFERENCES `profesor` (`idProfesor`),

ADD CONSTRAINT `FK_PROFESORPREDAJE_REFERENCE_SMER` FOREIGN KEY

(`idSmer`) REFERENCES `smer` (`idSmera`);

COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Page 26: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

XML fajl iz kojeg se uzimaju podaci za bazu podataka sadrži sledeće:

<?xml version="1.0" encoding="utf-8"?>

<konekcija>

<host>localhost:3306</host>

<korisnik>root</korisnik>

<sifra></sifra>

<nazivbaze>rasporedcasova</nazivbaze>

</konekcija>

Page 27: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

6. Prikaz razvijene veb aplikacije za evidenciju

softverskih zahteva

6.1 Forma za unos rasporeda casova

Slika 7 Prikaz forme za unos

Page 28: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

6.2 Tabelarni prikaz rasporeda nakon unosa i biranje semestra

i smera

Slika 8 Izbor smera i semestra

Slika 9 Tabelarni prikaz rasporeda

Page 29: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

6.3 Izmena i brisanje su mogući unutar prikaza i prikazano je

na sledećoj slici

Slika 10 Prikaz mogućnosti izbora za izmenu i brisanje

Page 30: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

7. Delovi koda sa objašnjenjima

7.1 Prezentacioni sloj

Prezentacioni sloj realizuje fajl RasporedForma.php i on nam služi za prikazivanje

rasporeda i izgleda ovako:

<?php

class RasporedForma extends Konekcija{

public function PrikaziRaspored($id,$semestar){

$this->connect();

$q = "SELECT cas.idSmer,smer.NazivSmera FROM cas JOIN smer ON

smer.idSmera = cas.idSmer WHERE idSmer = $id ";

$izvrsiQ = mysqli_query($this->konekcijaMYSQL,$q)

or die(mysqli_error($this->konekcijaMYSQL));

$dajSmer = mysqli_fetch_row($izvrsiQ);

$brojRedova = mysqli_num_rows($izvrsiQ);

//NIJE DOBRO - start

if($brojRedova == 0){

echo "<p class='error'>Nema unetih casova!!!</p>";

$this->disconnect();

include("include/footer.php");

exit();

//NIJE DOBRO - end

}else{

$sql_vreme = "SELECT idVreme,pocetak FROM vreme ORDER BY

idVreme ASC";

$sql_query_vreme = mysqli_query($this-

>konekcijaMYSQL,$sql_vreme)

or die(mysqli_error($this->konekcijaMYSQL));

echo "<table border='1' class='tabela_ispis'>

<tr class='naslovTabeleSmer'><td colspan='7'>".$dajSmer[1]."</td><tr>

<tr>

<th>R.B.</th>

<th>Vreme</th>

<th>Ponedeljak</th>

<th>Utorak</th>

<th>Sreda</th>

Page 31: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

<th>Cetvrtak</th>

<th>Petak</th>

</tr>";

echo "<tr>";

while($vreme_row =

mysqli_fetch_array($sql_query_vreme,MYSQLI_NUM)){

echo

"<tr><td>".$vreme_row[0].".</td><td>".$vreme_row[1]."</td>";

for($i = 1; $i < 6; $i++){

$sql_cas = "SELECT profesor.IdProfesor,

profesor.Ime,

profesor.Prezime,

predmet.NazivPredmeta,

dan.NazivDana,

profesorpredaje.tippredavanja,

profesorpredaje.semestar,

cas.ucionica,

vreme.pocetak,

smer.NazivSmera,

cas.trajanje,

cas.idCas,

smer.idSmera,

cas.idPredaje,

predmet.idPredmet

FROM profesor JOIN cas ON

cas.idProfesor = profesor.idProfesor

JOIN smer ON

cas.idSmer = smer.idSmera

JOIN predmet

ON cas.idPredmet = predmet.idPredmet

JOIN dan ON

cas.idDan = dan.idDan

JOIN vreme

ON cas.idVreme = vreme.idVreme

JOIN

profesorpredaje ON profesorpredaje.idPredaje = cas.idPredaje

WHERE dan.idDan = $i

AND smer.IdSmera = $id

AND profesorpredaje.semestar =

$semestar

AND vreme.idVreme = $vreme_row[0]

";

$query_cas = mysqli_query($this-

>konekcijaMYSQL,$sql_cas) or

die(mysqli_error($this->konekcijaMYSQL));

Page 32: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

$broj = mysqli_num_rows($query_cas);

if($broj == 0){

echo "<td>";

echo "<table class='prazna_tabela'

border='1'>

<tr><td>------- -------</td>

<td rowspan='4'>----

</td></tr>

<tr><td>-------</td></tr>

<tr><td>-------</td></tr>

<tr>

<td class='footer-

cell'>";

echo "<a href='upisi.php'

class='upisi' />Upisi cas</a>";

echo "</td>

</tr>";

echo "</table>";

echo "</td>";

}else{

while($row_cas =

mysqli_fetch_array($query_cas,MYSQLI_NUM)){

echo "<td>";

echo "<table class='dan'

border='1'>

<tr><td>".$row_cas[1]." ".$row_cas[2]."</td>

<td

rowspan='4'>".$row_cas[7]."</td></tr>

<tr><td>".$row_cas[3]."</td></tr>

<tr><td>".$row_cas[5]."</td></tr>

<tr>

<td

class='footer-cell'>

<a

href='izmeni.php?t=$row_cas[10]&

semestar=$row_cas[6]&

smer=$row_cas[12]&

predmet=$row_cas[14]&

idProfesor=$row_cas[0]&

Page 33: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

dan=$i&

vreme=$vreme_row[0]&

ucionica=$row_cas[7]&

idPredaje=$row_cas[13]' class='izmeni' />Izmeni</a>

<a

href='obrisi.php?t=$row_cas[10]&

smer=$row_cas[12]&

dan=$i&

vreme=$vreme_row[0]&

ucionica=$row_cas[7]&

idPredaje=$row_cas[13]&

predmet=$row_cas[14]&

idProfesor=$row_cas[0]&

semestar=$row_cas[6]' class = 'obrisi' />Obrisi</a>

</td>

</tr>";

echo "</table>";

echo "</td>";

}

}

mysqli_free_result($query_cas);

}

echo "</tr>";

}

echo "</tr>";

echo "</table>";

}

}

}

?>

Page 34: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

7.2 Sloj poslovne logike

7.2.1 Poslovna pravila

Poslovna pravila nam realizuje fajl koji se zove BusinessLogic.php i njegov sadržaj izgleda

ovako:

<?php

class BusinessLogic extends Konekcija{

public function ProveriProfesora($smer,$predmet,$profesor,$tipPredavanja){

$this->connect();

$query_smer = "SELECT idSmera FROM smer WHERE NazivSmera =

'$smer'";

$izvrsi_smer = mysqli_query($this->konekcijaMYSQL,$query_smer) or

die(mysqli_error($this->konekcijaMYSQL));

$id_smer = mysqli_fetch_row($izvrsi_smer);

$query_predmet = "SELECT idPredmet FROM predmet WHERE

NazivPredmeta = '$predmet'";

$izvrsi_predmet = mysqli_query($this->konekcijaMYSQL,$query_predmet) or

die(mysqli_error($this->konekcijaMYSQL));

$id_predmet = mysqli_fetch_row($izvrsi_predmet);

$query_profesor = "SELECT idProfesor FROM profesor WHERE

CONCAT(Ime,' ',Prezime) = '$profesor'";

$izvrsi_profesor = mysqli_query($this->konekcijaMYSQL,$query_profesor) or

die($this->konekcijaMYSQL);

$id_profesor = mysqli_fetch_row($izvrsi_profesor);

$query_provera = "SELECT idPredmet,idSmer,idProfesor,tippredavanja FROM

profesorpredaje

WHERE idPredmet = ".$id_predmet[0]." AND

idSmer = ".$id_smer[0]." AND

idProfesor = ".$id_profesor[0]." AND

tippredavanja = '$tipPredavanja' ";

$izvrsi_provera = mysqli_query($this->konekcijaMYSQL,$query_provera) or

die(mysqli_error($this->konekcijaMYSQL));

$brojRedova = mysqli_num_rows($izvrsi_provera);

Page 35: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

if($brojRedova != 1){

echo "<p class='error'>Profesor ne predaje izabrani predmet!!!</p>";

mysqli_free_result($izvrsi_provera);

$this->disconnect();

include("include/footer.php");

exit();

}else{

return true;

}

}

public function ProfesorVecPredaje($dan,$vremePocetkaCasa,$profesor,$ucionica,$smer){

$this->connect();

$proveriProfesora = "SELECT cas.ucionica,profesor.Ime,profesor.Prezime,vreme.pocetak,

dan.NazivDana,smer.NazivSmera FROM cas JOIN vreme ON vreme.idVreme = cas.idVreme

JOIN dan ON dan.idDan = cas.idDan

JOIN smer ON smer.idSmera = cas.idSmer

JOIN profesor ON profesor.idProfesor = cas.idProfesor

WHERE smer.NazivSmera <> '$smer'

AND dan.NazivDana = '$dan'

AND vreme.pocetak = '$vremePocetkaCasa'

AND concat(profesor.Ime,' ',profesor.Prezime) = '$profesor'

AND cas.ucionica <> '$ucionica'";

$izvrsi_provera = mysqli_query($this->konekcijaMYSQL,$proveriProfesora) or

die(mysqli_error($this->konekcijaMYSQL));

$brojRedova = mysqli_num_rows($izvrsi_provera);

if($brojRedova != 0){

echo "<p class='error'>Izabrani profesor predaje u drugoj ucionici ili drugom smeru za izabrani

dan i vreme!!!</p>";

mysqli_free_result($izvrsi_provera);

$this->disconnect();

include("include/footer.php");

exit();

}else{

return true;

}

}

public function

ProveriCas($dan,$profesor,$smer,$predmet,$ucionica,$vremePocetkaCasa,$trajanjeCasa,$semestar){

$this->connect();

Page 36: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

$proveraDaLiCasPostoji = "SELECT dan.NazivDana,predmet.NazivPredmeta,

concat(profesor.Ime,' ',profesor.Prezime),smer.NazivSmera,

cas.ucionica,cas.trajanje,vreme.pocetak,profesorpredaje.idPredaje

FROM cas JOIN vreme ON vreme.idVreme = cas.idVreme

JOIN dan ON dan.idDan = cas.idDan JOIN predmet ON predmet.idPredmet =

cas.idPredmet JOIN

profesor ON profesor.idProfesor = cas.idProfesor JOIN smer ON smer.idSmera =

cas.idSmer

JOIN profesorpredaje ON profesorpredaje.idPredaje = cas.idPredaje

WHERE dan.NazivDana = '$dan' AND concat(profesor.Ime,' ',profesor.Prezime)

= '$profesor'

AND smer.NazivSmera = '$smer' AND predmet.NazivPredmeta = '$predmet'

AND cas.ucionica = '$ucionica'

AND vreme.pocetak = '$vremePocetkaCasa' AND cas.trajanje = $trajanjeCasa AND

profesorpredaje.semestar = $semestar";

$CasPostoji = mysqli_query($this->konekcijaMYSQL,$proveraDaLiCasPostoji) or

die(mysqli_error($this->konekcijaMYSQL));

$brojRedova = mysqli_num_rows($CasPostoji);

if($brojRedova != 0){

echo "<p class='error'>Cas koji ste uneli vec postoji!!!</p>";

mysqli_free_result($CasPostoji);

$this->disconnect();

include("include/footer.php");

exit();

}else{

return true;

}

}

public function ProveriUcionicu($vremePocetkaCasa,$ucionica,$semestar,$smer,$dan){

$proveriUcionicu = "SELECT cas.ucionica,vreme.pocetak,dan.NazivDana,smer.NazivSmera,

profesorpredaje.semestar FROM cas

JOIN vreme ON vreme.idVreme = cas.idVreme JOIN dan ON dan.idDan = cas.idDan

JOIN smer ON smer.idSmera = cas.idSmer JOIN profesorpredaje ON profesorpredaje.idPredaje =

cas.idPredaje

WHERE cas.ucionica = '$ucionica' AND dan.NazivDana = '$dan' AND vreme.pocetak =

'$vremePocetkaCasa'

AND smer.NazivSmera = '$smer' AND profesorpredaje.semestar = $semestar ";

$ucionicaZauzeta = mysqli_query($this->konekcijaMYSQL,$proveriUcionicu) or

die(mysqli_error($this->konekcijaMYSQL));

$brojRedova = mysqli_num_rows($ucionicaZauzeta);

Page 37: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

if($brojRedova != 0){

echo "<p class='error'>Ucionica je zauzeta!!!</p>";

mysqli_free_result($ucionicaZauzeta);

$this->disconnect();

include("include/footer.php");

exit();

}else{

return true;

}

}

public function

ZauzetoVeme($vremePocetkaCasa,$smer,$dan,$semestar,$ucionica,$profesor,$trajanjeCasa){

$this->connect();

$uzmiPodatkeVreme = "SELECT idVreme,pocetak FROM vreme WHERE pocetak =

'$vremePocetkaCasa' ";

$queryVreme = mysqli_query($this->konekcijaMYSQL,$uzmiPodatkeVreme)

or die(mysqli_error($this->konekcijaMYSQL));

$VremePodatak = mysqli_fetch_row($queryVreme);

for($j = 0; $j < $trajanjeCasa; $j++){

$DaLiPostoji = "SELECT concat(profesor.Ime,' ',profesor.Prezime),smer.NazivSmera,

dan.NazivDana,vreme.idVreme,cas.idVreme,profesorpredaje.semestar,

cas.idDan FROM cas JOIN profesor ON profesor.idProfesor = cas.idProfesor

JOIN dan ON dan.idDan = cas.idDan JOIN vreme ON vreme.idVreme = cas.idVreme

JOIN smer ON smer.idSmera = cas.idSmer

JOIN profesorpredaje ON profesorpredaje.idPredaje = cas.idPredaje

WHERE dan.NazivDana = '$dan' AND smer.NazivSmera = '$smer'

AND profesorpredaje.semestar = $semestar

AND cas.ucionica <> '$ucionica'

AND concat(profesor.Ime,' ',profesor.Prezime) <> '$profesor'

AND vreme.idVreme = ($VremePodatak[0] + $j) ";

$izvrsiDaLiPostoji = mysqli_query($this->konekcijaMYSQL,$DaLiPostoji)

or die(mysqli_error($this->konekcijaMYSQL));

$brojDaLiPostoji = mysqli_num_rows($izvrsiDaLiPostoji);

if($brojDaLiPostoji != 0){

echo "<p class='error'>Postoji vec upisan cas za izabrano vreme!!!</p>";

mysqli_free_result($izvrsiDaLiPostoji);

$this->disconnect();

include("include/footer.php");

Page 38: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

exit();

}else{

if($j == $trajanjeCasa){

return true;

}else{

continue;

}

}

}

}

}

?>

7.3 Sloj za rad sa podacima

Ovaj sloj predstavlja u suštini kod koji se nalazi u klasi BusinessLogic.php, jer se u njoj vrši

obrada podataka i njihova provera koja je u skladu sa poslovnim pravilima.

Page 39: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

8. Zaključak

U ovom projektu su korišćene HTML i CSS tehnologije za izradu front-end-a, a za izradu back-

end-a tj. same funkcionalnosti je korišćen PHP jezik.

Page 40: SEMINARSKI RAD Predmet: Softversko inženjerstvo 2 Tema: Veb …tfzr.rs/Content/files/0/SI 2 - dokumentacija PRIMER.pdf · 2019-01-05 · 4.2 HTML HTML je pisan ručno i dizajn je

9. Literatura

Linkovi ka stranicama sajtova:

1. https://www.php.net

2. https://www.stackoverflow.com

3. https://www.w3schools.com

Indeks slika

Rb. i naziv slike Broj stranice

Slika1 Use Case dijagram 10

Slika 2 Dijagram komponenti 11

Slika 3 Dijagram razmestaja 12

Slika 4 Dijagram klasa 13

Slika 5 Dijagram sekvenci 14

Slika 6 Opis baze podataka 16

Slika 7 Forma za unos 26

Slika 8 Izbor smera i semestra 27

Slika 9 Tabelarni prikaz rasporeda 27

Slika 10 Izmena i brisanje 28