0% found this document useful (0 votes)
105 views27 pages

Guwada Internship

The document summarizes a written report on the Guwada Meal Ordering System for Gotera Condo. The system was developed for Apposit Technologies to address problems with the existing food ordering process for restaurants and customers around Gotera Condo. The existing system required physical visits and calls to order, lacked online menus and visual order confirmation. The new system allows restaurants to post online menus and customers to browse, add items to a cart, and checkout their order remotely. It integrates a frontend using React with a backend using Java Spring and stores data in MongoDB. The aim is to minimize ordering time and effort for both customers and kitchen owners in the area.

Uploaded by

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

Guwada Internship

The document summarizes a written report on the Guwada Meal Ordering System for Gotera Condo. The system was developed for Apposit Technologies to address problems with the existing food ordering process for restaurants and customers around Gotera Condo. The existing system required physical visits and calls to order, lacked online menus and visual order confirmation. The new system allows restaurants to post online menus and customers to browse, add items to a cart, and checkout their order remotely. It integrates a frontend using React with a backend using Java Spring and stores data in MongoDB. The aim is to minimize ordering time and effort for both customers and kitchen owners in the area.

Uploaded by

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

Haramaya University

Collage Of Computing And Informatics

Department of Software Engineering

Written Report On Practical Attachment


Guwada Meal Ordering System for Gotera Condo

Prepared by: Girum Kedese

ID: 0695/09

Summer 2019
Organizational Details

Name ............................................ Apposit Technologies.

Town ............................................ Addis Abeba

Apposit is a software development company committed


to the delivery of innovative and high impact technology
solutions for businesses and development challenges in
Africa.
Abstract

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

1.1 Background and Related Work

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!!

1.2.1 Aim of the Software

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.

1.3 Existing System

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.

Anticipated Benefits are:

1. This will minimize the number of employees at the back of the counter.

2. The system will help to reduce labor cost involved.

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:

Web Ordering System Module

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.

• Manage their account.

• Log in to the system.

• Navigate the restaurant’s

• Rate Restaurant’s

• Navigate the restaurant’s menu.

• Like and Dislike Menu’s

• Select an item from the menu.

• Add an item to their current order cart.

• Review their current order.

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

5
• Place an order.

• Receive confirmation in the form of an order number.

• View order placed.

Kitchen Dashboard Module

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:

• Add/update/delete Kitchen category.

• Add/update/delete food category to/from the menu.

• Add /update/delete food item to/from the menu.

• Update price for a given food item.

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

• Display pending orders.

• Display delivered orders.

• Delete Orders

• Make an Order status to Delivered and Pending.

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 store about the new entry food.

• System needs to help the internal stuff to keep information of item category and find them as
various query.

• System need to maintain quantity record.

• System need to keep the record of Shopping Cart.

• System need to update and delete record.

•System also needs a search area.

•System also need a security mechanism.

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:

• Retrieve new orders from the database.

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

Implementation

Hardware/Software Interface:
This section lists the minimum hardware and software requirements needed to run the system
efficiently.

Hardware Interface:

• Pentium Processor

• 60 MB of free hard-drive space

• 128 MB of RAM

Software Interface:

• Operating System: Windows (Vista/7 or above) or Linux( Ubuntu)

• Web Browser: IE 10 or above, Mozilla FF 31 and above or Google Chrome

• Drivers: Java Runtime Environment

• Integrated Development Environment: Eclipse J2EE or Apache Tomcat

Functional Requirement Specifications:

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

2.1 System Development Model

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.

Agile software development comprises various approaches to software development under


which requirements and solutions evolve through the collaborative effort of self-organizing and
cross-functional teams and their customer(s)/end user(s). It advocates adaptive planning,
evolutionary development, early delivery, and continual improvement, and it encourages rapid
and flexible response to change.

2.2 System Development Techniques


System development techniques are methods or procedures for designing, developing,
documenting, and maintaining programs, or for managing these activities.

The development techniques we used to develop this project is object-oriented


paradigm and Aspect oriented programming system development techniques which
provides so many capabilities for our system for instance ,the representation of the
state is private and cannot be accessed directly from outside the object.

Object-oriented design processes involve designing object classes and the


relationships between these classes. These classes define the objects in the system and
their interactions. When the design is realized as an executing program, the objects
are created dynamically from these class definitions . Object-oriented systems are
easier to change than systems developed using functional approaches.

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

3.1 Use Case Diagram

The functionalities or Use cases involved are the main parts of the project and

They are as follows:

✓ 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

Alternative Flow: None


Exceptional Flow: None

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.

Alternative Flow: None


Exceptional Flow: None

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

Alternative Flow: None


Exceptional Flow: None

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

Alternative Flow: None


Exceptional Flow: None

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

Alternative Flow: None


Exceptional Flow: If the user doesn’t enter information properly, The system
should notify to user to Enter it correctly.

UID 13
Use case : Browse Pending Orders

Actors Kitchen Admin


Pre-Condition: Kitchen admin must log in
Post-Condition: Must display all on wait or pending orders
Main Flow: 1.Must Click on pending orders

Alternative Flow: None


Exceptional Flow: If there is no menus! It doesn’t display anything

UID 14
Use case : Browse Delivered Orders

Actors Kitchen Admin


Pre-Condition: Kitchen admin must log in
Post-Condition: Must display all on wait or Delivered orders
Main Flow: 1.Must Click on Delivered orders

Alternative Flow: None


Exceptional Flow: If there is no menus! It doesn’t display anything

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.

Menu Management System Module

Similar to Web ordering system, this module presents Kitchen owner with below additional
options under
“Add Menu”

• Add Category: Allows to add a food Category name in a simple form.

• Add Product: Allows to add Product Name, Description, Price and choose Category in a simple
form along with Product Image.

•Modify Product: Allows updating or deleting product details.

Order Retrieval System Module

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

4.1 Development Tools

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

4.2 Implementation Progress


4.2.1 Activities that have been done
Most core functionalities have implemented like

• Searching Restaurants
• Adding menu to cart
• Ordering the meal
• Processing the meal and delivery

19
20
4.2.1 Activities that have been undone

Some functionalities have not been done. Some of them are


• The system should have an Admin.
• The system should have an online Payment System.
• The system should organize categorize meals by the customer need.
• The system should have a chatting mechanism
• The system should be done using Reactive programming (Asynchronous
Programming ) in order eliminate performance issue.
• The system should be developed using micro services Architecture in
order to make the services loosely coupled.

5. Conclusions and Recommendations

This system is intended to be implemented on Gotera Condo, Addis Abeba! I


hope it

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

Use the below link on github

For the frontend part

https://github.com/Girumance/GuwadaFrontEnd

For the Backend Part

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.

7.2 Significance of learning gained during the practical attachment.

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

Like Web services, ORM(Object Relational Mapping), Security.

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

You might also like