I built this project due to the increasing demand for such services in recent years. The objectives of the project focused on two main points, first, to facilitate the ordering process for customers who do not have enough time to prepare their meals themselves or visit their favorite restaurants. The second point is to allow restaurants to expand their reach and target more consumers. Ease of use and diversity of payment methods were among the features that I took care of during the development process.
Day after day, the demand for food delivery services is increasing after the great development of trade. One of these services is food delivery services. This turnout did not happen by chance. Instead, there is a reason that prompted people to use such services. With a simple analysis, we can notice that people are busier than they were in the past and no longer find enough time to prepare their meals or even visit their favorite restaurants, which brings us directly to the following problem:
How can restaurants deal with this change that may cause low sales, and find suitable solutions?
In order to build a successful application that satisfies both parties, restaurants and customers, I have created two spaces with different interfaces for each of them. A space for restaurant owners to manage customer orders and their food menus, and a space for the customer to manage his account, order, or track his orders.
I use the UML method to make it easy to collect and organize important information about the application I want to create. The research and analysis process in UML takes the following steps:
There are two actors involved:
Defining the requirements is an essential step at the beginning of every project. It aims to ensure customer satisfaction. Its purpose is to answer the question: What are the functions that the system must perform to achieve the project objectives?
_ The functionality requirements that the system must allow for restaurant manager are:
_ The functionality requirements that the system must allow for customers are:
Although this part is not as important as functional requirements, it indirectly affects the success of the project. It means that it should not be neglected, but it is better to always include it in the project. Therefore, the project must respect the following non-functional requirements:
The use case diagram is a simplification of what we previously mentioned in the functional requirements, and it is a scheme that helps developers understand the system in a better way. The diagram below shows what the system allows users to do:
Activity diagrams allow me to define the stepwise activities and actions with support for choice. It provides explanations very close to object-oriented programming. Therefore it is well suited to the detailed specifications of the processing operations during the implementation phase. The figure below show different activities of the two previously identified actors:
A sequence diagram allows me to represent use-case scenarios in chronological order. In the figure below you can see an authentication case scenario:
It is the most important scheme, as it gives the developer a comprehensive view of the general structure of the program, in terms of classes and the relationships between them. The figure below shows the general structure of the application:
I built this application using different and simple programming languages and frameworks, as shown in the table below:
I created the pages using Figma. You can take a look at some of those pages below:
The explanations above were the main points that I follow to build applications from the beginning to the delivery. Working on this web application allowed me to develop valuable skills. I was able to develop the skill of managing time, pressure, and searching for the correct and appropriate information in a short period. My programming skills have also improved quite a lot compared to my skills in previous projects. The next update of this application will include: