0% found this document useful (0 votes)
33 views49 pages

Food Share App: A Project Report ON

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)
33 views49 pages

Food Share App: A Project Report ON

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/ 49

A project report

ON

FOOD SHARE APP


SUBMITTED BY

Mansi

Suryawanshi

in partial fulfilment for the a ward of the

degree of

BACHELOR OF SCIENCE

In

(COMPUTER SCIENCE)

Under the esteemed guidance of


Prof. Punam Rane

DEPARTMENT OF COMPUTER

SCIENCE

SHRI. D.D. VISPUTE COLLEGE OF SCIENCE, COMMERCE &


MANAGEMENT
(Affiliated to University of Mumbai)
PANVEL, 410206
MAHARASHTRA
2023-24
DECLARATION

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.

Signature of the student :-

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.

It is impossible for us to express in words, our deepest sense of gratitude towards


our parents have stood resolutely by our side during this endeavor and have been a
constant source of motivation and support. Today we have reached this level because of
their commitment and patient understanding of our ambitions. This dissertation is much
more a result of their sacrifices and compromises than our own contribution towards it.
And finally, heartily thanks to all my brothers, sisters, friends and well-wisher, without
whom this would not have been possible. Besides this several people who have
knowingly or unknowingly helped us in some way or the other in fulfilment of this
research work. Heartfelt thanks to God for constant blessings, love, opportunity and
encouragement showered upon us through the life.

Thank You..!

Ms. Manasi Suryawanshi


TABLE OF CONTENTS

Chapter 1: Introduction Page No.


1.1 Introduction 1
1.2 Literature review 2

Chapter 2: System analysis


2.1 Existing system 3
2.2 Proposed system 5
2.3 Overview
2.4 Functionalities provided 5
2.5 Functional requirements 6
2.6 Following points should be well considered 7
2.7 Non functional requirements 8
2.8 Application development environment and technology 9
2.9 The proposed system has the following requirement 10
2.10 It also needs a security system to prevent data 11
2.11 Implementation environment and technology 12

Chapter 3: System design


3.1 Iterative waterfall 13
3.2 Basic modules 14
3.3 Data design 15
3.4 High level Diagram 16
3.5 ER Diagram 17
3.6 Use Case Diagram 19

Chapter 4: Implementation and testing


4.1 Main activity 20
4.2 About page 22
4.3 contact page 23
4.4 Food Map page 26
4.5 Testing Approach 31
Chapter 5: Results and discussion
5.1 Result and discussion
5.1.1 Home screen 34
5.1.2 Register screen 34
5.1.3 Longing screen 35
5.1.4 Dashboard screen 35
5.1.5 Donate screen 36
5.1.6 Receive screen 36
5.1.7 Food Map screen 37
5.1.8 History screen 37
5.1.9 Contact screen 38
5.1.10 About Screen 38

Chapter 6: Conclusion and future work


6.1 Conclusion 39
6.2 Future work 40

Chapter 7: Reference 41
LIST OF TABLES
Table No Name of Table Page No

2.11 Hardware Requirement 12

4.1 Unit Testing 30

LIST OF FIGURES
Figure No Name of Figures Page No

3.1 Waterfall Model 13

3.3 Introduction of symbols 15

3.4 High level diagram 16

3.5 ER Diagram 18

3.6 Use Case Diagram 19


ABSTRACT

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

"Food Share is a revolutionary app designed to connect individuals in need with


surplus food providers in their community. Founded, a passionate advocate for
reducing food waste and addressing hunger, this platform serves as a bridge between
those with excess food and those facing food insecurity.

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.

1.2 LITERATURE REVIEW :-

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.

 It satisfy the user requirement.

 Be easy to understand by the user and operator.

 Be easy to operate.

 Have a good user interface.

 Be expandable.

 Delivered on schedule within the budget.

2
CHAPTER 2

SYSTEM ANALYSIS

2.1 EXISTING SYSTEM :-

In the existing system the exams are done only manually but in proposed system we
have to computerize the exams using this application.

 Lack of security of data.

 More man power.

 Time consuming.

 Consumes large volume of pare work.

 Needs manual calculations.

 No direct role for the higher officials.

3
2.2 PROPOSED SYSTEM

The aim of proposed system is to develop a system of improved facilities. The


