Online Restaurant Food Ordering & Management System Python Project

Online Restaurant Food Ordering & Management System works as a restaurant hub where people can browse and order food online easily. Nowadays, many people especially the young generation, often want to order food from restaurants online with a home delivery service. Thus, we built a restaurant management system where all the restaurant’s information and services will be available. We also offer deliverymen will deliver the food as well, in case a restaurant does not have delivery support.

Users of the Project

This Online Restaurant Food Ordering & Management System has four (4) kinds of users. They are:

  • Customers
  • Restaurant Managers
  • Restaurant Branch Managers
  • Deliveryman

Apart from the users, there is a superuser named admin. Anyone can connect to the system as a customer, restaurant manager, or deliveryman. admin will verify the Trade Licence No. and many other details of a restaurant before connecting it to the system. Similarly, a deliveryman will also get checked by the admin about whether s/he is capable enough to work as a deliveryman.

Project Features

Many features are implemented in the project. Among these, the key features of our project are as follows.

  • Dashboard for the restaurant managers
  • Search and filter food items
  • Our delivery module
  • Bi-directional rating system between deliveryman and customer
  • Offers and Discounts
  • Rating and review submission system

User Guide

This is a sample user guide that will work as a walk-through of the major functionalities of the Online Restaurant Food Ordering & Management System website. As mentioned above, there are 4 kinds of users in this system. A user guide is provided for each kind of user below.

Customer User Guide

Restaurant Homepage

Most of the users of the website will be in this category. Initially, a customer will be able to browse through the website even without a login. Thus, every time a customer enters the website, the customer home page will be loaded.

Customer Location Prompt

But when the customer will try to order something from the website, a location prompt will appear.

Customer Registration

After entering the location, the customer will be able to browse the website as before but cannot order until login/register is done.

View Restaurants

While browsing the items, a customer can filter the items via many different search categories. Among these, on the Restaurants page, a user will be able to see only the restaurants that are close to him/her.

Browse Cuisines

Also, on the Browse Cuisines page, a user can browse items based on many filters and search options. For example, a user can filter the items based on ratings on the items, price range, etc.

Branch Unavailability

Depending on the location, restaurant branch availability will be determined and some of the restaurants may not be able to deliver to the intended location of the customer.

Adding food to cart and Checkout

After browsing, customers can order from a nearby restaurant, check out the cart, and then the customer will be taken to the checkout page where delivery details will be asked for.

Payment method

Customers can use either cash on delivery or an online payment method.

Order Placing notification

At this point, an order has been placed. Now it will be approved by the restaurant manager. Usually, the manager approves the order within a short time. By this time a notification will appear stating that the order has been placed and sent to the restaurant authority.

Rate the Deliveryman

By this time the customer can browse through the website and wait. As the order information keeps getting propagated, the customer will be getting notifications for his order. Once the deliveryman arrives with the order, the customer will be able to rate the deliveryman for the service on the homepage.

Rate and Comment Items

Also, a customer can rate a particular item of a restaurant by clicking on View Item in that item while browsing. S/he can also provide feedback as a comment.

Restaurant Manager User Guide

Manager Register

A restaurant manager will need to open up an account as a restaurant manager on the website. The registration form will look like this. When the admin approves the request, an email is sent stating the activation of the account.

Restaurant Manager Homepage

On the restaurant manager’s homepage, there will be a key to identify the restaurant. This key will be used for opening up the restaurant branches.

Restaurant Branch Creation

Opening up a restaurant branch is just the same as opening up a new restaurant. On the restaurant register page, there is also an option to create a restaurant branch. Providing all the relevant fields along with the restaurant key from the restaurant manager homepage (mentioned above), a new branch of the restaurant can be created.

Add Items

A restaurant manager can add items to his restaurant. In the Add Item tab, the manager will be able to introduce a new item in the restaurant.

Manager Dashboard

Also, a manager can see the restaurant statistics on the Dashboard page. The Dashboard page contains many of the common statistics which will help him understand the restaurant sales progress. Outlet revenue, sales trends in different branches, etc. are shown on this page.

Restaurant Branch Manager

A restaurant branch manager will be in charge of a branch of a restaurant. So, his role on this website is also different from a Restaurant Manager. When the restaurant manager sets up the profile for the branch manager, she/he can manage this branch independently.

Item Availability in the branch

The Branch Manager can declare which items are currently available on the homepage.

Add offer

The Branch Manager can add offers on an item by clicking on that item.

Manage and Accept Orders

This is the most important task of a branch manager. Whenever a customer orders something, the order request comes to the branch manager who has to accept it and forward it to the deliveryman.

Deliveryman User Guide

In our system, anyone can become a deliveryman if s/he is willing to be. Anyone can open up a profile on the website as a deliveryman, but it will need approval from the admin.

Deliveryman Register

While opening an account, the delivery man has to assign himself/herself to one of the zones. S/he will be getting deliveries for that zone only.

Deliveryman Homepage

Once logged in, a deliveryman’s homepage will have currently pending requests of orders in his/her zone. To take an order for delivery, the Take Delivery button is to be pressed.

Complete the Delivery Process

Then, that order entry will be updated and will be waiting for the delivery man to pick up and deliver. Once delivered to the customer, the deliveryman needs to press the Mark As Delivered button. This will also prompt the deliveryman to rate the customer for his/her behavior.

Previous Deliveries

For a deliveryman who has been on the website and delivered many orders, s/he can check all his/her past deliveries in the Delivered Order.

Tools and Frameworks


HTML, CSS, Bootstrap
Javascript, Angular JS, JQuery, Google Maps API

Backend – Django

Database – Postgresql v10.2


  • Web Framework: Django 2.2
  • Database Server: PostgreSQL 12.3

Visit Here and download the complete Online Restaurant Food Ordering & Management System Python Project