Skip to content

Latest commit

 

History

History
50 lines (34 loc) · 4.32 KB

README.md

File metadata and controls

50 lines (34 loc) · 4.32 KB

GoCinema - Portal za bioskope baziran na mikroservisnoj arhitekturi

Predmetni projekat iz Naprednih tehnika programiranja

Opis aplikacije

GoCinema je portal koji omogućuje korisnicima da pregledaju, pretražuju bioskopske projekcije i pregledaju, pretražuju i ocenjuju filmove koje nudi bioskop, a i da rezervišu karte za odabrane projekcije.

Uloge koje postoje u sistemu su registrovani korisnici, prodavci i menadžeri, medjutim portal mogu koristiti i neautentifikovani korisnici.

Funkcionalnosti neautentifikovanog korisnika

Neautentifikovani korisnik ima mogućnost da se prijavi i registruje na sistem. Prilikom registracije, neautentifikovani korisnik unosi korisničko ime, email, lozinku, ime i prezime. Nakon uspešne registracije, korisnik može da se uloguje i koristi ostale funkcionalnosti sistema. Neautentifikovani korisnik može da pregleda dostupne filmove i projekcije i da ih pretražuje i sortira po različitim kriterijumima.

Funkcionalnosti registrovanog korisnika

Registrovani korisnik ima mogućnost da ocenjuje i komentariše filmove kao i da obriše svoje komentare. Takodje, registrovani korisnik može i da rezerviše karte. Rezervisanje karte podrazumeva odabir željene projekcije a zatim, i odabir jednog od slobodnih sedišta (za koja karte nisu ni rezervisane ni prodate). Registrovani korisnik ima mogućnost pregleda i poništavanja rezervisanih karata pri čemu se rezervacija karte može poništiti najkasnije 24 sata pre početka date projekcije.

Funkcionalnosti prodavca

Prodavac može kao i ostali korisnici da pregleda filmove i projekcije, takodje može da rezerviše karte za kupce kao i da prodaje karte. Pored toga, nudi mu se i pregled i poništavanje rezervisanih i prodatih karata pri čemu se prodata ili rezervisana karta može poništiti najkasnije 24 sata pre početka date projekcije. Prodavac može da prodaje karte pri čemu postoje dve vrste prodaje karata. Prva vrsta prodaje je direktna prodaja koja podrazumeva sledeće korake: prodavac odabere konkretnu projekciju, navodi ime i prezime kupca (eventualno korisničkog imena za registrovane korisnike) i odabira jedno od slobodnih sedišta (za koja karte nisu ni rezervisane ni prodate). Druga vrsta prodaje je prodaja prethodno rezervisane karte.

Funkcionalnosti menadžera

Menadžer je zadužen za registraciju novih prodavaca i menadžera kao i dodavanje novih filmova i projekcija. Takodje, menadžer može da menja i briše filmove, pri čemu film ne može biti obrisan ako za njega postoji projekcija. Menadžer može obrisati i projekciju, ali samo u slučaju kada nema prodatih ili rezervisanih karata za tu projekciju. Pored toga, menadžer može kreirati sledeće izveštaje: pregled filmova sa najviše prodatih karata u poslednjih 7 dana u obliku pite kao i pregled filmova od kojih je ostvaren najveći profit od prodaje karata u obliku bar chart-a.

Arhitektura sistema

Arhitektura sistema bi bila zasnovana na mikroservisima za čiji razvoj se koriste jezici Go, Python i Pharo.

API Gateway

Flask servis koji omogućava uniformni pristup svim funkcionalnostima sistema.

Korisnički servis

Flask servis koji omogućava registraciju i prijavu korisnika kao i dodavanje novih prodavaca i menadžera u sistem.

Mikroservis za filmove

Go servis koji omogućava dodavanje, izmenu i brisanje filmova.

Mikroservis za konkretne bioskopske projekcije

Go servis koji omogućava dodavanje, izmenu i brisanje konkretnih bioskopskih projekcija.

Mikroservis za ocene i komentare

Go servis koji treba da pokrije ocenjivanje i komentarisanje filmova od strane registrovanih korisnika, kao i brisanje komentara.

Mikroservis za rezervaciju i kupovinu karata

Go servis koji omogućava registrovanim korisnicima da rezervišu karte i otkazuju rezervacije, a prodavcima da rezervišu, prodaju i otkazuju karte.

Cron job-ovi za poništavanje rezervacije

Go mikroservis koji na svakih 30 minuta poništava rezervacije koje nisu potvrdjene - ako se kupac koji je rezervisao kartu ne pojavi na vreme (pola sata pre početka projekcije), karta se vraća u slobodnu prodaju.

Mikroservis za analitiku

Pharo servis koji omogućava prikaz izveštaja koji su navedeni u okviru funkcionalnosti menadžera.

Vue Client

Omogućava pristup svim funkcionalnostima sistema.