3. Specifikacija zahtjeva sustava - Progi-Prijatelji/Repo-Prijatelji GitHub Wiki
Obrasci uporabe
Dijagrami obrazaca uporabe
1. Visokorazinski dijagram obrazaca uporabe cijelog sustava
2. dijagram obrazaca uporabe za ključne značajke
Opis obrazaca uporabe
UC01 - Registracija
- Glavni sudionik: gost (neregistrirani korisnik)
- Cilj: registracija novog korisnika na stranicu
- Sudionici: gost, OAuth 2.0, baza podataka
- Preduvjet: gost nema već napravljen račun
- Opis osnovnog tijeka:
- Gost otvara stranicu za registraciju na web aplikaciju
- Upisuje svoje podatke koji se šalju na OAuth 2.0 server
- OAuth 2.0 autenticira korisnika, provjerava je li već registriran i pravilnost unesenih podataka
- Korisnički podaci zapisuju se u bazu podataka
- Korisnik ima pristup na web aplikaciju
- Opis mogućih odstupanja:
- U bazi podataka već postoji račun s tom e-mail adresom te se šalje obavijest gostu da može probat s drugim e-mailom ili otići na prijavu
UC02 - Prijava
- Glavni sudionik: korisnik
- Cilj: prijava korisnika na stranicu
- Sudionici: korisnik, OAuth 2.0, baza podataka
- Preduvjet: korisnik je već registriran na stranicu
- Opis osnovnog tijeka:
- Korisnik otvara stranicu za prijavu na web aplikaciju
- Korisnik upisuje svoje podatke koji se šalju na OAuth 2.0 server
- OAuth 2.0 autenticira korisnika, provjerava je li već registriran i pravilnost unesenih podataka
- Korisnik ima pristup na web aplikaciju
- Opis mogućih odstupanja:
3.a korisnički podaci su krivo uneseni, korisnik dobiva obavijest i može pokušati ponovno 3.b korisnički račun ne postoji, korisnik dobiva obavijest i preusmjerava se na stranicu za registraciju
UC03 - Promjena lozinke
- Glavni sudionik: korisnik
- Cilj: promjena lozinke korisničkog računa prijavljenog na stranicu
- Sudionici: korisnik, baza podataka
- Preduvjet: korisnik je prijavljen na stranicu
- Opis osnovnog tijeka:
- Korisnik izabire opciju promjene lozinke
- Korisnik upisuje svoju trenutnu lozinku, novu lozinku, potvrdu nove lozinke
- Sustav provjerava je li točno unesena trenutna lozinka, jesu li nova lozinka i potvrda nove lozinke jednake
- Stara lozinka se briše iz baze podataka, a na njeno mjesto se upisuje nova
- Korisnik dobiva obavijest da je promijenio svoju lozinku
- Opis mogućih odstupanja:
3.a Unesena trenutna lozinka i trenutna lozinka u bazi podataka se ne podudaraju, korisnik dobiva obavijest i može pokušati ponovno 3.b Unesena nova lozinka i potvrda nove lozinke nisu jednake, korisnik dobiva obavijest i može pokušati ponovno
UC04 - Kreiranje rječnika
- Glavni sudionik: administrator
- Cilj: kreirati rječnik za učenje novog jezika na stranici
- Sudionici: administrator, baza podataka
- Preduvjet: administrator je prijavljen na stranicu
- Opis osnovnog tijeka:
- Administrator odabire opciju "Kreiraj novi rječnik"
- Administrator upisuje naziv rječnika, jezik te kratki opis
- Novi rječnik je spremljen u bazu podataka
- Administrator dobiva obavijest da je kreirao novi rječnik
- Opis mogućih odstupanja:
- U bazi podataka već postoji rječnik s istim nazivom za taj jezik, administrator dobiva obavijest o grešci te se prekida stvaranje novog jezika
UC05 - Dodavanje riječi
- Glavni sudionik: administrator
- Cilj: dodavanje nove riječi u jedan ili više postojećih rječnika na stranici
- Sudionici: administrator, vanjski rječnik, baza podataka
- Preduvjet: administrator je prijavljen na stranicu
- Opis osnovnog tijeka:
- Administrator odabire opciju "Dodavanje riječi"
- Administrator bira riječ, fraze, prijevod riječi i fraza, glasovnu datoteku riječi
- Administrator bira u koje rječnike će dodati novu riječ te potvrđuje svoj odabir
- Riječ se dodaje u rječnike te administrator dobiva obavijest o uspješnosti dodavanja riječi
- Opis mogućih odstupanja:
- Ako riječ postoji u nekom jeziku, u njega se ne dodaje te je administrator obavješten da dodavanje riječi nije bilo uspješno za taj rječnik
UC06 - Promjena riječi
- Glavni sudionik: administrator
- Cilj: promjena neke od komponente izabrane riječi u nekom rječniku
- Sudionici: administrator, baza podataka
- Preduvjet: administrator je prijavljen na stranicu
- Opis osnovnog tijeka:
- Administrator bira željeni jezik za koji postoji barem jedan rječnik
- Administrator bira željenu riječ iz tog jezika
- Administrator odabire opciju "Promjena riječi"
- Mijenja jednu ili više komponenata te riječi te sprema promjene
- Opis mogućih odstupanja:
- Ako je polje za prijevod izbrisan i ostavljen prazan, promjena se događa te je administrator obaviješten da to polje ne smije ostaviti prazno
UC07 - Brisanje riječi
- Glavni sudionik: administrator
- Cilj: izbrisati riječ iz nekog rječnika
- Sudionici: administrator, baza podataka
- Preduvjet: administrator je prijavljen na stranicu
- Opis osnovnog tijeka:
- Administrator bira željeni jezik za koji postoji barem jedan rječnik
- Administrator bira željenu riječ iz tog jezika
- Administrator odabire opciju "Brisanje riječi"
- Sustav izbacuje poruku "Jeste li sigurni da želite izbrisati ovu riječ?"
- Administrator bira hoće li odustati ili potvrđuje svoj izbor
- Opis mogućih odstupanja:
UC08 - Definiranje administratora
- Glavni sudionik: korijenski administrator
- Cilj: definiranje novog administratora
- Sudionici: korijenski administrator, baza podataka
- Preduvjet: korijenski administrator je prijavljen na stranicu
- Opis osnovnog tijeka:
- Korijenski administrator izabire opciju "Definiraj administratora"
- Otvara se lista učenika na kojoj korijenski administrator jednog ili više korisnika
- Korijenski administrator potvrđuje svoj odabir
- Opis mogućih odstupanja:
UC09 - Odabir jezika za učenje
- Glavni sudionik: učenik
- Cilj: odabir rječnika za učenje
- Sudionici: učenik, baza podataka
- Preduvjet: učenik je prijavljen na stranicu
- Opis osnovnog tijeka:
- Učenik izabire "Odabir rječnika"
- Učenik s liste izabire rječnik
- Opis mogućih odstupanja:
UC10 - Odabir moda za učenje
- Glavni sudionik: učenik
- Cilj: odabir moda za učenje
- Sudionici: učenik
- Preduvjet: učenik je prijavljen na stranicu
- Opis osnovnog tijeka:
- Učenik izabire "Odabir moda"
- Učenik s liste izabire mod
- Opis mogućih odstupanja:
UC11 - Odabir točnog odgovora
- Glavni sudionik: učenik
- Cilj: naučiti točan prijevod riječi
- Sudionici: učenik, baza podataka
- Preduvjet: učenik je prijavljen na stranicu
- Opis osnovnog tijeka:
- Dohvaćaju se riječi za izabrani rječnik i mod za koje je prošlo prikladno vrijeme od prošlog ponavljanja
- Ispisuje se jedna od riječ na jeziku koji se uči te 4 prijevoda riječi od kojih je jedan točan
- Učenik bira jedan od prijevoda
- Sustav provjerava je li izabrani odgovor točan
- Pokazuje se koji odgovor je točan
- Učenik izabire "Dalje" za prikaz sljedeće riječi
- Opis mogućih odstupanja:
UC12 - Provjera pisanja riječi
- Glavni sudionik: učenik
- Cilj: naučiti pravilno napisati riječ
- Sudionici: učenik, baza podataka
- Preduvjet: učenik je prijavljen na stranicu
- Opis osnovnog tijeka:
- Dohvaćaju se riječi za izabrani rječnik i mod za koje je prošlo prikladno vrijeme od prošlog ponavljanja
- Pojavljuje se glasovna datoteka od jedne riječi na jeziku koji uči i polje za upis
- Učenik stišće "Play" te upisuje riječ koju čuje
- Sustav provjerava je li upisani odgovor točan
- Pokazuje se pravilan zapis riječi
- Učenik izabire "Dalje" za prikaz sljedeće glasovne datoteke
- Opis mogućih odstupanja:
UC13 - Provjera izgovora riječi
- Glavni sudionik: učenik
- Cilj: naučiti pravilno izgovarati riječ
- Sudionici: učenik, baza podataka, API server za procjenu točnosti izgovora
- Preduvjet: učenik je prijavljen na stranicu
- Opis osnovnog tijeka:
- Dohvaćaju se riječi za izabrani rječnik i mod za koje je prošlo prikladno vrijeme od prošlog ponavljanja
- Ispisuje se jedna od riječ na jeziku koji se uči te gumb "Listen"
- Učenik stišće "Listen" te izgovara riječ
- API server ocjenjuje izgovor od 1 do 10
- Učenik izabire "Dalje" za prikaz sljedeće riječi
- Opis mogućih odstupanja:
UC14 - Pomicanje u prvu posudu ako je netočno
- Glavni sudionik: učenik
- Cilj: pomaknuti riječ u prvu posudu
- Sudionici: učenik, baza podataka
- Preduvjet: učenik je netočno odgovorio
- Opis osnovnog tijeka:
- Pomicanje riječi u prvu posudu
- Riječ će se opet ponoviti za učenje u odabranom modu i rječniku nakon jednog dana
- Opis mogućih odstupanja:
UC15 - Pomicanje u iduću posudu ako je točno
- Glavni sudionik: učenik
- Cilj: pomaknuti riječ u iduću posudu
- Sudionici: učenik, baza podataka
- Preduvjet: učenik je točno odgovorio
- Opis osnovnog tijeka:
- Pomicanje riječi u iduću posudu
- Ako je riječ već u 5. posudi, mičemo ju iz posuda i učenik ju više ne ponavlja
- Opis mogućih odstupanja:
UC16 - Odjava
- Glavni sudionik: korisnik
- Cilj: odjaviti se sa stranice
- Sudionici: korisnik
- Preduvjet: korisnik je prijavljen na stranicu
- Opis osnovnog tijeka:
- Korisnik izabire opciju "Odjava"
- Opis mogućih odstupanja:
UC17 - Brisanje računa
- Glavni sudionik: korisnik
- Cilj: izbrisati račun i sve podatke iz baze podataka
- Sudionici: korisnik, baza podataka
- Preduvjet: korisnik je prijavljen na stranicu
- Opis osnovnog tijeka:
- Korisnik izabire opciju "Brisanje računa"
- Korisnika se pita je li siguran da želi izbrisati račun
- Korisnik potvrđuje svoj izbor ili odustaje
- Opis mogućih odstupanja:
Sekvencijski dijagrami
2.6 Sekvencijski dijagram prikazuje kako izgleda proces brisanja korisničkog računa. Kada korisnik od aplikacije zatraži brisanje svog korisničkog računa, aplikacija od njega zatraži unos trenutne lozinke. Nakon što korisnik unese svoju trenutnu lozinku, aplikacija ju zajedno s ostalim korisničkim podatcima šalje bazi podataka tražeći od nje provjeru ispravnosti lozinke. Ukoliko je lozinka neispravna, baza podataka će aplikaciji dojaviti neispravnost lozinke a onda će aplikacija korisniku prikazati ispis "Greška" i zatražiti od njega ponovni upis lozinke. Suprotno, ukoliko je lozinka ispravna, baza podataka će aplikaciji dojaviti ispravnost lozinke, a aplikacija će korisniku prikazati obrazac upozorenja s opcijama nastavi i otkaži. Ukoliko korisnik odabere opciju nastavi, on će time aplikaciji poslati potvrdu odluke brisanja svog računa, a aplikacija će od baze podataka zatražiti brisanje korisničkog računa. Nakon uspješnog brisanja, baza podataka će o tome informirati aplikaciju, a aplikacija će odjaviti korisnika. Ako korisnik odabere opciju otkaži, postupak brisanja korisničkog računa će se prekinuti.