online-library-management-system

[Engleski](/online-library-management-system/translations/README.en.html) [Italijanski](/online-library-management-system/translations/README.ita.html)

Online biblioteka | Veb aplikacija & API | Laravel 9

Šta je “Online biblioteka”?

Online biblioteka predstavlja projekat ICT Cortex akademije namijenjen učenicima srednjih škola kako bi se što bolje i efikasnije spremili za sve buduće izazove koje ih čekaju. Više informacija ispod…

Naša platforma se može pohvaliti širokim spektrom najsavremenijih funkcija, a sve su dizajnirane da revolucionišu proces upravljanja bibliotekom i podignu korisničko iskustvo na sledeći nivo.

Uz naš sistem, uživaćete u fleksibilnosti dodjeljivanja uloga i dozvola, obezbjeđujući optimalnu bezbjednost i kontrolu pristupa. Naša funkcija pretraživanja punog teksta omogućava brzo i lako otkrivanje sadržaja, dok naša API integracija pojednostavljuje upravljanje podacima.

Pored toga, naš sistem nudi neuporedive mogućnosti obrade slika, uključujući isjecanje, kompresovanje i kropovanje, što olakšava upravljanje slikama. Za lak pristup i pogodnost korisnika, nudimo besprekornu integraciju GitHub prijave i registracije, a uvoz podataka je brz zahvaljujući našoj funkciji uvoza CSV-a.

Ostanite povezani i držite svoje korisnike u toku pomoću naše funkcije biltena i osigurajte optimalnu sigurnost uz našu najsavremeniju reCAPTCHA integraciju. Sa našim inovativnim višejezičnim sistemom upravljanja školskim bibliotekama, mogućnosti su beskrajne!

dahboard-page book crop

Obavezno

GD - php ekstenzija za manipulaciju fotografija

S obzirom da su korišćeni paketi za dinamično manipulisanje priloženih fotografija moguće je da se pojavi greška ukoliko Vam fajl “php.ini” nije ispravno konfigurisan. Ovaj fajl po default-u onemogućava određene ekstenzije, a time i pakete (dependencies) koje smo koristili u projektu. Sve što je potrebno jeste:
-> Da otvorite Vaš “php.ini” fajl kao tekstualni dokument (koristeći Notepad ili neki drugi slični softver)
-> Pronađite liniju ;extension=gd i izmijenite je u extension=gd
-> Restartujte Vaš apache server

Ukoliko ne znate da pronađete “php.ini” fajl.. najčešći path je C:\php. Možete ukucati i komandu: php --ini u command promt-u kako biste dobili još informacija

Moguća greška:

-> “Unsupported cipher or incorrect key length. Supported ciphers are…”
U pitanju je loše izgenerisani APP_KEY tj. enkripcioni ključ aplikacije. Otvorite “.env” fajl koji se nalazi u root-u projekta. Izbrišite upisanu vrijednost i pokrenite komandu:

php artisan key:generate

-> “SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it”
Moguće je da niste startovali Vaš lokalni server. U zavisnosti koji softver koristite kao serverski paket pokrenite ga kao i Apache server i pokušajte ponovo. Poznati softveri: WAMP, XAMPP, ampps i tako dalje.

Moguća greška:

-> “Could not find driver (SQL: SHOW FULL TABLES WHERE table_type = ‘BASE TABLE’)..”
Poruka o grešci “Nije moguće pronaći drajver“ obično ukazuje na to da PHP ekstenzija za drajver baze podataka koju koristite nije instalirana ili omogućena na Vašem sistemu. Otvorite datoteku “php.ini” u uređivaču teksta i potražite red koji počinje sa ekstenzijom=. Dekomentarišite red tako što ćete ukloniti tačku i zarez (;) na početku reda i zamijenite imenom PHP ekstenzije koju ste instalirali u koraku 2.

extension=mysql

Instalacija

