Guwada Internship
Guwada Internship
ID: 0695/09
Summer 2019
Organizational Details
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 scope of business by reducing
the labor cost involved. The system also allows to quickly and easily manage an online menu
which customers can browse and use to place orders with just few clicks. Restaurant employees
then use these orders through an easy to navigate graphical interface for efficient processing.
Table of Contents
1. Introduction .............................................................................................................................................. 1
1.1 Background and Related Work ........................................................................................................... 1
1.1.1Motivation .................................................................................................................................... 1
1.2 Given Tasks by the organization ......................................................................................................... 2
1.2.1 Aim of the Software ..................................................................................................................... 2
1.3 Existing System.................................................................................................................................... 2
1.4 Statement of the Problem .................................................................................................................. 4
1.5 Objectives............................................................................................................................................ 5
2. Methodology ............................................................................................................................................. 9
2.1 System Development Model............................................................................................................... 9
2.2 System Development Techniques ....................................................................................................... 9
3. Proposed Solutions ................................................................................................................................. 10
3.1 Use Case Diagram ............................................................................................................................. 10
Some of the main Use Case Descriptions ............................................................................................... 12
4. Implementation .................................................................................................................................. 19
4.1 Development Tools ........................................................................................................................... 19
4.2 Implementation Progress.................................................................................................................. 19
4.2.1 Activities that have been done .................................................................................................. 19
4.2.1 Activities that have been undone .............................................................................................. 21
5. Conclusions and Recommendations ................................................................................................... 21
6. References .......................................................................................................................................... 22
7. Annexes ................................................................................................................................................... 22
7.1 Essentiality of the studied courses for the practical attachment. .................................................... 22
7.2 Significance of learning gained during the practical attachment. .................................................... 22
7.3 Practical Attachment Challenges ...................................................................................................... 23
1. Introduction
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 the well-established and settled owners. In 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.
Online ordering system that I am proposing here, greatly simplifies the ordering process for both
the customer and the restaurant. System presents an interactive and up-to-date menu with all
available options in an easy to use manner. Customer can choose one or more items to place an
order which will land in the Cart. Customer can view all the order details in the cart before
checking out. At the end, 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.1.1Motivation
The motivation for designing this application came because my family is involved in the fast
food business and I personally do not like waiting for long in the store or to have to call store to
place an order especially during the peak lunch or dinner hours. Moreover, I value recent
learning about the Java’s spring framework 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 JavaScript, React Js Framework, HTML and Java’s Spring framework whereas MongoDb
(NoSql) database at the back-end because I found them to be extremely useful while working on
the technologies.
1
1.2 Given Tasks by the organization
I was given a task to solve a problem that arises around Gotera condo. As we all know, there are
plenty of Restaurants, Hotels, Bars and Cafeterias around the environment, but there is no way
that connects these entities to the residents. So, I was assigned to solve this problem by
implementing a web app that enables kitchens to post their menus and customer’s can add it to
their cart and checkout their order!!
This software is developed to help residents and kitchen owners around Gotera Condo to order
and deliver meal in a minimum amount of time. Further, it gives insight about how GUI (React
js) interacts with server-side language, Java (Spring framework) and finally with the Mongodb
database.
In the present scenario people have to physically visit the hotels or restaurants for eating food,
and have to make payment through cash mode most of the times due to unawareness of advanced
technologies at certain places.
In this method time as well as physical work is required, among which time is something that no
one has in ample amount. The traditional food ordering procedure is not efficient enough for
hotels and restaurant, as they have to deal with crowd, in their restaurant.
The old methods can be classified into categories which are paper grounded and verbal
grounded. For paper based work, the waiter comes and pens down foods that customers order
and pass the food list containing paper to the chefs or cooks in the kitchen for further process.
Also from the owner’s point of view maintaining data record and the accounts in physical file is
cumbersome and tedious work to do. And also it is full of risk as anyone can access it and
modify the data.
This Case study looks at the problem of setting up a fast food restaurant. In existing system there
are few problems:
2
• For placing any orders customers have to visit hotels or restaurants to know about food items
and then place order . In this method time and manual work is required.
• While placing an order over the phone, customer lacks the physical copy of the menu item, lack
of visual confirmation that the order was placed correctly.
• Every restaurant needs certain employees to take the order , to offer a rich
dining experience and process the payment. In today’s market, labor rates are increasing day by
day making it difficult to find employees when needed.
Hence, to solve this issue, what I propose is an “Online Food Order System, originally designed
for small scale business like Cafeterias, Fast Food restaurant or Take-Out, but this system is just
as applicable in any food delivery and beverages industry around Gotera condo .
The main advantage of my system is that it greatly simplifies the ordering process for both the
customer and the restaurant and also greatly lightens the load on the restaurant’s end, as the
entire process of taking orders is automated.
1. This will minimize the number of employees at the back of the counter.
3. The system will be less probable to make mistake, since it’s a machine.
4. This will avoid long queues at the counter due to the speed of execution and number of
optimum screens to accommodate the maximum throughput.
Program Requirements
Outline your solution. Describe the "whats" of your project -- what does it do?
Product Perspective:
The Online Food Order System application is a web-based system. It can be accessed using IE
10.0 and above, Fire Fox 31 and above and Google Chrome.
3
1.4 Statement of the Problem
Nowadays, people are more and more frequent to dine-in at restaurant for their meals.
Especially in Gotera condo. Therefore, it will have a lot of people especially unmarried people
looking for restaurant that they prefer as their meals
such as breakfast, lunch and dinner. At this moment, it arise a lot of troublesome to
restaurants which are still using traditional food order method as their food order process.
The traditional food order and delivery method is not efficient enough for restaurant to
deals with crowded situation in their restaurant. The traditional food order methods can be
classified
into 2 categories which are paper based and verbal base. For paper based food order
method, the waiter will record down foods and addresses that customers order and pass the food
order
paper to the kitchen for further process. This is the method that implement by most of the
restaurants around Gotera condo. In addition, this method still consider efficient if not crowded,
but however it will arise a lot of human errors while restaurants are
crowded of customers such as food serve not in sequence, missing of food order paper,
mistake in record down the food name and etc.
Second, verbal base food order method is even worse than paper base food order method.
Because, verbal base food orders method require employees to remember all the
customers’ food order by relying on their memory and then employees will reach the
food order message to the chef in kitchen physically. Verbal base food order method
contains the weaknesses such as causing the employees unable to memorize all the food
order during the restaurant is crowded of customers and the problems that mentioned
above. Thus, this kind of weaknesses will did a great impact to the restaurants’
profitability.
On the customer side, the customer needs to order his/her meal either over a phone or in person
which leads to more errors and agile customer services.
4
1.5 Objectives
The structure of the system shall be divided into 3 main logical components:
• Web Ordering System- provides the functionality for customers to place their order and supply
necessary details.
• Menu Management-allows the restaurant to control what can be ordered by the customers
• Order Retrieval System-This is a final logical component. Allows restaurant to keep track of all
orders placed. This component takes care of order retrieving and displaying order information.
Product Function:
The Online Food Order System application would have the following basic functions:
This module provides the functionality for customers to place their order and supply necessary
details. Users of the system, namely restaurant customers, must be provided the following
functionality:
• Create an account.
• Rate Restaurant’s
5
• Place an order.
This module provides functionality for Kitchen owners only. It will not be available
to any other users of the system like Customers.
Using a graphical interface, it will allow a Kitchen to manage the menu that is displayed to users
of the
web ordering system:
• Update additional information (description, photo, etc.) for a given food item.
• Delete Orders
Before customers can actually use this system, functionality provided by this component will
have to
be configured first. Once the initial configuration is done, this will be the least likely used
component as menu updates are mostly seasonal and do not occur frequently.
6
The proposed system has the following requirement.
• System needs to help the internal stuff to keep information of item category and find them as
various query.
Implementation Methodolooy.
Model View Controller or MVC as it is popularly called, is a software design pattern for
developing web applications. A Model View Controller pattern is made up of the following three
pads:
• Model - The lowest level of the pattern which is responsible for maintaining data.
• View - This is responsible for displaying all or a portion of the data to the user.
• Controller - Software Code that controls the interactions between the Model and View.
MVC is popular as it isolates the application logic from the user interface layer and supports
separation of concerns. Here the Controller receives all requests for the application and then
works with the Model to prepare any data needed by the View. The View then uses the data
prepared by the Controller to generate a final presentable response.
7
Order Retrieval System Module
This is the most simplest module out of all 3 modules. It is designed to be used only by
restaurant
employees, and provides the following functions:
Implementation
Hardware/Software Interface:
This section lists the minimum hardware and software requirements needed to run the system
efficiently.
Hardware Interface:
• Pentium Processor
• 128 MB of RAM
Software Interface:
Activity Diagram:
This section lists the activity diagram and describes the flow of the activities in the system. A
detailed description is then given after the figure for each activity. Figure # 3 provides the
overview of the activity of the Online Food Order System application.
8
2. Methodology
Since, The system is component based and the full requirement is unknown at the beginning, The
system should be developed by an Agile software development life cycle model.
Changing the implementation of an object or adding services should not affect other
system objects. Because objects are associated with things, there is often a clear
9
mapping real-world entities (such as hardware components) and their controlling
objects in the system.
In other hand, The system should use 3 tier Architecture for the whole system. The
database, Application layer and Presentation layer have their own server, which
leads to agile development and separation of concern.
3. Proposed Solutions
The functionalities or Use cases involved are the main parts of the project and
✓ Sign UP
✓ Log In
✓ Browse to top Rated Restaurants
✓ Search Restaurants
✓ Browse All Restaurants
✓ Browse Menus
✓ Add To cart
✓ Add Quantity
✓ Check out
✓ Rate Restaurant
✓ Like Menu
✓ Dislike Menu
✓ Remove Item form the cart
✓ Edit Profile
10
✓ Update Profile
✓ Change Password
✓ Add Kitchen
✓ Add Menu
✓ Browse Pending Orders
✓ Browse Delivered Orders
✓ Make Order Delivered
11
Some of the main Use Case Descriptions
UID 01
Use case : Sign Up
Actors Kitchen Admin and Customer
Pre-Condition: None
Post-Condition: The registered entity must be stored on the database and must
return a success Notification.
Main Flow: 1. The user or Kitchen Admin must click on the Signup
button
2. Input fields should pop up
3. The user clicks on Signup button
4. The data should be stored on the database.
Alternative Flow: None
Exceptional Flow: If the user doesn’t enter information properly, The system
should notify to user to inter it correctly.
UID 02
Use case : Log In
Actors Kitchen Admin and Customer
Pre-Condition: The Entity must appear on the database.
Post-Condition: The System should identify the kind of user and navigate to
appropriate page
Main Flow: 1. The user or Kitchen Admin must click on the Log in
button
2. Input fields should pop up
3. The user clicks on Login button
4. The System should navigate to the system
Alternative Flow: None
Exceptional Flow: If the user doesn’t enter information properly, The system
should notify to user to inter it correctly.
12
UID 03
Use case : Search Restaurants
Actors Kitchen Admin and Customer
Pre-Condition: None
Post-Condition: Should display kitchens
Main Flow: 1. The user or Kitchen Admin must click on the Search bar
2. Type a kitchen name
3. Display a kitchen
UID 04
Use case : Browse Restaurants
Actors Kitchen Admin and Customer
Pre-Condition: None
Post-Condition: All the restaurants should be displayed
Main Flow: 1.Click on Restaurants tab
Alternative Flow: None
Exceptional Flow: None
UID 05
Use case : Rate Restaurants
Actors Customer
Pre-Condition: Customer should log in
Post-Condition: Rating should be displayed
Main Flow: 1. Must click on rating start
2. Should display rating value
Alternative Flow: None
Exceptional Flow: None
13
UID 06
Use case : Show Menus
Actors Kitchen Admin and Customer
Pre-Condition: Kitchen must be selected
Post-Condition: Display all menus the kitchen has
Main Flow: 1. Click On kitchens
Alternative Flow: None
Exceptional Flow: None
UID 07
Use case : Add To Cart
Actors Customer
Pre-Condition: Customer Should Login
Post-Condition: Whenever the add to cart button is clicked, The system should
add the menu to cart.
Main Flow: 1. The Customer Clicks on add to cart button
2. The system inserts the meal to cart list.
UID 08
Use case : Check Out
Actors Customer
Pre-Condition: Customer should log in
Post-Condition: The system should add the order into the Kitchens waiting list
Main Flow: 1. The Customer clicks checkout button
2. Adds to an order waiting list
14
UID 09
Use case : Like Menu
Actors Customer
Pre-Condition: Customer should log in
Post-Condition: Must add one like to the menu
Main Flow: 1. Click on the like icon
Alternative Flow: None
Exceptional Flow: None
UID 10
Use case : Dislike
Actors Customer
Pre-Condition: Customer should log in
Post-Condition: Adds on Dislike to the menu
Main Flow: 1.Click on the Dislike button
Alternative Flow: None
Exceptional Flow: None
UID 11
Use case : Add Kitchen
Actors Kitchen admin
Pre-Condition: Kitchen admin must log in and must not have a kitchen
Post-Condition: Adds a kitchen
Main Flow: 1. Must Click on add Kitchen button
2. Must fill out all forms
3. Click on add Kitchen button
15
UID 12
Use case : Add Menu
Actors Kitchen Admin
Pre-Condition: Kitchen admin must log in and must have a kitchen
Post-Condition: Must add Menu to the kitchen
Main Flow: 1.Must Click on add Menu button
2.Must fill out all forms
3.Click on add Menu button
UID 13
Use case : Browse Pending Orders
UID 14
Use case : Browse Delivered Orders
16
Web Ordering System Module
Customers of the Web Ordering system will interact with the application through an easy to use
top
navigation menu.
• “Home” menu option: allows the users to see 3 top rated restaurants offered with nice images
as well as select option to see all menus provided by the restaurants.
• “Services” services option: navigates to on page navigation tag called service, that describes
about a service that the system provides
• “About” about option: navigates to on page navigation tag called about, that describes about the
system.
Similar to Web ordering system, this module presents Kitchen owner with below additional
options under
“Add Menu”
• Add Product: Allows to add Product Name, Description, Price and choose Category in a simple
form along with Product Image.
The application will automatically fetch new orders from the database at regular intervals and
display the order numbers.
•Under “MyAcoount’ menu a customer will be able to see only his/her order whereas a
Restaurant
Employee or an Admin can see all users orders.
•To view the details of an order, the user must click on that order profile which will display all
order details This structure can intuitively be expanded and collapsed to display only the desired
information.
17
Non-functional Requirements
All of the application data is stored in a non-relational modern document based Mongodb
database, and therefore a Mongodb server Database 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. 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.
Constraints
1.Hardware Limitations: The minimum hardware requirement for the system is 128 MB of Ram
and a 60MB hard-disc drive.
2. Others: The application should be built using Java and JavaScript inscribed in HTML, and it
should, initially, be accessible through the Intellje IDE and later published on a server
System Evolution
The heart of the entire ordering system is the Database. Currently the system is only available for
small scale restaurants. For Large restaurants, performance considerations should be taken into
account interms of Hardware/Software capacity/Page load time etc. Also, security vulnerabilities
should be evaluated for large scale systems.
In future this can also be available as a Mobile application and can be integrated with in store
Touch Screen Order devices.
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
18
4. Implementation
1. Tomcat Server
2. Mongodb server
3. H2 Database (Hibernate)
3. Java JDK 12
4. Java Spring Framework
5. PostMan
6. Visual Studio Code
7. Itellij IDEA Ultimate Edition
8. Yarn Package Managers
9. React Js
10. JWT security Authenticater
11. Google Chrome
12. Ubuntu Operating System
• Searching Restaurants
• Adding menu to cart
• Ordering the meal
• Processing the meal and delivery
19
20
4.2.1 Activities that have been undone
21
Could simplify the process of ordering food which is done py phone call and
inperson.
If you need to access the source code for both the front end and back end part you
can
https://github.com/Girumance/GuwadaFrontEnd
https://github.com/Girumance/GuwadaBackEnd
6. References
1. youtube.com/Spring tutorial
2. Spring.io/Springtutorials/security
7. Annexes
7.1 Essentiality of the studied courses for the practical attachment.
As I observed the software development industry at Apposit Technologies, There is
bulky difference between the industry and the courses we have taken in the class. The
courses we have taken in class are just core topics. It might help us to understand the
concept but, it doesn’t make us to fit into the industry. I would rate the courses we have
taken in the class 3 out 10.
I have gained so many essential skills during this internship. I have learnt how
collaborate with Team an achieve the desired out put. And, also I have gained so many
industry level skills
22
7.3 Practical Attachment Challenges
1. The knowledge that we have gained in class doesn’t fit to the industry.
2. 3000 birr is not adequate for 2 months of internship work.
23