Tehnička dokumentacija - toniskobic/Alexandria GitHub Wiki

1. Specifikacija korisničkih zahtjeva

1.1 Namjena dokumenta

Svrha, odnosno namjena ovog dokumenta je da specificira sve zahtjeve koje aplikacija "Alexandria" treba ispuniti. Ovaj dokument naručitelju aplikacije i projektnom timu koji je odgovaran za implementaciju sustava. Obuhvatit ćemo bitne stavke aplikacije koje se odnose na korisničke zahtjeve.

1.2 Korisnici aplikacije

  • Administrator - uloga u aplikaciji koja ima najviše ovlasti. Istaknuta uloga administratora je aktiviranje ili deaktiviranje korisnika. Administrator također posjeduje ovlasti uloge niže razine
  • Zaposlenik - uloga u aplikacija koja obavlja razne poslove. Ovlasti koje posjeduje uloga zaposlenik su:
    • unos nove knjižne građe,
    • razduživanje knjižne građe,
    • upravljanje posudbama knjige,
    • učlanjenje članova,
    • pregled statistike.

1.3 Funkcionalni zahtjevi

Oznaka Naziv Kratki opis
F01 Prijava korisnika Pokretanjem aplikacije otvara se početna stranica aplikacije koja od korisnika (zaposlenika) traži da se prijavi u aplikaciju. Zaposlenik nakon prijave može pristupiti svim formama za koje dodijeljene ovlasti, a to su: forme za upravljanje katalogom knjiga, forma upravljanja posudbama, forma upravljanja članovima, forma upravljanja članskim iskaznicama, forma rezervacija knjiga za posudbu te forme statistike članova i statistike posudbi. Administrator ima sve mogućnosti kao i uloga zaposlenik niže razine uz to što ima dodatnu mogućnost pristupa formi koja se odnosi na upravljanje korisnicima, odnosno zaposlenicima.
F02 Upravljanje knjižnim građama Forma na kojoj korisnik ima mogućnost posuđivanja i razduživanja knjižne građe. Također, na toj formi korisnik upravlja trenutno dostupnim knjižnim građama. Putem ove forme korisnik može dodati novu knjižnu građu. Ovoj formi pristup imaju svi korisnici aplikacije.
F03 Upravljanje posudbama Forma na kojoj zaposlenici evidentiraju posuđivanje i vraćanje knjiga te naplaćuju zakasnine. Članu knjižnice se šalje upozorenje za zakasnine putem elektroničke pošte.
F04 Upravljanje članovima Obrazac koji služi za upravljanje članovima knjižnice. Ovaj obrazac nam daje mogućnost pregleda profila članova, učlanjivanje novih članova, produljenje članstva, zamrzavanje članstva te prekid članstva. Pristup ovom obrascu imaju svi korisnici aplikacije.
F05 Upravljanje korisnicima Forma na kojoj administrator upravlja svim korisnicima aplikacije. Na ovoj formi administrator kreira korisničke račune za nove zaposlenike. Ako je potrebno, administrator može aktivirati prethodno deaktivirane korisnike i obrnuto. Uz navedeno, administratoru se prikazuje i popis svih korisnika aplikacije.
F06 Upravljanje članskim iskaznicama Jedna od funkcionalnosti je i upravljanje članskim iskaznicama. Prilikom posudbe ili vraćanja knjige, korisnik skenira člansku iskaznicu zaposlenika. Prilikom učlanjivanja u knjižnicu, novom članu knjižnice se generira članska iskaznica čiji se podaci unose u sustav. Korištenje ove funkcionalnosti aplikacije je omogućeno svim korisnicima aplikacije.
F07 Rezervacija knjiga za posudbu Ova forma služi za unos rezervacija za posudbu knjige. Korisnik aplikacije određenog člana dodaje na listu čekanja za posudbu određene knjige. Nakon što knjiga postane dostupna za posudbu, članu dolazi obavijest putem elektroničke pošte da ako želi, može posuditi rezerviranu knjigu. Pristup ovoj formi imaju svi korisnici aplikacije.
F08 Statistika posudbi Svi korisnici ove aplikacije imaju omogućen pregled statistike knjige po raznim kriterijima. Korisnik ima mogućnost pregleda najčitanijih knjiga, pregleda knjiga po autoru, razdoblju, kategoriji i slično. Statistika se prikazuje u obliku tabličnog formata i grafikona.
F09 Statistika članova Kategorizirani prikaz statistike članova. Korisnik je u mogućnosti pregledati statistiku članova po raznim kriterijima, kao što su: dobna skupina, broj posuđenih knjiga, zakasnina i sl.

1.4 Nefunkcionalni zahtjevi

