0% found this document useful (0 votes)
60 views62 pages

PROGI 2020 SoftTeam v2 0

The document specifies the functional requirements for a software system to support an online scientific conference, including requirements for an administrator to manage the conference, a chair to oversee submissions, participants to submit papers, and reviewers to evaluate submissions. It defines the actors and their allowed actions, such as administrators setting up the conference, participants uploading papers, and reviewers providing feedback. Use case diagrams and sequence diagrams are provided to further illustrate the required system functionality.

Uploaded by

Ivan Juri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views62 pages

PROGI 2020 SoftTeam v2 0

The document specifies the functional requirements for a software system to support an online scientific conference, including requirements for an administrator to manage the conference, a chair to oversee submissions, participants to submit papers, and reviewers to evaluate submissions. It defines the actors and their allowed actions, such as administrators setting up the conference, participants uploading papers, and reviewers providing feedback. Use case diagrams and sequence diagrams are provided to further illustrate the required system functionality.

Uploaded by

Ivan Juri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

Programsko inženjerstvo

Ak. god. 2020./2021.

Znanstvena konferencija
Dokumentacija, Rev. 2

Grupa: SoftTeam
Voditelj: Tomislav Harmina

Datum predaje: 14. 01. 2021.

Nastavnik: Miljenko Krhen


Programsko inženjerstvo Znanstvena konferencija

Sadržaj

1 Dnevnik promjena dokumentacije 3

2 Opis projektnog zadatka 4

3 Specifikacija programske potpore 6


3.1 Funkcionalni zahtjevi . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.1 Obrasci uporabe . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.2 Sekvencijski dijagrami . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Ostali zahtjevi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 Arhitektura i dizajn sustava 22


4.1 Baza podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.1 Opis tablica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.2 Dijagram baze podataka . . . . . . . . . . . . . . . . . . . . . 25
4.2 Dijagram razreda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3 Dijagram stanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Dijagram aktivnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5 Dijagram komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5 Implementacija i korisničko sučelje 34


5.1 Korištene tehnologije i alati . . . . . . . . . . . . . . . . . . . . . . . 34
5.2 Ispitivanje programskog rješenja . . . . . . . . . . . . . . . . . . . . 35
5.2.1 Ispitivanje komponenti . . . . . . . . . . . . . . . . . . . . . . 35
5.2.2 Ispitivanje sustava . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3 Dijagram razmještaja . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4 Upute za puštanje u pogon . . . . . . . . . . . . . . . . . . . . . . . . 49

6 Zaključak i budući rad 52

Popis literature 53

Indeks slika i dijagrama 55

SoftTeam stranica 1/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Dodatak: Prikaz aktivnosti grupe 56

SoftTeam stranica 2/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

1. Dnevnik promjena dokumentacije

Rev. Opis promjene/dodatka Autori Datum


0.1 Napravljen predložak. Harmina 21.10.2020.
0.2 Dodan opis projektnog zadatka. Harmina 21.10.2020.
0.3 Dodani obrasci uporabe sudionika Hanić 23.10.2020.
konferencije i recezenta.
0.4 Dodani dijagrami obrazaca uporabe. Duran 31.10.2020.
0.5 Dodani sekvencijski dijagrami. Matijašić 2.11.2020.
0.6 Dodan opis baze podataka. Matanović 10.11.2020.
0.7 Dodani ostali zahtjevi, opis arhitekture i Duran 11.11.2020.
dijagrami razreda.
0.8 Dodan opis dijagrama razreda. Duran 12.11.2020.
0.9 Dodan dijagram baze podataka. Matanović 12.11.2020.
1.0 Dovršena 1. revizija dokumentacije. Duran 13.11.2020.
1.1 Dodani JUnit testovi. Harmina 12.01.2021.
1.2 Dodan dijagram aktivnosti. Matijašić 13.01.2021.
1.3 Dodan dijagram komponenti. Kremenić 13.01.2021.
1.4 Dodan dijagram stanja. Hanić 13.01.2021.
1.5 Dodan zaključak i Selenium testovi. Duran 13.01.2021.
1.6 Dodan dijagram razmještaja i osvježen opis Matanović 13.01.2021.
baze.
1.7 Dodane upute za puštanje u pogon i novi Duran 14.01.2021.
dijagrami klasa.
2.0 Dovršena 2. revizija dokumentacije. Duran 14.01.2021.

SoftTeam stranica 3/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

2. Opis projektnog zadatka

Cilj ovog projektnog zadatka je razviti programsku podršku za stvaranje web


aplikacije ”Znanstvena konferencija”. Aplikacija će omogućiti administratoru defi-
niranje upitnika za prijavu konferencije, učitavanje radova u pdf formatu, izmjenu
podataka i dokumenata sudionika kao i pregled koji će administratoru dati uvid
u broj radova (ukupno i po sekcijama), države iz kojih sudionici dolaze, kao i u
konačnici spremanje svih dokumenata koji su sudionici poslali i potvrdili kao svoju
konačnu inačicu.
Prilikom dolaska na stranicu korisnicima se prikazuje stranica sa poljima za
prijavu u sustav (ukoliko već imaju račun) te posebnim linkom koji će korisnika
odvesti na stranicu za registraciju u sustav.
Za kreiranje novog računa od sudionika se traže sljedeći podatci:

• Ime

• Prezime

• Naziv institucije ili poduzeća

• Adresu

• Adresu e-pošte

• Autore rada

• Sekciju u kojoj želi sudjelovati

Nakon registracije sudionik ima odredeno vrijeme u kojem mora učitati svoj
rad u sustav u pdf formatu. U sustavu postoje 4 vrste korisnika:
Administrator upisuje podatke o konferenciji i odreduje predsjedavajućeg kon-
ferencije. Administrator takoder može vidjeti broj trenutno aktivnih korisnika i
njihova imena.
Predsjedavajući konferencije ima uvid u sve podatke o sudionicima, može ih mi-
jenjati i dodavati sadržaj. Takoder ima mogućnost spremanja na lokalno računalo
svih pristiglih radova. Predsjedavajući može svim ili samo odabranim sudionicima
slati obavijesti na njihove adrese elektroničke pošte.

SoftTeam stranica 4/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Sudionik konferencije se prijavljuje u odredenu sekciju kako bi mogao prezenti-


rati svoj rad. Nakon prijave u sustav te nakon što mu organizator potvrdi prijavu
sudionik ima odredeno vrijeme unutar kojega mora predati svoj rad u sustav u pdf
formatu. Sudionici se prijavljuju u sustav putem postojeće forme.
Recenzent upisuje svoje podatke prilikom prijave recenzenta, a odobrenje za
obavljanje recenzije radova mora dobiti od predsjedavajućeg konferencije. On može
mijenjati samo svoje podatke, i dohvaćati pristigle radove, koje može pregledavati
on line“, ili ih može preuzeti lokalno na svoje računalo. Nakon obavljene recenzije

ima mogućnost odabira pri čemu prihvaća rad bez ikakvih izmjena i/ili dopuna,
prihvaća rad, ali ga je prije konačnog odobrenja potrebno doraditi u manjoj mjeri
(nije potrebna naknadna provjera). U slučaju da recenzent ocijeni rad na način da
ga je moguće objaviti, ali autor mora obaviti značajne dodatne izmjene, tada autor
mora naknadno obavijestiti recenzenta o učinjenom. Postoji i opcija potpunog od-
bijanja rada zbog razloga koje je potrebno navesti i objasniti ocjenu.

