Skip to content

Glossary

The first step of knowledge crunching is agreeing on a shared vocabulary for the domain: the ubiquitous language every team member uses for the same concept.

Global Concepts

Term Definition
System The Munchies platform as a whole
User A person using the system that is registered and can be a customer or a manager
User Profile User's informations like username, email or role
Customer A user who browses restaurants, orders food and books tables
Manager A user who creates and administers one or more restaurants. It can do all customer's actions
Restaurant An establishment, owned by exactly one manager, identified by name, address, phone and email
Menu A named, orderable listing of categories and items belonging to one restaurant
Category A named grouping of menu items inside a menu. It can have variations appliable to all sub items by customers
Menu Item A single orderable dish: name, description, price, and optional variations
Variation A customization option with a price appliable on a menu item (e.g. size, spice level).
It can be configured on a category or menu item by the manager and can be applied by a customer
Validity The time window during which a menu or menu item is orderable (e.g. seasonal menus or menu items)
Order A customer's request to buy a set of items from one restaurant, fulfilled by delivery, takeaway or dine-in
Order Item A menu item and the quantity of it requested in an order
Order Status The order's position in its fulfilment lifecycle
Payment The record of money changing hands for one order
Table Reservation A customer's booking of a restaurant table for a given time
Notification A message describing something that happened in another bounded context

Actions

User

Term Definition
Registering The action performed by a person to create an account and become a user
Logging in The action performed by a user to authenticate and enter the system
Verifying an email The action performed by a user to confirm ownership of the email address on their profile
Updating a user profile The action performed by a user to change their username, email or password
Deleting an account The action performed by a user to permanently remove their account

Restaurant

Term Definition
Creating a restaurant The action performed by a manager to register a new restaurant under their account
Updating restaurant details The action performed by a manager to change their restaurant's name, address, phone or email
Removing a restaurant The action performed by a manager to permanently remove a restaurant
Creating a menu The action performed by a manager to add a new menu to their restaurant
Updating a menu The action performed by a manager to change a menu's name or validity
Removing a menu The action performed by a manager to remove a menu from their restaurant
Creating a category The action performed by a manager to add a category to one of their menus
Updating a category The action performed by a manager to change a category's name or variations
Removing a category The action performed by a manager to remove a category from a menu
Creating a menu item The action performed by a manager to add an orderable item to a category
Updating a menu item The action performed by a manager to change a menu item's details, price, variations or validity
Removing a menu item The action performed by a manager to remove an item from a category

Order

Term Definition
Placing an order The action performed by a customer to submit a new order to a restaurant
Updating order items The action performed by a customer to change the items of a pending order
Advancing order status The action performed by the system to move an order to the next stage of its lifecycle
Paying an order The action performed by a customer to mark an order as paid
Cancelling an order The action performed by a customer to cancel a still-pending order

Payment

Term Definition
Processing a payment The action performed by the system to charge a customer for an order
Completing a payment The action performed by the system when a payment succeeds
Failing a payment The action performed by the system when a payment cannot be completed

Bounded-Context Glossary

User Bounded Context

Term Definition
User A person who is registered and uses the system
Customer The default role of a registered user
Manager A user with restaurant-administration privileges, superset of Customer
User Profile Username, email and role of a user
Registering Creating an account
Logging in Authenticating to enter the system
Verifying an email Confirming ownership of the profile's email address
Updating a user profile Changing username, email or password
Deleting an account Permanently removing an account

Restaurant Bounded Context

Term Definition
Restaurant An establishment owned by one manager
Menu A named listing of categories and items for one restaurant
Category A grouping of menu items inside a menu
Menu Item A single orderable dish, with price and variations
Variation A customization option on an item or category
Validity The time window in which a menu or item is orderable
Creating a restaurant Registering a new restaurant
Updating restaurant details Changing a restaurant's name, address, phone or email
Removing a restaurant Permanently removing a restaurant
Creating a menu Adding a new menu to a restaurant
Updating a menu Changing a menu's name or validity
Removing a menu Removing a menu from a restaurant
Creating a category Adding a category to a menu
Updating a category Changing a category's name or variations
Removing a category Removing a category from a menu
Creating a menu item Adding an orderable item to a category
Updating a menu item Changing a menu item's details, price, variations or validity
Removing a menu item Removing an item from a category

Order Bounded Context

Term Definition
Order A request to buy items from one restaurant
Delivery Order An order fulfilled by delivery to an address
Takeaway Order An order the customer collects in person
Dine-in Order An order placed at a table inside the restaurant
Order Item A menu item and its requested quantity
Order Status PENDING → PREPARING → READY → COMPLETED (delivery orders pass through ON_THE_WAY between READY and COMPLETED), or CANCELLED (from PENDING only)
Placing an order Submitting a new order
Updating order items Changing a pending order's items
Advancing order status Moving an order to its next lifecycle stage
Paying an order Marking an order as paid
Cancelling an order Cancelling a still-pending order

Payment Bounded Context

Term Definition
Payment The record of money changing hands for one order
Payment Method How the payment was made (e.g. card)
Payment Status PENDING → COMPLETED/FAILED/CANCELLED
Processing a payment Charging a customer for an order
Completing/Failing/Cancelling a payment A payment's terminal outcomes

Notification Bounded Context

Term Definition
Notification An asynchronous message describing something that happened in another bounded context
Email Confirmation Notification The notification sent when a user registers, prompting email verification
Payment Success Notification The notification sent when a payment for an order completes

Table Reservation Bounded Context

Term Definition
Table Reservation A customer's booking of a restaurant table for a given time

Present in the codebase but incomplete; see Microservices.

See Domain Model for how these concepts are actually implemented as entities, value objects and aggregates, and how the bounded contexts above integrate with each other.