IEP/Lab 1 2024
- 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.
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
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
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
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
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
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
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
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
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
- ↑ Asistent je napomenuo da pošto nije definisano postavkom, mogu se, a ne moraju ispisivati korisnici sa 0 aukcija.