SoftTeam stranica 5/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

3. Specifikacija programske potpore

3.1 Funkcionalni zahtjevi


Dionici:

1. Administrator
2. Predsjedavajući konferencije
3. Sudionik konferencije
4. Recenzent

Aktori i njihovi funkcionalni zahtjevi:

1. Neregistrirani/neprijavljeni korisnik (inicijator) može:

(a) Registrirati se u sustav


(b) Prijaviti se u sustav
(c) Zatražiti novu lozinku

2. Administrator (inicijator) može:

(a) Upisivati podatke o konferenciji


(b) Odredivati predsjedavajućeg konferencije
(c) Vidjeti broj i imena trenutno aktivnih registriranih korisnika
(d) Definirati upitnik za prijavu konferencije
(e) Učitati radove u pdf formatu
(f) Izmijeniti podatke i dokument sudionika
(g) Pregledati broj radova (ukupno i po sekcijama)
(h) Pregledati države iz kojih sudionici dolaze
(i) Spremiti sve dokumente koje su sudionici poslali i potvrdili kao konačne
inačice

3. Predsjedavajući konferencije (inicijator) može:

(a) Pregledavati sve podatke o sudionicima


(b) Mijenjati i dodavati sadržaj podataka o sudionicima

SoftTeam stranica 6/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

(c) Spremati sve pristigle radove na lokalno računalo


(d) Slati obavijesti sudionicima na njihove adrese elektroničke pošte
(e) Odabrati recenzenta

4. Sudionik konferencije (inicijator) može:


(a) Prijaviti se u sustav
(b) Učitati svoj rad u sustav
(c) Mijenjati svoje podatke u sustavu
(d) Obavjestiti recenzenta o značajnijim izmjenama rada u slučaju da recen-
zent traži izmjene
5. Recenzent (inicijator) može:
(a) Prijaviti se u sustav
(b) Mijenjati svoje podatke u sustavu
(c) Pregledavati radove online
(d) Preuzeti radove na svoje lokalno računalo
(e) Prihvatiti rad :
i. bez ikakvih promjena ili dopuna
ii. uz manje izmjene ili dopune
iii. uz značajnije izmjene
(f) Odbiti rad te poslati objašnjenje ocjene i razlog odbijanja rada

3.1.1 Obrasci uporabe


UC1 –Registracija

• Glavni sudionik: Neregistrirani/neprijavljeni korisnik


• Cilj: Registrirati se u sustav
• Sudionici: Baza podataka
• Preduvjet: Korisnik je neregistriran/neprijavljen
• Opis osnovnog tijeka:
1. Prikazana je početna stranica
2. Korisnik odabire opciju Registriraj se“

3. Prikazuje se formular za registraciju
4. Korisnik upisuje i sprema svoje podatke

UC2 –Prijava

• Glavni sudionik: Neregistrirani/neprijavljeni korisnik

SoftTeam stranica 7/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

• Cilj: Prijaviti se u sustav


• Sudionici: Baza podataka
• Preduvjet: Korisnik je neregistriran/neprijavljen
• Opis osnovnog tijeka:
1. Prikazana je početna stranica
2. Korisnik odabire opciju Prijavi se“

3. Prikazuje se formular za prijavu
4. Korisnik upisuje podatke za prijavu

UC3 -Pregled aktivnih registriranih korisnika

• Glavni sudionik: Administrator


• Cilj: Vidjeti broj i imena trenutno aktivnih registriranih korisnika
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava administratora
• Opis osnovnog tijeka:
1. Prikazan je broj aktivnih registriranih korisnika
2. Administrator odabire opciju Detaljnije“

3. Prikazuje se lista imena aktivnih registriranih korisnika
4. Administrator pregledava listu
5. Administrator zatvara listu

UC4 –Definiranje upitnika za prijavu konferencije

• Glavni sudionik: Administrator


• Cilj: Definirati upitnika za prijavu konferencije
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava administratora
• Opis osnovnog tijeka:
1. Administrator odabire opciju Stvori upitnik“

2. Prikazuje se novi prozor s opcijama za stvaranje upitnika
3. Administrator definira upitnik
4. Administrator sprema upitnik

UC5 –Slanje zahtjeva za izmjenom

• Glavni sudionik: Recenzent


• Cilj: Poslati zahtjev sudioniku za izmjenom dokumenta prije konačnog pri-
hvaćanja rada

SoftTeam stranica 8/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

• Sudionici: Baza podataka


• Preduvjet: Korisnik je registriran i dodijeljena su mu prava recenzenta
• Opis osnovnog tijeka:
1. Prikazan je znanstveni rad sudionika
2. Administrator odabire opciju ”Potrebna je izmjena rada”
3. Administatoru se pokaže polje u koje može navesti koje izmjene treba
napraviti
4. Administrator odabire opciju ”Pošalji zahtjev”

UC6 –Izmjena podataka o sudioniku

• Glavni sudionik: Administrator, predsjedavajući konferencije


• Cilj: Izmijeniti podatke o sudioniku
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava administratora
ili predsjedavajućeg konferencije
• Opis osnovnog tijeka:
1. Prikazana je lista sudionika
2. Korisnik odabire sudionika
3. Korisnik mijenja podatke
4. Korisnik sprema promjene

UC7 –Izmjena dokumenta sudionika

• Glavni sudionik: Administrator


• Cilj: Izmijeniti podatke i dokument sudionika
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava administratora
• Opis osnovnog tijeka:
1. Prikazani su dokumenti sudionika
2. Administrator odabire dokument
3. Administrator mijenja podatke dokumenta
4. Administrator sprema promjene

UC8 –Pregled broja radova

• Glavni sudionik: Administrator


• Cilj: Pregledati broj radova ukupno ili po sekcijama
• Sudionici: Baza podataka

SoftTeam stranica 9/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

• Preduvjet: Korisnik je registriran i dodijeljena su mu prava administratora


• Opis osnovnog tijeka:
1. Administrator odabire opciju Pregled broja radova“

2. Administrator odabire opciju Ukupno“ ili Po sekcijama“
” ”
3. Administrator pregledava broj radova

UC9 –Slanje obrazloženja za odbijanje rada

• Glavni sudionik: Recenzent


• Cilj: Poslati obrazloženje za odbijanje rada sudionika konferencije
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava recenzenta, te je
odbio rad sudionika
• Opis osnovnog tijeka:
1. Recenzent odabire opciju ”Odbij rad”
2. Pokazuje se polje za unos obrazloženja
3. Recenzent popunjuje polje i odabire opciju ”Pošalji obrazloženje”

UC10 –Spremanje konačnih inačica dokumenata

• Glavni sudionik: Administrator


• Cilj: Spremiti sve dokumente koje su sudionici poslali i potvrdili kao konačnu
inačicu
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava administratora
• Opis osnovnog tijeka:
1. Prikazana je lista konačnih inačica
2. Administrator odabire opciju ”Spremi sve dokumente”

UC11 -Upis podataka

• Glavni sudionik: Administrator


• Cilj: Upisati podatke o konferenciji
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava administratora
• Opis osnovnog tijeka:
1. Prikazan je formular za upis podataka
2. Administrator upisuje podatke o konferenciji
3. Administrator sprema upisane podatke

SoftTeam stranica 10/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

UC12 -Odredivanje predsjedavajućeg konferencije

• Glavni sudionik: Administrator


• Cilj: Odrediti predsjedavajućeg konferencije
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava administratora
• Opis osnovnog tijeka:
1. Administrator odabire opciju Odaberi predsjedavajućeg“

