Food Ordering Sytem
Food Ordering Sytem
Submitted by
Supervisor
Mr. Ghulam Ali
<2019 To 2023>
Online Food Ordering System
BACHELOR OF SCIENCE
IN
SSOFTWARE ENGINEERING
BY
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:
Internal Examiner 2:
Project Coordinator:
HOD/Chairperson
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.
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.
“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."
"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.
▪ Create an account.
▪ Manage their account.
▪ Place an order.
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.
▪ 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.
▪ Mark an order as having been processed and remove it from the list of active orders.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
▪ Create an account.
▪ Place an order.
▪ Update additional information (description, photo, etc.) for a given food item.
▪ 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.
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.
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.
We have used Visual Studio 2023, for developing the online Food Ordering System
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.
▪ Buttons
▪ Layouts
▪ Navigation
▪ Images
▪ Graphics
▪ Animations
▪ Content organization
▪ 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 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
▪ Text effects
▪ Selectors
▪ Animations
▪ 2D/3D transformations
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.
5.2.4 BOOTSTRAP
5.3 Back-End
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.
● LARAVEL 8.0
5.3.1 LARAVEL
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.
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.
● 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.
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.
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 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:
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.
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:
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.
● 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.
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
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.
[Restaurant Name] is a [type of cuisine] restaurant that offers a diverse and delicious
menu featuring a blend of traditional and modern dishes.
We are located at [Address], [City]. You can find detailed directions on our
Contact page.
Yes, we have a selection of delicious vegetarian and vegan dishes on our menu. Just
look for the symbols next to the dish names.
We provide complimentary parking for our guests in the [Parking Area Name],
located [details about parking location].
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.
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.
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
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.
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.
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.
Depending on your privileges, you might be able to manage users and their permissions
using the "Users" tab.
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.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.
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.
In the context of a food order website project, the version control workflow might
include the following steps:
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.
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.
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.
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.
Test Case/
No. Attributes & Values Expected Result Result
Test Script
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.
Test Case/
No. Attributes & Values Expected Result Result
Test
Script
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.
▪ 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.
▪ Order Process Estimate: Provide customer a visual graphical order status bar ▪
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