Digital Menu Cards for Restaurants and Ordering System Using QR Code Scanning
Full Project Demo with Screenshots and Working Video
The ”Digital Menu Cards for Restaurants and Ordering System Using QR Code Scanning” is an entirely new system to handle the ordering systems inside a hotel or restaurants. This project offers an efficient ordering system for the hotels and restaurants. This Online Restaurants Menu Card System helps you to Streamline your operations to meet customers expectations. A flexible restaurant management system which helps you to be more systematic and quick in your services to customers. Its fast and time management system for customers and as well as the hotel managements.
The entire project is developed using Django and deployed in Heroku. The storage space required while deploying the project is acquired using Amazon Web services. The proposed system has following modules incorporated in it. They are User Module, Food Item Management Module, Category Module, Confirm Order Module, Payment Module, Comment Module and Rating Module.
This Digital Menu Card System has been developed to override the problems prevailing in the manual ordering systems. This software eliminates and reduces the hardship faced in the menu card systems. Moreover this is developed particularly for smooth and efficient functioning of the administration.
This application possibly reduces the error of serving wrong orders to the customers. No formal knowledge is required to use this software. It is user-friendly. The main objective of this application is an efficient management of details of Food item, cart, category, order, customer. It manages all the information securely and the project is totally built on the administrator’s end .
The proposed system helps in elimination or the reduction of the manual works and the reduction of money spent on the man power. The proposed system helps the administration to operate and manage their resources smoothly and efficiently.
In these system we have a QR Code in the menu card in each table of the restaurant. For more details about the food stuff you just scan the QR Code. After the QR Code scanning the customer gets into our website home page displaying the menu items and their respective price.
In the above home page one can see the entire detail about the food stuff selected.
Disadvantages of Existing System
- Time consuming process.
- Need of paper for printing menu cards.
- Need more manpower.
- More amount of manual work to be accomplished.
- Chances of serving wrong dishes to customers.
- Lacks customer satisfaction.
- Daily Updates are not possible through printed menu cards.
Advantages of Proposed System
- Decreases the load of the person involved in the existing manual system.
- Accuracy in work.
- Work becomes very speedy.
- Easy to update information.
- It contains better storage capacity.
- It tracks all the information of category, orders etc.
- Manages and integrates all the information of the customers.
- Editing, adding and deleting of food items is easy and cost free.
Django - Web Framework
Back end Python 3.8 - Back end Programming language
PostgreSQL - databases
Deployment Activity - Heroku app server
Amazon Web Services - S3 Bucket Storage Allocation
System Module Design and Implementation
The main aim of the module is to provide all the functionalities related to the users. It tracks all the information and details about the users. We have provided all the signup, read, ordering functionalities to this module. This is a role based module where admin can perform each and every operation on user data but users can only view his/her data. Thus access level restrictions has been implemented on the project. The admin can view the last login time of the users also.
Food Item Management Module
The main aim of developing this module is to manage all the details of food items being served in the restaurant. So all the records of the food items can be update by the admin and the customers can view the food item lists. Also the module manages the order detail i.e the food items ordered and the details of the table number, where that food item has to be served. The customers can view the making video of the food item they want to order and they can also rate the food item.
Category Management Module
This module manages the categories being served in the restaurant. It provides the customers an view to know the food categories available. This is categories the food items into drinks, lunch, dinner, breakfast etc. This helps the customers to easily access to their favorite food item. The food items are categorized as per the admin needs. Admin can alter the category as they require.
Confirm Order Module
The main aim of this module is provide all the functionality related to confirm order. So all confirm order will be managed by admin and customer will be able to see confirm order. It tracks all the information and details of the confirm order. Admin can Only edit and update the record of the confirm order.
The main aim of developing this module is to get the feedback of the food items from customers. The number of comment of each food item is displayed to the customers. All the comments are visible to the customers.
We have developed this comments using Django comments. Django includes a comments framework. This framework can be used to attach comments to any model, so you can use it for comments on food items or anything else.
This module is to allow the users to rate each food item. The rating of a food item is taken as average ratings of all the customers. Admin cannot alter the ratings, the rating is displayed as the average rating of all the users rate. Average ratings are showcased for each food item and the rating status is displayed on Add to Cart Page of the website.
The main purpose for developing this module is to manage the customer’s payment via online or cash on delivery. Admin will manage all cash on delivery record. As per the customer convenience, customer can pay their bills. Admin manages all the payment records of all the customers.
QR Code Scanning Module
In our proposed system we provide a QR Code on every table which will be regenerated after every 30 seconds. Scanning the QR Code the customers will be taken to our proposed website from where they can access our menu card to place their desired order.There is no need to download any application form the play store and also no need to search for our website over the internet.
Deploying of the project
The implemented system is deployed on heroku free server. Heroku is a cloud platform as a service (PaaS) supporting several programming languages like python, php, ruby, etc. Amazon’s Simple Storage Service (S3 Backets) is the file system for the cloud.
Project Demo Video
In this proposed system, a QR Code is regenerated for every 30 seconds. Customers can scan the QR Code in order to access the website we have developed. The customers can pick their desired Food items from the categorized food item list. And add it into their carts. They can place the orders and pay their bills after confirming their orders. The payment can be done through the Stripe payment or can pay on desk after the satisfactory meal. This can be done according to the customers convenience.
Implementation of the Web Pages
Implementation of Payment Module
The main purpose for developing this module is to manage the customer’s payment via online or cash on delivery. Admin will manage all cash on delivery record. As per the customer convenience, customer can pay their bills. Admin manages all the payment records of all the customers. We have developed the payment module using Stripe API. There are many payment services like PayPal , Paytm, Google Pay, etc available in the market to integrate payment gateway in an application.
In many countries, Stripe is the widely used for the transactions with credit and debit cards. By using a payment gateway services / API, we can enable users to do financial transactions with our application.
We can use the Stripe API in test mode, which does not affect your live data or interact with the banking networks. The API key we use to authenticate the request determines whether the request is live mode or test mode.
The Stripe API differs for every account as it releases new versions and tailor functionality.
Implementation of Social Authentication
Adding Django Social Authentication to our website login page. Python Social Authentication is a library that provides an easy-to-setup social authentication / registration mechanism several web frameworks like Django. We use Django’s build in authentication system. It handles user accounts, groups, permissions and cookie-based user sessions.
In these project users can either sign up using a valid email id or using Facebook or Google account. So these will help to provide a fast sign up and quick delivery of service to customers.
Implementation of Django Filters
In our project website there are many number of food items are listed. For the convenience of customers, we add a small field search in Django called Django Filters. Django-filter provides a simple way to filter down a query set based on parameters a user provides. We can search using the price and name field of the food items and add the food item into cart with no time.
Implementation of QR Code Scanning
In our proposed system, QR code Scanning is the first step to access our web page. By simply scanning the provided Qr code. After that, the customers can accesses our web page easily. There is no need to download any application form the play store and also no need to search for our website over the internet. To maintain the uniqueness of the code the QR Code is regenerated every 30 seconds.
In the proposed system the databases has been created using PostgreSQL. PostgreSQL is a free and open-source relational database management system. This largely eliminates the need for read locks, and ensures the database maintains ACID principles. PostgreSQL offers three levels of transaction isolation: Read Committed, Repeatable Read and Serializable. Because PostgreSQL is immune to dirty reads, requesting a Read Uncommitted transaction isolation level provides read committed instead. These DBMS has free to embed in Heroku and it is also good at elastic searching. All the database tables are managed in the admin panel are shown in below figure.
Deployment of the Website
The proposed system is deployed on Heroku. Heroku is a cloud platform as a service supporting several programming languages. One of the first cloud platforms, Heroku has been in development since June 2007, when it supported only the Ruby programming language, but now supports Java, Node , Scala, Clojure, Python, PHP, and Go.
When the user sign up with Heroku, you automatically get a pool of free dyno hours to use for the apps locations. When the application runs, it consumes dyno hours.
The required storage space while deploying the entire project was acquired by using the Amazon Web Services (AWS). Amazon Simple Storage Service (S3) is a highly durable and available store that is ideal for storing application content such as media files, static assets, and user uploads. S3 allows you to offload the storage of static files from your app. All files in S3 are stored in buckets.All files sent to S3 belong to a bucket, and a buckets name must be unique across all of S3. Access to the S3 API is governed by an Access Key ID and a Secret Access Key. The access key identifies your S3 user account, and the secret key is a password-like credential that should be stored securely.
In earlier days, food industry has lagged behind alternative industries in adopting new technology. But speedy advances in technology and heightened expectations of customers and have forced the food industry to bring new innovative methods.
Nowadays, the adoption of wireless technology and emergence of mobile devices has a big role within the food industry. The business and services in restaurants are often improved with the mixture of wireless and mobile technologies. The competition in restaurants with regard to business has redoubled with the advancements in food ordering techniques.
In this paper, a digital menu card for restaurants and ordering system using QR code scanning is proposed which is able to streamline the operations to meet customers expectations. The implementation of proposed application uses HTML/CSS and Bootstrap as the front end and at the back end Python, Django Framework along with PostgreSQL database is used.
The traditional menu cards in the restaurants are paper based. Waiters use paper to write the order of customers. The records are stored on paper. As with anything paper based, it is so easy for things to get damaged by Coffee stains etc, or paper being lost due to fire or accidents or just generally lost. There is wastage of time, money, and paper.
As traditional menu cards are paper based, any changes that need to be made in the menu card will lead to wastage. As it will require reprinting of all the menu cards. Also, for small changes it is not possible to print all the menu cards again and again. There is no power to dynamically make any changes in the menu card.
To access a particular record from the stack of papers is not efficient. From the customers point of view, this system is time consuming. As, one has to wait until the waiter comes to take the order, one has to call waiter number of times till he notices it, there can be misinterpretation while the waiter is writing your order on paper, and it might be possible that you are served with a wrong dish.
There has been improvements in the management of restaurants. Each waiter is assigned a group of tables, after taking orders for a table the waiters enter the orders (a list of dishes and drinks ordered by the customer) into the system at the PC. The waiter usually knows of all dishes that are unavailable before taking an order. The system must confirm the availability of dishes. Should an item not be available the system must allow to change or even delete a customers order.
Drinks and desert orders may be taken separately. Kitchen staff sees the dish orders on their screen, prepare them in an appropriate sequence and confirm preparation to the system when complete. When a waiter sees the completion indications on his terminal he collects the items and takes them to the table. At the end of the meal the waiter will have the system print a bill, and he will enter the details of payment for it.
The system keeps track of the numbers of customers served by each waiter and the amount of money taken by each waiter. Making dynamic changes in the menu card, to get rid away from the heap of paper based records, to assure the customer that hell be served with what he has ordered, to get the customer feedback on record.
In this proposed system we have a QR Code in the menu card in each table of the restaurant. For more details about the food stuff one can just scan the QR Code for the details. After the QR Code scanning the customer gets into our website page displaying the menu items and their respective price. In this page one can see the entire detail about the food stuff selected. The existing system of Hotel Management is manual. All the daily routines are carried out manually and the records are maintained in the record books or the registers. The introduction of our project will eliminate a good amount of manual work.
In this proposed restaurant menu card system, displays the food stuffs available there and their respective prices. Along with the displaying of food prices, the customer can also view the making of the foodstuffs. Not only the prices are displayed, but also the making of each food item is made available to the customers. In addition to these features we have an ordering system. Using this ordering system the customer can order their preferences without waiting for the waiters. This concept is satisfactory for both the hotel administration and the customers.