Projects About Contact Blog
elad project

Overview

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.

The problem

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?

The proposed solution

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.

Research and analysis

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:

elad project

The actors

There are two actors involved:

  • Customer: His role is to place orders.
  • Restaurant manager: his role is to manage the customer's orders.

Functional requirements

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:

  • Manage customer orders (accepting, rejecting, and printing invoices).
  • Manage restaurant menus and categories(Add, Modify, and delete).
  • Follow up the statistics (sales, orders, available meals ... etc).

_ The functionality requirements that the system must allow for customers are:

  • Create a new account.
  • Modify or delete account.
  • Browse the available menus.
  • Place an order.
  • Track orders.
  • Check the order history.

Non functional requirements

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:

elad project

Use case diagram

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:

elad project

Activity diagram

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:

elad project

Sequence diagram

A sequence diagram allows me to represent use-case scenarios in chronological order.

In the figure below you can see an authentication case scenario:

elad project

Class diagram

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:

elad project

Production

I built this application using different and simple programming languages ​​and frameworks, as shown in the table below:

elad project

The final design

I created the pages using Figma. You can take a look at some of those pages below:

elad project

Home Page

elad project

Checkout page

elad project

Add a new item

elad project

Conclusion

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:

  • A new version for android devices.
  • A new space for the delivery man.
  • Fix and improve some features.