This is a low level system design for a Coffee/Chai Shop
-
To compile type: g++ *.cpp
-
To run this, type: a.exe
-
Every tests are invoked from the MainWrapper.cpp
-
Input tests in Json are included in input_data_files folder
-
This system has a CoffeeShop, which has multiple Coffee Machines
-
Each Coffee Machine has multiple outlets, from which coffee can be taken out simultaneously
-
A customer can visit a Coffee Shop and place an order. It gets randomly placed in either of the coffee machine and gets processed further accordingly.
-
A CoffeeMachine has an IngredientDeck to keep track of ingredients, and use from it to brew coffee
-
An ingredient is basically derived from an Item.
-
Multiple Items together composes a Beverage.
-
Multiple Beverages can be placed in an single order.
-
The coffee machine tries to brew beverages in a single order intelligently and randomly along its n outlets in parallel
-
When outlets are filled, it displays the message that all are full and then starts again later.
-
When an ingredient is lacking it displays the appropriate message about insufficiency or unavaibility.
-
We can increase/refill the Ingredient Deck accordingly.
-
Inputs are in Json files as mentioned in the problem
-
There is further scope for this, but that's all for now.