1. Conceptual

    This Data Architecture of this application started at the Fast Food Restaurant menu. It followed a "write on the menu" ordering approach. The approach may evolve as the application is refined.

    To understand this in simple terms, imagine that a restaurant provides you with a disposable copy of the menu on which you can make annotations to make your order. In the simple case, you just check the items that you want.

    You may want two units of any given item. Then you just write the number close to the item.



    If you are with someone else but she does not like pepperoni, then you may write:

    2 pepperoni
    1 cheese

    If you are in a group and half of them want pizza slices while others want other things, then the menu might end up with simple marks in the remaining items while the pizza slice menu line is cluttered with details.

    Your order is the whole set of annotations, but the original text in the menu serves at least two purposes:

    • As a template in case you want to modify your order (e.g., add items, change options).
    • As a reference to what your annotations mean.

    From the above, we identify two data entities for the data model which are separate but closely related: the menu and the order.