2. Administratoru se prikazuje popis sudionika
3. Administrator odabire predsjedavajućeg
4. Administrator sprema odabir

UC13 –Pregled podataka o sudionicima

• Glavni sudionik: Predsjedavajući konferencije, Administrator


• Cilj: Pregledati podatke o sudionicima
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava predsjedavajućeg
konferencije
• Opis osnovnog tijeka:
1. Predsjedavajući odabire pregled sudionika
2. Prikazuje se lista sudionika
3. Predsjedavajući odabire jednog sudionika
4. Prikazuju se podaci o sudioniku

UC14 –Spremanje na lokalno računalo

• Glavni sudionik: Predsjedavajući konferencije, recenzent


• Cilj: Spremiti pristigle radove na lokalno računalo
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava predsjedavajućeg
konferencije ili recenzenta
• Opis osnovnog tijeka:
1. Prikazana je lista pristiglih radova
2. Predsjedavajući ili recenzent odabire jedan ili više radova
3. Predsjedavajući ili recenzent odabire opciju Spremi na računalo“

UC15 –Slanje obavijesti sudionicima

• Glavni sudionik: Predsjedavajući konferencije

SoftTeam stranica 11/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

• Cilj: Slati svim ili odabranim sudionicima obavijesti na njihove adrese elek-
troničke pošte
• Sudionici: Baza podataka
• Preduvjet: Korisnik je registriran i dodijeljena su mu prava predsjedavajućeg
konferencije
• Opis osnovnog tijeka:
1. Prikazana je lista sudionika
2. Predsjedavajući odabire jednog ili više sudionika
3. Predsjedavajući odabire opciju Pošalji obavijest“

4. Prikazuje se novi prozor u koji se upisuje obavijest
5. Predsjedavajući šalje obavijest

UC16 –Generiranje nove lozinke

• Glavni sudionik: Neprijavljeni korisnik


• Cilj: Generirati novu lozinku korisniku koji ju je zaboravio
• Sudionici: Baza podataka
• Preduvjet: Neregistrirani korisnik je zaboravio lozinku
• Opis osnovnog tijeka:
1. Prikazana je početna stranica
2. Korisnik odabire opciju Prijavi se“

3. Prikazuje se formular za prijavu
4. Korisnik odabire opciju Zaboravili ste lozinku?“

5. Prikazuje se formular za upis adrese elektroničke pošte
6. Korisnik upisuje svoju adresu elektroničke pošte
7. Sustav generira novu lozinku i šalje lozinku korisniku na njegovu adresu
elektroničke pošte

UC17 – Izmjena podataka sudionika/recenzenta

• Glavni sudionik: Sudionik konferencije,recenzent


• Cilj: Promjeniti podatke prijavljenog korisnika
• Sudionici: Baza podataka
• Preduvjet: Korisnik je prijavljen i dodjeljena su mu prava sudionika konfe-
rencije ili recenzenta
• Opis osnovnog tijeka:
1. Prikazana je stranica prijavljenog korisnika
2. Korisnik odabire opciju Izmjena podataka“

SoftTeam stranica 12/61 21. siječnja 2021.
Programsko inženjerstvo Znanstvena konferencija

3. Prikazuje se stranica sa podatcima koji se mogu mijenjati


4. Korisnik mijenja podatke i sprema izmjene

UC18 – Učitavanje rada sudionika konferencije

• Glavni sudionik: Sudionik konferencije


• Cilj: Učitati rad sudionika konferencije
• Sudionici: Baza podataka
• Preduvjet: Korisnik je prijavljen i dodjeljena su mu prava sudionika konfe-
rencije
• Opis osnovnog tijeka:
1. Prikazana je početna stranica
2. Korisnik odabire opciju Učitaj rad“

3. Prikazuje se formular za upis podataka o radu i učitavanja rada
4. Korisnik ispunjava formular i sprema rad
5. Učitavanje i prikaz rada

UC19 – Slanje obavjesti recenzentu

• Glavni sudionik: Sudionik konferencije


• Cilj: Poslati obavjest recenzentu na njegovu adresu elektroničke pošte o značajnijim
izmjenama rada
• Sudionici: Baza podataka
• Preduvjet: Korisnik je prijavljen i dodjeljena su mu prava sudionika konfe-
rencije
• Opis osnovnog tijeka:
1. Prikazana je stranica sa radom prijavljenog korisnika
2. Korisnik odabire recenzenta rada
3. Korisnik odabire opciju Pošalji obavijest o izmjeni rada“

4. Korisnik upisuje obavijest i šalje ju na adresu elektroniče pošte recen-
zenta.

UC20 – Pregledavanje radova online

• Glavni sudionik: Recenzent, predsjedavajući, administrator


• Cilj: Pregledati znastveni rad sudionika konferencije online
• Sudionici: Baza podataka
• Preduvjet: Korisnik je prijavljen i dodjeljena su mu prava recenzenta
• Opis osnovnog tijeka:

SoftTeam stranica 13/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

1. Prikazana je stranica s listom pristiglih radova


2. Recenzent odabire jedan rad sa opcijom Pregledaj“

3. Prikazuje se stranica sa znanstvenim radom i pripadajućim opcijama

UC21 – Prihvaćanje rada

• Glavni sudionik: Recenzent


• Cilj: Prihvatiti pregledani rad
• Sudionici: Baza podataka
• Preduvjet: Korisnik je prijavljen i dodjeljena su mu prava recenzenta, recen-
zent je pregledao rad
• Opis osnovnog tijeka:
1. Prikazana je stranica sa znanstvenim radom i pripadajućim opcijama
2. Recenzent odabire opciju Rad pregledan“

3. Recenzent odabire jednu od tri opcija:
(a) Prihvati rad bez ikakvih izmjena“

(b) Prihvati rad uz manje izmjene“

(c) Prihvati rad uz značajnije izmjene“

UC22 – Odbijanje rada

• Glavni sudionik: Recenzent


• Cilj: Odbiti pregledani rad i priložiti objašnjenje
• Sudionici: Baza podataka
• Preduvjet: Korisnik je prijavljen i dodjeljena su mu prava recenzenta, recen-
zent je pregledao rad
• Opis osnovnog tijeka:
1. Prikazana je stranica sa znanstvenim radom i pripadajućim opcijama
2. Recenzent odabire opciju Rad pregledan“

3. Recenzent odabire opciju Odbij rad“

4. Prikazuje se prozor se tekstualnim poljem za upis obrazloženja odbijanja
rada
5. Recenzent upisuje obrazloženje odbijanja rada
6. Recenzent odabire opciju Pošalji“ i obrazloženje se šalje autoru rada na

njegovu adresu elektroničke pošte

UC23 – Odabir recenzenta

• Glavni sudionik: Predsjedavajući konferencije

SoftTeam stranica 14/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

• Cilj: Odabrati recenzenta sa liste sudionika


• Sudionici: Baza podataka
• Preduvjet: Korisnik je prijavljen i dodjejena su mu prava predsjedavajućeg
konferencije
• Opis osnovnog tijeka:
1. Prikazana je stranica s listom sudionika
2. Recenzent odabire sudionika sa opcijom ”Odaberi recenzenta”
3. Recenzent odabire opciju ”Sačuvaj odabir”

Dijagrami obrazaca uporabe

Slika 3.1: Dijagram obrazaca uporabe - cjelokupni pogled