Nakon izvršenja svih gore navedenih komandi, trebalo bi da možete pokrenuti aplikaciju i vidjeti je na http::/localhost Vašeg domena u zavisnosti od konfiguracije.

Napomena 1.1: Ukoliko želite da pišete/izvršavate već postojeće testove budite sigurni da ste izmijenili env varijablu: APP_ENV=local -> APP_ENV=testing

Napomena 1.2: Ukoliko želite da napravite backup Vaše baze podataka, to možete uraditi pomoću integrisanog paketa komandom:

php artisan backup:run

Organizacija projekta

Cijeli progres se prati na sledećim platformama za project management:

Kredencijali

Role

Administrator/ka

Bibliotekar/ka

Učenik/ca

Tabelarni prikaz:

Funckionalnost Administrator/ka Bibliotekar/ka Učenik/ca
Gašenje aplikacije ✔️
Aktivacija aplikacije ✔️
Upravljanje bazom - CSV ✔️
Izmjena meta informacija ✔️
Izmjena globalnih varijabli ✔️
CRUD nad administratorima ✔️
CRUD nad bibliotekarima ✔️ ✔️
CRUD nad učenicima ✔️ ✔️
CRUD nad knjigama ✔️ ✔️
CRUD nad autorima ✔️ ✔️
CRUD nad podešavanjima ✔️ ✔️
Izmjena svog profila ✔️ ✔️ ✔️
Prikaz dostupnih knjiga ✔️ ✔️ ✔️
Izdate knjige ✔️ ✔️
Vraćene knjige ✔️ ✔️
Knjige u prekoračenju ✔️ ✔️
Aktivne rezervacije knjiga ✔️ ✔️ ✔️
Arhivirane rezervacije knjiga ✔️ ✔️ ✔️
Rezervacija knjige ✔️ ✔️ ✔️

Napomena:

Ukoliko rezervaciju izvrši bibliotekar/ka, ona odmah dobija status “Prihvaćena”, a ukoliko je izvrši učenik/ca dobija status “Na čekanju” sve dok je bibliotekar/ka ne prihvati

Vraćanje knjige

Radnja - operacija vraćanja knjige je dostupna samo ukoliko je knjiga izdata

Otpisivanje knjige

Radnja - operacija otpisivanja knjige je dostupna samo ukoliko je knjiga u prekoračenju

Rezervacije - statusi

Rezervacije imaju 5 statusa:

Session - flash poruke - statusi

Zaštita

Cron jobs

Postoje 3 “zadatka”:

Shutdown mode

Administrator može “poslati” aplikaciju u tzv. “shutdown” mode. Laravel u sebi ima ugrađenu komandu “php artisan down” koja “gasi” aplikaciju. Na našoj aplikaciji to radimo pomoću web rute “/shutdown” koja je zaštićena.

Koraci:

  1. Kada želite ugasiti aplikaciju -> Otići na URL “/shutdown” ! napomena: morate biti ulogovani i biti “administrator”
  2. Kada želite upaliti aplikaciju -> Otići na URL “/live.php” nakon čega će vam se pojaviti “redirect” stranica

Dodatno

RESTful API - Passport

Dokumentacija - Postman

Dokumentacija - Swagger

Ovaj API sadrži:

77 zahtjeva, od čega:

Svaki zahtjev mora imati prefiks “v1” -> version 1.0.

Moguće greške

error-0001 -> Nije pronađeno, 404

error-0002 -> Neispravan zahtjev, 400

error-0003 -> Greška u validaciji, 422

error-0004 -> Pogrešan role, 406

error-0005 -> Knjiga nema autora, kategoriju ili žanr, 406

Pronašli ste bug?

Pošaljite problem (zahtijeva GitHub nalog)

Doprinesi projektu

CONTRIBUTING.md

🚀 Korišćene tehnologije

🚀 Dodatni alati i paketi

🚀 GitHub akcije

tim nullable()