proposed system can overcome all the limitations of the existing system. The system
provides proper security and reduces the manual work.

 Security of data.

 Ensure data accuracy's.

 Proper control of the higher officials.

 Minimize manual data entry.

 Minimum time needed for the various processing.

 Greater efficiency. 34

 Better service.

 User friendliness and interactive.

 Minimum time required

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."

2.4 FUNCTIONALITIES PROVIDED

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.

7. Community Engagement: The app fosters community engagement by


encouraging users to connect, share experiences, and collaborate on initiatives to
address food insecurity and promote food sustainability.

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."

2.6 FOLLOWING POINTS SHOULD BE WELL CONSIDERED:


Documents and reports that must be provided by the new system: there can also be
few reports, which can help management in decision-making and cost controlling, but
since these reports do not get required attention, such kind of reports and information
were also identified and given required attention. Details of the information needed
for each document and report. The required frequency and distribution for each
document. Probable sources of information for each document and report. With the
implementation of computerized system, the task of keeping records in an organized
manner will be solved. The greatest of all is the retrieval of information, which will be
at the click of the mouse. So the proposed system helps in saving the time in different
operations and making information flow easy giving valuable reports.

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.

2. Security: Implement robust security measures to protect user data, including


personal information and payment details. This may involve encryption, secure
authentication processes, and regular security audits to identify and address
vulnerabilities.

3. Scalability: Design the app to be scalable so that it can accommodate growth in


user base and data volume over time. This includes ensuring that the app can handle
increased traffic and user interactions without compromising performance.

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.

5. Usability: Focus on creating a user-friendly interface that is intuitive and easy to


navigate. Conduct user testing to gather feedback on the app's design and
functionality, and make improvements based on user preferences and behaviors.

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

 Application Development Environment:


The development environment for Food Share likely includes integrated
development environments (IDEs) such as Visual Studio Code, Xcode, or
Android Studio, depending on the platform (iOS or Android) the app is built
for.Version control systems like Git may be used to manage code changes and
collaborate with team members effectively.Continuous integration and
deployment tools such as Jenkins or CircleCI may be employed to automate the
build and deployment processes.

 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.

 Mobile Development Frameworks:


Cross-platform mobile development frameworks like React Native or Flutter may
be used to build the app for both iOS and Android platforms simultaneously,
reducing development time and effort. Native development frameworks like
SwiftUI for iOS or Jetpack Compose for Android may be employed for a more
platform-specific and optimized user experience.

Overall, the application development environment and technology stack for


"Food Share" play a crucial role in shaping the functionality, performance, and
user experience of the app. By leveraging the right tools and frameworks,
developers can create a robust and user-friendly platform that fulfills the mission
of connecting individuals through food sharing.

9
2.9 THE PROPOSED SYSTEM HAS THE FOLLOWING
REQUIREMENTS

1. User Registration and Authentication: The system should have a user


registration process with secure authentication mechanisms to ensure data privacy and
security.

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.

4. Communication and Notification: Users should be able to communicate with


each other within the platform and receive notifications about new listings, requests,
and updates on their interactions.

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.

6. Educational Resources: Include resources, articles, and tips on food waste


reduction, hunger awareness, and sustainable practices to educate and engage users in
social impact initiatives.

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.

2.10 IT ALSO NEEDS A SECURITY SYSTEM TO PREVENT


DATA.

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.

3. Authentication and Authorization: Implement strong authentication mechanisms,


such as multi-factor authentication, to verify user identities. Additionally, use
authorization protocols to control user access to different parts of the app based on
their roles.

4. Regular Security Audits: Conduct regular security audits and vulnerability


assessments to identify and address potential security weaknesses. Stay informed
about the latest security threats and best practices to continuously improve the
security posture of the app.

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

Hardware Component Minimum Requirement Recommended


Requirement
Processor Dual-core processor Quad-core processor
Storage 128GB SSD 256GB SSD
Display 1366x768 resolution 1920x1080 resolution
Internet Connectivity Broadband connection Broadband connection
Hardware Component Minimum Requirement Recommended
Requirement

12
CHAPTER 3

SYSTEM DESIGN

3.1 ITERAVTIVE WATREFALL MODEL:-

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

Fig 3.1 waterfall Model

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.

5. Community Engagement Features: To foster a sense of community and


collaboration, the app includes features that enable users to connect with like-minded
individuals, join discussions, and participate in events or campaigns related to food
sharing and sustainability.

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.

Fig.3.3 Introduction of symbols

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.