SoftTeam stranica 15/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 3.2: Dijagram obrazaca uporabe - proces učitavanja rada

SoftTeam stranica 16/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

3.1.2 Sekvencijski dijagrami


Obrazac uporabe UC1 - Registracija

Neregistrirani korisnik pritišće gumb registracije. Web stranica mu prikazuje


registracijsku stranicu s formularom koji treba ispuniti. Korisnik ispuni formular
i pošalje taj formular web stranici. Provjerava se postoji li već registrani korisnik
s istim imenom. Ako je validna registracija, sprema se informacija o korisniku u
bazu podataka i preusmjerava ga na početnu stranicu, ako nije validna registracija,
onda se prikazuje pogreška.

Slika 3.3: UC1 - Registracija

SoftTeam stranica 17/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

UC13 - Pregled podataka o sudionicima

Predsjedavajući konferencije odabire opciju pregleda sudionika. Šalje se zah-


tjev bazi podataka za listu sudionika i onda se to prikazuje korisniku. Predsjeda-
vajući konferencije treba izabrati nekog sudionika. Kada predsjedavajući konfe-
rencije izabere sudionika, šalje se zahtjev za podatke o tom sudioniku i onda se to
prikazuje korisniku.

Slika 3.4: UC13 - Pregled podataka o sudionicima

SoftTeam stranica 18/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Obrazac uporabe UC16 - Generiranje nove lozinke

Korisnik klinke na gumb ”Prijavi se”. Prikazuje mu se stranica za prijavu i on


odabire opciju ”Zaboravili ste lozinku?”. Prikazuje mu se formular gdje on upisuje
svoju elektroničku poštu. Ako ta elektronička pošta postoji, generira se nova lo-
zinka, sprema se i šalje mu se nova lozinka, inače mu se prikazuje da nije dobro
upisao elektroničku poštu ili da elektronička pošta ne postoji u bazi podataka.

Slika 3.5: UC16 - Generiranje nove lozinke

SoftTeam stranica 19/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

UC18 - Učitavanje rada sudionika konferencije

Sudionik konferencije odabire opciju ”Učitaj rad”. Prikazuje mu se formular i


mjesto za predaju rada. Sudionik predaje formular i rad. Ako je ispravno ispunio
formular i prikvačio rad, onda se sprema rad s informacijom iz rada, inače mu se
javlja pogreška.

Slika 3.6: UC18 - Učitavanje rada sudionika konferencije

SoftTeam stranica 20/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

3.2 Ostali zahtjevi


• Sustav mora omogućiti istovremeni rad administratora i neograničenog broja
registriranih korisnika

• Korisničko sučelje i sustav moraju podržavati hrvatsku abecedu pri unosu i


prikazu tekstualnog sadržaja

• Pristup bazi podataka ne smije trajati dulje od nekoliko sekundi

• Rad sustava treba biti stabilan, čak i kada korisnik neispravno koristi sučelje

• Web aplikacija treba poštivati objektno-orijentiranu paradigmu

• Komentari recenzija ne smiju biti dulji od 500 znakova

• Pri registraciji i spremanju podataka korisnika treba voditi računa o sigur-


nosti

• Korisničko sučelje treba biti intuitivno i jednostavno za korištenje

• Neregistrirani korisnik smije vidjeti samo početnu stranicu s osnovnim infor-


macijama

SoftTeam stranica 21/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

4. Arhitektura i dizajn sustava

Arhitektura sustava sastoji se od tri dijela:

• Baza podataka
• Web aplikacija
• Web poslužitelj

Slika 4.1: Arhitektura sustava

Web poslužitelj pokreće web aplikaciju te joj prosljeduje zahtjeve. Ta komuni-


kacija se odvija putem HTTP (engl.HyperText Transfer Protocol) protokola.
Web aplikacija služi za obradivanje zahtjeva korisnika. Ona korisniku vraća
odgovore preko poslužitelja u obliku koji se može prikazati u web pregledniku.
Web preglednik je program koji interpretira kod u kojem je stranica pisana i
prikazuje ju korisniku u obliku grafičkog sučelja s kojim korisnik može lagano
obavljati interakciju.

Poslužiteljski dio razvijen je pomoću Java Spring Boot tehnologije, a klijentski


dio razvijen je koristeći React web okvir.

Za poslužiteljski dio izabrali smo Intellij Ultimate okruženje i Java programski


jezik, dok je klijentski dio pisan u Visual Studio Code okruženju koristeći JavaS-
cript, HTML i CSS.

SoftTeam stranica 22/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Dokumentacija je pisana u LaTeXu pomoću online alata Overleaf.

Arhitektura sustava slijedi MVC (engl.Model-View-Controller) obrazac. Koristeći


takav obrazac arhitekture, možemo olakšati testiranje aplikacije i daljni razvoj
funkcionalnosti.

Model prima podatke od Controllera te upravlja podacima i logikom aplikacije.


View predstavlja bilo koje prikaze vidljive korisniku, dok Controller prima ulaze
i prosljeduje ih Modelu ili Viewu.

Cijela arhitektura sustava temelji se na objektno orijentiranoj paradigmi.

4.1 Baza podataka


Za vodenje baze podataka za našu aplikaciju odabrali smo MongoDB, uz kojeg
se koristi i Firebase. Firebase je sql baza koju koristimo za fizičku pohranu PDF
dokumenata radova. MongoDB je NoSQL tip baze podataka, koji sprema objekte
u kolekcije. Baza je orijentirana na dokumente, gdje svaki objekt dobiva svoj ID
koji mu je unikatan, te se za njega mogu spremati razni podaci, koji nemoraju biti
unaprijed odredeni niti im mora biti unaprijed odreden tip. Odabrali smo ovaj tip
baze umjesto relacijskog zbog jednostavnosti korištenja i pohrane podataka. U bazi
imamo sljedeće kolekcije:

• User (korisnik)

• Paper (za znanstvene radove)

• Role (korisničke uloge)

• Conference (konferencije)

• Reviews (recenzije znanstvenih radova)

4.1.1 Opis tablica


User: Ova kolekcija nam pohranjuje podatke o korisniku. Atributi koje ima su:
ID, ime, sekcija, autorizacija, uloga, e-mail i lista radova povezanih s njim, koje se
prati preko njihovih ID-a, te je na taj način povezan sa kolekcijom Paper. Načini za
pretraživanje Usera su preko emaila ili ID-a, koji su jedinstveni

SoftTeam stranica 23/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

User
ID VARCHAR ID koji MongoDB automatski pridružuje
korisniku
name VARCHAR Korisnkovo ime
email VARCHAR Korisnikov email
isAuthorized BOOLEAN Je li korisnik autoriziran
section VARCHAR Pod koju sekciju spada korisnik
role VARCHAR Korisnikova uloga
papers Paper Popis korisnikovih radova

Paper: Kolekcija koja služi za pohranu radova. Za radove se pohranjuje nji-


hov ID koji im automatski pridružuje baza, paperName, paperURL, reviews koji je
array ID-eva review-ova za taj rad, status i section.

Paper
ID VARCHAR ID koji je baza pridružila dokumentu
paperName VARCHAR Naslov rada
paperURL VARCHAR URL koji služi za dohvat rada koji se nalazi na
Firebaseu
reviews VARCHAR Recenzije koje su pridodane radu
status VARCHAR Status potvrde/odbijanja
section VARCHAR Sekcija kojoj rad pripada

Role: Tu se vode korisničke uloge. Atributi su ID i ime uloge.

