ИЕП/Лаб 1 2024 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Нема описа измене
Ред 139: Ред 139:
=== Решење ===
=== Решење ===


== Напомене ==
<references />
[[Категорија:ИЕП]]
[[Категорија:ИЕП]]
[[Категорија:Лабораторијске вежбе]]
[[Категорија:Лабораторијске вежбе]]

Верзија на датум 2. април 2024. у 21:14

Овај рок није решен. Помозите SI Wiki тако што ћете га решити.

Прва лабораторијска вежба 2024. одржана је 2. априла. Били су доступни зипови са вежби (презентације и код), као и документације за Python, Flask, SQLAlchemy. Време израде је било 120 минута, јер је прва година. У будуће највероватније трајање биће сат времена, што је по речима предметног асистена и било довољно.

Поставка

Посматра се систем за аукције у коме корисници могу да креирају аукције на којима продају производе. Приликом креирања аукције, познати су производ, време почетка аукције и почетна цена, док се време краја аукције дефинише у моменту проглашења краја аукције. Сваки корисник може да даје већи број понуда док аукција траје. Износ сваке понуде мора да буде строго већа од износа претходно дате понуде за исту аукцију. У тренутку када се прогласи крај, уколико је била бар једна понуда за ту аукцију аукција се сматра успешном и проглашава се победник те аукције. У супротном, аукција се сматра неуспешном и победник не постоји. Сваки производ припада некој од категорија.

ЕР модел базе

Kategorija (IdKat, Naziv, IdKatNad)

IdKat - цео број, идентификује категорију, аутоматско додељивање наредног идентификатора

Naziv - низ до 50 знакова, обавезнo


Proizvod (IdPro, IdAuk, Naziv, IdKat) IdPro - цео број, идентификује производ, аутоматско додељивање наредног идентификатора

Naziv - низ до 50 знакова, обавезнo

IdKat - страни кључ (табела Kategorija), обавезно


Korisnik (IdKor, Ime)

IdKor - цео број, идентификује корисника, аутоматско додељивање наредног идентификатора

Ime - низ до 50 знакова, обавезнo


Aukcija (IdAuk, Pocetak, Kraj, Cena, IdPro, IdKor) IdAuk - цео број, идентификује аукцију, аутоматско додељивање наредног идентификатора

Pocetak - низ од 10 карактера, обавезно, време у формату (yymmddhhmm)

Kraj - низ од 10 карактера, време у формату (yymmddhhmm)

Cena - цео број, обавезно, вредност већа од 0

IdPro - страни кључ (табела Proizvod), обавезно

IdKor - страни кључ (табела Korisnik), обавезно


Напомена: Атрибут IdKor представља корисника који је иницирао аукцију.

Атрибут Cena представља почетну цену производа.

Уколико је вредност атрибута Kraj једнака NULL, то значи да је време краја аукције непознато и да је аукција активна, уколико је вредност атрибута Kraj дефинисан, аукција је завршена. Сматрати да је вредност атрибута Kraj увек исправна (мања од тренутног времена).


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

IdPon - цео број, идентификује понуду, аутоматско додељивање наредног идентификатора

Trenutak - цео број, време у формату (yymmddhhmm)

Iznos - цео број, обавезно, вредност већа од 0

IdKor - страни кључ (табела Korisnik), обавезно

IdAuk - страни кључ (табела Aukcija), обавезно

Напомена: Атрибут IdKor представља корисника који даје понуду.

Гарантује се да ће Trenutak понуде бити исправан и да ће припадати интервалу у коме је аукција активна. Гарантује се да ће износ сваке касније понуде за исту аукцију бити строго већи.


Група 1

1. задатак

Поставка

Додавање корисника
Адреса /add_user
Тип POST
Параметри Име корисника прослеђује се кроз тело захтева коришћењем кључа name.
Одговор Повратна вредност је идентификатор додатог корисника.

Решење

2. задатак

Поставка

Претрага корисника
Адреса /user_search?name=...
Тип GET
Параметри Име корисника је опциони параметар који се прослеђује као query параметар руте.
Одговор Повратна вредност је листа корисника чије име одговара прослеђеном парамтеру.

Решење

3. задатак

Поставка

Преглед аукција за кориснике
Адреса /user_auctions?min...
Тип GET
Параметри Минимум је опциони параметар који се прослеђује као query параметар руте.
Одговор Повратна вредност је листа парова где први члан представља идентификатор корисника, а други број успешно завршених аукција. У случају да је прослеђен параметар кроз руту, онда се враћају само они корисници који имају min или више аукција.[1]

Решење

4. задатак

Поставка

Решење

Напомене

  1. Асистент је напоменуо да пошто није дефинисано поставком, могу се, а не морају исписивати корисници са 0 аукција.