When we are facing a problem with high uncertainty (either because it is a big feature or because we do not know where to start), we first complete an "analysis ticket": somebody on the team devotes a day's work (around 8 hours) to study the problem. The result of such analysis is a document to be shared and later discussed with the team.

The document usually contains the following:

We propose you to complete an "analysis ticket" on the following topic. It is a somewhat open definition of the problem and you lack the full context of the app: don't worry, you can make any rational assumptions you deem necessary and comment on them.

One important view in Bistrohub is the menu creation view. In that view, we want to enable the user to compose a menu for its restaurant. A menu has categories, and categories have products. In the backend we have corresponding models: Menu, Category (with a many2many key to Menu) and Product (with a many2many key to Category).

The analysis is about building this view: both the UI and REST endpoints required to communicate with the backend. We are not really interested in code that works, but we would like you to tackle these questions:

Once you send your analysis back, we will discuss it a bit by email. If you have any questions, do not hesitate to send me an email.