The main objective of this thesis is to create and implement a software-system for restaurants that is easy to use and provides everything an average restaurant-owner might require. These features may include: managing the infrastructure of a restaurant e.g. foods, beverages, tables or menus. We can create different profiles from menus so we can fulfill the requests of children, or other specific people. We can active or deactivate a menu from the admin webpage with one-click, so these profiles can be reusable later.
We can register new clients and orders to the system. In case of local orders, we can maintain the status of restaurant-tables, so we get a quick view of what tables are reserved (thus how popular our restaurant is at a specific day). If we have several delivery orders, either we can let the system automatically group the neighboring addresses in order to get an optimal output, or we can do it by hand. A mobile application has been developed for dispatchers where they can manage those orders associated with themselves. After the client is done with ordering, we can finalize the order by generating an invoice (in PDF). The system also features loyalty-point system and an email-sending process.
In the following chapters I introduce the technologies and frameworks that have come to my attention during development with a great emphasis on backend/frontend technologies. After that I create an exact specification which my software needs to fulfill. Then, a careful high level design is presented in which I describe every details of the system including application architecture, data-modeling and workflows. The detailed implementation follows afterward where I share my experience of every layer of the application.