Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
12 views54 pages

Food Ordering Sytem

Uploaded by

malik zubair
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views54 pages

Food Ordering Sytem

Uploaded by

malik zubair
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 54

Online Food Ordering System

Submitted by

Muhammad Afzal () F20-BSSE-5107

Adeel Tariq F19-BSSE-5017

Asad Nadeem F19-BSSE-5019

Supervisor
Mr. Ghulam Ali

Bachelor of Science in Software Engineering (2019-2023)

The candidate confirms that the work submitted is their


own, and appropriate credit has been given where
reference has been made to others' work.

Department of Software Engineering


University of Okara

<2019 To 2023>
Online Food Ordering System

BACHELOR OF SCIENCE
IN
SSOFTWARE ENGINEERING

BY

Muhammad Afzal F20-BSSE-5107


Muhammad Zubair F20-BSSE-5081
Izaan Salman F20-BSSE-5084

DEPARTMENT OF SOFTWARE ENGINEERING

Faculty of Computing

University Of Okara
COPYRIGHT

All intellectual property rights are retained. Prior written permission is required for
any kind of reproduction, in whole or in part of this research work of Muhammad
Ahsan (F19-BSSE-5039), Adeel Tariq (F19-BSSE-5017), and Asad Nadeem
(F19-BSSE-5019) from University of Okara.
DEDICATION

A final year project report presented to the University of Okara in partial fulfillment of
the degree requirements of a Master in Computer Science. Our application is dedicated
to our parents and we would especially like to dedicate this project to our Project
advisors because they guided us in the right direction and gave their precious time to us
completion of this project. We discussed our project with them and they gave better
suggestions to improve our project.
DECLARATION

We now declare that this software, neither whole nor as a part, has been copied out from
any source. It is further stated that we have developed this software and accompanied the
report entirely based on our efforts. Suppose any part of this project is proved to be
copied out from any source or found to reproduce some other. We will stand by the
consequences. No portion of the work presented has been submitted of any application
for any other degree or qualification of this or any other university or institute of
learning.

Muhammad

Ahsan F19-BSSE-

5039

Adeel Tariq

F19-BSSE-5017

Asad Nadeem

F19-BSSE-

5019

August 2023
CERTIFICATE OF APPROVAL

It is certified that the project titled “Online Food Ordering System” carried out by
Muhammad Ahsan (F19-BSSE-5039), Adeel Tariq (F19-BSSE-5017) and Asad
Nadeem (F19-BSSE-5019) under the supervision of Mam Sana Yasin, University of
Okara, is fully adequate, in scope and in quality, as a final year project for the degree of
BS Information Technology.

Supervisor: -------------------------
Mr. Ghulam Ali
Lecturer
Faculty of
Computing
University of Okara

Internal Examiner 1:

Mam Ifrah Parvez


Lecturer
Faculty of
Computing
University of Okara

Internal Examiner 2:

Mr. Sohaib Saleem


Lecturer
Faculty of
Computing
University of Okara

Project Coordinator:

Mr. Javed Dogar


Lecturer
Faculty of
Computing
University of Okara

HOD/Chairperson

Dr. Riaz Ul Amin


Faculty of
Computing
University of Okara
ACKNOWLEDGMENT

All praise is to Almighty Allah, who bestowed upon us a minute portion of His
boundless knowledge under which we were able to accomplish this challenging task.

We are greatly indebted to our project supervisor "Dr. Ghulam Ali" and co-supervisor
“Mr. Javed Dogar”. with their supervision, advice, and valuable guidance, the completion
of this project would have been doubtful. We are deeply indebted to them for their
encouragement and continual help during this work.
We are also thankful to our parents and family, who have been a constant source
of encouragement for us and brought us the values of honesty and hard work.

Muhammad

Ahsan F19-BSSE-

5039

Adeel Tariq

F19-BSSE-5017

Asad Nadeem

F19-BSSE-

5019
ABSTRACT

The abstract is the most important part of a Project report. Any abstract will be read by
ten or twenty times more than any other words in the report. So, to make a positive
impression, or just convey information, here's where to really pay attention to writing.

ONLINE FOOD ORDER SYSTEM is a website designed primarily for use in the food
delivery industry. This system will allow hotels and restaurants to increase the scope
of business by reducing the labor cost involved.

The system also allows for quick and easy management of an online menu that
customers can browse and use to place orders with just a few clicks. Restaurant
employees then use these orders through an easy-to-navigate graphical
interface for efficient processing.
Table of Contents

COPYRIGHT 3
DEDICATION 4
DECLARATION 5
CERTIFICATE OF APPROVAL 6
ACKNOWLEDGMENT 7
ABSTRACT 8
Table of Contents 9
Chapter 1 13
INTRODUCTION 13
1.1 Brief 13
1.2 Motivation 13
1.3 Project Background 13
1.4 Mission and Vision Statements 14
i. Mission Statement: 14
ii. Vision Statement: 14
Chapter 2 15
REQUIREMENTS SPECIFICATION 15
2.1 System Model 15
2.2 Functional Requirements 15
2.3 The Web Ordering System 15
2.4 Menu Management System 16
2.5 Order Retrieval System 17
2.6 User Interface Specifications 17
2.7 Non-functional Requirements 17
2.8 System Evolution 18
2.9 Use Case Diagram for Online Food Delivery Project 18
2.10 DFD Diagram for Online Food Delivery Project 19
Chapter 3 21
SYSTEM DESIGN 21
Level 1: The Database & the 3 Components 21
Level 2: Web Ordering System Components 21
Level 3: The Login Form 22
Level 4: The Main Menu 22
Level 5: The Account Management Form 22
Level 6: The Order Form 23
Level 7: The Shopping Cart 23
Level 8: The Checkout Form 23
Level 9: Menu Management System Components 23
Level 10: The Navigation Tree 23
Level 11: The Forms 24
Level 12: Order Retrieval System Components 24
Level 13: Order Detail Panel 24
User Interface Design 24
Help System Design 25
Chapter 4 26
TESTING DESIGN 26
4.1 Phases 26
4.2 Database 26
4.3 Web Ordering System 26
4.4 Menu Management System 27
4.5 Requirements Traceability 27
4.6 Testing Schedule 29
4.7 Recording Procedures 29
4.8 Hardware and Software Requirements 29
Chapter 5 30
METHODOLOGY 30
5.1 Microsoft Visual Studio 30
5.2 Front-End 30
5.2.1 HTML5 31
5.2.1.1 Advantages 32
5.2.2 CSS3 32
5.2.3 JAVASCRIPT 34
5.2.4 BOOTSTRAP 34
5.3 Back-End 35
5.3.1 LARAVEL 35
5.4 SERVER SIDE 36
5.4.1 SQL SERVER 36
5.4.1.1 Reliability 37
5.4.1.2 Confidentiality 37
5.4.1.3 Integrity 37
5.5 Agile Modal 37
5.5.1. Iterative and Incremental Development: 38
5.5.2. Customer-Centric: 38
5.5.3. Collaboration: 38
5.5.4. Embracing Change: 38
5.5.5. Prioritization: 38
5.5.6. Continuous Testing: 38
5.5.7. Transparency: 38
Common Agile Methodologies: 38
Scrum: 38
Kanban: 39
Extreme Programming (XP): 39
Lean: 39
Benefits of Agile: 39
5.6 Dashboard of Food Ordering System 39
5.6.1 Login and Register 40
5.6.2 Home or Landing Page 40
5.6.3 Add Products Manually 41
5.6.4 Place Orders 41
5.6.6 FAQ Section 42
5.6.7 About Us 44
5.6.8 Admin Panel to Store Data 45
1. Accessing phpMyAdmin: 45
2. Logging In: 45
3. Selecting a Database: 45
4. Navigation Tabs: 46
5. Browsing Data: 46
6. Editing Data: 46
7. Creating Tables: 46
8. Running SQL Queries: 46
9. Importing and Exporting Data: 46
10. User Management: 46
11. Settings and Configuration: 46
12. Logging Out: 46
5.6.9 Blade System in PHP Laravel 47
5.6.10 Version Control 47
5.6.10.1. Definition: 47
5.6.10.2. Benefits: 47
5.6.10.3. Version Control System Options: 48
5.6.10.4. Version Control Workflow for a Food Order Website: 48
5.6.10.5. Version Control Tools: 49
5.6.10.6. Food Order Website Use Case: 49
Chapter 6 50
TESTING AND EVALUATION 50
6.1 Manual Testing 50
6.2 Functional Testing 51
6.3 Integration Testing 52
Chapter 7 53
CONCLUSION AND FUTURE WORK 53
Conclusions and Future Work Conclusion: 53
7.1 Conclusions 53
7.2 Future Work: 53
REFERENCES 54
TABLE OF FIGURES
Figure 4.1: MS Visual Studio
2019 Figure 4.2: HTML Structure
Figure 4.3: CSS3 Structure
Figure 4.4: JAVA SCRIPT Structure
Figure 4.5: BOOTSTRAP Structure
Chapter 1