Role
ID VARCHAR ID uloge
role name VARCHAR Ime uloge

Conference: Kolekcija za pohranu informacija o konferencijama. Atributi su


ID, title, description i section.

Conference
ID VARCHAR ID konferencije
title VARCHAR Naslov konferencije
description VARCHAR Opis koferencije
section VARCHAR Pod koju sekciju spada konferencija

SoftTeam stranica 24/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Reviews: Kolekcija za pohranu informacija o recenzijama. Atributi su auto-


matski ID recenzije koju stvara baza, ID reviewera preko kojeg je ova kolekcija
povezana sa users kolekcijom, i comment.

Reviews
ID VARCHAR ID recenzije
reviewerID VARCHAR ID usera koji je obavio recenziju
comment VARCHAR Komentar recenzenta

4.1.2 Dijagram baze podataka

Slika 4.2: Dijagram baze

SoftTeam stranica 25/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

4.2 Dijagram razreda


Glavne entitete aplikacije predstavljaju modeli koji preslikavaju kolekcije iz baze
podataka. To su razredi User, Paper, Role, Conference i Review . User predstav-
lja bilo kojeg korisnika web stranice, dok Role tim korisnicima pridružuje odredene
uloge. Paper predstavlja znanstveni rad koji je korisnik učitao. Conference predstav-
lja konferencije koje administrator može dodavati na web aplikaciji, dok Review
predstavlja recenzije koje recenzent može davati znanstvenim radovima. Svaki en-
titet ima pripadajuće sučelje repozitorija koji proširuje MongoRepository, te služi
za dohvaćanje podataka iz MongoDB baze podataka. Te klase i njihova povezanost
prikazane su na slici 4.2.

Entiteti imaju i svoje pripadajuće kontrolere i servise. Kontroler je odgovoran


za vraćanje odgovora na pojedine zahtjeve, dok servis služi kao posrednik izmedu
kontrolera i repozitorija, te opisuje poslovnu logiku. Kontroleri i servisi prikazani
su na slici 4.2.

Na kraju, na slici 4.3. prikazane su klase koje se koriste za autentikaciju koris-


nika preko JSON Web Token standarda.

SoftTeam stranica 26/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 4.3: Dijagram razreda - Glavni entiteti i repozitoriji

SoftTeam stranica 27/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 4.4: Dijagram razreda - Kontroleri, servisi i requestovi

SoftTeam stranica 28/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

4.3 Dijagram stanja


Dijagram stanja opisuje dinamičko ponašanje dijela sustava u vremenu. Dijagra-
mom stanja prikazuju se stanja objekata i njihove promjene uslijed prijelaza iz jed-
nog u drugo stanje koji se temelje na dogadajima poput klika na gumb. Prikazan
je dijagram stanja za registriranog korisnika koji učitava svoj znanstveni rad.
Kada se korisnik uspješno prijavi, otvara se stranica sa korisničkim podatcima.
Korisnik zatim klikom na gumb Početna stranica ili Znanstvena konferencija dolazi
na početnu stranicu znanstvene konferencije te pregledava sve do sada prijavljene
konferencije. Ako korisnik odabere jednu od konferencije u iskočnom prozoru se
prikazuju radovi koji su do sada prihvaćeni na toj konferenciji.
Korisnik odabirom na gumb Korisnik dolazi do stranice na kojoj može predati
svoj znanstveni rad. Na stranici Korisnik svakoga korisnika prikazani su njegovi do
sada predani radovi. Klikom na pojedini rad otvara se iskočni prozor s recenzijama
i ocjenom tog rada. Ispod radova korisnika nalazi se polje za učitavanje novih ra-
dova te se klikom na gumb Browse ili klikom na polje za unos teksta otvara pregled
lokalne memorije. Nakon odabira rada on se odmah prikazuje na popisu radova
korisnika. Nakon što je korisnik dodao novi rad, može pretražiti ostale registrirane
korisnike i pridodati ih kao autore znanstvenog rada. Upisivanjem imena drugih
autora u polje Korisničko ime ispisuju se registrirani korisnici s tim imenom, te ko-
risnik odabire autora. Upisivanjem naslova zajedničkog znanstvenog rada u polje
Znanstveni rad ispisuju se do sada predani radovi korisnika te on odabire zajednički
rad. Klikom na gumb Dodaj odabran korisnik je dodan kao autor znanstvenog rada.
Klikom na gumb Odjava Korisnik se odjavljuje i otvara se stranica za prijavu.

SoftTeam stranica 29/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 4.5: Dijagram stanja - registrirani korisnik

SoftTeam stranica 30/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

4.4 Dijagram aktivnosti


Dijagram aktivnosti prikazuje radni tok aktivnosti koje se obavljaju u sustavu ko-
rak po korak. Prikazan je dijagram aktivnosti za dodavanje rada. Prvo se sudionik
prijavljuje u sustav.
Nakon prijave, sudionik ide na stranicu user gdje vidi svoje radove i recenzije na
njima. Kad želi dodat rad odabire dodavanje rada i odabire rad sa svojeg računala.
Rad se sprema u bazu podataka i prikazuje se kod ostalih radova. U slučaju da
ima dodatnih autora sudionik upisuje ime dodatnog autora i ime rada, prikazuje
mu se popis sudionika i radova sa imenima sličnim onim koji je sudionik upisao i
sudionik treba izabrati dodatnog autora i rad iz popisa.

SoftTeam stranica 31/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 4.6: Dijagram aktivnosti

SoftTeam stranica 32/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

4.5 Dijagram komponenti


Dijagram komponenti na slici 4.8 vizualizira organizaciju i meduovisnost izmedu
implementacijskih komponenata (interna struktura) te odnos programske potpore
prema okolini. Sustav koristi dva sučelja. Preko sučelja za dohvat HTML, CSS i
JSS poslužuju se dadoteke koje pripadaju frontend dijelu aplikacije. Komponenta
Router na upit s URL-om odreduje koja se datoteka poslužuje na sučelje. Frontend
web aplikacija se sastoji od niza JavaScript datoteka koje ovise o React biblioteci
iz koje dohvaćaju gotove komponente kao što su gumbi, forme i slično. Preko
sučelja za dohvaćanje JSON podataka pristupa se komponenti REST API. REST
API poslužuje podatke koji se koriste u backend dijelu aplikacije. Za komuni-
kaciju s bazom podataka koristi se Mongo Repository. Podaci koji su pristigli iz
baze se šalju dalje MVC arhitekturi u obliku DTO. Komponenta React-view preko
dostupnih sučelja komunicira sa znanstvena konferencija aplikacijom te ovisno o
korisnikovim akcijama osvježava prikaz i dohvaća nove podatke.

Slika 4.7: Dijagram komponenti

SoftTeam stranica 33/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

5. Implementacija i korisničko sučelje

5.1 Korištene tehnologije i alati