Fig .3.4. HIGH LEVEL DIAGRAM

16
3.5 ER DIAGRAM:-

An Entity-Relationship Diagram (ER diagram) is a visual representation of the data


model that describes how different entities (such as people, objects, concepts) are related
to each other within a database. It uses entities (represented as rectangles), attributes
(attributes of the entities, represented as ovals), and relationships (lines connecting
entities to show how they are connected). ER diagrams are commonly used in database
design to plan and document the structure of a database system.

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.

Fig .3.6 ER DIAGRAM

19
CHAPTER 4

IMPLETATION AND TESTING

4.1 MAIN ACTIVITY

<?xml version="1.0" encoding="utf-8" ?>


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:compileSdkVersion="32" android:compileSdkVersionCodename="13"
android:versionCode="1" android:versionName="1.0"
package="com.example.aahaarapp" platformBuildVersionCode="32"
platformBuildVersionName="13">
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="30" />
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:glEsVersion="0x20000" android:required="true" />
<application
android:appComponentFactory="androidx.core.app.CoreComponentFactory"
android:debuggable="true" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:name="androidx.multidex.MultiDexApplication"
android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true"
android:theme="@style/Theme.FOOD SHARE BY MANASI">
<activity android:name="com.example.aahaarapp.UserdataActivity" />
<activity android:name="com.example.aahaarapp.History" />
<activity android:name="com.example.aahaarapp.MyPin" />
<activity android:name="com.example.aahaarapp.About" />
<activity android:name="com.example.aahaarapp.FoodMap" />
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyBtAubRGSlTZanGLTPT3JrKWsRCFAXZzrE" />
<activity android:name="com.example.aahaarapp.Receive" />
<activity android:name="com.example.aahaarapp.Contact" />
<activity android:name="com.example.aahaarapp.Signup" />
<activity android:name="com.example.aahaarapp.Logup" />
<activity android:name="com.example.aahaarapp.MainActivity" />
<activity android:name="com.example.aahaarapp.Donate" />
<activity android:name="com.example.aahaarapp.landingpage" />
<activity android:name="com.example.aahaarapp.SplashScreen"
android:theme="@style/SplashScreen">
<intent-filter>

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;

public class About extends AppCompatActivity {

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);
}
});
}

4.3 Contact page

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;

public class Contact extends AppCompatActivity {


EditText name, email, message;
Button submit;
boolean isNameValid, isEmailValid, isMessageValid;
FirebaseAuth fAuth;
FirebaseFirestore fStore;
String userID;
public static final String TAG = "TAG";
TextInputLayout nameError, emailError, messageError;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact);

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() {

// Check for a valid name.


if (name.getText().toString().isEmpty()) {
nameError.setError(getResources().getString(R.string.name_error));
isNameValid = false;
} else {
isNameValid = true;
nameError.setErrorEnabled(false);
}

// Check for a valid email address.


if (email.getText().toString().isEmpty()) {
emailError.setError(getResources().getString(R.string.email_error));
isEmailValid = false;
} else if
(!Patterns.EMAIL_ADDRESS.matcher(email.getText().toString()).matches()) {
emailError.setError(getResources().getString(R.string.error_invalid_email));
isEmailValid = false;
} else {
isEmailValid = true;
emailError.setErrorEnabled(false);
}

// Check for a valid phone number.


if (message.getText().toString().isEmpty()) {
messageError.setError(getResources().getString(R.string.phone_error));
isMessageValid = false;
} else {
isMessageValid = true;
messageError.setErrorEnabled(false);
}

24
if (isNameValid && isEmailValid && isMessageValid ) {

String Name = name.getText().toString().trim();


String Email= email.getText().toString().trim();
String Message= message.getText().toString().trim();
userID = fAuth.getCurrentUser().getUid();
//DocumentReference documentReference =
fStore.collection("donate").document(userID);
CollectionReference collectionReference = fStore.collection("contact data");

Map<String,Object> user = new HashMap<>();


user.put("timestamp", FieldValue.serverTimestamp());
user.put("name",Name);
user.put("email",Email);
user.put("message",Message);
user.put("userid",userID);

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;

import static android.util.Base64.CRLF;

public class FoodMap extends AppCompatActivity implements


OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener,
com.google.android.gms.location.LocationListener {

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);
}

protected synchronized void buildGoogleApiClient(){


mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();

27
mGoogleApiClient.connect();
}

@Override
public void onLocationChanged(@NonNull Location location) {
mLastLocation = location;
showLocation();
LatLng latLng = new LatLng(location.getLatitude(),location.getLongitude());

MarkerOptions markerOptions1 = new


MarkerOptions().position(latLng).title("You are
here").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_
RED));
//mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
//mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
//mMap.addMarker(markerOptions1).showInfoWindow();

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,15));
mMap.addMarker(markerOptions1).showInfoWindow();
}

