Internship DSL-based process configuration
About the assignment
booq is an omnichannel hospitality ordering- and payment solution, and therefore has several channels for interacting with customers: intermediated by an employee, or directly using a mobile application or self-service counter. The booq sales process is also tailored to the customer’s needs, ranging from a cafetaria to fine dining, with everything like beach clubs, resorts, catering, banqueting and skyboxes in between. This results in requirements like,
- I want payment to happen before I start producing an order, but only when the customer created the order himself using an app, not if my employee did,
- once an employee has created an order, the customer can add additional items to the order using an app without requiring immediate payment, or
- in this establishment, I always want to ask for a customer’s name (account) before even creating an order, or
- a customer is not allowed to remove something from an order that has already been confirmed, but an employee can—but only before it is produced, otherwise you’ll need special permissions.
Configuring these steps of the process is inconvenient to do using a long list of checkboxes. Instead, we want to investigate describing the sales process as a number of interacting processes, using a DSL that allows our consultants to define the workflow in a more linear fashion.
In this assignment, you'll:
- investigate a representative subset of the requirements—we’re not looking for a complete solution, but for the correct direction,
- define the various interacting processes to fullfil those requirements,
- select a mechanism of describing the process in these interacting processes, and
- define a prototype DSL (not necessarily text-based) that uses terminology that makes sense for a consultant, and can be matched to the existing sales processes. It is acceptable to not use the actual system, but reasonable model to demonstrate the suitability of the mechanism
We would like to meet you
If you are a student WO Computer Science and you are interested in this assignment, you can contact Jeroen Meijer.