Komunikacija u timu realizirana je korištenjem aplikacija WhatsApp1 i Discord2 .
Za izradu UML dijagrama 7 korišten je alat Astah Professional3 .Kao sustav za uprav-
ljanje izvornim kodom korišten je Git4 . Udaljeni repoizitorij projekta nalazi se na
web platformi GitLab5 .
Za razvoj aplikacije korišteno je integrirano razvojno okruženje (IDE) Intellij IDEA6
tvrtke Jetbrains. IntellijIDEA je napravila tvrtka imena JetBrains, a program ima
besplatnu i plaćenu verziju. Funkcionalnost alata se može proširiti koristeći mnoge
dostupne ekstenzije.
Web aplikacija je izradena koristeći programske jezike Java7 i JavaScript8 . Za
backend razvoj koristi se programski jezik Java koristeći radni okvir Spring Boot9 .
Spring je razvojno okruženje koje se može koristiti za razvoj raznih vrsta aplika-
cija, dok mi ovdje koristimo za razvoj web aplikacije. Za frontend razvoj koristi
se jezik JavaScript i radno okruženje ReactJS10 . ReactJS je open-source program
za izgradnju korisničkih sučelja i UI komponenti koju je razvila tvrtka Facebook.
Korištena baza podataka je MongoDB11 . MongoDB je NoSQL baza podataka koja
koristi JSON-like dokumente za spremanje podataka.
1 https://www.whatsapp.com/
2 https://discord.com/
3 https://astah.net/products/astah-professional/
4 https://git-scm.com/
5 https://gitlab.com/
6 https://www.jetbrains.com/idea/
7 https://www.java.com/en/
8 https://www.javascript.com/
9 https://spring.io/projects/spring-boot
10 https://reactjs.org/
11 https://www.mongodb.com/

SoftTeam stranica 34/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

5.2 Ispitivanje programskog rješenja

5.2.1 Ispitivanje komponenti


Za ispitivanje komponenti korišten je Spring Boot uz pomoć radnog okvira JUnit.
Svi testovi su provedeni nad bazom podataka, te se testira je li baza dobro postav-
ljena i trenutna funkcionalnost baze podataka (da li se dohvaćuju podatci iz raznih
dijelova baze podataka).

Ispitni slučaj 1: Dohvaćanje korisnika pomoću korisničkog imena


Očekivani rezultat: Bazi podataka se šalje upit za dohvat odredenog korisnika
koristeći njegovo korisničko ime. U slučaju da korisnik postoji očekuje se povrat
njegovih podataka, u spurotnom se očekuje null vrijednost. Poslana su dva upita,
jedan upit sa postojećim korisnikom i jedan sa nepostojećim.

Rezultat: Očekivani rezultat je zadovoljen jer za oba upita baza podataka vraća
očekivanu vrijednost. Aplikacija je prošla test.

Slika 5.1: Kod za ispitni slučaj 1

SoftTeam stranica 35/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 5.2: Rezultat ispitnog slučaja 1

Ispitni slučaj 2: Dohvaćanje korisnika pomoću e-mail adrese


Očekivani rezultat: Bazi podataka se šalje upit za dohvat odredenog korisnika
koristeći njegovu e-mail adresu. U slučaju da korisnik postoji očekuje se povrat
njegovih podataka, u spurotnom se očekuje null vrijednost. Poslana su dva upita,
jedan upit sa postojećim korisnikom i jedan sa nepostojećim.

Rezultat: Očekivani rezultat je zadovoljen jer za oba upita baza podataka vraća
očekivanu vrijednost. Aplikacija je prošla test.

Slika 5.3: Kod za ispitni slučaj 2

SoftTeam stranica 36/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 5.4: Rezultat ispitnog slučaja 2

Ispitni slučaj 3: Provjera postojanja svih uloga unutar baze podataka


Očekivani rezultat: Bazi podataka se šalju četiri upita pri čemu se provjerava pos-
tojanje svih potrebnih uloga unutar baze podataka. Očekuje se da će za sve upite
baza podataka vratiti točnu vrijednost (nikada ne smije biti vraćena null vrijed-
nost).

Rezultat: Baza podataka za sva četiri upita vraća očekivanu vrijednost. Aplika-
cija je prošla test.

SoftTeam stranica 37/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 5.5: Kod za ispitni slučaj 3

Slika 5.6: Rezultat ispitnog slučaja 3

Ispitni slučaj 4: Dohvaćanje dokumenta koristeći ime dokumenta


Očekivani rezultat: Bazi podataka se šalje upit za dohvat odredenog dokumenta
koristeći ime dokumenta. U slučaju da dokument postoji očekuju se njegovi po-

SoftTeam stranica 38/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

datci, u suprotnom se očekuje null vrijednost. Poslana su dva upita, jedan upit sa
postojećim dokumentom i jedan sa nepostojećim.
Rezultat: Baza podataka za oba upita vraća očekivanu vrijednost. Aplikacija je
prošla test.

Slika 5.7: Kod za ispitni slučaj 4

Slika 5.8: Rezultat ispitnog slučaja 4

Ispitni slučaj 5: Dohvaćanje konferencije koristeći ime konferencije


Očekivani rezultat: Bazi podataka se šalje upit za dohvat odredene konferencije

SoftTeam stranica 39/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

koristeći ime konferencije. U slučaju da konferencija postoji očekuju se podatci


konferencije, u suprotnom se očekuje null vrijednost. Poslana su dva upita, jedan
upit sa postojećom konferencijom i jedan sa nepostojećom.

Rezultat: Baza podataka za oba upita vraća očekivanu vrijednost. Aplikacija je


prošla test.

Slika 5.9: Kod za ispitni slučaj 5

Slika 5.10: Rezultat ispitnog slučaja 5

Ispitni slučaj 6: Dohvaćanje korisnika koristeći verifikacijski token


Očekivani rezultat: Bazi podataka se šalje upit za dohvat odredenog korisnika
koristeći njegov verifikacijski token. Test je namješten da izazove pad.

SoftTeam stranica 40/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Rezultat: Po očekivanjima test nije prošao.

Slika 5.11: Kod za ispitni slučaj 6

Slika 5.12: Rezultat ispitnog slučaja 6

5.2.2 Ispitivanje sustava


Ispitivanje sustava odradeno je korištenjem Selenium IDE alata. U nastavku su do-
kumentirani testovi važnijih funkcionalnosti.

Ispitni slučaj 1: Prijava korisnika


Ulaz:

1. Otvaranje stranice za prijavu korisnika


2. Korisnik upisuje korisničko ime i lozinku
3. Korisnik pritisne gumb za prijavu

Očekivani rezultat:

1. Korisnik se uspješno prijavljuje i prikazuje se stranica njegovog računa.

SoftTeam stranica 41/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Rezultat: Očekivani rezultat je zadovoljen. Aplikacija je prošla test.

Slika 5.13: Testiranje prijave korisnika

Slika 5.14: Stranica za prijavu

SoftTeam stranica 42/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Ispitni slučaj 2: Dodavanje recenzije na rad


Ulaz:

1. Korisnik s ulogom recenzenta otvara stranicu za recenziranje


2. Korisnik odabire neki od radova koje treba recenzirati
3. Korisnik upisuje komentare i odabire jedan od ponudenih opcija za potvrdu
ili odbijanje rada

Očekivani rezultat:

1. Recenzija se uspješno dodaje na rad.


2. Autori tog rada mogu vidjeti na svom profilu sve recenzije i status potvrde ili
odbijanja

Rezultat: Očekivani rezultat je zadovoljen. Recenzija je spremljena i autori mogu


vidjeti te recenzije. Aplikacija je prošla test.

Slika 5.15: Testiranje recenziranja rada

SoftTeam stranica 43/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 5.16: Prikaz stranice za recenziranje

Ispitni slučaj 3: Dodavanje konferencije


Ulaz:

1. Korisnik s ulogom administratora otvara stranicu za administratora


2. Administrator upisuje naslov i opis konferencije i odabire tematiku
3. Administrator objavljuje konferenciju

Očekivani rezultat:

1. Objavljena konferencija vidljiva je svim korisnicima na početnoj stranici apli-


kacije

Rezultat: Očekivani rezultat je zadovoljen. Svi korisnici mogu vidjeti dodanu kon-
ferenciju. Aplikacija je prošla test.

SoftTeam stranica 44/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 5.17: Testiranje dodavanja konferencije

Slika 5.18: Prikaz stranice za dodavanje konferencije

Ispitni slučaj 4: Dodavanje autora znanstvenom radu


Ulaz:

SoftTeam stranica 45/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

1. Korisnik koji je dodao rad na stranicu otvara svoj korisnički profil


2. Korisnik upisuje ime drugog korisnika kojeg želi dodati kao autora i ime rada
kojem ga želi pridodati
3. Korisnik pritisne gumb za dodavanje autora

Očekivani rezultat:

1. Korisnik koji je dodan kao autor sada na svom profilu može vidjeti taj znans-
tveni rad

Rezultat: Očekivani rezultat je zadovoljen. Korisnik je uspješno dodan kao autor i


sada ima pristup znanstvenom radu. Aplikacija je prošla test.

Slika 5.19: Testiranje dodavanja autora na znanstveni rad

SoftTeam stranica 46/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 5.20: Prikaz stranice za dodavanje autora

SoftTeam stranica 47/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

5.3 Dijagram razmještaja


Klijenti sa svojih uredaja koriste web preglednik za pristup aplikaciji. Na poslužiteljskom
računalu nalazi se web poslužitelj, koji komunicira sa bazama podataka koji se na-
laze na cloudu u vanjskim servisima, MongoDB i Firebase. Komunikacije izmedu
računala korisnika, web poslužitelja i baze se odvijaju preko HTTP veza.

Slika 5.21: Dijagram razmještaja

SoftTeam stranica 48/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

5.4 Upute za puštanje u pogon


Naša aplikacija koristi MongoDB bazu podataka koja se nalazi u cloudu, stoga ne
treba instalirati nikakve dodatne poslužitelje. Za konfiguraciju baze potrebno je
samo postaviti connection string u application.properties, dodati MongoDB depen-
dency u datoteku pom.xml i kreirati bazu podataka na stranici mongodb.com

Puštanje aplikacije u pogon odradeno je korištenjem alata Heroku. Poslužiteljski


dio i klijentski dio podignuti su zasebno. Za dizanje poslužiteljskog dijela pratili
smo upute na stranici https://devcenter.heroku.com/articles/deploying-spring-boot-
apps-to-heroku.
Prvo treba skinuti Heroku CLI (Command Line Interface) preko kojeg se koristi
naredba za prijavu na Heroku.
Nakon toga treba pripremiti repozitorij za dizanje na Heroku korištenjem git na-
redbi.

Slika 5.22: Pripremanje repozitorija za deployanje

Zatim treba kreirati udaljeni heroku repozitorij i konačno podignuti naš kod na taj
repozitorij kao što je prikazano na slikama 5.22 i 5.23.

Slika 5.23: Stvaranje heroku repozitorija

SoftTeam stranica 49/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 5.24: Deployanje poslužiteljskog koda na Heroku

Podizanje klijentskog dijela odraduje se na isti način koji je ovdje već opisan, s
jednim dodatkom.
Za klijentski dio smo još na Heroku stranici dodali buildpack koji nam omogućava
podizanje stranice bez dodatnih konfiguracija. Navedeni buildpack se može pronaći
na stranici https://github.com/mars/create-react-app-buildpack. Na slici 5.24 može
se vidjeti Heroku stranica na kojoj se dodaje buildpack.

SoftTeam stranica 50/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 5.25: Prikaz Heroku stranice gdje se dodaje buildpack

SoftTeam stranica 51/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

6. Zaključak i budući rad

Projektni zadatak ”Znanstvena konferencija” razvijali smo u periodu od tri mje-


seca. U početku smo se podijelili na dva tima i više smo se fokusirali na speci-
fikaciju funkcionalnosti aplikacije i potencijalnih problema. Nakon toga smo u
drugom ciklusu više radili na samoj implementaciji i testiranju aplikacije.
Jedan tim radio je na poslužiteljskom dijelu, a drugi na klijentskom dijelu. Svi
članovi projekta sudjelovali su u izradi dokumentacije po potrebi.
Glavni problemi s kojima smo se susretali tijekom projekta bili su povezani s
nedostatkom iskustva i znanja. Većina članova grupe nisu razvijali web aplikaciju
prije ovog projekta, stoga je velik broj sati utrošen na učenje novih tehnologija.
Zbog globalne pandemije u periodu projekta, tijekom razvoja komunicirali smo
isključivo preko interneta koristeći aplikacije Discord i WhatsApp Messenger. Članovi
s više iskustva pomagali su drugima kako bi se ovaj projekt uspio ostvariti u zada-
nom roku.
Ipak, nekoliko funkcionalnosti nismo uspjeli implementirati. Te funkcional-
nosti su mogućnost generiranja nove lozinke pri svakoj prijavi, mogućnost ad-
ministratora da vidi broj i imena svih trenutno aktivnih registriranih korisnika,
mogućnost predsjedavajućeg da šalje obavijesti korisnicima na njihove adrese elek-
troničke pošte, te pregled broja radova po sekcijama.
Na kraju možemo reći da smo zadovoljni rezultatom koji smo ostvarili i sma-
tramo da smo stekli vrijedna iskustva o načinu rada u timskom okruženju i tehnička
znanja koja će nam pomoći u budućim projektima, bez obzira na to o kojoj vrsti
projekta se radi.

SoftTeam stranica 52/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Popis literature

1. Programsko inženjerstvo, FER ZEMRIS, http://www.fer.hr/predmet/proinz

2. I. Sommerville, ”Software engineering”, 8th ed, Addison Wesley, 2007.

3. T.C.Lethbridge, R.Langaniere, ”Object-Oriented Software Engineering”, 2nd


ed. McGraw-Hill, 2005.

4. I. Marsic, Software engineering book“, Department of Electrical and Compu-


ter Engineering, Rutgers University, http://www.ece.rutgers.edu/˜marsic/
books/SE

5. The Unified Modeling Language, https://www.uml-diagrams.org/

6. Astah Community, http://astah.net/editions/uml-new

7. freeCodeCamp.org, ”Learn React JS - Full Course for Beginners - Tutorial


2019”,https://www.youtube.com/watch?v=DLX62G4lc44

8. Spring Boot Tutorial, https://www.tutorialspoint.com/spring_boot/index.


htm

9. Tutorial: Intro to React, https://reactjs.org/tutorial/tutorial.html

SoftTeam stranica 53/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Indeks slika i dijagrama

3.1 Dijagram obrazaca uporabe - cjelokupni pogled . . . . . . . . . . . . 15


3.2 Dijagram obrazaca uporabe - proces učitavanja rada . . . . . . . . . 16
3.3 UC1 - Registracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 UC13 - Pregled podataka o sudionicima . . . . . . . . . . . . . . . . 18
3.5 UC16 - Generiranje nove lozinke . . . . . . . . . . . . . . . . . . . . 19
3.6 UC18 - Učitavanje rada sudionika konferencije . . . . . . . . . . . . 20

4.1 Arhitektura sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22


