IEP/Lab 1 2024

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu
Ovaj rok nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

Prva laboratorijska vežba 2024. održana je 2. aprila. Bili su dostupni zipovi sa vežbi (prezentacije i kod), kao i dokumentacije za Python, Flask, SQLAlchemy. Vreme izrade je bilo 120 minuta, jer je prva godina. U buduće najverovatnije trajanje biće sat vremena, što je po rečima predmetnog asistena i bilo dovoljno.

Postavka

Posmatra se sistem za aukcije u kome korisnici mogu da kreiraju aukcije na kojima prodaju proizvode. Prilikom kreiranja aukcije, poznati su proizvod, vreme početka aukcije i početna cena, dok se vreme kraja aukcije definiše u momentu proglašenja kraja aukcije. Svaki korisnik može da daje veći broj ponuda dok aukcija traje. Iznos svake ponude mora da bude strogo veća od iznosa prethodno date ponude za istu aukciju. U trenutku kada se proglasi kraj, ukoliko je bila bar jedna ponuda za tu aukciju aukcija se smatra uspešnom i proglašava se pobednik te aukcije. U suprotnom, aukcija se smatra neuspešnom i pobednik ne postoji. Svaki proizvod pripada nekoj od kategorija.

ER model baze

Kategorija (IdKat, Naziv, IdKatNad)

IdKat - ceo broj, identifikuje kategoriju, automatsko dodeljivanje narednog identifikatora

Naziv - niz do 50 znakova, obavezno


Proizvod (IdPro, IdAuk, Naziv, IdKat) IdPro - ceo broj, identifikuje proizvod, automatsko dodeljivanje narednog identifikatora

Naziv - niz do 50 znakova, obavezno

IdKat - strani ključ (tabela Kategorija), obavezno


Korisnik (IdKor, Ime)

IdKor - ceo broj, identifikuje korisnika, automatsko dodeljivanje narednog identifikatora

Ime - niz do 50 znakova, obavezno


Aukcija (IdAuk, Pocetak, Kraj, Cena, IdPro, IdKor) IdAuk - ceo broj, identifikuje aukciju, automatsko dodeljivanje narednog identifikatora

Pocetak - niz od 10 karaktera, obavezno, vreme u formatu (yymmddhhmm)

Kraj - niz od 10 karaktera, vreme u formatu (yymmddhhmm)

Cena - ceo broj, obavezno, vrednost veća od 0

IdPro - strani ključ (tabela Proizvod), obavezno

IdKor - strani ključ (tabela Korisnik), obavezno


Napomena: Atribut IdKor predstavlja korisnika koji je inicirao aukciju.

Atribut Cena predstavlja početnu cenu proizvoda.

Ukoliko je vrednost atributa Kraj jednaka NULL, to znači da je vreme kraja aukcije nepoznato i da je aukcija aktivna, ukoliko je vrednost atributa Kraj definisan, aukcija je završena. Smatrati da je vrednost atributa Kraj uvek ispravna (manja od trenutnog vremena).


Ponuda (IdPon, Trenutak, Iznos, IdKor, IdAuk)

IdPon - ceo broj, identifikuje ponudu, automatsko dodeljivanje narednog identifikatora

Trenutak - ceo broj, vreme u formatu (yymmddhhmm)

Iznos - ceo broj, obavezno, vrednost veća od 0

IdKor - strani ključ (tabela Korisnik), obavezno

IdAuk - strani ključ (tabela Aukcija), obavezno

Napomena: Atribut IdKor predstavlja korisnika koji daje ponudu.

Garantuje se da će Trenutak ponude biti ispravan i da će pripadati intervalu u kome je aukcija aktivna. Garantuje se da će iznos svake kasnije ponude za istu aukciju biti strogo veći.


Grupa 1

1. zadatak

Postavka

Dodavanje korisnika
Adresa /add_user
Tip POST
Parametri Ime korisnika prosleđuje se kroz telo zahteva korišćenjem ključa name.
Odgovor Povratna vrednost je identifikator dodatog korisnika.

Rešenje

2. zadatak

Postavka

Pretraga korisnika
Adresa /user_search?name=...
Tip GET
Parametri Ime korisnika je opcioni parametar koji se prosleđuje kao query parametar rute.
Odgovor Povratna vrednost je lista korisnika čije ime sadrži prosleđen niz karaktera.

Rešenje

3. zadatak

Postavka

Pregled aukcija za korisnike
Adresa /user_auctions?min...
Tip GET
Parametri Minimum je opcioni parametar koji se prosleđuje kao query parametar rute.
Odgovor Povratna vrednost je lista parova gde prvi član predstavlja identifikator korisnika, a drugi broj uspešno završenih aukcija. U slučaju da je prosleđen parametar kroz rutu, onda se vraćaju samo oni korisnici koji imaju min ili više aukcija.[1]

Rešenje

4. zadatak

Postavka

Pregled zarade za korisnika
Adresa /user_revenue/<ID>
Tip GET
Parametri ID je konteksni paramtera rute koji predstavlja identifikator korisnika.
Odgovor Povratna vrednost je lista parova gde prvi član predstavlja identifikator gotove aukcije, a drugi cenu po kojoj je prodat proizvod.

Rešenje

Grupa 2

1. zadatak

Postavka

Dodavanje proizvoda
Adresa /add_product
Tip POST
Parametri Ime proizvoda i identifikator kategorije prosleđuje se kroz telo zahteva korišćenjem ključa name.
Odgovor Povratna vrednost je identifikator dodatog proizvoda.

Rešenje

2. zadatak

Postavka

Pretraga kategorija
Adresa /category_search?name=...
Tip GET
Parametri Ime kategorije je opcioni parametar koji se prosleđuje kao query parametar rute.
Odgovor Povratna vrednost je lista kategorija čije ime sadrži prosleđen niz karaktera.

Rešenje

3. zadatak

Postavka

Pregled proizvoda po kategorijama
Adresa /category_products?min...
Tip GET
Parametri Minimum je opcioni parametar koji se prosleđuje kao query parametar rute.
Odgovor Povratna vrednost je lista parova gde prvi član predstavlja identifikator kategorije, a drugi broj proizvoda u toj kategoriji. U slučaju da je prosleđen parametar kroz rutu, onda se vraćaju samo one kategorije koje imaju min ili više proizvoda.

Rešenje

4. zadatak

Postavka

Pregled zarade za proizvod
Adresa /product_revenue/<ID>
Tip GET
Parametri ID je konteksni paramtera rute koji predstavlja identifikator proizvoda.
Odgovor Povratna vrednost je lista parova gde prvi član predstavlja identifikator gotove aukcije, a drugi cenu po kojoj je prodat proizvod.

Rešenje

Napomene

  1. Asistent je napomenuo da pošto nije definisano postavkom, mogu se, a ne moraju ispisivati korisnici sa 0 aukcija.