Professional Documents
Culture Documents
Factory - Zadatak Backend 2023
Factory - Zadatak Backend 2023
JELA SVIJETA
ZADATAK I CILJEVI
Potrebno je kreirati aplikaciju Jela svijeta koristeći Laravel framework (Verzija
5.0+). Ova aplikacija se sastoji od baze jela, sastojaka, kategorija i tagova.
Cilj ovog zadatka je vidjeti koliko dobro kandidat poznaje laravel api, a pri
rješavanju zadatka trebao bi se pridržavati “SOLID design principles”.
Aplikacija treba imati jedan endpoint na kojem se trebaju izlistavati jela. Koji podatci
se prikazuju i kako, ovisi o parametrima u query-ju.
Pretpostavimo da sva jela imaju unesen isti broj prijevoda koji je identičan broju
jezika u tablici languages.
• Jelo može biti bez kategorije, ili može pripadati samo jednoj kategoriji
Svi sastojci imaju isti broj prijevoda koji je identičan broju jezika u tablici languages.
• category - (optional) id kategorije po kojoj želimo filtrirati rezultate; osim id, ovaj POJAŠNJENJE NEKIH PODATAKA IZ RESPONSA
parametar može imati vrijednost NULL (gdje ne postoji kategorija) kao i vrijednost
• id - id jela iz tablice meals
!NULL (gdje postoji kategorija)
• title - naziv jela iz tablice prijevoda za jelo ovisno o parametru lang
• tags - (optional) lista id-jeva po kojima želimo filtrirati rezultate (npr, tags=1,2,3).
Vratiti samo jela koja imaju sve navedene tagove. • description - opis jela iz tablice prijevoda za jelo ovisno o parametru lang
• with - (optional) lista ključnih riječi (ingredients, category, tags) s kojima dajemo • status - zadana vrijednost je ‘created’ osim ako je u requestu proslijeđen
do znanja koje dodatne podatke očekujemo u responsu parametar diff_time, tada status može biti jedan od created, modified,
deleted ovisno o tome dali je vraćeno jelo bilo kreirano, modificirano ili obrisano
• lang - (required) parametar kojim definiramo jezik
nakon vremena definiranog u parametru diff_time. Manipulaciju status
• diff_time - (optional) UNIX Timestamp; kad je ovaj parametar proslijeđen tad je potrebno je izvesti putem time stampa created_at, updated_at i deleted_at
potrebno vratiti sve iteme (i one obrisane). Treba vratiti sve ne samo izmijenjene (prouciti Laravel Eloquent SoftDeletes).
nakon datuma proslijeđenog u ovom parametru *
Ovi gore spomenuti property definiraju osnovnu shemu responsa; međutim shemu
* S obzirom na to da nije predviđena kreacija, ažuriranje i brisanje, nije se potrebno responsa je moguće promijeniti (proširiti) tako da se pošalje jedan ili više ključnih
posebno fokusirati na razradu ove funkcionalnosti, ono što je bitno je sljedeće: riječi u parametar with, tada se u responsu na svakom objektu još mogu pojaviti i
kada je u requestu poslan parametar diff_time i kada je to pozitivan cijeli broj property tags, category ili/i ingredients.
veći od 0, tada je pri selektiranju podataka iz baze potrebno uzeti u obzir sva jela
(uključujući i obrisana) koja su kreirana, modificirana ili obrisana nakon datuma
definiranog u tom parametru
CATEGORY
• id - id kategorije
TAGS
• id - id taga
INGREDIENTS
• id - id sastojka
ROK IZRADE
Sedam dana od dobivenog zadatka.
6/7