INTRODUCTION

1. Introduction

1.1 Brief

It is known globally that, in today’s market, it is extremely difficult to start a new small-scale
business and live through the competition from well-established and settled owners. In a
fast-paced time of today, when everyone is squeezed for time, the majority of people are
finicky when it comes to placing a food order. The customers of today are not only attracted
because placing an order online is very convenient but also because they have visibility into the
items offered, price, and extremely simplified navigation for the order. The online ordering
system that I am proposing here greatly simplifies the ordering process for both the customer
and the restaurant.

The system presents an interactive and up-to-date menu with all available options in an
easy-to-use manner. Customers can choose one or more items to place an order which will land
in the Cart. Customers can view all the order details in the cart before checking out. At the end,
the customer gets order confirmation details. Once the order is placed it is entered in the
database and retrieved in pretty much real time. This allows Restaurant Employees to quickly
go through the orders as they are received and process all orders efficiently and effectively
with minimal delays and confusion.

1.2 Motivation

The motivation for designing this application came because our families and our communities
are involved in the fast food business and we personally don’t like waiting for long in the store
or to have to call the store to place an order, especially during the peak lunch or dinner hours.
Moreover, I value recent learning about the JavaScript, Node JS, and PHP Laravel
Programming languages as well as seeing how powerful and dynamic they are when it comes to
web designing and applications.

The languages used to build this application are HTML to create the structure of the website,
CSS to style or to make it beautiful with the framework for Bootstrap to make it responsive with
less and reusable code, JavaScript to make client-side dynamic functionality, whereas Oracle
database at the back-end or server-side because I found them to be extremely useful while
working on the technologies like PHP and MySQL database.

1.3 Project Background

The project's foundation lies in the changing dynamics of the food industry due to technological
advances. Online food systems have gained prominence, offering customers a convenient way
to
order meals and restaurants a digital avenue to reach a wider audience. Driven by the
widespread use of smartphones and the internet, the traditional dining model has shifted.
Consumers now expect the ease of ordering food online, prompting restaurants to adapt. This
project delves into the motivations driving this shift and the technical complexities of creating
an efficient online food restaurant system.

Exploring topics such as database management, user interface design, security, and
order logistics, we aim to understand how this technology is reshaping the food
industry. By dissecting these components, we contribute to the broader understanding of
the digital transformation in how we engage with food.

1.4 Mission and Vision Statements


i. Mission Statement:

“Our mission is to create an online culinary destination that brings together the richness of [type of
cuisine] cuisine with modern technology. We aim to provide a seamless and delightful dining
experience for our customers by offering a diverse menu, easy online ordering, and exceptional
customer service. Our commitment to quality, innovation, and community engagement drives us
to continually enhance our offerings and exceed the expectations of every palate we serve."

ii. Vision Statement:

"Our vision for the food restaurant website is to establish it as the go-to platform for individuals
seeking authentic [type of cuisine] dining experiences. We envision a digital space where
customers can explore, discover, and savor a range of flavors that capture the essence of our
culture. By fostering a dynamic online community and embracing technological advancements, we
strive to redefine the way people connect with food, celebrate traditions, and create memorable
moments together."
Chapter 2

REQUIREMENTS SPECIFICATION
2.1 System Model
The structure of the system can be divided into three main logical components. The first
component must provide some form of menu management, allowing the restaurant to control
what can be ordered by customers. The second component is the web ordering system which
provides the functionality for customers to place their order and supply all necessary details.
The third and final logical component is the order retrieval system. Used by the restaurant to
keep track of all orders that have been placed, this component takes care of retrieving and
displaying order information, as well as updating orders that have already been processed.

Case 2.1 System Model

2.2 Functional Requirements


As can be seen in the system model diagram above, each of the three system components
essentially provides a layer of isolation between the end user and the database. The motivation
behind this isolation is twofold. Firstly, allowing the end user to interact with the system
through a rich interface provides a much more enjoyable user experience, particularly for the
non-technical users which will account for the majority of the system’s users. In addition, this
isolation layer also protects the integrity of the database by preventing users from taking any
action outside those that the system is designed to handle. Because of this design pattern, it is
essential to enumerate exactly which functions a user will be presented and these functions are
outlined below, grouped by component.

2.3 The Web Ordering System


Users of the web ordering system, namely restaurant customers, must be provided the following
functionality:

▪ Create an account.
▪ Manage their account.

▪ Log in to the system.

▪ Navigate the restaurant’s menu.

▪ Select an item from the menu.

▪ Customize options for a selected item.

▪ Add an item to their current order.

▪ Review their current order.

▪ Remove an item/remove all items from their current order.

