Skip to content

k3rni/pizzaworld

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

= Pizzaworld

Klient posiada sieć pizzerii i potrzebuje aplikacji do zarządzania kartami 
dań w nich. Każda pizzeria posiada nazwę (unikalną), adres i godziny otwarcia. 
W każdej pizzerii można serwować różne rodzaje pizzy. Każdy rodzaj pizzy ma swoją
nazwę, cenę i listę składników (jako opis).

== Założenia

Najważniejsze założenie: sieć pizzerii posiada zbiór przepisów (zestawów dodatków) na pizzę, które
przypisuje do swoich lokali. Stąd każda pizza ma jedną cenę we wszystkich lokalach,
a jej zmiana (jak i innych atrybutów) powoduje zaktualizowanie menu we wszystkich
restauracjach, które miały ją w ofercie.

Nie jest to jedyne możliwe podejście. Innym, równie dobrym, byłoby założenie że każda
restauracja ma zupełnie oddzielne menu. Wówczas mogłoby istnieć wiele pizz o tej samej nazwie
i tym samym składzie, ale o różnej cenie, każda przypisana do innego lokalu. 
Modyfikacja czy dodanie nowej pizzy do każdego lokalu należałoby robić osobno.

A można zrobić jeszcze lepiej. Na bazie obecnego schematu dodać w tabeli łączącej
pizzas_restaurants pole ceny, stworzyć join model, i użyć relacji has_many :through.
Wtedy mamy jedno i drugie - zmiany w przepisie od razu aktualizują menu we wszystkich
restauracjach, ale ceny sa ustalane per lokal. 

= Uruchamianie

Wymagania: ruby 1.9.2, bundler, zainstalowany pakiet sqlite3-dev (do zbudowania niezbędnego gema)

Z linii poleceń po kolei:

$ git clone http://github.com/k3rni/pizzaworld
$ cd pizzaworld
$ bundle install
$ rake db:setup db:seed
$ rails server

= Testy

Ze względu na prostotę modeli (które nie zawierają żadnych nietrywialnych metod), 
nie ma do nich unittestów (gdyby były, to testowałyby ActiveRecord, a nie aplikację).
Dodatkowych kilka testów jest za to w testach funkcjonalnych, sprawdzają one
zachowanie się akcji create i update w obliczu powtórzonych danych.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published