Nefunkcionalni zahtjevi predstavljaju kvalitativne osobine koje aplikacijski sustav mora zadovoljavati. Takve osobine nisu definirane funkcionalnim specifikacijama sustava. Sustav mora zadovoljavati nefunkcionalne zahtjeve kako bi uspješno upravljao informacijama te bio podrška poslovnom sustavu.

  1. Raspoloživost
    • Aplikacija i usluge koje ona pruža moraju biti dostupne bez prekida, tj. puno radno vrijeme knjižnice. Isporučitelj se obvezuje da će uslijed iznenadnog prekida usluge određene smetnje ispraviti u najkraćem roku.
  2. Korisničko sučelje
    • Korištenje aplikacije mora biti prilagođeno potrebama korisnicima. Korisničko sučelje mora biti realizirano poštujući aktualne metode i tehnike izrade korisničkog sučelja.
  3. Izvedba
    • Aplikacija mora imati kratko vrijeme odaziva na sve upite i radnje koje korisnik obavlja.
  4. Sigurnost
    • Podatke treba zaštiti od neovlaštenog pristupa.
  5. Skalabilnost
    • Povećanjem broj korisnika, aplikacija mora nastaviti ispunjavati prethodno definirane zahtjeve
  6. Robusnost
    • Od aplikacije se očekuje da nastavi funkcionirati čak i pod neočekivanim okolnostima

2. Specifikacija dizajna proizvoda

2.1 Namjena aplikacije

Aplikacija je namijenjena zaposlenicima knjižnice koji interaktiraju sa članovima unutar knjižnice. Svrha ove aplikacije je omogućiti zaposlenicima da unesu u bazu podataka sve knjige koje knjižnica posjeduje, te na temelju skeniranja jedinstvenog koda knjige i čitača istog pronalazi te knjige i dozvoljava posudbu, odnosno rezervaciju ako knjiga trenutno nije dostupna. Uz pomoć jednostavnog korisničkog sučelja nastojimo ubrzati te procese i time povećati zadovoljstvo korisnika.

2.2 Namjena dokumenta

Svrha ovog dokumenta je detaljno razraditi sve navedene funkcionalnosti koje aplikacija za vrijeme svog rada mora zadovoljiti. Ovim dokumentom obuhvatit ćemo sve bitne aspekte koji se odnose na funkcionalnosti aplikacije, kako bi se programeri ili druge osobe koje će nastaviti razvoj aplikacije mogli lakše snaći.

2.3 Opseg projekta

U projekt će biti razvijan sustav za upravljanje dodavanjem, kao i posudbom i rezervacijom knjiga. Želimo postići stvaranje aplikacije koja ima sučelje jednostavno za korištenje, ali i koja će ubrzati procese posudbe i rezervacije knjiga. Sustav će biti baziran na centraliziranoj, relacijskoj bazi podataka. Nadamo se da će zaposlenici knjižnice biti zadovoljni i da će im ubrzati interakciju s članovima. Programsko rješenje aplikacije za rad knjižnice, odnosno dizajn i unutarnja logika komponenata će biti prikazana od visoke razine apstrakcije prema nižoj. Sljedeća slika prikazuje arhitekturu zahtijevanog sustava koji je prikazan dijagramom visoke razine apstrakcije. Aplikacija je stalno u komunikaciji s bazom podataka sustava i vanjskim servisom koji omogućuje da član kod zaposlenika kreditnom karticom plati eventualnu zakasninu.

2.4 Pohrana podataka aplikacije

Kao sustav za pohranu podataka informacijskog sustava, koristit ćemo centraliziranu relacijsku baza podataka. Sustav za upravljanje bazom podataka pohranjivat će sljedeće informacije:

  • Detalji o korisnicima

Svi zaposlenici koji se koriste aplikacijom će biti evidentirani u sustavu. Svaki korisnik mora imati definirane standardne osobne podatke kao što su ime, prezime, datum rođenja i sl. Svakog korisnika je potrebno jednoznačno identificirati.

  • Detalji o članovima

Svaki od članova knjižnice koji će biti dodani u sustav moraju imati definirane osobne podatke i potrebno ih je jednoznačno identificirati pomoću identifikacijskog ključa. Svakom članu knjižnice potrebno je dodijeliti jedinstvenu člansku iskaznicu.

  • Detalji o katalogu

Trenutno dostupni katalog knjiga potrebno je evidentirati u sustavu za upravljanje bazom podataka. Svaka promjena knjižne građe se sukladno tome bilježi. Za svaku knjigu potrebno je definirati jedinstveni identifikacijski kod, naslov knjige, ime autora, godinu izdanja i žanr kojem knjiga pripada.

  • Detalji o posudbama

Svaka posuđena i vraćena knjiga se bilježi u bazu podataka kako bi uspješno vodili evidenciju posudbi. Podaci koji će biti evidentirani za svaku posudbu su: identifikacijski broj člana, identifikacijski broj knjige, datum posudbe, datum vraćanja te status je li knjiga vraćena ili ne.

  • Detalji o rezervacijama