▪ Provide delivery and payment details.

▪ Place an order.

▪ Receive confirmation in the form of an order number.

As the goal of the system is to make the process of placing an order as simple as possible for the
customer, the functionality provided through the web ordering system is restricted to that which is
most pertinent to accomplish the desired task. All of the functions outlined above, with the
exceptions of account creation and management, will be used every time a customer places an
order. By not including extraneous functions, I am moving towards my goal of simplifying the
ordering process.

2.4 Menu Management System


The menu management system will be available only to restaurant employees and will, as the
name suggests, allow them to manage the menu that is displayed to users of the web ordering
system. The functions afforded by the menu management system provide users with the
ability to, using a graphical interface:

▪ Add a new/update/delete vendor to/from the menu.

▪ Add a new/update/delete food category to/from the menu.

▪ Add a new/update/delete food item to/from the menu.

▪ Add a new/update/delete option for a given food item.

▪ Update the price for a given food item.


▪ Update default options for a given food item.

▪ Update additional information (description, photo, etc.) for a given food item.

It is anticipated that the functionality provided by this component will be one of the first things
noted by the restaurant user, as they will have to go through it to configure their menu, etc.
before beginning actually to take orders. Once everything is initially configured, however, this
component will likely be the least used, as menu updates generally do not occur with great
frequency.

2.5 Order Retrieval System


Of the three components, the order retrieval system is functionally the simplest. Like the menu
management system, it is designed to be used only by restaurant employees and provides the
following functions:

▪ Retrieve new orders from the database.

▪ Display the orders in an easily readable, graphical way.

▪ Mark an order as having been processed and remove it from the list of active orders.

2.6 User Interface Specifications


Each of the system components will have its own unique interface. These are described below.

2.7 Non-functional Requirements


Because the design patterns of the Online Ordering System are pretty much the standard for a
web application, the non-functional requirements of the system are very straightforward.
Although written using Google Web Toolkit, the application is cross-compiled to HTML
and JavaScript, along with a PHP backend, all of which are supported by any reasonably
well-maintained web server, although I would recommend Apache2, particularly the
free XAMPP distribution.

All of the application data is stored in a PostgreSQL database, and therefore a PostgreSQL
server must also be installed on the host computer. As with Apache2, this software is
freely available and can be installed and run under most operating systems.

The server hardware can be any computer capable of running both the web and database
servers and handling the expected traffic. For a restaurant that is not expecting to see much web
traffic, or possibly doing only a limited test run, an average personal computer may be
appropriate.
Once the site starts generating more hits, though, it will likely be necessary to upgrade to
a dedicated host to ensure proper performance. The exact cutoffs will need to be
determined through a more thorough stress testing of the system.
2.8 System Evolution

As mentioned in the system model, at the heart of the entire ordering system is the database. In
fact, the system could be completely operational using nothing but the database and an
appropriate shell utility, assuming that all users are well-versed in SQL and enjoy using it to
order food.

While this would be a bit extreme, it does illustrate the point that the one part of the system that
will stay relatively constant is the database. On the other hand, it is very probable that the other
components will continue to evolve with time. For example, with the booming popularity of
mobile applications, I would really like to make the web interface available as a phone
application as well. Also, it may make sense to at some point migrate the menu management and
order retrieval systems to web, or even mobile, applications as well, as some users may prefer to
use them as such.

I am also certain that if this system goes into actual use, many requests will arise for additional
features which I had not previously considered, but would be useful to have. For this reason, I
feel as though the application can be constantly evolving, which I consider a very good thing.

2.9 Use Case Diagram for Online Food Delivery Project


A UML use case diagram can create a broad, high-level view of the relationship between use
cases, actors involved, and systems being performed.

As you can see from the examples below, use cases are represented by oval shapes, and the
lines then show at which point an actor/user participates and interacts with their corresponding
use case. You can see where each actor is involved in the entire process and where they’re
excluded.

In this case, Admin will be able to add restaurants and owners of restaurants into the system.
On the other hand, restaurant owners can add categories of food and desserts. The owner can
access food and dessert order lists and bookings
2.10 DFD Diagram for Online Food Delivery Project
A data flow diagram represents the flow of information for any process or system. It shows
the system with its relationship to external entities. Here, we can see how the flow works
between users and the system.

In Online Food Delivery System, Admin will be responsible for maintaining the system and
also, keeping a check on the restaurants, their owners, and the management of the system. On
the other hand, customers can register, log in using the login credentials, and order food online.
Chapter 3

SYSTEM DESIGN
Level 1: The Database & the 3 Components
The structure of the system can be divided into three main logical components. The first
component must provide some form of menu management, allowing the restaurant to
control what can be ordered by customers. The second component is the web ordering
system which provides the functionality for customers to place their order and supply all
necessary details. The third and final logical component is the order retrieval system.
Used by the restaurant to keep track of all orders that have been placed, this component
takes care of retrieving and displaying order information, as well as updating orders
that have already been processed.

Case 3.1 System Design

Level 2: Web Ordering System Components


The web ordering system is comprised of 6 major components. These are the login form,
the main menu, the account management form, the order form, the shopping cart, and the
checkout form. When the customer first arrives at the site, they are presented with the
login form. After either signing in or, if they do not yet have an account, first registering
and then signing in, the user is taken to a welcome page with the main menu. From here,
they have two options – they can either change their password and other preferences
through the account management form, or they can select an order form and begin
adding items to their order. If they choose the second path, they can navigate the
numerous order forms using the main menu, each of which corresponds to a specific
category of order items, adding items to their shopping cart along the way. At any time
they can view and modify their shopping cart and when they are finally ready to place
their order, they can proceed to the checkout form. The checkout form uses the contents
of the shopping cart to present a summary of the order and to calculate the total cost, in
addition to allowing the user to specify all of the necessary delivery details.

Case 3.2 Web Ordering System Components

Level 3: The Login Form


The login form is standard for a form of this type. It provides text fields for username
and password, which the user must enter before signing in. This form also gives the
option for a user to register for the site if they have not yet done so.

Level 4: The Main Menu

The main menu, found at the top of the screen like in most applications, presents the user
with two levels of selections. They must first choose the vendor they would like to view
and then choose a category of food. Once they make these two selections, the application
generates an order form specifically for that type of food and displays this form to the
user.

Level 5: The Account Management Form

Currently the account management form only offers the user the option to change their
password.
Level 6: The Order Form

The order form is dynamically generated based on selections from the main menu.

Level 7: The Shopping Cart

The shopping cart performs much like a shopping cart in any other application. After an
item is added to the order, it is displayed, along with its price, in the shopping cart. The
shopping cart also keeps a running total of the current price of the whole order. By
clicking on an item in the shopping cart, the user can review all of the details for that
particular item. Finally, the shopping cart contains a button for the user to proceed to
checkout.

