Food Share App: A Project Report ON
Food Share App: A Project Report ON
ON
Mansi
Suryawanshi
degree of
BACHELOR OF SCIENCE
In
(COMPUTER SCIENCE)
DEPARTMENT OF COMPUTER
SCIENCE
I Ms.Mansi Gopal Suryawanshi, here by declare that the project entitled, “Food
Share with Mansi” submitted in the partial fulfillment of the award of degree of
BACHELOR OF SCIENCE (COMPUTER SCIENCE) during the academic
year 2023-2024 is my original work and the project has not formed the basis for
the award of any degree , associateship , fellowship or any other similar titles.
Place:-
Date:-
ACKNOWLEDGEMENT
Behind every success there are lot many efforts, but efforts are fruitful due to
hands making passage smoother.” We express our deep sense of gratitude to hands,
people extendedto us during our work. At this moment of accomplishment, among the
former, we take this opportunity to express our deep sense of gratitude to respected
Guide Prof. Punam Rane. This work would not have been possible without her
valuable guidance, critical suggestions, support, constant encouragement and dedicated
involvement. Under her guidance we successfully overcame many difficulties and have
learned a lot. Her perspective criticism of work broadened our understanding of the
subject of the project work. Her unflinching courage and conviction will always inspire
us, and we hope to continue to work with her noble thoughts. With a great pleasure, we
express humble thanks to the Hon. Chairman Shri. Dhanraj D. Vispute, and Hon.
Principal Vidya Mohod & Hon. HOD Trupti Thakur for the facilities provided by
the college and for their support. We are grateful to the lab technicians and librarians for
their help and co-operation in many ways.
Thank You..!
Chapter 7: Reference 41
LIST OF TABLES
Table No Name of Table Page No
LIST OF FIGURES
Figure No Name of Figures Page No
3.5 ER Diagram 18
In today's world, where food insecurity remains a persistent challenge despite the abundance of
food resources, innovative solutions are essential. "Food Share with Mansi" emerges as a
beacon of hope in this landscape, offering a transformative approach to tackling hunger through
the power of technology. This comprehensive abstract delves deep into the essence of the app,
elucidating its core features, societal impact, technological framework, and potential for
scalability.
"Food Share with Mansi" is not merely a mobile application; it embodies a philosophy of
compassion and community engagement. At its heart lies a simple yet powerful mission: to
bridge the gap between surplus food and hunger relief. With an intuitive user interface and
robust backend algorithms, the app facilitates seamless communication and coordination
between food donors and recipients.
The app's functionality revolves around three main pillars: donation posting, matching, and
delivery tracking. Donors can easily post details about surplus food items they wish to donate,
including quantity, expiration date, and pickup location. Through advanced matching
algorithms, the app identifies suitable recipients based on proximity, dietary preferences, and
organizational needs. Once a match is made, donors and recipients can communicate directly
through the app to coordinate pickup or delivery logistics. Real-time tracking features ensure
transparency and accountability throughout the process, fostering trust among users.
One of the key strengths of "Food Share with Mansi" lies in its versatility and scalability. While
initially conceived as a platform for individual donors and local charities, the app has the
potential to expand its reach to businesses, restaurants, and large-scale events. By harnessing
the power of partnerships and community collaboration, "Food Share with Mansi" can amplify
its impact and reach underserved populations more effectively.
Technologically, "Food Share with Mansi" leverages the latest advancements in mobile app
development, data analytics, and geolocation services. The app's user-friendly interface is
designed to be accessible to users of all ages and backgrounds, minimizing barriers to
participation. Robust security protocols safeguard user privacy and protect sensitive
information, instilling confidence in donors and recipients alike.
CHAPTER 1
INTRODUCTION
1.1 INTRODUCTION : -
Through Food Share, users can easily post listings of available food items, whether it
be from events, restaurants, or personal donations. Those in need can browse these
listings and request assistance, fostering a sense of community and support. With a
user-friendly interface and a focus on sustainability, Food Share aims to not only
provide meals to those in need but also reduce food waste and promote a more
equitable distribution of resources. Join us in our mission to make a positive impact
on both individuals and the environment through the power of sharing food."
"In addition to facilitating food sharing between individuals, Food Share also offers
features to enhance the user experience and promote community engagement. Users
can create profiles to showcase their contributions and connect with others who share
similar values and interests in food sustainability.
The app includes a rating and review system to ensure accountability and build trust
within the community. Users can provide feedback on their experiences with food
providers and recipients, fostering a sense of transparency and reliability.
By leveraging technology for social good, Food Share empowers individuals to take
action towards a more sustainable and equitable food system. Join us in creating a
world where no one goes hungry and where food is shared, not wasted."
1
This expanded introduction provides a more comprehensive overview of the features
and values of your app "Food Share Feel free to customize and elaborate further based
on your specific goals and objectives for the platform.
It may help collecting perfect management in details. In a very short time, the
collection will be obvious, simple and sensible. It will help a person to know the
management of passed year perfectly and vividly. It also helps in current all works
relative to Food Share.
It will be also reduced the cost of collecting the management & collection procedure
will go on smoothly. Our project aims at Business process automation, i.e. we have
tried to computerize various processes of Food Share . In computer system the person
has to fill the various forms & number of copies of the forms can be easily generated
at a time.
In computer system, it is not necessary to create the manifest but we can directly
print it, which saves our time. To assist the staff in capturing the effort spent on their
respective working areas. To utilize resources in an efficient manner by increasing
their productivity through automation.
The system generates types of information that can be used for various purposes.
Be easy to operate.
Be expandable.
2
CHAPTER 2
SYSTEM ANALYSIS
In the existing system the exams are done only manually but in proposed system we
have to computerize the exams using this application.
Time consuming.
3
2.2 PROPOSED SYSTEM
Security of data.
Greater efficiency. 34
Better service.
4
2.3 OVERVIEW
"Food Share is a community-driven app that connects individuals with surplus food to
those in need. Founded , the platform aims to reduce food waste, address hunger, and
promote sustainability. Users can post listings of available food items and request
assistance, fostering a sense of community and support. The app also features user
profiles, a rating system for accountability, and resources for education on food waste
and hunger issues. Join us in creating a more equitable and sustainable food system
through the power of sharing food."
1. Listing Creation: Users can easily create listings of surplus food items they have
available for sharing. This feature allows individuals to post details such as type of
food, quantity, expiration date, and pick-up location.
2. Search and Browse: Those in need of food can search and browse through the
listings posted by food providers. Users can filter results based on location, type of
food, and availability to find suitable options.
3. Request Assistance: Individuals facing food insecurity can request assistance from
food providers by sending a direct message or request through the app. This feature
facilitates communication and coordination between users.
4. User Profiles: Users can create profiles to showcase their contributions and
connect with others in the community. Profiles may include information about food
sharing activities, reviews, and ratings from other users.
5. Rating and Review System: The app includes a rating and review system to
promote accountability and trust within the community. Users can provide feedback
on their interactions with food providers and recipients to maintain transparency.
5
6. Educational Resources: Food Share offers resources, articles, and tips on food
waste reduction, hunger awareness, and sustainable practices. This feature aims to
educate users and inspire positive change in their communities.
These functionalities are designed to enhance the user experience, promote sharing
and collaboration, and empower individuals to make a positive impact through the
"Food Share " app.
6
2.5 FUNCTIONAL REQUIREMENTS:-
"Food Share is a groundbreaking app that connects surplus food providers with
individuals in need, spearheaded dedication to reducing food waste and addressing
hunger. Through its user-friendly platform, users can post listings of available food
items and request assistance, fostering a sense of community and support. The app not
only aims to provide meals to those in need but also to promote sustainability by
reducing food waste and encouraging equitable resource distribution. With features
such as user profiles, a rating system for accountability, and educational resources on
food waste and hunger issues, Food Share empowers users to make a positive impact
on their communities and the environment through the simple act of sharing food."
7
2.7 NON FUNCTIONAL REQUIREMENTS:-
1. Performance: Ensure that the app can handle a large number of users and
transactions efficiently without experiencing slowdowns or crashes. Performance
testing should be conducted to optimize response times and ensure a seamless user
experience.
4. Reliability: Ensure that the app is reliable and available to users at all times. This
may involve implementing backup and recovery mechanisms, monitoring systems for
detecting issues proactively, and establishing service level agreements for uptime.
6. Compliance: Ensure that the app complies with relevant regulations and standards,
such as data protection laws and industry-specific guidelines. This may involve
conducting regular audits and updates to ensure ongoing compliance.
By addressing these non-functional requirements, you can enhance the overall quality
and performance of your app "Food Share" and provide users with a secure and
seamless experience.
8
2.8 APPLICATION DEVELOPMENT ENVIRONMENT AND
TECHNOLOGY :-
Technology Stack:
The app may be developed using programming languages such as Swift for iOS
development or Java/Kotlin for Android development. Backend development
may involve technologies like Node.js, Python, or Ruby on Rails for server-side
logic and API development. Databases such as MySQL, PostgreSQL, or
MongoDB may be utilized to store and manage data related to food listings, user
profiles, and interactions. Application programming interfaces (APIs) may be
integrated for features like geolocation services, payment processing, and social
media sharing.
9
2.9 THE PROPOSED SYSTEM HAS THE FOLLOWING
REQUIREMENTS
2. Food Listing and Posting: Users should be able to post listings of available food
items, including details such as type of food, quantity, expiration date, and location
for pickup or delivery.
3. Search and Matching Algorithm: The system should include a search feature and
matching algorithm to connect individuals in need with surplus food providers based
on location, availability, and preferences.
5. Rating and Review System: Implement a rating and review system to allow users
to provide feedback on their experiences, ensuring accountability and building trust
within the community.
7. Data Analytics and Reporting: The system should have analytics capabilities to
track user engagement, food sharing trends, and impact metrics for monitoring and
evaluation purposes.
10
8. Accessibility and User Experience: Ensure the platform is user-friendly,
accessible across devices, and provides a seamless experience for users to navigate,
interact, and contribute to the food sharing community.
By incorporating these requirements into the proposed system for "Food Share" you
can create a robust and effective platform that addresses the needs of users and
promotes positive social change in the realm of food sustainability and community
support.
1. Encryption: Utilize encryption techniques to secure data both in transit and at rest.
This includes encrypting communication channels and storing user data in encrypted
form to prevent unauthorized access.
2. Access Control: Implement strict access control measures to restrict user access
based on roles and permissions. This helps prevent unauthorized users from viewing
or modifying sensitive data.
5. Data Backup and Recovery: Implement regular data backup procedures to ensure
that user data is protected in case of system failures or security incidents.
11
2.11 IMPLEMENTATION ENVIRONMENT AND
TECHNOLOGY:-
Hardware Requirements:-
12
CHAPTER 3
SYSTEM DESIGN
The Iterative Waterfall Model is a software development approach that combines the
sequential steps of the traditional Waterfall Model with the flexibility of iterative
design. It allows for improvements and changes to be made at each stage of the
development process, instead of waiting until the end of the project.
The iterative process model is a software development life cycle (SDLC) approach in
which the initial development work is conducted based on initial requirements that are
clearly defined, and subsequent features are added to this base software product
through iterations until the final system is completed
13
3.2 BASIC MODULES :-
1. User Registration and Profile Creation: Users can easily sign up for the app,
create a profile, and provide relevant information such as location, food preferences,
and dietary restrictions. This module allows for personalized user experiences and
efficient matching between food providers and recipients.
2. Food Listing and Request System: This module enables users to post listings of
available food items, including details such as quantity, type of food, and expiration
date. Recipients can browse these listings, make requests for specific items, and
coordinate pick-up or delivery arrangements.
3. Rating and Review System: To maintain accountability and build trust within the
community, this module allows users to rate and review their interactions with food
providers and recipients. Feedback helps improve the overall user experience and
ensures the reliability of the platform.
4. Resource Center: The app includes a resource center module that provides
educational materials, articles, and tips on food waste reduction, sustainable eating
practices, and community initiatives. Users can access valuable information to deepen
their understanding of food sustainability issues.
14
3.3 DATA DESIGN :-
A database modle is a type of data model that determines the logical structure of a
database of a fundamentally determines a which manner data can be stored, organized
and manipulate.
15
3.4 HIGH LEVEL DIAGRAM:-
High-level design (HLD) explains the architecture that would be used to develop a
system. The architecture diagram provides an overview of an entire system,
identifying the main components that would be developed for the product and their
interfaces.
16
3.5 ER DIAGRAM:-
Entity:
An entity is a real-world object or concept that has a distinct identity and can be uniquely
identified. In an ER diagram, entities are typically represented as rectangles and serve as
the primary building blocks for modeling the data.
Attribute:
An attribute is a property or characteristic of an entity. It provides more information
about the entity and can be thought of as the fields or properties of the entity. In ER
diagrams, attributes are often represented as ovals connected to the respective entity
rectangles.
Relationship:
A relationship represents the association between two or more entities in the data model.
It describes how entities are connected or related to each other. Relationships in ER
diagrams are depicted as lines connecting entities, and they show how data is shared or
linked between entities.
17
Fig .3.5 ER DIAGRAM
18
3.6 USE CASE
A use case is a methodology used in system analysis to identify, clarify and organize
system requirements. The use case is made up of a set of possible sequences of
interactions between systems and users in a particular environment and related to a
particular goal.
19
CHAPTER 4
20
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:excludeFromRecents="true" android:exported="true"
android:launchMode="singleTask"
android:name="com.google.firebase.auth.internal.FederatedSignInActivity"
android:permission="com.google.firebase.auth.api.gms.permission.LAUNCH_FEDE
RATED_SIGN_IN" android:theme="@android:style/Theme.Translucent.NoTitleBar"
/>
<service android:directBootAware="true" android:exported="false"
android:name="com.google.firebase.components.ComponentDiscoveryService">
<meta-data
android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseA
uthRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"
/>
<meta-data
android:name="com.google.firebase.components:com.google.firebase.database.Datab
aseRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"
/>
<meta-data
android:name="com.google.firebase.components:com.google.firebase.firestore.Firest
oreRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"
/>
<meta-data
android:name="com.google.firebase.components:com.google.firebase.dynamicloadin
g.DynamicLoadingRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
</service>
<uses-library android:name="org.apache.http.legacy"
android:required="false" />
<activity android:exported="false"
android:name="com.google.android.gms.common.api.GoogleApiActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<provider
android:authorities="com.example.aahaarapp.firebaseinitprovider"
android:directBootAware="true" android:exported="false" android:initOrder="100"
android:name="com.google.firebase.provider.FirebaseInitProvider" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
21
4.2 About page
package com.example.aahaarapp;
import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
CardView instagram,facebook,twitter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
instagram = findViewById(R.id.instagram);
facebook = findViewById(R.id.facebook);
twitter = findViewById(R.id.twitter);
instagram.setOnClickListener(new View.OnClickListener ()
{
@Override
public void onClick(View v) {
Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
myWebLink.setData(Uri.parse("http://www.instagram.com"));
startActivity(myWebLink);
}
});
facebook.setOnClickListener(new View.OnClickListener ()
{
@Override
public void onClick(View v) {
Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
myWebLink.setData(Uri.parse("http://www.facebook.com"));
startActivity(myWebLink);
}
});
twitter.setOnClickListener(new View.OnClickListener ()
{
@Override
public void onClick(View v) {
Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
myWebLink.setData(Uri.parse("http://www.twitter.com"));
22
startActivity(myWebLink);
}
});
}
package com.example.aahaarapp;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.util.Patterns;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.material.textfield.TextInputLayout;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.FieldValue;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.GeoPoint;
import java.util.HashMap;
import java.util.Map;
23
name = (EditText) findViewById(R.id.name);
email = (EditText) findViewById(R.id.email);
message = (EditText) findViewById(R.id.message);
submit = (Button) findViewById(R.id.submit);
nameError = (TextInputLayout) findViewById(R.id.nameError);
emailError = (TextInputLayout) findViewById(R.id.emailError);
messageError = (TextInputLayout) findViewById(R.id.messageError);
fAuth=FirebaseAuth.getInstance();
fStore= FirebaseFirestore.getInstance();
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SetValidation();
}
});
}
public void SetValidation() {
24
if (isNameValid && isEmailValid && isMessageValid ) {
collectionReference.add(user)
.addOnSuccessListener(new
OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
Toast.makeText(getApplicationContext(),"Success!",Toast.LENGTH_SHORT).show
();
Log.d(TAG,"Successfully! We will shortly revert you back.");
//startActivity(new
Intent(getApplicationContext(),MainActivity.class));
Intent intent = new Intent(Contact.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(getApplicationContext(),"Error!",Toast.LENGTH_SHORT).show();
Log.w(TAG, "Error!", e);
}
});
}
}
}
25
4.4 Food Map page
package com.example.aahaarapp;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Location;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.EventListener;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.FirebaseFirestoreException;
import com.google.firebase.firestore.GeoPoint;
import com.google.firebase.firestore.QueryDocumentSnapshot;
import com.google.firebase.firestore.QuerySnapshot;
import java.util.ArrayList;
26
private GoogleMap mMap;
GoogleApiClient mGoogleApiClient;
Location mLastLocation;
LocationRequest mLocationRequest;
SupportMapFragment mapFragment;
private int REQUEST_CODE = 11;
FirebaseFirestore fStore;
public static final String TAG = "TAG";
private FirebaseFirestore cloudstorage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food_map);
mapFragment = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.google_map);
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) ==
PackageManager.PERMISSION_GRANTED) {
mapFragment.getMapAsync(this);
} else {
ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
return;
}
buildGoogleApiClient();
mMap.setMyLocationEnabled(true);
}
27
mGoogleApiClient.connect();
}
@Override
public void onLocationChanged(@NonNull Location location) {
mLastLocation = location;
showLocation();
LatLng latLng = new LatLng(location.getLatitude(),location.getLongitude());
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,15));
mMap.addMarker(markerOptions1).showInfoWindow();
}
if(type.equals("Donor")) {
Log.d(TAG, String.valueOf(location) + " Success " + title);
LatLng latLng = new LatLng(location.getLatitude(),
location.getLongitude());
//mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.addMarker(new
MarkerOptions().position(latLng).title(title+"("+type+")").snippet(description).icon(B
itmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
}
else if(type.equals("Receiver")){
Log.d(TAG, String.valueOf(location) + " Success " + title);
28
LatLng latLng = new LatLng(location.getLatitude(),
location.getLongitude());
//mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.addMarker(new
MarkerOptions().position(latLng).title(title+"("+type+")").snippet(description).icon(B
itmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
}
}
}
} else {
Log.d(TAG, "Error fetching data: ", task.getException());
}
}
});
@Override
public void onConnected(@Nullable Bundle bundle) {
mLocationRequest = new LocationRequest();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
return;
}
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,
mLocationRequest, this);
@Override
public void onConnectionSuspended(int i) {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[]
permissions, @NonNull int[] grantResults) {
if (requestCode == REQUEST_CODE){
29
if(grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED){
mapFragment.getMapAsync(this);
}else{
Toast.makeText(this,"Permission Denied",
Toast.LENGTH_SHORT).show();
}
}
}
}
30
4.6 TESTING APPROACH
UNIT TESTING
Typically, a unit test has three stages: the plan, the cases and scripting, and the actual
unit test. The unit test is written and reviewed in the first stage. The creation of test
cases and scripts is the following phase, after which the code is tested. For test-driven
development to work, unit tests must first be written that fail. As soon as the test
succeeds, they create code and refactor the application. TDD often produces a code
base that is explicit and predictable.
Unit testing is a software testing technique where individual units or components of a
software application are tested in isolation to ensure they function correctly. In the
context of software development, unit testing involves testing each unit of code, such
as functions, methods, or classes, to verify that they produce the expected output for a
given input.
Unit testing helps identify bugs and errors early in the development process, making it
easier to fix issues before they impact other parts of the application. By isolating and
testing individual units of code, developers can ensure that each component works as
intended and meets the specified requirements.
Unit testing is typically automated using testing frameworks and tools to streamline
the testing process and provide quick feedback on the code's correctness. Writing unit
tests also helps improve code quality, maintainability, and reusability by enforcing
good coding practices and design principles.
Overall, unit testing plays a crucial role in software development by ensuring the
reliability and functionality of individual code units, contributing to the overall quality
and stability of the software application.
31
INTEGRATION TESTING :-
The second stage of the software testing process, after unit testing, is known as
integration testing. Integration testing is the process of inspecting various parts or
units of a software project to reveal flaws and ensure that they function as intended.
Software components are logically connected and tested as a unit in a type of testing
called integration testing. Multiple software modules created by various programmers
make up a typical software project. This level of testing aims to identify issues with
how various software modules interact when they are combined. Once functional
testing has been completed on each application module, we only move on to
integration testing. To ensure that the appropriate order is followed and that we don't
miss any integration cases, we always perform integration testing by selecting each
module individually. Choose a test case strategy first, then work with test data
to create executable test cases. Examine the application's architecture and structure to
determine which modules are most important to test first. Make a list of all potential
situations as well.
Make test cases to precisely check each interface. To run a test case, select input data.
Testing heavily depends on input data.
32
Sr. Component Test Description Actual Result Test
No. Result
33
CHAPTER 5
34
5.3 Login Screen 5.4 Dashboard Screen
35
5.5 Donate Screen 5.6 Receive Screen
36
5.7 Food Map Screen 5.8 History Screen
37
5.9 Contact Screen 5.10 About Screen
38
CHAPTER 6
I can it is important to summarize the key features and benefits of "Food Share" that
make it unique and valuable to users. You may want to highlight how the app
facilitates food sharing, promotes community engagement, and addresses food waste
issues.
Additionally, you can discuss any user feedback or success stories that showcase the
positive impact of the app. It is also beneficial to outline any future plans or
enhancements for the app, such as new features, partnerships, or expansion
opportunities.
In conclusion, the focus should be on summarizing the key aspects of "Food Share,"
highlighting its value proposition, and setting the stage for future growth and
development. If you have any specific questions or need further assistance with the
conclusion of your app, feel free to let me know.
39
6.2 FUTURE SCOPE:-
By focusing on these areas of future scope, "Food Share" can continue to evolve,
attract new users, and provide a valuable platform for food sharing and community
engagement.
40
CHAPTER 7
REFERENCES
1. Alexander, C., & Smaje, C. (2008). Surplus retail food redistribution: An analysis
of a thirdsector model. Resources, Conservation and Recycling, 52(11), 1290–1298.
3. Center for Research and Development of Domestic Trade (CID - CI) and Cuban
Society of Logistics and Marketing (SCLM) of the National Association of
Economists and Accountants of Cuba (ANEC). (October 28, 2006). Bibliociencias.
Retrieved on June 4, 2014, in
http://www.bibliociencias.cu/gsdl/collect/libros/index/assoc/HASH3a17.dir/doc.pdf.
4. Easley, D., & Kleinberg, J. (2010). Networks, Crowds and Markets: Reasoning
about a highly Connected World. Cambridge, Cambridge University Press.
6. Dels Aliments Bank Foundation. (2011). Food Donation |. Retrieved July 09, 2014,
from https://www.bancdelsaliments.org/es/donacion_alimentos/
7. FAO. (2011). Global food losses and food waste – Extent, causes and prevention.
(2011).Paper presented at the Proceedings of the Save Food at Interpack2011,
Düsseldorf, Germany.
41
9. FAO. (2014). DEFINITIONS FOR THE PURPOSES OF THE CODEX
Alimentarius Retrieved July 21, 2014, from
http://www.fao.org/docrep/w5975s/w5975s08.html
11. FESBAL. (2013). What are? Retrieved March 20, 2014, from
http://www.bancodealimentos.es/bancos/aprende/queson
13. Food Bank Rus. (2014). What is Foodbank Rus. Retrieved from
http://www.foodbankrus.ru/en/what-foodbank-rus
15. Food Banks Canada. (2013). Food Banking in Canada. Retrieved from
http://www.foodbankscanada.ca/Learn-About-Hunger/Food-Banking-in-Canada.aspx
16. FoodBanks Association in Colombia. (2014a). How they work? Retrieved from
http://www.abaco.org.co/index.php?option=com_content&view=article&id=97&Item
id=223
42