APOTEKA++
Veb aplikacija za pretraživanje, naručivanje i prodaju proizvoda iz apoteke zasnovana na mikroservisnoj arhitekturi.
Funkcionalnosti
Neregistrovani korisnik
- prijava na sistem
- registracija na sistem
- pretraga, filtriranje i sortiranje proizvoda
Registrovani korisnik
- pregled profila i izmjena podataka
- pretraga, filtriranje i sortiranje proizvoda
- poručivanje proizvoda - može da odabere preuzimanje u apoteci ili dostavu na kućnu ili neku drugu navedenu adresu.
Ako je izabrano preuzimanje u apoteci, moguća su sledeća stanja porudžbine:
KREIRANA - ODOBRENA - ODBIJENA - SPREMNA - OTKAZANA
Ako je izabrana dostava, moguća su sledeća stanja:
KREIRANA - ODOBRENA - ODBIJENA - DOSTAVA U TOKU - DOSTAVLJENA - OTKAZANA
- pregled istorije porudžbina
- otkazivanje porudžbine - moze se izvrsiti samo ukoliko je status porudzbine "KREIRANA", u suprotnom jedino apotekar moze promijeniti status u "otkazana"
- ostavljanje recenzije na proizvod (u okviru recenzije se unosi ocjena i komentar) - samo onaj koji je barem jednom poručio
- ostavljanje recenzije za dostavljača
Apotekar
- pregled profila i izmjena podataka
- dodavanje, izmjena i brisanje proizvoda
- mijenjanje statusa porudžbine - ukoliko je porudžbinu potrebno dostaviti, čitav taj proces je sledeći:
Apotekar promijeni status porudžbine u "odobrena" i čeka prijave dostavljača. Kada se dostavljači prijave za dostavu, apotekar bira jednog od prijavljenih.
Nakon toga porudžbina prelazi u status "DOSTAVA U TOKU".
Ukoliko dostavljač odustane od porudžbine, apotekar jedino može promijeniti status iste, ponovo u "odobreno", kako bi ponovo bila vidljiva ostalim dostavljačima i kako bi se neko od njih mogao prijaviti.
- prijavljivanje recenzije
- dodjeljivanje dostavljača (koji se prethodno prijavio za istu) za porudžbinu - moguće je da se više dostavljača prijavi za neku porudžbinu, ali apotekar bira samo jednog
Dostavljač
- pregled aktivnih porudžbina - može da izabere za dostavu i čeka potvrdu apotekara. Kada apotekar potvrdi da je on dostavljač, ima mogućnost ažuriranja porudžbine u stanje preuzeto, a nakon obavljene dostave porudžbinu prebacuje u stanje dostavljeno.
- pregled istorije svojih porudžbina
- mijenjanje statusa porudzbine - može promijeniti status porudžbine u "dostavljeno", "dostava u toku", "preuzeto", "dodjeljeno"
- uvid u recenzije o sebi i mogućnost da prijavi istu
Administrator
- pregled i izmjena profila
- dodavanje novog apotekara
- pregled svih apotekara
- uklanjanje apotekara
- CRUD dostavljača
- pregled profila korisnika
- izvjestaji o poslovanju - generiše se grafički prikaz prihoda, ukupan prihod i prosječan prihod na osnovu izabranog vremenskog perioda
- uvid u istorije porudžbina za svakog korisnika
- uvid u istoriju dostava za svakog dostavljača
- pregled prijavljenih recenzija za dostavljača
- blokiranje korisnika uz slanje obrazloženja na mejl
- pregled prijavljenih recenzija za proizvod
- uklanjanje recenzije za proizvod
- uklanjanje recenzije za dostavljača
Arhitektura sistema:
- API Gateway - python
- Mikroservis za korisnike - CRUD korisnika, autentifikacija, autorizacija - python
- Mikroservis za proizvode - rust
- Mikroservis za porudžbine - rust
- Mikroservis za recenzije - rust
- Mikroservis za izvjestaje - rust
- Mikroservis za slanje mejlova - python
- Klijentska veb aplikacija - angular
- Baza podataka - PostgreSQL
Napomena:
Za razvoj mikroservisa u pythonu će se koristiti flask.