Food Ordering
Food Ordering
Food Ordering
ORDERING
MINI PROJECT – II
Submitted by
ANNAPOORANI C
Roll No:727622MCA027
JUNE-2023
1
Dr. MAHALINGAM COLLEGE OF ENGINEERING
AND TECHNOLOGY POLLACHI-642 003
Department of Computer Applications (MCA)
MINI PROJECT -II REPORT
JUNE-2023
This is to certify that the project entitled
Restaurants Food Ordering
Is the bonafide record of project work done by
C.ANNAPOORANI
Roll No:727622MCA027
Of Master of Computer Applications during the year 2022-2023
2
DECLARATION
3
DECLARATION
I affirm that the project work titled “RESTAURANTS FOOD ORDERING” being
submitted in partial fulfilment for the award of Mater of Computer Applications is the
original work carried out by me. It has not formed the part of any other project work
submitted for award of any degree or diploma, either in this or any other university.
4
ACKNOWLEDGEMENT
5
ACKNOWLEDGEMENT
Last but not the least, I would like to thank my family and my friends for putting up
with me spending so much time providing encouragement and valuable suggestions,
throughout the project tenure.
6
ABSTRACT
7
ABSTRACT
Restaurants Food Ordering Portal built using angular without user login are a popular
way for customers to shop online without the need for a login or account. These portals
provide an easy and efficient way for customers to browse, select, and order the foods
online. The Food ordering system sets up a food menu online and Customers can easily
place the order as per their wish. Also With a food menu, customers can easily track the
orders. This System also provides a feedback system in which user can rate the food items.
Customers can browse the available menu items on the website. Once a customer has found
the desired item, they can select it and add it to their cart. To proceed with the order,
customers are prompted to enter their delivery address and other required information.
Customers can then enter their payment information, such as credit card details or mobile
payment options, to complete the purchase .After reviewing the order details and ensuring all
information is accurate, customers can place the order. Customers receive an order
confirmation, which includes the estimated delivery time and other relevant details
.
8
TABLE OF CONTENTS
9
TABLE OF CONTENTS
ABSTRACT 8
LIST OF FIGURES 13
LIST OF ABBREVATIONS 15
1 INTODUNCTION 16
1.1 Objectives 17
2 SYSTEM ANALYSIS 18
10
5.2 Overview of the Project 31
5.3 Module Description 32
5.3.1 Modules
11
LIST OF FIGURES
12
LIST OF FIGURES
13
LIST OF ABBREVATIONS
14
LIST OF ABBREVATIONS
DESCRIPTION ABBREVATION
ER Entity Relationship
JS JavaScript
15
INTRODUCTION
16
CHAPTER 1
INTRODUCTION
The Food Ordering in ANGULAR project for ordering the products. The project
contains admin side. The admin has to manage to add variety of foods. The admin has an
important role in the management of the system.
The admin can go through all the products, customer details and payments. This
project is a simple project that makes a convenient way for customers to order the foods
through online. The Food Ordering is in Angular and MYSQL. The admin can view the
customer order details and delivery the foods to the customers.
Food Ordering portal built using Angular with user login provides a convenient and
accessible way for users to purchase products online. Users can view food details, such as
price, description, and quality. Users can add foods to their cart and review the foods in their
cart. Once users have selected the products they wish to purchase, they can proceed to the
checkout page to place their order. The primary objective of the online food ordering is to
generate sales and increase revenue for providing a platform for customers to purchase foods
or services online. Aims to build long-term relationships with customers and faster brand
loyalty. This can be achieved by offering personalized recommendations, loyalty programs,
exclusive discounts, and excellent customer service.
17
SYSTEM ANALYSIS
18
CHAPTER -2
SYSTEM ANALYSIS
2.1 Existing System
All work done manually, processing the customer orders was not easy to perform
manually. The Customer is completely depending on the manual process for buying the
foods. Manual process is a time consuming factor. And when customer approaches for a
manual shopping directly, actually he/she does not have an idea about things like, price
range, items, etc., The time which has been spent by the customer in manual shopping can
equates to multiple number of shopping. As customer can sit at home and browse in a
fraction of seconds.
The purpose of Food ordering is to save time, save money. Through online ordering
one can save his valuable time. One can watch and select things he/she wants to order.
Through online ordering we can save our money because prices are less than market
prices and receive our orders at our home. No need to go anywhere. We can get different
varieties of foods online and we can choose which one we want.
The restaurant’s owner will be admin of the system. Shop owner can appoint
moderators who will help owner in managing the customers and food orders. The system
also recommends a home delivery system for the ordered foods.
2.2.1 Advantages of the proposed system
This system majorly solved the congestion, collision and save time during
ordering activities.
Can be easily used for customers.
19
2.3 Feasibility Study
Feasibility study is made to see if the project on completion will serve the purpose of
the organization for the amount of work, effort and the time that spends on it. Feasibility
study lets the developer for see the future of the project and the usefulness. A feasibility study
of a system proposal is according to its workability, which is the impact on the organization,
ability to meet the user needs and effective use of resources.
Operational Feasibility
Technical Feasibility
The aspects of study are to check the level of acceptance of the system by the user.
This includes the process of training the user to use the system efficiently. The user must not
feel threatened by the system, instead must accept it as a necessity. The level of acceptance
by the user solely depends on the methods that are employed to educate the user about the
system and to make them familiar with it.
20
2.3.2 Technical Feasibility
The system must be evaluated from the technical point of view first. The assessment
of this feasibility must be based on an outline design of the system requirement in the terms
input, output, program and procedures having identified an outline-systems, the investigation
must go on to suggest the type of equipment required method developing the system of
running the system once it has been designed.
21
SYSTEM SPECIFICATION
22
CHAPTER 3
SYSTEM SPECIFICATION
Ram : 4.00GB
23
SOFTWARE DESCRIPTION
24
CHAPTER 4
SOFTWARE DESCRIPTION
Hypertext Mark-up Language (HTML) is the standard mark-up language for creating
web pages and web applications. Web browsers receive HTML documents from a webserver
or from local storage and render them into multimedia web pages. HTML describes the
structure of a web page semantically and originally included cues for the appearance of the
document. Web browsers receive HTML documents from a webserver or from local storage
and render them into multimedia web pages. HTML describes the structure of a web page
semantically and originally included cues for the appearance of the document.
CSS
Cascading Style Sheet (CSS) is a style language used for describing the presentation
of a document written in a mark-up language. Although most often used to set the visual style
of web pages and user interfaces written in HTML, the language can be applied to any XML
document, including plain XML, SVG and XUL, and is applicable to rendering in speech, or
on other media. Along with HTML and JavaScript, CSS is a cornerstone technology used by,
most websites to create visually engaging web pages, user interfaces for web applications,
and user interfaces for many mobile applications. CSS is designed primarily to enable the
separation of presentation and content, including aspects such as the layout, colors and fonts.
The separation can improve content accessibility, provide more flexibility and control in the
specification of Presentation characteristics enables multiple HTML pages to share
formatting by specifying the relevant CSS in a separate. CSS file and reduce complexity and
repetition in the structural content.
25
4.2 Front End-Angular
Angular is used as a front-end web tool and can work in conjunction with PHP,
Node.js, Struts of Java, and has the ability for near-instant rendering using only CSS and
HTML. It optimizes the web application for improved SEO. Angular provides its
applications with the ability to load faster with new component routers and single page
application (SPA) support. Creating templates in Angular is also done with highly
customized code. This framework also provides testing (Jasmine and Karma for unit
testing), accessibility, automation, and supports full-stack development with Express JS,
Node.JS, and MongoDB.
26
4.3 Typescript
TypeScript supports definition files that can contain type information of existing
JavaScript libraries, much like C++ header files can describe the structure of existing object
files. This enables other programs to use the values defined in the files as if they were
statically typed TypeScript entities. There are third-party header files for popular libraries
such as jQuery, MongoDB, and D3.js. TypeScript headers for the Node.js library modules
are also available, allowing development of Node.js programs within TypeScript.
TypeScript is superior to its other counterparts like Coffee Script and Dart programming
languages in a way that TypeScript is extended JavaScript. In contrast, languages like Dart,
coffee Script are new languages in themselves and require language-specific execution
environment TypeScript starts with JavaScript and ends with JavaScript. Typescript adopts
the basic building blocks of your program from JavaScript. Hence, you only need to know
JavaScript to use TypeScript. All TypeScript code is converted into its JavaScript equivalent
for the purpose of execution
27
4.4 JavaScript
28
4.5 MYSQL
Database are a great way to store information they can store your personal contact list,
your financial records, your household inventory, or even a listing of your favorite websites.
Databases are able to store large amounts of useful information in a logical structure that
allows for quick retrieval in any user defined format. Community libraries are renowned for
their use of large database system to store the mass amounts of usable information that they
collect and share.
Database also play a major role in today’s web applications by storing complete
inventories of products and services and making these accessible through a programmed web
front-end. A database has the ability to provide dynamic content to a web shop by providing
the content to web pages.
29
PROJECT DESCRIPTION
30
CHAPTER 5
PROJECT DESCRIPTION
The Customer is completely depending on the manual process for ordering the foods.
Manual process is a time-consuming factor. And when customer approaches for a manual
ordering directly, actually he/she does not have an idea about things like, price range, items
quantity, etc., The time which has been spent by the customer in manual ordering can equates
to multiple number of ordering. As customer can sit at home and browse in a fraction of
seconds.
This system involves its own database to be maintained. As the information or details
about the foods are stored in the database for the server-side functionalities. The Server
process is for dealing with the customer’s detail and the items that are shipped to different
locations based on the addresses provided by the customers. The application design contains
two modules one is for the customers who wish to buy the products. And another is for the
admin who maintain and updates the information regarding the food and about the
customers.
Food Ordering Portal users which want to order some foods will first choose a food
and then select items which they want to order and add them to cart and finally checkout by
giving payment details. So by using this portal users can easily order foods from their
home.
31
5.3 Module Description
5.3.1 Modules
Admin Login
Dashboard
Add food details
Customer View food details
Search food
Add food to cart
Admin Login:
This module maintains the admin login details. This module helps only the authorized users
to log in to the application. They are given unique username and password.
Dashboard:
In this field, admin can briefly view the number of foods list, Customer details and Ordering
details.
In this field the admin can add the foods like food name, food quantity, food quality are all
stored in database.
In this field the customer can view the food details and can choose the foods added to cart
and order the food.
In this field the customer added the foods to cart and order the foods.
32
5.4 System Design
5.4.1 Dataflow
Diagram Level - 0;
Level – 1;
User
Online Shopping Portal
Enter the
name
33
View Foods
5.4.2 System Flow Diagram
Admin
Food ordering
34
5.4.3 UML Diagram
Add foods
Choose
Foods
Add to Cart
Admin Users
Ordered
Foods
35
5.4.4 ER Diagram
Restaurant_ Details
Contact_no
name
Address Email_id
Restaurant
Register
Belong Belong
to Food to
Food Details
name
Customer
name Total
Price
Orders
Total Ord Category
Cate_id
Cus_id Food Qut
Cate_name
36
5.4.5 Database Design
37
Table name : order
Description : This table is to store the order details
38
5.5 Input Design
Input design is the link that ties the information system into the world of its users. The
input design involves determining the inputs, validating the data, minimizing the data entry
and provides a multi-user facility. Inaccurate inputs are the most common cause errors in data
processing. Errors entered by the data entry operators can be controlled by input design.
The user-originated inputs are converted to Computer based format in the input
design. Input data are collected and organized into groups of similar data. Once identified, the
appropriate input media are selected for processing. All the input data are validated and if any
data violates any conditions, the user is warned by a message. If the data satisfies all the
conditions, it is transferred to the appropriate tables in the database.
Computer output is the most important and direct source of information the user.
Output design is a very important phase since the output needs to be in efficient manner.
Efficient and intelligible output design improves the system relationship with the user and
helps decision making.
Allowing the user to view the sample screen is important because the user is the
ultimate judge of the quality of output. The output module of this system is selected
notifications.
39
SYSTEM TESTING
40
CHAPTER 6
SYSTEM TESTING
Unit Testing
Integration Testing
Functional Testing
Unit testing is usually conducted as part of a combined code and unit test phase of the
software lifecycle, although it is not uncommon for coding and unit testing to be conducted as
two distinct phases. Field testing will be performed manually and functional tests will be
written in detail.
41
6.1.2 Integration Testing
Functional tests provide systematic demonstrations that functions tested are available
as specified by the business and technical requirements, system documentation, and user
manuals.
42
6.2 Test Cases:
Test Case Test Case Test Test Case Expected Actual Test Case
Id Name Purpose Condition Result Result Result
43
Test Test Test Test Case Expected Actual Result Test
Case Case Purpose Condition Result Case
Id Name Result
44
SYSTEM IMPLEMENTATION
45
CHAPTER 7
SYSTEM IMPLEMEANTATAION
System implementation is the process of defining how the information system should
be build, ensuring that the information system is operational and used , ensuring that the
information system meets quality standard.
The implementation of the Power Distribution System can be done by the following steps:
I Server:
Step 2: Login with the proper username, password and server name
Step 7: Whenever need to use the connection have to create new connection and record set.
Step 8: Whenever need to use the connection and record set can open and close the
connection.
II Client:
47
CONCLUSION AND FUTURE ENHANCEMENT
48
CHAPTER 8
8.1 Conclusion
It has been a great pleasure for me to work on this exciting and challenging project.
This project proved good for me as it provided practical knowledge of not only programming
in HTML, CSS and ANGULAR web-based application and no some extent Windows
Application and SQL Server, but also about all handling procedure related with “Food
Ordering”. It also provides knowledge about the latest technology used in developing web
enabled application and client server technology that will be great demand in future. This will
provide better opportunities and guidance in future in developing projects independently.
The current system can be extended to allow the users to create accounts and save
foods in to wish list. The users could subscribe for price alerts which would enable them to
receive messages when price for foods fall below a particular level. The current system is
confined only to the ordering cart process. It can be extended to have an easy to use check out
process. Users can have multiple shipping and billing information saved. During checkout
they can use the drag and drop feature to select shipping and billing information.
49
APPENDICES
50
CHAPTER 9
APPENDICES
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OrderMyFood</title>
<base href="/">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Dosis&display=swap"
rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500&display=swap"
rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>
<body class="mat-typography">
<app-root></app-root>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@10"></script>
</body>
</html>
<div class="cart-item" *ngFor="let cartItem of cartItems">
<h4>{{cartItem.name}}</h4>
<div class="price-input">
<button mat-mini-fab color="accent" (click)="removeQuantity(cartItem)">
<mat-icon>remove</mat-icon>
</button>
51
<mat-form-field class="quantity-form-field">
<mat-label>Quantity</mat-label>
<input matInput type="text" [(ngModel)]="cartItem.quantity">
</mat-form-field>
<button mat-mini-fab color="accent" (click)="addQuantity(cartItem)">
<mat-icon>add</mat-icon>
</button>
</div>
<button mat-raised-button color="warn" class="remove-menu"
(click)="removeItem(cartItem)">
Remove Item
</button>
</div>
<mat-form-field appearance="fill">
<mat-label>Sort By</mat-label>
<mat-select [(value)]="selectedValue">
<mat-option [value]="sort.value" *ngFor="let sort of sortOptions"
(click)="sortHotels(selectedValue)">
{{sort.viewValue}}
</mat-option>
</mat-select>
</mat-form-field>
<app-nav-bar [userName]="userName"></app-nav-bar>
<div class="hotel-container">
<div class="menu-bar">
<h3 class="tagline">Choose your favourite one</h3>
<div class="filters">
<app-search-bar (searchQueryEvent)="searchQuery($event)"></app-search-bar>
<app-dropdown [selectedValue]="selectedValue" [sortOptions]="sortOptions"
(sortEvent)="sortHotels($event)"></app-dropdown>
</div>
</div>
52
<div class="hotel-cards" [class]="{'empty-search': !hotels.length}" *ngIf="!hotels.length">
<div class="empty-hotel">
<mat-spinner *ngIf="!hotelsConstant.length"></mat-spinner>
<h3 *ngIf="hotelsConstant.length">
No Hotels found!
</h3>
</div>
</div>
<div class="hotel-cards">
<div *ngFor="let hotel of hotels" class="hotel">
<app-hotel-card [hotelName]="hotel.name" [hotelThumbnail]="hotel.thumbnail_image"
[hotelImage]="hotel.feature_image"
[cuisines]="hotel.cuisines" [rating]="hotel.rating" [review]="hotel.reviews"
(click)="goToHotel(hotel)" ></app-hotel-card>
</div>
</div>
</div> <mat-card>
<mat-card-header>
<div mat-card-avatar [ngStyle]="{'background-image': 'url(' + hotelThumbnail +
')'}"></div>
<mat-card-title title="{{hotelName}}">{{hotelName}}</mat-card-title>
<mat-card-subtitle title="{{cuisines}}">{{cuisines}}</mat-card-subtitle>
</mat-card-header>
<img mat-card-image width="400" height="300" src="{{hotelThumbnail}}" alt="Hotel
{{hotelName}}">
<mat-card-content>
<p>Rating: <span class="rating-star">{{'★'.repeat(math.round(rating))}}</span></p>
<p>Review: {{review}}</p>
</mat-card-content>
<mat-card-actions>
<button mat-raised-button color="warn">Order Now</button>
</mat-card-actions>
53
</mat-card> <div class="menus-container">
<h3 class="menu-header">Order Now</h3>
<mat-card class="menu" *ngFor="let menu of hotel.menu">
<mat-card-header>
<mat-card-title>{{menu.name}}</mat-card-title>
</mat-card-header>
<mat-card-content>
<p>
{{menu.desc}}
</p>
</mat-card-content>
<mat-card-actions>
<span>{{'\u20B9'}} {{menu.price}}</span>
<button mat-raised-button class="order" (click)="addToMyCart(menu)">
Add to Cart
</button>
</mat-card-actions>
</mat-card>
</div> <mat-form-field>
<mat-label>Search</mat-label>
<input matInput type="text" [(ngModel)]="hotelSearch"
(ngModelChange)="searchQuery($event)" autocomplete="off">
<button mat-button *ngIf="hotelSearch" matSuffix mat-icon-button aria-label="Clear"
(click)="clearSearch()">
<mat-icon>close</mat-icon>
</button>
</mat-form-field> <div class="navbar-container">
<img src="/assets/logo.png" class="logo" (click)="goToHome()">
<div class="user-profile" *ngIf="userName">
<p class="greetings">Hello, {{userName}}</p>
<ngx-avatar name="{{userName}}" textSizeRatio="2.5" bgColor="#f5f5f5"
fgColor="#9c27b0"></ngx-avatar>
</div>
</div>
54
<mat-form-field appearance="fill">
<mat-label>Sort By</mat-label>
<mat-select [(value)]="selectedValue">
<mat-option [value]="sort.value" *ngFor="let sort of sortOptions" (click)="sortHotels(selectedValue)">
{{sort.viewValue}}
</mat-option>
</mat-select>
</mat-form-field></div> <mat-form-field>
<mat-label>Search</mat-label>
<input matInput type="text" [(ngModel)]="hotelSearch"
(ngModelChange)="searchQuery($event)" autocomplete="off">
<button mat-button *ngIf="hotelSearch" matSuffix mat-icon-button aria-label="Clear"
(click)="clearSearch()">
<mat-icon>close</mat-icon>
</button>
</mat-form-field> <div class="navbar-container">
<img src="/assets/logo.png" class="logo" (click)="goToHome()">
<div class="user-profile" *ngIf="userName">
<p class="greetings">Hello, {{userName}}</p>
<ngx-avatar name="{{userName}}" textSizeRatio="2.5" bgColor="#f5f5f5"
fgColor="#9c27b0"></ngx-avatar>
</div>
</div>
55
9.2 Screenshot
56
Figure:9.2.3 Sort by Review or rating
57
Figure:9.2.5 Food Added to Cart
58
Figure:9.2.7 Notification Page
59
REFERENCE
REFERENCE
BOOK REFERENCES
1) Shyam Seshadri “Angular: Up and Running: Learning Angular, Step by Step” First
published 2018. ‘O’ Really.
60
2) Doguhan Uluca “Angular for Enterprise Ready Web Applications” First published
Packet Publishing.
WEB REFERENCES
https://angular.io/guide/http
https://www.positronx.io
http://www.bezkoder.com
61