Level 8: The Checkout Form


The checkout form is the user’s last chance to verify that the contents of their order are
correct before actually placing it. This form also provides fields for the user to supply all
of the necessary checkout and delivery details (payment type, delivery address, etc.).

Level 9: Menu Management System Components


In order to make use of the menu management system, the user must interact with the
navigation tree, which uses a hierarchical tree structure to display all of the vendors,
categories of foods, and specific food items stored in the system. When the user selects
an item from this tree, they are able to edit the item using the appropriate form – a
Vendor Form if a vendor is selected, a Category Form if a category of foods is
selected, and a Food Form if an individual food item is selected. Web Ordering System
Components

Case 3.3 Menu Management System Components

Level 10: The Navigation Tree


The navigation tree is a 3-level (excluding the root) hierarchical arrangement, with each
leaf corresponding to a form. At the first level are vendors, at level two categories of
food, and at level 3 individual food items. When a leaf is selected, it brings up a form
corresponding to the item at that leaf.

Level 11: The Forms


There are three types of forms in the menu management system - Vendor Forms,
Category Forms, and Food Forms. The three forms are all similar, allowing the user to
add, edit, and remove information relevant to the selected item. Where they differ is
in the specific fields that the user is able to edit. After changes to any of the forms are
saved, the necessary records in the database are updated.

Level 12: Order Retrieval System Components


The simplest of the three components, the order retrieval system can be broken down
into just two components. They are the summary panel, which displays a list of all
currently active orders, and the order detail panel, which highlights just a single order.
When the application first starts, the order details for the first order in the list are
displayed. In order to view the details of a different order, the user must simply select it
from the list in the summary panel.

Case 3.4 Order Retrieval System Components

The summary panel, located on the left side of the screen, displays a list of all currently
active orders, along with their delivery times and statuses. By changing the selected item
in this list, the user is able to control the contents of the order detail panel.

Level 13: Order Detail Panel


The order detail panel contains a hierarchical tree structure for viewing all of the details
related to the order that is currently selected in the summary panel. This component also
contains a button to mark the order as processed and remove it from the list of active
orders.

User Interface Design

The user interface design principles can be broken into two groups. The interface in the
web application is designed to limit free-form user input, using mostly drop-down
menus, radio buttons, and checkboxes. This is done for two reasons – to simplify the
ordering process as much as possible, and to limit SQL injection attempts. Free-form
input is necessary for the menu management component, however, as all of the values
must be user-supplied. The interface for this component contains traditional forms
comprised of text fields and corresponding labels, along with save and discard buttons
for each form.

Help System Design

Due to the form-based nature of the applications, the design of the help systems will be
minimal. In both the desktop and web applications, it will be accessed from the
application’s main menu and will open in a new window. Modeled after the typical help
system design, it will be both searchable and include a navigation tree highlighting
common topics. There will be a help page for each form type, describing the significance
of each field on the page.
Chapter 4

TESTING DESIGN
4.1 Phases
The structure of the system can be divided into three main logical components, plus the
database, which is invisible to the end user. Each of these components must be tested
individually, and the approaches that will be used for each component are described in
the following sections.

Case 4.1 Testing Design

4.2 Database
Testing of the database component is very straightforward and has actually already been
completed. The database was the first component designed and before beginning work
on any of the applications, I wrote all of the SQL statements I expected to need and
executed them directly, essentially isolating the database, using the SQL client. By
doing this I was able to reveal, and promptly fix a large percentage of the errors within
the database itself.

4.3 Web Ordering System


Testing of the web ordering system will be the most strenuous, as it is the component
that will see the highest frequency of use and will be exposed to the most users, which
leads to a higher potential of failure. Testing here will be divided into two phases.

During normal use case testing I will execute all of the functions available through the
web interface using a broad spectrum of reasonable values that a user would be
expected to input. In addition to simply observing the in-application effects, I will also
be monitoring and inspecting the JSON requests and responses (using Firebug) to make
sure that everything is sent and received correctly.

In phase two I will perform exceptional use case testing, where I will artificially
generate cases that shouldn’t arise, but possibly could, and monitor how the
system
handles these cases. These cases fall into one of two categories – when the mistake
happens in the browser and the server has to deal with it, or the other way around.

I have tried to place appropriate checks on all values being sent back and forth so the
system realizes something is wrong before going to the database and potentially
changing the state of the system, but it will be very important to see if there is anything I
have not accounted for.

4.4 Menu Management System


Testing of the menu management system will be very similar to that of the
web ordering system, as I will first run test cases where the user supplies
acceptable values, and afterward test how the system responds to unexpected
input. Order Retrieval System
Of all the components, testing the order retrieval system will be the simplest. Since it is
simply an interface to display the results of database queries and has no potential to
change the state of the system, the only thing that really needs to be tested is how the
system responds when a result set is not in the form it is expecting. This will be done by
intentionally corrupting the database and analyzing the response of the order retrieval
system.

4.5 Requirements Traceability


In the requirements document, I specified the following functional requirements:

For the Web Ordering System:

▪ Create an account.

▪ Manage their account

▪ Log in to the system.

▪ Navigate the restaurant’s menu.

▪ Select an item from the menu.

▪ Customize options for a selected item.

▪ Add an item to their current order.

▪ Review their current order.


▪ Remove an item/remove all items from their current order.

▪ Provide delivery and payment details.

▪ Place an order.

▪ Receive confirmation in the form of an order number.

For the Menu Management System:

▪ Add a new/update/delete vendor to/from the menu.

▪ Add a new/update/delete food category to/from the menu.

▪ Add a new/update/delete food item to/from the menu.

▪ Add a new/update/delete option for a given food item.

▪ Update the price for a given food item.

▪ Update default options for a given food item.

▪ Update additional information (description, photo, etc.) for a given food item.

For the Order Retrieval System:

▪ Retrieve new orders from the database.

▪ Display the orders in an easily readable, graphical way.

▪ Mark an order as having been processed and remove it from the list of active orders.

In order to assure thorough testing, I will have to generate cases in which each of these
functions is performed, not just with a single input value, but an example of each
possible class of input. This may seem tedious but is absolutely necessary since the
system is so heavily dependent on user input and must respond appropriately to anything
the user may do. The good news is that because the system was designed to contain only
the absolutely necessary functionality, the testing of the different functions should
flow smoothly into one another.

4.6 Testing Schedule


Throughout all of the design and development phases, I have been performing unit tests
on each component, assuring that it works properly before introducing it into the rest of
the system, but I plan on beginning rigorous testing of the system starting in the first
week of December. I will begin by putting the system through its normal paces as a
normal user would be expected to. I will test the entire functionality of the system, but
will do so following the normal logical flow, and only providing reasonable values for
user input.

