Food Waste Management
Food Waste Management
Food Waste Management
ON
SUBMITTED BY:
4. Harshit (20HCS4179)
SUBMITTED TO:
(Associate Professor)
1
Acknowledgement
We would like to place on record our deep sense of gratitude to Prof. Dr. Sujata
Khatri , HOD of Department of Computer Science, Deen Dayal Upadhyaya
College, University of Delhi, for her generous guidance, help and useful
suggestions.
2
Certificate
This is to certify that the project entitled, “Software Development for Food
Waste Management " submitted by "Karan, Seema, Vanshika and Harshit"
in partial fulfillment of the requirements for the award in "Software
Engineering" at the "Deen Dayal Upadhyaya College, University of Delhi" is
an authentic work carried out by him under my supervision and guidance.
To the best of my knowledge, the matter embodied in the project has not been
submitted to any other University / Institute for the award of any Degree or
Diploma.
(Associate Professor)
University of Delhi.
3
Declaration
I hereby declare that the project work entitled “Software Development for
Food Waste Management” submitted to the Deen Dayal Upadhyaya College
, is a record of an original work done by me under the guidance of Mr. Anil
Kumar, Associate Professor, Department Of Computer Science, Deen Dayal
Upadhyaya College, and this project work is submitted in the partial fulfillment
of the requirements for the award of the degree of Master of Bachelors in
Computer Science Honors. The results embodied in this thesis have not been
submitted to any other University or Institute for the award of any degree or
diploma.
SUBMITTED BY:
● HARSHIT (20HCS4179)
4
Table of Content
Introduction 8
1
1.1 About 8
1.2 Need for the Management 8
1.3 Problem statement 8
1.4 Working of the project 8
1.5 Feasibility study 9
1.6 Advantages 9
1.7 Disadvantages 9
1.8 Software process model 9
2 2.1 Introduction 13
2.1.1 Purpose 13
2.2 Scope 13
2.3 Technology used
13
5
2.4 System Requirements 14
2.5 References 14
General Descriptive 15
Specific Requirements 18
4 4.1 Functional Requirement 18
6 Project Management 22
6
6.2 Complexity adjustment values 23
6.3 Timeline chart 25
7 Designing Constraints 26
9 Conclusion 36
10 Bibliography 37
7
1 INTRODUCTION
1.1 ABOUT
Our project aims at designing a food waste management system which could
effectively manage food wasted in hotels/restaurants.
This android-based Food Waste Management system can assist in collecting the
leftover food from hotels & restaurants to distribute among those in need. NGOs
that are helping poor communities to battle against starvation & malnutrition can
raise a request for food supply from restaurants through this application. Once the
request is accepted, the NGOs can collect the food from the restaurants for its
distribution. In this way this android-based food waste management system will
help restaurants to reduce food waste and will help in feeding the poor and needy
people.
A drastic increase can be seen in food waste. As per data given by Food and
Agriculture Organization (http://www.fao.org/food-loss-and-food-waste/flw-data),
⅓ rd of food produced for human consumption is wasted globally, which accounts
for almost 1.3 billion tons per year. On the other hand, also as per WHO 20% of the
population face extreme food shortages. Hence there is a need to come up with a
solution that can avoid food waste & can help feed the needy.
1.6 ADVANTAGES
● Benefits both the restaurant (reducing food wastage), and the needy
● User can play role in saving food wastage and help the needy
1.7 DISADVANTAGES
● The android mobile user will not be able to insert or view details if the
server goes down. Thus, there is a disadvantage of single point failure.
Waterfall Model
The Waterfall model is the first of the software project development
models that have been introduced in the software development circles. It
is also called linear as the model implies each stage to be completed
before going on to the next one. So, the model goes linearly step by step
giving no possibilities to overlap any stage. Schematically, it would look like
this:
9
There are several steps in the PrototypingWaterfall Model:
• Requirements : The first phase involves understanding what needs to design and
what is its function, purpose, etc. Here, the specifications of the input and output or
the final product are studied and marked.
• System Design : The requirement specifications from the first phase are studied
in this phase and system design is prepared. System Design helps in specifying
hardware and system requirements and also helps in defining overall system
architecture. The software code to be written in the next stage is created now.
• Implementation : With inputs from system design, the system is first developed
in small programs called units, which are integrated into the next phase. Each unit
is developed and tested for its functionality which is referred to as Unit Testing.
• Integration and Testing : All the units developed in the implementation phase
are integrated into a system after testing of each unit. The software designed, needs
to go through constant software testing to find out if there are any flaws or errors.
Testing is done so that the client does not face any problem during the installation
of the software.
10
Advantages of the Waterfall Model
● It is easy to manage due to the rigidity of the model – each phase has specific
deliverables and a review process.
● In this model, phases are processed and completed one at a time and they do
not overlap. The waterfall model works well for smaller projects where
requirements are very well understood.
● Not suitable for the projects where requirements are at a moderate to high risk
of changing.
11
When to use the waterfall model?
● Waterfall model is used only when the requirements are very well known in
advance, clear and not supposed to change in future.
● Product definition is stable.
● Technology is understood.
● There are no ambiguous requirements.
● Ample resources with required expertise are available freely.
● The project is short.
12
2 SOFTWARE REQUIREMENT SPECIFICATION
2.1 INTRODUCTION
A food waste management system which could effectively manage food
waste in different restaurants/hotels. This project presents the food
management system through mobile devices, which is developed using
Android applications. This application can be installed in any user’s mobile
phones and using a simple and easy to interact interface , the extra food can
be tracked and then provided to the nearest NGO. Our system also generates
a brief report of the complete food system from the database either with
regular updates. This also helps by maintaining records of registered
restaurants/hotels and NGO’s.
2.1.1 PURPOSE
2.2 SCOPE
This document describes the requirements of the system. It is meant for the
use by the developer and will be the basis for validating the final delivered
system. The purpose of this document is to guide the developers in selecting
a design to accommodate a full scale application. Any changes made to
requirements in the future will have to go through a formal change approval
process.
13
2.4 SYSTEM REQUIREMENT:
2.5 REFERENCES :
(c) Conducting any user training that might be needed for using the
system
(d) Maintaining the system for a period of one year after installation
14
3 GENERAL DESCRIPTIVE
Admin:
3. Restaurant:
4. NGOs:
Restaurant:
2. Food:
● Add the availability of food items from restaurant
NGOs:
4. Add Request:
5. Manage Employees:
6. Records:
● View restaurant history
7. Profile:
● View Profile/Restaurant details
● Change Password
16
3.3 ASSUMPTION AND DEPENDENCY
• We assume that all the users use the software properly and
regularly post their updates to avoid confusion.
17
4 SPECIFIC REQUIREMENT
NGO and Restaurant registration: Admin will add new NGO and Restaurant
details. They can also edit their personal information.
The login: The login into the application with the given user ID and password. If the
user ID and password is correct, the user will be prompted to proceed else an error
message will be displayed.
Making Requests: NGOs can make requests after filling a form and giving all the
required information like required items and their required quantity while the
Restaurants can either accept or reject the requests according to the availability of the
food.
Receipt Generation: A receipt confirmed orders will be generated and sent to both
the NGO and Restaurant id and the confirmed request will be updated in the request
database.
• PERFORMANCE
Easy tracking of records and updating can be done.
• RELIABILITY
This software will work in the presence of the internet. In order to
access the database we will be requiring an internet connection.
• SECURITY
Only authorized users and administrators can access this.
Moreover, only the administrator has the permission to perform
addition, deletion and modification in the database.
• PORTABILITY
The application works on any android device.
18
5 DFD (DATA FLOW DIAGRAM)
19
5.3 DFD-2 LEVEL
20
5.4 DATA DICTIONARY
Restaurant Table
Sno Field Name Data Type Description
NGO Table
Sno Field Name Data Type Description
Employee Table
Sno Field Name Data Type Description
Request Table
Sno Field Name Data Type Description
Admin Table
Sno Field Name Data Type Description
21
6 PROJECT MANAGEMENT
• Estimate the cost or effort required to design, code, and test the software.
• Predict the number of errors that will be encountered during testing.
• Forecast the number of components and/or the number of projected
source lines in the implemented system.
Function points are derived using an empirical relationship based on direct
measures of software’s information domain and qualitative assessments of
software complexity.
Each external output is derived data within the application that provides
information to the user. In this context external output refers to reports, screens,
error messages, etc.
22
Number of internal logical files (ILFs)
Each internal logical file is a logical grouping of data that resides within the
application’s boundary and is maintained via external inputs.
Each external interface file is a logical grouping of data that resides external to
the application but provides information that may be of use to the application.
23
4. Is performance critical? 3
5. Will the system run in an existing, heavily utilized operational 5
environment?
6. Does the system require online data entry? 5
7. Does the online data entry require the input transaction to be 1
built over multiple screens or operations?
8. Are the ILFs updated online? 5
9. Are the inputs, outputs, files, or inquiries complex? 2
10. Is the internal processing complex? 3
11. Is the code designed to be reusable? 4
12. Are conversion and installation included in the design? 1
13. Is the system designed for multiple installations in different 1
organizations?
14. Is the application designed to facilitate change and ease of use 4
by the user?
TOTAL 48
Once these data have been collected, a complexity value is associated with each
count. Organizations that use function point methods develop criteria for
determining whether a particular entry is simple, average, or complex. To
compute function points (FP), the following relationship is used:
Where count total is the sum of all FP entries obtained from the table.
= 63 * 1.13
= 71.19 (approx.)
24
6.3 TIMELINE CHART
When creating a software project schedule, the planner begins with a set of
tasks. If automated tools are used, the work breakdown is input as a task
network or task outline. Effort, duration, and start date are then input for each
task. In addition, tasks may be assigned to specific individuals. A timeline chart,
also called a Gantt chart, is generated.
A timeline chart can be developed for the entire project. Timeline depicts a part
of a software project schedule that emphasizes. The horizontal bars indicate the
duration of each task. When multiple bars occur at the same time on the
calendar, task concurrency is implied. The diamonds indicate milestones.
25
7 DESIGN CONSTRAINTS
Cohesion
26
Coupling
7.2 ABSTRACTION
27
7.3 FUNCTIONAL ABSTRACTION
A procedural abstraction is a named sequence of instructions that has a
specific and limited function. An example of a procedural abstraction
would be the word open for a door. Open implies a long sequence of
procedural steps (e.g., walk to the door, reach out and grasp knob, turn
knob and pull door, step away from moving door, etc.).
28
8 TESTING
• Test Guidelines
• Integration Strategy
• Special Considerations
• Test Documents
29
8.1 TESTING OBJECTIVES
The main purpose of testing is to detect errors and error prone areas in a system.
Testing must be thorough and well-planned. A partially tested system is as bad
as an untested system. And the price of an untested and under-tested system is
high.
30
• What classes of input will make good test cases?
• Is the system particularly sensitive to certain input values?
• How are the boundaries of a data class isolated?
• What data rates and data volumes can the system tolerate?
• What effect will specific combinations of data have on system operation?
In this project since no coding has been done, we describe testing in brief.
31
8.4 BLACK-BOX TESTING
It is also called behavioral testing, focusing on the functional requirements of
the software. It enables the software engineer to derive sets of input conditions
that will fully exercise all functional requirements for a program.
• Graph-based Testing
• Equivalence Partitioning
• BV Analysis
• Comparison testing
32
8.6 BETA TESTING
Beta Testing is performed by real users of the software application in a real
environment. Beta testing is one type of User Acceptance Testing.
Beta version of the software, whose feedback is needed, is released to a limited
number of end-users of the product to obtain feedback on the product quality. Beta
testing helps in minimization of product failure risks and it provides increased quality
of the product through customer validation.
It is the last test before shipping a product to the customers. One of the major
advantages of beta testing is direct feedback from customers.
Equivalence Partitioning
A black-box testing method that divides the input domain of a program into
classes of data from which test cases are derived. An ideal test case single-
handedly uncovers a complete class of errors, thereby reducing the total number
of test cases that must be developed. Test case design is based on an evaluation
of equivalence classes for an input condition. An equivalence class represents a
set of valid or invalid states for input conditions. From each equivalence class,
test cases are selected so that the largest number of attributes of an equivalence
class is exercised at once.
BV Analysis
A greater number of errors occur at the boundaries of the input domain rather
than in the "center". Boundary value analysis is a test case design method
that complements equivalence partitioning
33
8.7 BASIS PATH TESTING
Basis path testing, a structured testing or white box testing technique used
for designing test cases intended to examine all possible paths of
execution at least once. Creating and executing tests for all possible paths
results in 100% statement coverage and 100% branch coverage.
1. int function(void)
2. {
3. NGO Login;
4. NGO’s Request;
5. Restaurant Login;
6. if( Availability of food == Yes”)
7. {
8. Assign Employee;
9. Takes the order from restaurant;
10. Receipt gets printed;
11. }
12. return 0;
13. }
34
Cyclomatic complexity is a software metric that provides a quantitative measure
of the logical complexity of a program.
An independent path is any path through the program that introduces at least
new set of processing statements or a new condition. When stated in terms of a
graph, an independent path must move along at least one edge that has not
traversed before the path is defined.
Path 1: 1-3-4-5-6-8-9-10-12
Path 2: 1-3-4-5-6-12
35
CONCLUSION
This whole work is to deliver the leftover food to the needy and prevent
the wastage of food from restaurants/hotels. This project “Mobile Based
Food Waste Management System” is a collection of static and dynamic
web-based or mobile application-based pages. This project provides an
offer to the user to enter the data through their respective registration
forms. It is very helpful for NGOs and restaurants who can together
prevent food wastage and can help the people to get the food they need.
In the future, this work can be expanded to deliver food items from
various functions/events/celebrations in the neighborhood and delivered
to orphanages, temples, and public charities. It can be expanded to those
people who are willing to contribute to a selfless cause.
36
BIBLIOGRAPHY
● https://developer.android.com/
● https://stackoverflow.com/
● https://www.tutorialspoint.com/index.htm
● https://medium.com/
37
38