4.2 Dijagram baze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 Dijagram razreda - Glavni entiteti i repozitoriji . . . . . . . . . . . . 27
4.4 Dijagram razreda - Kontroleri, servisi i requestovi . . . . . . . . . . . 28
4.5 Dijagram stanja - registrirani korisnik . . . . . . . . . . . . . . . . . 30
4.6 Dijagram aktivnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.7 Dijagram komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.1 Kod za ispitni slučaj 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 35


5.2 Rezultat ispitnog slučaja 1 . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3 Kod za ispitni slučaj 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.4 Rezultat ispitnog slučaja 2 . . . . . . . . . . . . . . . . . . . . . . . . 37
5.5 Kod za ispitni slučaj 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.6 Rezultat ispitnog slučaja 3 . . . . . . . . . . . . . . . . . . . . . . . . 38
5.7 Kod za ispitni slučaj 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.8 Rezultat ispitnog slučaja 4 . . . . . . . . . . . . . . . . . . . . . . . . 39
5.9 Kod za ispitni slučaj 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.10 Rezultat ispitnog slučaja 5 . . . . . . . . . . . . . . . . . . . . . . . . 40
5.11 Kod za ispitni slučaj 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.12 Rezultat ispitnog slučaja 6 . . . . . . . . . . . . . . . . . . . . . . . . 41
5.13 Testiranje prijave korisnika . . . . . . . . . . . . . . . . . . . . . . . . 42
5.14 Stranica za prijavu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.15 Testiranje recenziranja rada . . . . . . . . . . . . . . . . . . . . . . . 43
5.16 Prikaz stranice za recenziranje . . . . . . . . . . . . . . . . . . . . . . 44

SoftTeam stranica 54/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

5.17 Testiranje dodavanja konferencije . . . . . . . . . . . . . . . . . . . . 45


5.18 Prikaz stranice za dodavanje konferencije . . . . . . . . . . . . . . . 45
5.19 Testiranje dodavanja autora na znanstveni rad . . . . . . . . . . . . . 46
5.20 Prikaz stranice za dodavanje autora . . . . . . . . . . . . . . . . . . . 47
5.21 Dijagram razmještaja . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.22 Pripremanje repozitorija za deployanje . . . . . . . . . . . . . . . . . 49
5.23 Stvaranje heroku repozitorija . . . . . . . . . . . . . . . . . . . . . . . 49
5.24 Deployanje poslužiteljskog koda na Heroku . . . . . . . . . . . . . . 50
5.25 Prikaz Heroku stranice gdje se dodaje buildpack . . . . . . . . . . . 51

6.1 Dijagram pregleda promjena 1 . . . . . . . . . . . . . . . . . . . . . . 60


6.2 Dijagram pregleda promjena 2 . . . . . . . . . . . . . . . . . . . . . . 60
6.3 Dijagram pregleda promjena 3 . . . . . . . . . . . . . . . . . . . . . . 61
6.4 Dijagram pregleda promjena 4 . . . . . . . . . . . . . . . . . . . . . . 61

SoftTeam stranica 55/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Dodatak: Prikaz aktivnosti grupe

Dnevnik sastajanja
1. sastanak
• Datum: 8. listopada 2020.
• Prisustvovali: Svi članovi tima
• Teme sastanka:
– Rasprava o temi projektnog zadatka
– Upoznavanje s načinom izrade projekta
2. sastanak
• Datum: 20. listopada 2020.
• Prisustvovali: Svi članovi tima
• Teme sastanka:
– Diskusija o tehnologijama koje će se koristiti
– Podjela rada
– Početak izrade obrazaca uporabe
3. sastanak
• Datum: 26. listopada 2020.
• Prisustvovali: Svi članovi tima
• Teme sastanka:
– Provjera napravljene dokumentacije
– Početak izrade generičkih funkcionalnosti
4. sastanak
• Datum: 29. listopada 2020.
• Prisustvovali: Svi članovi tima
• Teme sastanka:
– Sastanak s mentorom
– Rješavanje nejasnoća
5. sastanak
• Datum: 3. studenog 2020.

SoftTeam stranica 56/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

• Prisustvovali: Ivan Juričić, Sanja Hanić, Tomislav Harmina, Ivor Leon


Matijašić
• Teme sastanka:
– Uskladivanje odredenih funkcionalnosti backenda i frontenda
– Dogovor oko daljneg razvoja
6. sastanak
• Datum: 9. studenog 2020.
• Prisustvovali: Ivan Juričić, Filip Matanović
• Teme sastanka:
– Dogovor oko opisa baze podataka i dijagrama baze
7. sastanak
• Datum: 12. studenog 2020.
• Prisustvovali: Svi članovi tima
• Teme sastanka:
– Demonstracija generičkih funkcionalnosti (obavezan termin)
8. sastanak
• Datum: 10. prosinac 2020.
• Prisustvovali: Članovi poslužiteljskog tima
• Teme sastanka:
– Podjela odgovornosti za daljni razvoj funkcionalnosti poslužitelja
9. sastanak
• Datum: 14. prosinac 2020.
• Prisustvovali: Članovi klijentskog tima
• Teme sastanka:
– Podjela odgovornosti za daljni razvoj funkcionalnosti klijenta
10. sastanak
• Datum: 20. prosinac 2020.
• Prisustvovali: Svi članovi tima
• Teme sastanka:
– Podjela odgovornosti koje bi se trebale odraditi tijekom praznika
11. sastanak
• Datum: 2. siječnja 2021.
• Prisustvovali: Svi članovi tima
• Teme sastanka:

SoftTeam stranica 57/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

– Dogovor oko završavanja odredenih funkcionalnosti


– Dogovor o načinu demonstracije alfa verzije aplikacije
12. sastanak
• Datum: 7. siječnja 2021.
• Prisustvovali: Svi članovi tima
• Teme sastanka:
– Demonstracija alfa verzije aplikacije i dogovor o završetku projekta
13. sastanak
• Datum: 13. siječnja 2021.
• Prisustvovali: Svi članovi tima
• Teme sastanka:
– Osvrt na cijeli projekt i rezultate

SoftTeam stranica 58/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Tablica aktivnosti

Ivor Leon Matijašić


Tomislav Harmina

Robert Kremenić

Filip Matanović
Sanja Hanić

Filip Duran

Ivan Juričić
Upravljanje projektom 10 5
Opis projektnog zadatka 5 1
Funkcionalni zahtjevi 2 3
Opis pojedinih obrazaca 4 4 2
Dijagram obrazaca 5
Sekvencijski dijagrami 2 5
Opis ostalih zahtjeva 2
Arhitektura i dizajn sustava 1 4
Baza podataka 7.5 3
Dijagram razreda 6
Dijagram stanja 3
Dijagram aktivnosti 3
Dijagram komponenti 3
Korištene tehnologije i alati 2
Ispitivanje programskog 7 5
rješenja
Dijagram razmještaja 1.5
Upute za puštanje u pogon 2
Dnevnik sastajanja 1
Zaključak i budući rad 1.5
Popis literature 0.3
Izrada frontenda 55 25 25
Izrada backenda 35 15 25 65
Izrada baze podataka 10
Spajanje backenda i frontenda 8
Deployment 5

SoftTeam stranica 59/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Dijagrami pregleda promjena

Slika 6.1: Dijagram pregleda promjena 1

Slika 6.2: Dijagram pregleda promjena 2

SoftTeam stranica 60/61 21. siječnja 2021.


Programsko inženjerstvo Znanstvena konferencija

Slika 6.3: Dijagram pregleda promjena 3

Slika 6.4: Dijagram pregleda promjena 4

SoftTeam stranica 61/61 21. siječnja 2021.

You might also like