Once I am happy with how the system performs for normal use cases (which hopefully
will be completed by December 8th), I will move on to testing the exceptional use cases.
These are the use cases that would never be encountered by the average user, but,
whether through confusion or malice, may come up. Two examples would be adding
hundreds of items to an order or attempting to supply an SQL statement as a login
credential.

In the final phase of testing, which I will begin on December 15th, I will carry out stress
and performance testing. In this phase, I will bombard the system with an increasing
number of HTTP requests and then measure response times and see at what point things
begin to break down.

4.7 Recording Procedures


The recording procedures I will use can be divided into two categories. For the use case
testing, the tests will be designed in a “Pass/Fail” manner, making recording the results
very simple. Each time a series of tests is run, the results will be recorded in a
spreadsheet, where each outcome can be identified by the name of the test case along
with the execution date and time.

For the stress and performance testing, the procedure will be similar. However, since
these tests involve numerical results rather than simply “Pass/Fail”, I will be able to not
only record the results but also perform analysis (both numerically and graphically) on
them to get a better idea of exactly what the numbers mean.

4.8 Hardware and Software Requirements


The testing to be performed will require no special hardware, but some specially
designed software may be used, particularly when performing stress testing. I plan on
writing and utilizing a multi-threaded Java program to bombard the system with an
increasing number of HTTP requests and then measure response times and see at what
point things begin to break down. I also will be using the Firefox plug-in Firebug to
monitor the JSON requests and responses.
Chapter
5
METHODOLOGY

5.1 Microsoft Visual Studio

Microsoft Visual Studio is an integrated development environment (IDE) from


Microsoft. It is used to develop console and graphical user interface applications along
with Windows Form applications, websites, web applications, and web services in
both native codes together with managed code for all platforms supported by
Microsoft Windows, Windows Mobile, HTML5, CSS3, JAVA SCRIPT, BOOTSRAP,
SQL SEVER and LARAVEL basic tasks of creating, debugging and deploying
applications.

We have used Visual Studio 2023, for developing the online Food Ordering System

Figure 5.1: MS Visual Studio 2023

5.2 Front-End

Front-end developers build with the user in mind. Front-end development is a style of
computer programming that focuses on the coding and creation of elements and features
of a website that will then be seen by the user. It’s about making sure the visual aspects
of a website are functional.

You can also think of the front end as the “client side” of an application. So, let’s say
you’re a front-end developer. This means your job is to code and bring to life the visual
elements of a website. You’d be more focused on what the user sees when they visit a
website or app. And, you’d want to make sure the site is easy to interact with while also
running smoothly.

These developers take the visual designs from UX and UI designers and bring the
website to life, making sure it functions well for the user. One of the many ways
you
could use front-end skills is by creating a static website, which is a website with fixed
content that’s delivered to a user’s browser exactly as it’s stored. You might run into a
static website if you happen upon a simple landing page or a small business website that
doesn’t allow users to perform any interactive tasks.

Front-end developers build elements like

▪ Buttons

▪ Layouts

▪ Navigation

▪ Images

▪ Graphics

▪ Animations

▪ Content organization

Front-End developing languages:

▪ HTML5

▪ CSS3

▪ JAVA SCRIPT

▪ BOOTSRAP

5.2.1 HTML5

HTML5 is an advanced version of HTML. It contains all the features of HTML along
with new tags like <video>, <audio>, and <canvas>. There are also tags for including
semantics, and these tags are <article>, <header>, <footer>, etc. HTML5 improves the
HTML to support the latest multimedia and new features, including graphics, music,
etc.
Figure 5.2: HTML Structure

5.2.1.1 Advantages
There are many attributes present in HTML5 that were not present in HTML. E.g., data-,
offline, on abort, on blur, etc.
It provides support for audio, video, and other multimedia content by using tags like
<audio>, <video>, <canvas> etc.

There are many page layout options available in HTML5. In HTML, you can only find
page layout tags like div, span, etc. But in HTML5, there are many more tag options
available like header, footer, article, section, etc.

HTML5 supports Search Engine Optimization (SEO). Search engine optimization


helps the websites to know about the popularity of their content and also provides
insights on how to improve the content to increase the traffic to the websites.

HTML5 provides more flexible storage options. HTML uses the concept of cookies
to store temporary data, but HTML5 is capable of using a user-side database like
SQL. It also allows the user to view previously visited page data in offline mode.

HTML5 eliminates the need to write multiple codes for multiple platforms. The code
written in HTML5 supports mobile or tablet layouts. Thus, it provides multi-
platform compatibility.

5.2.2 CSS3

CSS3 makes changes to how some visual elements are implemented and rendered by a
browser. However, it is not a single hugely unwieldy specification, unlike CSS2. CSS3
is separated into separate modules to facilitate development. This means that the
specification comes out in chunks, with more stable modules than others.
Some would be ready for recommendation, while others would be marked as under
development drafts, the most recent of which were published as early as June
1999. Some of the major modules of CSS3 are:

▪ Box model

▪ Image values and replaced content

▪ Text effects

▪ Selectors

▪ Backgrounds and borders

▪ Animations

▪ User interface (UI)

▪ Multiple column layout

▪ 2D/3D transformations

Figure 5.3: CSS3 Structure


5.2.3 JAVASCRIPT

JavaScript is a dynamic programming language that's used for web development, in


web applications, for game development, and lots more. It allows you to implement
dynamic features on web pages that cannot be done with only HTML and CSS.

Many browsers use JavaScript as a scripting language for doing dynamic things on the
web. Any time you see a click-to-show dropdown menu, extra content added to a page,
and dynamically changing element colors on a page, to name a few features, you're
seeing the effects of JavaScript.

Figure 5.4: JAVASCRIPT Structure

5.2.4 BOOTSTRAP

Bootstrap is a free, open-source front-end development framework for the creation of


websites and web apps. Designed to enable responsive development of mobile-first
websites, Bootstrap provides a collection of syntax for template designs. As a
framework, Bootstrap includes the basics for responsive web development, so
developers only need to insert the code into a pre-defined grid system.

The Bootstrap framework is built on Hypertext Markup Language (HTML), cascading


style sheets (CSS), and JavaScript. Web developers using Bootstrap can build
websites much faster without spending time worrying about basic commands and
functions.
Figure 5.5: BOOTSTRAP Structure

5.3 Back-End

Back-end Development refers to server-side development. It focuses on databases,


scripting, and website architecture. It contains behind-the-scene activities that occur
when performing any action on a website. It can be an account login or making a
purchase from an online store. Code written by backend developers helps browsers
communicate with database information.

The most common example of Backend programming is when you are reading an article
on the blog. The fonts, colors, designs, etc. constitute the front end of this page.

While the content of the article is rented from a server and fetched from a database. This
is the backend part of the application.

Back-End developing language:

● LARAVEL 8.0

5.3.1 LARAVEL