Svaku rezervaciju člana knjižnice za posudbu knjige zaposlenik treba evidentirati u bazu podataka. Podaci koji će se zabilježiti za svaku rezervaciju su: identifikacijski broj člana, identifikacijski broj knjige i datum rezervacije.

2.5 Arhitektura sustava

Programsko rješenje aplikacije za rad knjižnice, odnosno dizajn i unutarnja logika komponenata će biti prikazana od visoke razine apstrakcije prema nižoj. Sljedeća slika prikazuje arhitekturu zahtijevanog sustava koji je prikazan dijagramom visoke razine apstrakcije. Aplikacija je stalno u komunikaciji s bazom podataka sustava i vanjskim servisom koji omogućuje da član kod zaposlenika kreditnom karticom plati eventualnu zakasninu.

Arhitektura sustava

2.6 Dijagrami

2.6.1.Dijagram slučajeva korištenja

Po prijašnje navedenim specifikacijama koje će biti implementirane u ovom projektu, napravljen je slučaj korištenja za dvije vrste korisnika: zaposlenik/korisnik i administrator. Dijagram slučajeva korištenja

2.6.2.Dijagrami klasa

U nastavku se slijede dijagrami klasa za nekoliko funkcionalnosti aplikacije.

2.6.2.1 Dijagram klasa 1

Dijagram klasa 1

2.6.2.2 Dijagram klasa 2

Dijagram klasa 2

2.6.2.3 Dijagram klasa 3

Dijagram klasa 3

2.6.2.4 Dijagram klasa 4

Dijagram klasa 4

2.6.2.5 Dijagram klasa 5

Dijagram klasa 6

2.6.2.6 Dijagram klasa 6

Dijagram klasa 7

2.6.2.7 Dijagram klasa 7

Dijagram klasa 8

2.6.3.Dijagrami aktivnosti

2.6.3.1 Dijagram aktivnosti 1

Dijagram prikazuje prijavu u aplikaciju Alexandria.

Dijagram aktivnosti 1

2.6.3.2 Dijagram aktivnosti 2

Ovaj dijagram prikazuje kako funkcionira kreiranje članarine za registrirane korisnike.

Dijagram aktivnosti 2

2.6.3.3 Dijagram aktivnosti 3

Na sljedećoj slici je prikazan dijagram aktivnosti za formu korisnici, na kojoj imamo razne operacije poput aktivacije/deaktivacije, brisanja i kreiranja novog korisnika

Dijagram aktivnosti 3

2.6.3.4 Dijagram aktivnosti 4

Dijagram prikazuje formu Zakasnine i objašnjava kako možemo poslati obavijest preko mail adrese odabranom korisniku koji ima nepodmirenu zakasninu.

Dijagram aktivnosti 4

2.6.3.5 Dijagram aktivnosti 5

Na ovom dijagramu smo prikazali formu knjižne građe i aktivnosti dodavanja nove knjižne građe kao i razduživanja iste.

Dijagram aktivnosti 5

2.6.4.Dijagrami slijeda

2.6.4.1 Dijagram slijeda 1

Ovaj dijagram prikazuje slijed događaja kod prijave u aplikaciju Alexandria.

Dijagram slijeda 1

2.6.4.2 Dijagram slijeda 2

Na sljedećem dijagramu je prikazana forma knjižne građe zajedno sa slijedom događaja gdje možemo dodati autora, kategoriju ili potpuno novu knjižnu građu.

Dijagram slijeda 2

2.7 ERA model

U nastavku je prikazana slika ERA modela naše aplikacije "Alexandria", koja je napravljena u alatu Visual Paradigm Online.

ERA model

Ovaj ERA model ima 13 tablica: PickingOut, Literature, PickingInItem, PickingIn, Author, Category, LoanItem, Loan, ReceiptItem, Receipt, User, Role i Membership. Tablica User Sadrži sve korisnike naše aplikacije, od korisnika do administratora. Sadrži elemente UserName i Password, koji su nam važni prilikom prijave u sustav. Razina autorizacije u aplikaciji je pohranjena u tablici Role. Membership tablica dohvaća ID korisnika i u njoj se nalaze svi oni korisnici koji su se učlanili zajedno s datumom početka i kraja članarine. Tablica Literature sadrži sve knjižne građe u dostupne u našoj aplikaciji i sadrži vanjske ključeve Author_id i Category_id, koji su veza na tablice Author i Category. Pomoću tablice PickingIn pohranjujemo datum unosa knjižne građe dok uz pomoć pomoćne tablice PickInItem omogućavamo unos više elemenata u bazu na isti datum. Pomoću tablice PickingOut pohranjujemo datum i opis razduživanja knjižne građe. Korisnik može posuditi više knjižnih građi, zahvaljujući tablicama Loan i LoanItem, te nakon što je vratio posudbu zaposlenik mu ispisuje račun s informacijama koje također pohranjujemo u tablicama Receipt i ReceiptItem.