public void showLocation() {


this.cloudstorage = FirebaseFirestore.getInstance();
cloudstorage.collection("user data")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d(TAG, document.getId() + " => " + document.getData());//
if (document.contains("location") && document.contains("name")
&& document.contains("description")) {
GeoPoint location = (GeoPoint) document.get("location");
String title = (String) document.get("name");
String type = (String) document.get("type");
String description = (String) document.get("description");

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

1. Home Page Verify Home Page Home page Pass


Loads without errors. loads successfully.

Test functionality of all Home page Pass


links and buttons on adjusts layout
the home page. correctly

2. Login Page Test login functionality Invalid Email Failed


with valid credentials

Test login functionality Valid Email, Pass


with valid credentials Contact Name,Address

3. Submit Page Test submission of Form is Pass


Donated forms with submitted.
valid data.

Test submission of Form is Pass


Receiver forms with submitted.
valid data.

Test functionality to Receiver profile Failed


view Receiver profiles. is not displayed
correctly.

Ensure interactions Form is Pass


with donated profiles Successful submitted.
work as expected

4. About Page Verify Instagram, is not displayed Failed


Facebook profiles correctly.
display correct
information.

Table 4.1 Unit Testing

33
CHAPTER 5

RESULTS AND DISCUSSION


5.1 Home Screen 5.2 Register Screen

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

CONCLUSION AND FUTURE SCOPE


6.1 CONCLUSION :-

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

1. Expansion of Services: Consider expanding the services offered by the app to


include features such as meal planning, recipe sharing, nutritional information, or
food donation options.

2. User Engagement: Focus on enhancing user engagement through personalized


recommendations, interactive features, community forums, or loyalty programs to
encourage continued usage and participation.

3. Partnerships and Collaborations: Explore partnerships with local restaurants,


grocery stores, or food delivery services to offer exclusive deals, promotions, or
collaborations that add value to the app.

4. Sustainability Initiatives: Integrate sustainability initiatives into the app, such as


promoting eco-friendly practices, reducing food waste, or supporting local farmers
and producers to align with current trends and consumer preferences.

5. Mobile Payment Integration: Consider integrating mobile payment options within


the app to facilitate seamless transactions for users, making it more convenient and
user-friendly.

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.

2. BAMEX. (2013). How we work? Retrieved from


http://bancosdealimentos.org.mx/#tres

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.

5. ECOMOTRIX SA (2010). Design and implementation of a monitoring strategy to


a sample of participants in the massive training program aimed at efficient driving
intercity transport drivers load and / or urban and evaluation of program impact.

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.

8. Food and Agriculture Organization of the United Nations. (2014). FAO.ORG.


Retrieved June 04, 2014, from
http://www.fao.org/docrep/005/y1579s/y1579s02.htm#bm2.9

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

10. Feeding America. (2014). Our History. Retrieved from


http://www.feedingamerica.org/our- response/about-us/our-history/

11. FESBAL. (2013). What are? Retrieved March 20, 2014, from
http://www.bancodealimentos.es/bancos/aprende/queson

12. Food Bank Australia. (2014). The Environment. Retrieved from


http://www.foodbank.org.au/about-us/how-we-work/the-environment/

13. Food Bank Rus. (2014). What is Foodbank Rus. Retrieved from
http://www.foodbankrus.ru/en/what-foodbank-rus

14. Food Bank SA. (2014). What We Do. Retrieved from


http://www.foodbank.org.za/programs

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

17. FoodBanks Association in Colombia. (2014b). Historia de Abaco. Retrieved from


http://www.abaco.org.co/index.php?option=com_content&view=article&id=51&Item
id=58

18. FoodBanks Association in Colombia. (2014c). ¿Cómo vamos ABACO? Nº 17.


Retrieved
fromhttp://www.abaco.org.co/index.php?option=com_content&view=article&id=425
&Itemid= 252

42

You might also like