Laravel is a web application framework with expressive, elegant syntax. We believe


development must be an enjoyable, creative experience to be truly fulfilling. Laravel
attempts to take the pain out of development by easing common tasks used in the
majority of web projects, such as authentication, routing, sessions, and caching.

Laravel aims to make the development process a pleasing one for the developer
without sacrificing application functionality. Happy developers make the best code. To
this end, we've attempted to combine the very best of what we have seen in other web
frameworks, including frameworks implemented in other languages, such as Ruby on
Rails, ASP.NET MVC, and Sinatra.

Laravel is accessible, yet powerful, providing powerful tools needed for large, robust
applications. A superb inversion of control container, expressive migration system, and
tightly integrated unit testing support give you the tools you need to build any
application with which you are tasked.

5.4 SERVER SIDE

Server-side programming is very useful because it allows us to efficiently


deliver information tailored for individual users and thereby create a much better
user experience.

Companies like Amazon use server-side programming to construct search results for
products, make targeted product suggestions based on client preferences and
previous buying habits, simplify purchases, etc.

Banks use server-side programming to store account information and allow only
authorized users to view and make transactions. Other services like Facebook, Twitter,
Instagram, and Wikipedia use server-side programming to highlight, share, and
control access to interesting content.

We used for Server-side which is given below:

● SQL SERVER

5.4.1 SQL SERVER

Microsoft SQL Server is an application used to create computer databases for the
Microsoft Windows family of server operating systems. Microsoft SQL Server
provides an environment used to generate the database that can be accessed from
workstations, the Internet, or other media such as a personal digital assistant (PDA).
Microsoft SQL Server is used to create desktop, enterprise, and web-based database
applications. It is used at different levels and with various goals.

SQL Server makes it simpler and easier to deploy, manage, and optimize enterprise
data and analytical applications. An enterprise data management platform, it performs a
single management console that enables data administrators anywhere in your
organization to monitor, manage, and tune all of the databases and associated services
across your enterprise.

It provides an extensible management infrastructure that can be easily programmed by


using SQL management objects, enabling users to customize and extend their
management environment and independent software vendors to build additional tools
and functionality to further extend the capabilities that come out of the box.
SQL Server simplifies management by providing an integrated management console to
monitor and manage the SQL Server relational database as well as integration services,
analysis services, reporting services, notification services, and SQL Server Mobile
Edition across a large number of distributed servers and databases administrator can
perform several tasks at the same time, such as authorizing and executing a query,
viewing server objects, managing an object, monitoring system activities, and viewing
online help.

SQL Server exposes more than 70 new measures of internal database performance and
resource usage, ranging from memory, locking, and scheduling to transactions and
network and disk I/O. These dynamic management views provide greater transparency
and visibility into the database and a powerful infrastructure for proactive monitoring of
database health and performance. The major characteristics are listed below:

5.4.1.1 Reliability

Achieve a more secure deployment. SQL Server provides rich security features to
protect data and network resources.

5.4.1.2 Confidentiality

Protect your data. SQL Server clustering supports Kerberos authentication on a virtual
Server and Microsoft-style policies on standard logins so that a consistent policy is
applied across all accounts in the domain.

5.4.1.3 Integrity

SQL Server supports encryption capabilities within the database itself, fully integrated
with a key management infrastructure. By default, client-server communications are
encrypted.

5.5 Agile Modal


The Agile model, often referred to as Agile methodology or Agile framework, is a set of
principles and practices used in software development to promote flexibility,
collaboration, and rapid delivery of high-quality software. Agile methods emphasize
iterative and incremental development, where software is built in small, manageable
increments that are continually refined based on feedback from stakeholders. The Agile
approach contrasts with traditional Waterfall methodologies, which involve sequential
phases of development.

Here's an explanation of the Agile model and its key principles:


5.5.1. Iterative and Incremental Development:

Agile projects are broken down into small increments or iterations, each of which
delivers a portion of the final product's features. These iterations are typically
time-boxed, with a fixed duration, such as two weeks (Scrum) or a month (Kanban).

5.5.2. Customer-Centric:

Agile focuses on delivering value to the customer early and often. Customer feedback is
actively sought and used to shape the project's direction.

5.5.3. Collaboration:

Agile emphasizes collaboration among cross-functional teams. Team members


from different disciplines (developers, designers, testers, etc.) work closely together
throughout the project.

5.5.4. Embracing Change:

Agile embraces change as a natural part of the development process. Requirements can
change, and agile methodologies are designed to adapt quickly to those changes.

5.5.5. Prioritization:

Work is prioritized based on customer value and business priorities. High-


priority features are tackled first.

5.5.6. Continuous Testing:

Agile encourages continuous testing throughout the development process to ensure that
the product meets quality standards.

5.5.7. Transparency:

Progress and work status are visible to the entire team. Agile often uses tools like
Kanban boards or burn-down charts to track work and make it transparent.

Common Agile Methodologies:


Scrum:

In Scrum, work is organized into time-boxed iterations called "sprints." Sprints are
typically 2-4 weeks long. Scrum teams have well-defined roles (Scrum Master, Product
Owner, and Development Team) and ceremonies (Daily Standup, Sprint Planning,
Sprint Review, and Sprint Retrospective).
Kanban:

Kanban is a visual workflow management system that doesn't have fixed


iterations. Work items are represented as cards on a Kanban board and move
through different stages of the workflow as capacity allows.

Extreme Programming (XP):

XP is focused on engineering practices. It emphasizes pair programming, test-


driven development, continuous integration, and frequent releases.

Lean:

Lean principles are often applied within agile methodologies. It emphasizes minimizing
waste and maximizing value delivery.

Benefits of Agile:
Faster Time to Market: Agile allows for quicker releases of product increments,
enabling organizations to respond to changing market conditions faster.
Improved Quality: Continuous testing and feedback help maintain a high level of
product quality.
Enhanced Flexibility: Agile can accommodate changing requirements and priorities.
Greater Customer Satisfaction: Customer involvement throughout the project ensures
the delivered product aligns with customer needs.
Better Risk Management: Frequent inspections and adaptations help identify and
mitigate risks early.
Agile is widely adopted in software development, but its principles have found
applications in various industries beyond IT, including marketing, manufacturing, and
healthcare. However, successful agile implementation requires a shift in mindset and
a commitment to the agile values and principles by the entire organization.

5.6 Dashboard of Food Ordering System


A dashboard is a visual display of all of your data. While it can be used in all kinds of
different ways, its primary intention is to provide information at a glance, such as
APIs. A dashboard usually sits on its own page and receives information from a linked
database. Food Ordering System components are given below.

● Home
● Products
● Orders
● Menus
● User Details
● Login / Logout
5.6.1 Login and Register

From this view user can log into the website then he/she can order the desired or favorite
food. If he doesn’t have an account he also has an option to register himself.

