3. Specifikacija zahtjeva sustava - FranBistrovic/QuantumHotel GitHub Wiki
- Glavni aktor: gost, djelatnik, admin
- Cilj: Ući u aplikaciju i započeti korištenje
- Preduvjet: Imati postojeći i ispravan Google račun (ako se prijavljuje preko OAuth2)
- Opis osnovnog tijeka:
- Korisnik se prijavljuje s Google računom preko OAuth2 ili korisničkim imenom
- Nakon prve prijave korisnik dobiva potvrdu na e-mail adresu
- Opis mogućih odstupanja:
1.a Korisnik nema e-mail ili je unio krive podatke
- Sustav javlja korisniku da provjeri podatke koje je upisao
- Glavni aktor: gost, djelatnik, admin
- Cilj: Osigurati da je korisnik ispravno prijavljen
- Preduvjet: Korisnik obavlja prvu prijavu putem Google računa
- Opis osnovnog tijeka:
- Sustav šalje korisniku potvrdu na e-mail
- Opis mogućih odstupanja: -
- Glavni aktor: prijavljeni gost, djelatnik, admin
- Cilj: Korisnik želi ažurirati svoje osobne podatke ili izbrisati svoj račun
- Preduvjet: Korisnik ima prijavljeni i potvrđeni račun
- Opis osnovnog tijeka:
- Korisnik otvara svoj profil
- Korisnik uređuje dostupne i željene podatke (ime, prezime, spol, …), a ako su uneseni podaci ispravni podaci se uspješno ažuriraju ili bira gumb za brisanje računa
- Opis mogućih odstupanja:
2.a Korisnik je unio pogrešne podatke
- Sustav javlja korisniku da provjeri podatke koje je upisao
- Glavni aktor: admin
- Cilj: Upravljati korisnicima sustava (djelatnicima i gostima) kroz dodjelu, ažuriranje i brisanje računa i uloga
- Preduvjet: Admin je prijavljen u sustav i ima aktivna administrativna prava
- Opis osnovnog tijeka:
- Admin pristupa upravljačkom sučelju za korisnike
- Admin može odabrati opciju za stvaranje novog korisnika, uređivanje ili brisanje postojećeg
- Spremanje izmjena
- Opis mogućih odstupanja:
3.a Neuspješno dohvaćanje ili spremanje podataka u bazu
- Glavni aktor: admin
- Cilj: Dodati novog ili ukloniti korisnika sa statusom djelatnika
- Preduvjet: Admin je prijavljen i ima pristup upravljanju korisnicima
- Opis osnovnog tijeka:
- Admin otvara obrazac za dodavanje novog korisnika i unosi potrebne podatke (ime, prezime, e-mail, ...) ili odabire onog kojeg želi izbrisati i klikne na "Izbriši”
- Novi korisnički račun se kreira i automatski aktivira ili se izbriše zajedno sa svim povezanim podacima
- Opis mogućih odstupanja:
2.a Uneseni e-mail već postoji u sustavu, krivo popunjeni podaci
- Sustav javlja korisniku o pogrešci
- Glavni aktor: admin
- Cilj: Promijeniti ulogu postojećem korisniku
- Preduvjet: Admin je prijavljen i ima pristup upravljanju korisnicima
- Opis osnovnog tijeka:
- Admin otvara profil korisnika i odabire novu ulogu za korisnika
- Sustav ažurira korisničku ulogu i prikazuje poruku o uspjehu
- Opis mogućih odstupanja:
2.a Neispravno uneseni podaci
- Sustav javlja korisniku da provjeri podatke koje je upisao
- Glavni aktor: gost, djelatnik, admin
- Cilj: Pregledati informativne sadržaje sustava
- Preduvjet: -
- Opis osnovnog tijeka:
- Sustav prikazuje dostupne tivne sadržaje
- Korisnik odabire željeni sadržaj za detaljan pregled
- Sustav prikazuje traženi sadržaj
- Opis mogućih odstupanja:
3.a Nema dostupnog sadržaja
- Sustav javlja korisniku da nema dostupnog sadržaja
- Glavni aktor: gost, djelatnik, admin
- Cilj: Pregledati lokaciju objekta na interaktivnoj karti
- Preduvjet: U sustav je integrirana Google Maps usluga
- Opis osnovnog tijeka:
- Korisnik odabire gumb za lokaciju
- Sustav učitava interaktivnu Google kartu.
- Opis mogućih odstupanja: -
- Glavni aktor: gost, djelatnik, admin
- Cilj: Dobiti odgovor na često postavljena pitanja
- Preduvjet: FAQ sadržaji postoje u sustavu
- Opis osnovnog tijeka:
- Korisnik otvara stranicu s FAQ
- Korisnik bira pitanje za prošireni prikaz odgovora
- Opis mogućih odstupanja:
2.a Ne postoji odgovor na određeno pitanje
- Glavni aktor: gost, djelatnik, admin
- Cilj: Pregledati članke o dodatnim aktivnostima
- Preduvjet: U sustavu postoje članci
- Opis osnovnog tijeka:
- Korisnik odabire kategoriju „Članci“ i sustav prikazuje listu članaka
- Korisnik čita članke
- Opis mogućih odstupanja:
1.a Nema objavljenih članaka
- Glavni aktor: gost, djelatnik, admin
- Cilj: Omogućiti korisniku odabir željenog termina i broja soba za rezervaciju
- Preduvjet: Korisnik je prijavljen
- Opis osnovnog tijeka:
- Korisnik otvara sučelje za rezervaciju.
- Unosi željeni datum dolaska i odlaska, odabire broj osoba i soba.
- Sustav provjerava dostupnost smještajnih jedinica
- Opis mogućih odstupanja:
3.a Nema dostupnih soba za odabrani termin
- Sustav javlja korisniku da nema dostupnih soba
- Glavni aktor: gost, djelatnik, admin
- Cilj: Prikazati dostupne smještajne jedinice na odabrani termin i broj osoba
- Preduvjet: Unos termina, broja osoba i soba
- Opis osnovnog tijeka:
- Sustav prikazuje listu smještajnih jedinica dostupnih za odabrani termin
- Korisnik može filtrirati i pregledati detalje jedinica
- Opis mogućih odstupanja:
1.a Nema dostupnih jedinica
- Sustav javlja korisniku da nema dostupnih jedinica
- Glavni aktor: gost, djelatnik, admin
- Cilj: Kreirati novu rezervaciju za odabranu jedinicu, termin i broj osoba
- Preduvjet: Odabrana dostupna smještajna jedinica i termin
- Opis osnovnog tijeka:
- Korisnik odabire jedinicu i potvrđuje rezervaciju
- Unosi potrebne podatke
- Sustav sprema rezervaciju i šalje potvrdu korisniku
- Opis mogućih odstupanja: -
- Glavni aktor: gost, djelatnik, admin
- Cilj: Omogućiti korisniku da uz rezervaciju odabere dodatne usluge
- Preduvjet: Kreiranje rezervacije ili u tijeku rezervacijskog procesa
- Opis osnovnog tijeka:
- Sustav prikazuje dostupne dodatne usluge
- Korisnik odabire željene usluge
- Sustav ažurira i potvrđuje izbor
- Opis mogućih odstupanja:
3.a Odabrana usluga više nije dostupna
- Sustav javlja korisniku da odabrana usluga više nije dostupna
- Glavni aktor: djelatnik, admin
- Cilj: Omogućiti pregled, unos i ažuriranje podataka o smještajnim jedinicama
- Preduvjet: Korisnik je prijavljen s odgovarajućim pravima (djelatnik ili admin)
- Opis osnovnog tijeka:
- Korisnik pristupa sučelju za upravljanje smještajem
- Može pregledavati i uređivati postojeće smještajne jedinice ili unositi nove jedinice
- Sustav validira i sprema izmjene
- Opis mogućih odstupanja:
3.a Korisnik nema odgovarajuće ovlasti
- Sustav javlja korisniku da nema ovlasti
- Glavni aktor: djelatnik, admin
- Cilj: Pregledati sve ili filtrirane smještajne jedinice
- Preduvjet: Korisnik ima pristup sustavu i odgovarajuću ulogu
- Opis osnovnog tijeka:
- Korisnik otvara stranicu s popisom smještajnih jedinica
- Može koristiti filtere: po kategoriji, broju kreveta, dostupnosti, vremenskom razdoblju, …
- Rezultati se prikazuju u obliku tablica
- Opis mogućih odstupanja:
3.a Nema dostupnih jedinica za zadane filtere
- Sustav javlja korisniku da nema dostupnih jedinica
- Glavni aktor: djelatnik, admin
- Cilj: Dodati novu ili ažurirati postojeću smještajnu jedinicu
- Preduvjet: Korisnik ima odgovarajuću ulogu i pristup uređivanju
- Opis osnovnog tijeka:
- Korisnik otvara obrazac za unos nove jedinice ili uređivanje postojeće i unosi ili mijenja podatke (naziv jedinice, kategorija (soba, apartman...), broj kreveta, termin, …)
- Sustav sprema jedinicu u bazu
- Opis mogućih odstupanja:
2.a Podaci nisu ispravno popunjeni
- Sustav javlja korisniku da provjeri podatke koje je upisao
- Glavni aktor: djelatnik, admin
- Cilj: Upravljati kategorijama smještajnih jedinica
- Preduvjet: Korisnik je prijavljen s ulogom djelatnika ili administratora
- Opis osnovnog tijeka:
- Korisnik otvara modul za upravljanje kategorijama
- Pregledava postojeće kategorije i može dodati novu kategoriju ili ažurirati postojeću
- Sustav validira i sprema podatke
- Opis mogućih odstupanja:
3.a Neispravni ili nepotpuni podaci
- Sustav javlja korisniku da provjeri podatke koje je upisao
- Glavni aktor: djelatnik, admin
- Cilj: Upravljati sadržajem za korisničku podršku
- Preduvjet: Prijava u sustav s odgovarajućim ovlastima
- Opis osnovnog tijeka:
- Korisnik bira između FAQ, dodatnih usuga i članaka i uređuje jednog od njih
- Opis mogućih odstupanja: -
- Glavni aktor: djelatnik, admin
- Cilj: Upravljati sadržajem sekcije FAQ kako bi korisnicima bila dostupna ažurirana pomoć
- Preduvjet: Korisnik je prijavljen s odgovarajućim ovlastima
- Opis osnovnog tijeka:
- Korisnik otvara sučelje za uređivanje FAQ-a i uređuje pitanja i odgovore
- Nakon spremanja sustav ažurira prikazani sadržaj
- Opis mogućih odstupanja:
2.a Pogrešno ispunjeni podaci
- Sustav javlja korisniku da provjeri podatke koje je upisao
- Glavni aktor: djelatnik, admin
- Cilj: Upravljati dodatnim uslugama koje gosti mogu uključiti uz rezervaciju
- Preduvjet: Korisnik ima pristup administraciji ili djelatničkom sučelju
- Opis osnovnog tijeka:
- Korisnik može pregledati, uređivati i izbrisati postojeće ili unijeti nove usluge
- Sustav validira i sprema podatke.
- Opis mogućih odstupanja:
2.a Neispravni ili nepotpuni podaci
- Sustav javlja korisniku da provjeri podatke koje je upisao
- Glavni aktor: djelatnik, admin
- Cilj: Uređivanje članaka o dodatnim aktivnostima
- Preduvjet: Korisnik je prijavljen s odgovarajućim ovlastima
- Opis osnovnog tijeka:
- Korisnik može kreirati nove i uređivati postojeće članke o dodatnim aktivnostima kako bi pružio bolju uslugu
- Opis mogućih odstupanja: -
- Glavni aktor: djelatnik, admin
- Cilj: Upravljati rezervacijama gostiju, osigurati njihovu validaciju i pravovremenu obradu
- Preduvjet: Korisnik je prijavljen s odgovarajućim ovlastima
- Opis osnovnog tijeka:
- Korisnik pristupa modulu rezervacija.
- Korisnik može pregledati detalje, potvrditi, odbiti ili izmijeniti rezervacije
- Sustav šalje obavijest gostu putem e-maila o promjeni statusa rezervacije
- Opis mogućih odstupanja: -
- Glavni aktor: admin
- Cilj: Pristupiti glavnom pregledniku svih dostupnih statistika sustava
- Preduvjet: Admin je prijavljen u sustav
- Opis osnovnog tijeka:
- Admin odabire modul „Statistika“
- Sustav prikazuje glavne kategorije statistike
- Opis mogućih odstupanja:
2.a Statistički podaci privremeno nedostupni
- Sustav javlja korisniku da su podaci privremeno nedostupni
- Glavni aktor: admin
- Cilj: Pregledati broj noćenja i zauzetost u određenom vremenskom razdoblju
- Preduvjet: Admin ima pristup statistici
- Opis osnovnog tijeka:
- Admin odabire „Statistika noćenja“, unosi vremenski raspon i kategoriju smještaja
- Sustav prikazuje broj noćenja i popunjene jedinice
- Opis mogućih odstupanja:
2.a Nema podataka za traženi period
- Sustav javlja korisniku da nema podataka za traženi period
- Glavni aktor: admin
- Cilj: Pregledati demografske i geografske statistike gostiju
- Preduvjet: Admin ima pristup statistici
- Opis osnovnog tijeka:
- Admin odabire gumb „Struktura gostiju“
- Sustav prikazuje statistike po državi, gradu, dobi i najtraženijim kategorijama
- Opis mogućih odstupanja:
2.a Zbog nedovoljno podataka prikazana statistika nije od velike važnosti
- Glavni aktor: admin
- Cilj: Pregledati koje dodatne usluge gosti najčešće koriste
- Preduvjet: Admin ima pristup statistici
- Opis osnovnog tijeka:
- Admin odabire gumb „Statistika dodatnih usluga“
- Sustav prikazuje listu najtraženijih dodatnih usluga i broj korištenja
- Opis mogućih odstupanja:
2.a Nema podataka o određenim uslugama
- Sustav javlja korisniku da nema podataka o određenim uslugama
- Glavni aktor: admin
- Cilj: Preuzeti statističke podatke u različitim formatima
- Preduvjet: Postoje odabrani i generirani statistički podaci
- Opis osnovnog tijeka:
- Admin odabire opciju „Preuzmi podatke“ i odabire željeni format
- Sustav generira datoteku i nudi je za preuzimanje
- Opis mogućih odstupanja: -
- Glavni aktor: djelatnik, prijavljeni gost
- Cilj: Omogućiti korisnicima da postave pitanje i dobe povratnu informaciju
- Preduvjet: Korisnik je prijavljen u sustav
- Opis osnovnog tijeka:
- Korisnik šalje pitanje u formi
- Korisnik dobiva potvrdu da je njegovo pitanje uspješno postavljeno
- Pitanje se prosljeđuje nekom od djelatnika
- Opis mogućih odstupanja: -
- Glavni aktor: djelatnik, prijavljeni gost
- Cilj: Korisnik dobiva odgovor na postavljeno pitanje
- Preduvjet: Korisnik je postavio pitanje
- Opis osnovnog tijeka:
- Djelatnik dobiva i obradi upit
- Djelatnik šalje korisniku odgovor na postavljeno pitanje
- Opis mogućih odstupanja: -
Slika 3.1: Sustav za hotelsko upravljanje - cjelokupni pogled
Slika 3.2: Sustav za hotelsko poslovanje - administracija računa
Slika 3.3: Sustav za hotelsko poslovanje - upravljanje smještajem i analizom
Slika 3.4: Sustav za hotelsko poslovanje - upravljanje rezervacijama i informacijama
Slika 3.5: Sustav za hotelsko poslovanje - hotelska statistika
Sekvencijski dijagram "UC1: Registracija u sustav" prikazuje tok interakcije između četiri ključna sudionika: nepovezanog gosta (korisnika koji još nije prijavljen), web aplikacije, vanjskog OAuth2 servisa i baze podataka sustava.
Proces započinje kada neprijavljeni gost inicira prijavu putem Googlea, maila ili korisničkog imena. Ako je odabrana prijava putem Googlea web aplikacija interpretira to kao zahtjev za autentifikaciju i prosljeđuje ga OAuth2 servisu. OAuth2 obrađuje zahtjev i vraća odgovor koji sadrži autorizacijski token ili kod, čime se potvrđuje uspješna autentifikacija korisnika.
Ako korisnik umjesto Google autentifikacije odabere prijavu putem e-mail adrese ili korisničkog imena, tada web aplikacija sama preuzima odgovornost za provjeru vjerodajnica bez uključivanja vanjskih servisa. Proces započinje kada neprijavljeni gost unese svoje podatke u odgovarajuće polje za prijavu – to uključuje e-mail adresu ili korisničko ime te lozinku. Web aplikacija zatim lokalno validira unesene podatke prema unaprijed definiranim pravilima (npr. e-mail mora biti u ispravnom formatu, korisničko ime ne smije sadržavati nedozvoljene znakove, lozinka mora imati minimalnu duljinu i barem jedan broj ili specijalni znak) aplikacija inicira sesiju i korisnik se uspješno registrira u sustav.
U slučaju da podaci nisu ispravni ili korisnik ne postoji, aplikacija vraća poruku o pogrešnoj prijavi i može ponuditi opciju ponovne registracije. Ovaj tok se odvija potpuno interno, bez potrebe za vanjskim servisima.
Ako je registracija uspješno provedena, web aplikacija šalje poruku Spremanje podataka() prema bazi podataka, čime se trajno pohranjuju korisnički podaci – uključujući e-mail adresu, korisničko ime, hash lozinke (i eventualne dodatne informacije poput datuma registracije ili uloge korisnika). Aplikacija također inicira slanje potvrde korisniku putem e-maila ukoliko je registracija uspješno provedena.
Dijagram jasno prikazuje glavni tok registracije, uključujući autentifikaciju preko vanjskog servisa, provjeru ispravnosti prijave lokalno, pohranu podataka te završnu potvrdu korisniku. Uključivanje uvjetnih i ponovljenih tokova omogućuje modeliranje scenarija neuspjeha i ponovne registracije, čime se osigurava pouzdan proces registracije.
Slika 3.7: Sustav za hotelsko upravljanje - UC1 Registracija u sustav
Sekvencijski dijagram "UC5: Postupak rezervacije sobe" prikazuje interakciju između gosta, web aplikacije i baze podataka tijekom procesa rezervacije smještaja.
Proces započinje kada gost inicira pregled dostupnih soba po kriterijima termina i broja osoba, što se u dijagramu prikazuje porukom prema web aplikaciji. Web aplikacija zatim šalje upit bazi podataka kako bi dohvatila isfiltrirane informacije o slobodnim sobama, a baza vraća rezultate koji se prikazuju gostu. Ako u tom rezultatu ima dostupnih smještajnih jedinica iste se prikazuju gostu, a ako se ništa ne poklapa s gostovim preferencama gostu se prikaže poruka o nedostupnosti.
Zajedno s prikazom dostupnih soba gost dobiva opciju da prihvati rezervaciju (za što je nužno biti prijavljen u sustav, znači ta mogućnost se prikazuje jedino ako se radi o prijavljenom korisniku).
Nakon potvrđene rezervacije gostu se prikazuje mogućnost dodatnih opcija vezanih uz sobu – primjerice, tip kreveta, pogled, klima uređaj ili druge pogodnosti. Gost zatim odabire dodatne usluge, poput doručka, parkinga ili wellness paketa, a web aplikacija bilježi te izbore. U sljedećem koraku aplikacija kreira rezervaciju, što se prikazuje porukom prema bazi podataka da se podaci spreme. U bazi podatala se svi relevantni podaci – identifikator gosta, odabrana soba, dodatne usluge, datumi boravka – trajno pohranjuju.
Dijagram prikazuje kako gost putem web aplikacije pregledava dostupne sobe, odabire sobu i dodatne usluge, te potvrđuje rezervaciju. Web aplikacija provjerava dostupnost u bazi podataka i pohranjuje sve relevantne podatke o rezervaciji, uključujući gosta, odabranu sobu, dodatne usluge i datume boravka.
Slika 3.6: Sustav za hotelsko upravljanje - UC5 Postupak rezervacije soba
Sekvencijski dijagram "UC9: Pristup statistici hotela" prikazuje tok interakcije između administratora, web aplikacije i baze podataka tijekom pristupa hotelskim statističkim podacima.
Proces započinje kada administrator odabere jednu od dostupnih kategorija statistike - statistiku noćenja, strukturu gostiju ili dodatne usluge. Izbor koja od tih dostupnih statistika se želi pregledati je unutar zasebnog opt bloka, čime se jasno naznačuje da se radi o opcionalnoj funkcionalnosti koja se aktivira ovisno o korisničkom odabiru.
Nakon odabira statistike koju želimo pregledati aplikacija šalje zahtjev prema bazi podataka kako bi dohvatila željene podatke te ih prikazala adminu. Aplikacija također nudi administratoru mogućnost preuzimanja podataka, što je prikazano kao zasebna poruka. Ako administrator odabere opciju za izvoz, aplikacija od baze traži podatke i administratora još jednom pita da potvrdi download.
Ovaj dijagram jasno prikazuje kako sustav omogućuje fleksibilan pristup različitim vrstama statistike, uz mogućnost izvoza podataka.
Slika 3.8: Sustav za hotelsko upravljanje - UC9 Pristup statistici hotela
Sekvencijski dijagram "UC10: Postavljanje pitanja" prikazuje tok komunikacije između prijavljenog gosta, web aplikacije i djelatnika hotela tijekom procesa slanja upita i primanja odgovora.
Proces započinje kada prijavljeni gost napiše i pošalje pitanje putem web aplikacije. Taj korak uključuje automatsku potvrdu o primitku upita, čime se korisniku signalizira da je njegov zahtjev uspješno zaprimljen. Web aplikacija zatim prosljeđuje upit djelatniku, koji je zadužen za njegovu obradu. Unutar tog koraka prikazan je podproces obrade upita, koji može uključivati čitanje, klasifikaciju, traženje odgovora ili formulaciju odgovora prema vrsti pitanja. Nakon što djelatnik obradi upit, web aplikacija šalje odgovor natrag prijavljenom gostu.
Sekvencijski dijagram prikazuje tok slanja upita i daljnje komunikacije od prijavljenog gosta do djelatnika hotela i povratnog odgovora putem web aplikacije.
Slika 3.9: Sustav za hotelsko upravljanje - UC10 Postavljanje pitanja
| ID Obrasca Uporabe | Naziv Obrasca Uporabe | Povezani Funkcionalni Zahtjevi |
|---|---|---|
| UC1 | Registracija u sustav | F-001 |
| UC1.1 | Slanje e-mail potvrde | F-001 |
| UC2 | Upravljanje podacima korisničkog računa | F-002, F-003 |
| UC3 | Upravljanje korisničkim računima | F-004, F-020 |
| UC3.1 | Administracija djelatnika | F-004 |
| UC3.2 | Ažuriranje uloga | F-020 |
| UC4 | Pregled informacija | F-005, F-018, F-010 |
| UC4.1 | Interakcija s Google Maps | F-005 |
| UC4.2 | FAQ | F-018 |
| UC4.3 | Pregled članaka | F-010 |
| UC5 | Odabir termina i broja osoba | F-006 |
| UC5.1 | Pregled dostupnih smještajnih jedinica | F-007 |
| UC5.2 | Rezervacija | F-008 |
| UC5.3 | Odabir dodatnih usluga | F-008 |
| UC6 | Upravljanje smještajnim jedinicama | F-009 |
| UC6.1 | Pregled smještajnih jedinica | F-011 |
| UC6.2 | Održavanje smještajnih jedinica | F-019 |
| UC6.3 | Upravljanje kategorijama jedinica | F-012 |
| UC7 | Upravljanje informacijama | F-018, F-012, F-010 |
| UC7.1 | Uređivanje FAQ | F-018 |
| UC7.2 | Upravljanje dodatnim uslugama | F-012 |
| UC7.3 | Upravljanje člancima o dodatnim aktivnostima | F-010 |
| UC8 | Upravljanje rezervacijama | F-013 |
| UC9 | Pristup statistici hotela | F-014, F-015, F-016, F-017 |
| UC9.1 | Pregled statistike noćenja | F-014 |
| UC9.2 | Pregled statistike o strukturi gostiju | F-015 |
| UC9.3 | Pregled statistike o dodatnim uslugama | F-016 |
| UC9.4 | Preuzimanje statističkih podataka | F-017 |
| UC10 | Postavljanje pitanja | F-018 |
| UC10.1 | Odgovor na pitanje | F-018 |