5.6.2 Home or Landing Page

After Logging into the site user can order the food and can also visit the whole
accessible to-cart menu.
5.6.3 Add Products Manually

Admin can add products to the store or restaurant. Users can buy or order any favorite
products

5.6.4 Place Orders


Placing an order in a food-ordering restaurant system involves a series of steps that
customers follow to select items from the menu, customize their order, and submit it for
processing. Here's a basic outline of how the process works:

● Access the System


● Browse the Menu
● Select Items
● Customize Options:
● View Cart:
● Edit or Remove Items:
● Review and Confirm:
● Provide Delivery/Pickup Information:
● Payment:
● Submit Order:
● Delivery or Pickup
● Notifying Customer:
● Enjoy the Meal

Modern food ordering systems often offer additional features such as loyalty programs,
order history, real-time tracking, and customer reviews. The process can vary
depending on the specific restaurant and the technology they use, but the above steps
generally encompass the core elements of placing an order in a food-ordering restaurant
system.

5.6.6 FAQ Section


Certainly, creating a FAQ (Frequently Asked Questions) section for a restaurant's
website or menu can be helpful for customers to find information quickly. Here's
an example of a FAQ section for a food restaurant:
1. What is [Restaurant Name]

[Restaurant Name] is a [type of cuisine] restaurant that offers a diverse and delicious
menu featuring a blend of traditional and modern dishes.

2. Where is [Restaurant Name] located?

We are located at [Address], [City]. You can find detailed directions on our
Contact page.

3. Do I need to make a reservation?

While walk-ins are always welcome, we recommend making a reservation to ensure we


can accommodate you at your preferred time. You can easily make a reservation
through our website or by calling [Phone Number].

4. What type of cuisine do you serve?

We specialize in [type of cuisine], offering a wide range of dishes to cater to


various tastes and preferences.

5. Are there vegetarian/vegan options available?

Yes, we have a selection of delicious vegetarian and vegan dishes on our menu. Just
look for the symbols next to the dish names.

6. Is there parking available?

We provide complimentary parking for our guests in the [Parking Area Name],
located [details about parking location].

7. Can I host private events or parties at your restaurant?

Absolutely! We have a dedicated events team that can help you plan and host private
gatherings, parties, and special occasions. Visit our Events page for more
information.

8. What are your operating hours?

We are open [Days of the week] from [Opening Time] to [Closing Time]. Please note
that our hours might vary on holidays, so be sure to check our website for any updates.

9. Do you offer takeout or delivery?

Yes, we offer both takeout and delivery services. You can place an order directly
through our website or by calling [Phone Number].
5.6.7 About Us
At [Restaurant Name], we believe that food is more than sustenance; it's an art form that
connects us to our roots and to each other. Our culinary philosophy revolves around
using the finest and freshest ingredients to craft dishes that honor tradition while
embracing innovation.
5.6.8 Admin Panel to Store Data

phpMyAdmin is a popular web-based application used to manage and interact with


MySQL databases. It provides a user-friendly interface that allows you to perform
various database-related tasks without needing to use the command line. Here's a basic
overview of how to use phpMyAdmin:

1. Accessing phpMyAdmin:

Open a web browser. Type the URL of your phpMyAdmin installation in the address
bar. This is usually something like `http://localhost/phpmyadmin` if you're running
it locally. Replace `localhost` with your server's domain name if it's hosted remotely.

2. Logging In:

You'll be prompted to enter your MySQL database username and password to log
in. These credentials are set up when you install MySQL.

3. Selecting a Database:

After logging in, you'll see a list of databases on the left side. Click on the database you
want to work with.
4. Navigation Tabs:

phpMyAdmin's main interface is divided into several navigation tabs, such as Structure,
SQL, Search, etc. These tabs allow you to perform different tasks.

5. Browsing Data:

In the "Browse" tab, you can view the contents of a table in your selected database.
You can sort, filter, and search for specific data.

6. Editing Data:

In the "Browse" tab, you can also edit, add, or delete data rows. Simply click the "Edit"
button for the row you want to modify.

7. Creating Tables:

In the "Structure" tab, you can create new tables, and define their columns (fields), data
types, and more.

8. Running SQL Queries:

In the "SQL" tab, you can execute SQL queries directly. This is useful for
performing complex tasks that might not be available through the graphical interface.

9. Importing and Exporting Data:

You can import and export database content using the "Import" and "Export" tabs.
This is useful for backing up your data or transferring it to another server.

10. User Management:

Depending on your privileges, you might be able to manage users and their permissions
using the "Users" tab.

11. Settings and Configuration:

phpMyAdmin allows you to configure various settings and preferences to customize


your experience. You can access these options through the "Settings" tab.

12. Logging Out:

Once you're done working with phpMyAdmin, it's important to log out for security
reasons. You can usually find the "Log Out" button somewhere in the interface.

Remember that phpMyAdmin is a powerful tool that can directly manipulate your
database. Be cautious when making changes, especially if you're not familiar with
databases, as incorrect operations can lead to data loss or corruption. It's a good practice
to back up your database before making major changes.

5.6.9 Blade System in PHP Laravel


Blade is the templating engine used in the Laravel framework, a popular PHP web
application framework. Blade provides a simple and powerful way to write dynamic
views in Laravel applications. It's designed to make it easier to work with HTML while
incorporating PHP code seamlessly.

5.6.10 Version Control


Version Control for Food Order Website

5.6.10.1. Definition:

Version control, also known as source control or revision control, is the practice of
tracking and managing changes to files over time. It involves the use of version control
systems (VCS) to keep a record of changes, collaborate with multiple team members,
and maintain different versions of the project's assets.

5.6.10.2. Benefits:

Using version control for your food order website offers several benefits:

Collaboration: Multiple developers can work on the same project simultaneously without
interfering with each other's work.

History Tracking: Every change made to the project is recorded, allowing you to
review the history of edits, understand what was changed, and who made the changes.

Revert Changes: If a mistake is made or a feature doesn't work as expected, you can
easily revert to a previous version of the code.

Branching and Merging: Version control systems allow you to create branches for
different features or fixes. You can work on these branches independently and
merge them back into the main codebase when ready.

Conflict Resolution: If multiple developers modify the same file, the version control
system helps resolve conflicts that arise during merging.

Backup and Recovery: VCS acts as a form of backup, ensuring that your project's
history and code are stored safely, even if something goes wrong locally.
5.6.10.3. Version Control System Options:

There are two main types of version control systems: centralized and distributed.

Centralized Version Control System (CVCS): In a CVCS, there is a central repository


that holds all the versions of the files. Developers check out files to work on them and
then check them back in when done. Examples include Subversion (SVN) and Perforce.

Distributed Version Control System (DVCS): In a DVCS, every developer has their
own copy of the repository, including its entire history. This provides more flexibility
and better support for distributed and remote teams. Examples include Git and
Mercurial.

5.6.10.4. Version Control Workflow for a Food Order Website:

In the context of a food order website project, the version control workflow might
include the following steps:

Clone: Start by cloning the repository to your local machine.

Create Branch: Create a new branch for the specific feature or bug fix you're working
on.

Work: Make changes to the code, design, or other assets related to the food
ordering website.

Commit: Regularly commit your changes to the local branch, including meaningful
commit messages.

Pull Request (PR): If using a DVCS like Git, create a pull request to merge your
changes into the main branch. This allows other team members to review your code and
provide feedback.

Review: Team members review the code changes, suggest improvements, and
ensure quality.

Merge: After the code review and necessary changes, the changes are merged into
the main branch.

Deployment: The updated version of the website can then be deployed to the production
server.
5.6.10.5. Version Control Tools:

Git: Git is the most widely used distributed version control system. It's highly
efficient, supports branching and merging, and integrates well with various online
platforms like GitHub, GitLab, and Bitbucket.

GitHub, GitLab, Bitbucket: These platforms provide hosting for Git repositories and
additional collaboration features like issue tracking, code reviews, and continuous
integration.

5.6.10.6. Food Order Website Use Case:

For a food order website, version control would manage changes to the source
code, front-end and back-end assets, database schema changes, design elements,
and even content. This ensures that any changes to the website are well-
documented, can be tracked, and are easy to revert if needed.

In conclusion, implementing version control is crucial for a food order website as it


streamlines collaboration, enhances code quality, and ensures that your website's
development process is well-organized and efficient. It's a fundamental practice for any
modern software development project, including web applications like food order
websites.
Chapter
6
TESTING AND EVALUATION

6.1 Manual Testing

Manual testing is a software testing technique where testers manually execute test cases
without using any automation tools or scripts. It involves human intervention to ensure
that a software application or system is functioning correctly and meets its requirements.
Manual testing is often performed to identify issues, bugs, and usability problems that
might not be caught through automated testing.

6.1.1 System Testing


In system testing, the whole application is analyzed to check if it is behaving according
to the requirements. It also helps in finding hidden errors. After applying unit testing,
functional testing, and integration testing successfully we can say the project Virtual
Tutor World is built as intended.

6.1.2 Unit Testing


Login as end-user Objective: To ensure the login page works.

Table 6.1: Unit Testing

Result
Test Case/
No. Attributes & Values Expected Result
Test Script

1. Login as Pass
end-user The User will be able to The user will log in
logged-in and use email, successfully and be
role, and password able to use the
credentials if not have any features that require
account logged in first. login.
2. Adding Name of the Contact and Pass
contacts as Contact Number
The user will be
end-user
able to add the
contact by typing
the name and
contact number
Successfully.

6.2 Functional Testing

6.2.1 Functional Testing 1: Check the working of the Request to tutor


as (Student) end-user.

Objective: To ensure that the button is working fine and as intended.

6.2.2 Functional Testing 2: Check the working of the Admin Panel as an

Objective: To ensure that the Admin Panel is working.

Table 6.2: Integration Testing

Test Case/
No. Attributes & Values Expected Result Result
Test Script

1. Needs the student One the click of a Pass


Check the subject, time, and button request will be
(work as
working of the price. sent to the tutor.
intended)
Request Button
as an end-user.

2. Check the Login Credentials Admin should be Pass


working of the (Username &
logged in
Admin Panel Password)
as a supervisor successfully and add
the courses against
categories, approve
tutor as well and
manage feedback of

student.
6.3 Integration Testing
Integration Testing 1: Check the working of the Zoom API

Objective: To ensure the proper integration of the project with the API.

Table 6.3: Integration Testing

Test Case/
No. Attributes & Values Expected Result Result
Test
Script

1. Check the For a user-level, The API integrated Pass


working of OAuth app to get with the system
successful users will
ZOOM API for details about a able to video and
online meetings specific user, the app screen sharing.
must have user: read
scope
Chapter 7

CONCLUSION AND FUTURE WORK


Conclusions and Future Work Conclusion:

7.1 Conclusions
The main objective of the application is to help Computer Science students understand
the basics of Java, JavaScript, and HTML. The following results have been achieved
after completing the system and relate back to the system’s objective.
• Should allow Computer Science students to browse through the code and
application: This can be achieved when students are able to run and install
the application. When they run the application, they can browse through the
implementation of different objects.
• Should allow users to browse through different product categories: This
is achieved through easy-to-use graphical interface menu options.
• Should allow users to save items to the cart and view detailed information
about the order: The users can add any number of items to the cart from any of
the available food categories by simply clicking the Add to Cart button for each
item. Once an item is added to the cart, a user is presented with a detailed order
to review or continue shopping. • Should allow the user to check out the
item(s): This is achieved using the “Proceed to checkout button” in the cart
initially and then the “Checkout” button at the last step after the “Review
Order” step. The button is disabled when there are no items in the cart.
• Should allow the user to process the payment: This is achieved when the user
selects the “Processed to Checkout” button and fills in the Payment
information details.
• Should allow the user to see a Success message after placing an order: This is
achieved when the user successfully places an order. The user is given the
order confirmation number along with a success message.

7.2 Future Work:

▪ Customize orders: Allow customers to customize food orders

▪ Enhance User Interface by adding more user interactive features. Provide


Deals and promotional Offer details to the home page.
Provide Recipes of the Week/Day to Home Page

▪ The following section describes the work that will be implemented with
future releases of the software.
▪ Payment Options: Add different payment options such as PayPal, Cash, Gift
Cards, etc. Allow to save payment details for future use.

▪ Allow to process an order as a Guest

▪ Delivery Options: Add delivery option

▪ Order Process Estimate: Provide customer a visual graphical order status bar ▪

Status: Show only Active orders to Restaurant Employees.

▪ Order Ready notification: Send an Order Ready notification to the customer

▪ Restaurant Locator: Allow to find and choose a nearby restaurant

▪ Integrate with In-store touch screen devices like iPad

REFERENCES
https://itsourcecode.com/uml/use-case-diagram-for-online-food-ordering-system/
https://codebun.com/uml-diagram-for-online-food-delivery-system-project/
https://htmlburger.com/blog/food-app-design/
https://www.academia.edu/33253493/An_Online_Food_Ordering_System_System_Doc
umentation

https://www.researchgate.net/publication/367179633_ONLINE_FOOD_ORDERING_S
YSTEM

https://scholarworks.gvsu.edu/cgi/viewcontent.cgi?referer=&httpsredir=1&article=1222
&context=cistechlib
https://getbootstrap.com/

http://ijariie.com/AdminUploadPdf/Online_Food_Ordering_System_ijariie14630.pdf
https://www.slideshare.net/RohanRajMudvari/online-food-ordering-system-presentation

THE END

You might also like