Capstone Project Black Book
Capstone Project Black Book
A
Report on
PLANT CARE APP
Submitted by
In guidance of
Mrs. Shilpa Muley
CERTIFICATE
This is to certify that the project report entitled
“Plant Care App”
submitted by
Dr. A. S. Kondekar
(Principal) (External Examiner)
DECLARATION
We hereby declare that the project report entitled “Plant Care App” submitted
by us as undersigned, in Y. B. Patil Polytechnic, Akurdi, Pune, for partial
fulfillment of the requirement for the award of Diploma in Computer
Engineering is a record of project work carried out by us under the guidance of
Mrs. Shilpa Muley (Project Guide, Capstone Project Planning). We further
declare that the work reported in this project has not been submitted for the
award of any other degree or diploma in this institute or any other institute or
university.
Place:
Date:
2 Nishant Talekar
3 Sarakshi More
4 Anay Patil
ACKNOWLEDGEMENT
It is a matter of great pleasure and privilege to be able to present the project on
“Plant Care App” under the valuable guidance of Mrs. Shilpa Muley (Project
Guide, Capstone Project Planning). We are thankful for their valuable guidance
and constant inspiration to our work. We would also like to thank our honorable
principal, Dr. A. S. Kondekar for making the college premises available.
We are also thankful to all our teachers and our non-teaching staff for the great
support. It has been a great fun to work together with the members of the group
and solve problems related to the project. A deep sense of gratitude to our
group members for their patience and encouragement among us.
ABSTRACT
TABLE OF CONTENTS
1 CHAPTER I - INTRODUCTION 7
6 CHAPTER VI - IMPLEMENTATION 22
CHAPTER I
INTRODUCTION
1. 1 Background
In today's urbanized world, the desire for green spaces and indoor plants is on
the rise, driven by a growing interest in biophilia and sustainable living.
However, many plant enthusiasts struggle to maintain healthy plants due to a
lack of accessible and user-friendly resources for plant care. Traditional methods
of tracking plant care routines, such as handwritten notes or disparate online
resources, often prove cumbersome and ineffective. This gap underscores the
need for a modern solution that simplifies plant care management, providing
users with a digital platform to easily track watering schedules, fertilizing
routines, and other essential tasks. Thus, there is a demand for an innovative
plant care application that offers personalized care reminders, educational
resources, and a supportive community for plant enthusiasts. Introducing
'Urban Leaf,' a mobile app designed to revolutionize plant care by providing
users with a comprehensive and user-friendly tool to cultivate thriving indoor
and outdoor gardens with confidence.
1. 2 Problem Statement
The problem statement revolves around addressing the lack of accessible and
user-friendly resources for plant care. Existing solutions often lack
comprehensive information and fail to provide personalized guidance for
individual plant care needs. Urban Leaf aims to bridge this gap by offering a
mobile application that provides users with a convenient platform to access
detailed plant care information, receive personalized reminders, and engage
with a supportive community of plant enthusiasts. By combining educational
content with practical tools, Urban Leaf seeks to empower users to cultivate
thriving indoor and outdoor gardens with confidence.
1. 3 Objectives
Revolutionize plant care by providing comprehensive and user-friendly
features.
Create a digital platform that offers personalized care reminders for
watering, fertilizing, and other essential plant care tasks.
Provide educational resources within the app to empower users with
knowledge about different plant species, care requirements, and
gardening tips.
1. 4 Implication
Urban Leaf emerges as a pioneering mobile application poised to redefine the
relationship between individuals and plants. Developed collaboratively by our
dedicated team, Urban Leaf represents a significant advancement in plant care
technology. At its core, the app serves as a comprehensive resource hub,
offering a wealth of information on diverse plant species, their care
requirements, and cultivation techniques. Through its intuitive interface, Urban
Leaf provides users with personalized reminders for watering, fertilizing, and
other essential tasks, ensuring optimal plant health. With an emphasis on
education and accessibility, Urban Leaf empowers users to transform their living
spaces into vibrant sanctuaries of greenery, fostering a deeper connection to
nature and enriching lives one leaf at a time.
CHAPTER II
LITERATURE REVIEW
Existing studies have shed light on the significance of plant care applications in
enhancing users' understanding of plant biology and improving cultivation
practices. Research by Jones et al. (2018) and Smith (2020) has emphasized the
increasing interest in utilizing mobile technology to support plant care, stressing
the importance of user-friendly interfaces and tailored features for effective
user engagement. Moreover, investigations by Brown and Green (2019) have
revealed a positive association between the utilization of plant care apps and
heightened plant survival rates, highlighting the practical advantages of such
technological aids.
CHAPTER III
REQUIREMENT ANALYSIS
The requirements analysis phase of the Urban Leaf app development process
aims to delineate the functional and non-functional specifications necessary for
the app's successful implementation.
6) FAQ Section: Create a dedicated FAQ section within the app, addressing
common queries related to plant care, troubleshooting tips, and general
gardening advice.
Software Requirements
Operating System: Android
IDE: Android Studio Hedgehog
Database: Firebase Real Time Database.
Hardware Requirements
Processor: Snapdragon 821 Minimum
RAM : 4 GB Minimum
Internet connectivity.
CHAPTER IV
PLATFORM CHOICE
4. 1 Android
Android is a mobile operating system developed by Google, based on the Linux
kernel. It is designed primarily for touchscreen mobile devices such as
smartphones and tablets. Android provides developers with a robust framework
for building apps using the Java programming language or Kotlin. Android Studio
is the official Integrated Development Environment (IDE) for Android app
development, offering a suite of tools and resources for creating high-quality
Android applications.
4. 3 Java
Java is a widely used programming language, particularly in the realm of Android
app development. It is an object-oriented language known for its portability,
security, and robustness. Java is the primary language for Android app
development, allowing developers to write code that runs efficiently on Android
devices. Java is used for implementing app logic, handling user interactions, and
integrating with external services and APIs.
4. 4 Firebase
Firebase is a comprehensive mobile and web application development platform
developed by Google. It offers a wide range of services and tools for building
CHAPTER V
SYSTEM DESIGN
5. 3 E-R Diagram
CHAPTER VI
IMPLEMENTATION
Click listeners are set for the "Sign Up" TextView and the login Button. Upon
clicking "Sign Up," the user is directed to the registration activity. Clicking the
login Button triggers authentication after validating email and password inputs.
Additionally, a "Forgot Password?" TextView triggers an AlertDialog prompting
the user to enter their email for password reset. Upon successful password reset,
a confirmation message is displayed.
Upon clicking "Login," the user is directed to the login activity. The registration
Button triggers field validation and checks if the entered passwords match before
attempting to create a new user. If the passwords match and meet the length
requirement, createUser() method is called to create the user using Firebase
createUserWithEmailAndPassword() method.
In the associated Java code, the functionality for the bottom navigation is
implemented. It initializes the views and handles click events for each tab. When
a tab is clicked, the corresponding fragment is loaded into the
FragmentContainerView. This enables seamless navigation between different
sections of the application.
Overall, the XML layout and Java code work together to create a visually
appealing and functional bottom navigation interface, facilitating easy navigation
between different sections of the application's content. This implementation
enhances user experience and usability, contributing positively to the overall
application quality.
The user interface is implemented using XML layout files for defining the layout
structure, including a RelativeLayout for the main layout and a LinearLayout for
each plant item. The main layout incorporates a Toolbar for navigation and a
RecyclerView to display the plant list. Each plant item layout contains an
ImageView for the plant image, a TextView for the name, and an ImageButton to
toggle the favorite status.
The functionality is achieved through a series of Java classes organized under the
Model-View-Presenter (MVP) architecture. The WellnessContract interface
defines the contract between the View, Presenter, and Interactor components.
The Presenter orchestrates the logic, handling user interactions and data
operations. It communicates with the Interactor, responsible for fetching plant
data and updating favorite status, and the View, responsible for displaying plant
information and handling user interactions.
In the FlowersAdapter class, the logic for populating the RecyclerView with
flower data is implemented. Glide library is utilized to load flower images
efficiently, while click listeners are set to handle user interactions such as viewing
plant details and toggling favorite status. The adapter communicates with the
FlowersFragment, which acts as the controller, orchestrating data retrieval and
user interactions. The FlowersPresenter serves as an intermediary between the
view and the interactor, facilitating seamless communication and updating the
UI based on user actions.
The FlowersInteractor class encapsulates the business logic for fetching flower
data from a Firebase database and updating favorite status. It utilizes Firebase
Realtime Database queries to retrieve flower information and asynchronously
checks and updates favorite status for individual flowers. This separation of
concerns ensures modularity and scalability, enabling easy maintenance and
future enhancements to the application's functionality. Overall, this architecture
provides a robust foundation for building a feature-rich flower catalog
application on the Android platform.
The Java classes orchestrate the functionality of the favorite plant segment. The
FavoritesAdapter class extends RecyclerView.Adapter to populate the
RecyclerView with plant data, handling user interactions such as item clicks and
favoriting plants. The FavoritesPresenter acts as an intermediary, coordinating
between the view and the interactor. It communicates with the
FavoritesInteractor to fetch favorite plants from Firebase Realtime Database and
updates the view accordingly. The FavoritesInteractor class interacts directly
with the database, retrieving plant data based on user preferences.
The Profile Java class extends Fragment to manage the profile screen's
functionality. Within its onCreateView method, it inflates the profile fragment
layout and initializes views such as the logout button and text views for
displaying user information. It retrieves user data stored in SharedPreferences,
sets the retrieved name and email to the corresponding text views, and
configures a click listener for the logout button. Upon logout button click, it
clears the login status in SharedPreferences, redirects the user to the login
screen, and finishes the current profile activity.
The PlantDetailFragment Java class serves as the controller for populating the
plant detail screen with data fetched from Firebase Realtime Database. It
dynamically loads plant information based on the provided plant ID, retrieves
the relevant data from Firebase, and updates the corresponding views
accordingly. Using Glide library, it efficiently loads and displays plant images,
enhancing the user experience with smooth image loading. Additionally, it
handles database queries asynchronously to prevent UI blocking, ensuring a
responsive user interface.
The Plant class defines a data model representing individual plant objects within
the application. It encapsulates plant attributes such as ID, image URL, name,
description, watering frequency, spraying frequency, fertilizing frequency, and
advice. By serializing this class, it facilitates seamless data transfer between
Firebase Database and the application, enabling efficient retrieval and
manipulation of plant information. This modular approach enhances code
readability, maintainability, and scalability, allowing for easy expansion of plant-
related functionalities within the Urban Leaf app.
In the Java code, when the user clicks on the "Forgot Password" link, an
AlertDialog is created with the custom dialog layout inflated. The
AlertDialog.Builder constructs the dialog with the layout, allowing the user to
input their email address for password reset. Upon clicking the "Reset" button,
the entered email address is validated for correctness and completeness. If the
email is valid, a password reset email is sent using Firebase Authentication's
sendPasswordResetEmail method. If successful, a confirmation message is
displayed, and the dialog is dismissed.
Additionally, the code snippet includes methods for validating user input (email
and password) during the login process and authenticating the user with
Firebase Authentication. Upon successful authentication, the user's credentials
are stored in SharedPreferences for future use, and they are redirected to the
main activity of the application. If authentication fails, an error message is
displayed to prompt the user to enter valid credentials. This implementation
enhances the user experience by providing a seamless login and password reset
flow while ensuring security through Firebase Authentication.
CHAPTER VII
TESTING
7. 1 Testing Objective
Testing is the act of running a program to uncover any potential errors. A good
test case is one that has a high chance of detecting an error that has not yet
been identified.
We have thoroughly tested all aspects of our app, including its user-friendliness,
ease of navigation, and the protection of user data. We have also checked its
speed and performance to ensure quick loading and smooth operation.
7. 2 Testing Cases
7. 2. 1 Splash Screen
Test
Sr. Test Objective Expected
Case Test Cases Actual Result Status
No (Specification) Result
ID
7. 2. 2 Login/Signup Screen
Test
Sr. Test Objective Expected
Case Test Cases Actual Status
No (Specification) Result
ID Result
Enter valid
Verify the login email/usernam The app Navigated
functionality with e and navigates to the to
2. TC-2 valid credentials. password. Homepage. Homepage. Pass
Click the login
button.
Enter an An error
Verify the signup existing message is Error
functionality with email/usernam displayed message Pass
5. TC-5 an existing e and a indicating that displayed.
email/username. password. the
Click the email/username
signup button. is already in use.
7. 2. 3 Homeplants Screen
Test
Sr. Test Objective Expected
Case Test Cases Actual Status
No (Specification) Result
ID Result
Verify the
presence of the
TC-1 Open the The Air Purifying Air Purifying Pass
1. Air Purifying
Homeplants button is displayed. button is
button.
section. displayed.
Verify the
presence of the
2. TC-2 Open the The Wellness Wellness
Wellness button.
Homeplants button is displayed. button is Pass
section. displayed.
Verify the
functionality of
TC-3 Click on the The app displays a List of Air Pass
3. the Air Purifying
Air Purifying list of Air Purifying Purifying
button.
button. plants. plants is
displayed.
Verify the
functionality of
4. TC-4 Click on the The app displays a List of
the Wellness
Wellness list of Wellness Wellness Pass
button.
button. plants. plants is
displayed.
Verify the
navigation to
5. TC-5 Click on an The app navigates Navigated Pass
plant details from
Air Purifying to the details page to details
the Air Purifying
plant. of the selected page of the
section.
plant. selected
plant.
Verify the
navigation to
TC-6 Click on a The app navigates Navigated Pass
6. plant details from
Wellness to the details page to details
the Wellness
plant. of the selected page of the
section.
plant. selected
plant.
Test
Sr. Test Objective Expected
Case Test Cases Actual Status
No (Specification) Result
ID Result
7. 2. 5 Wellness Screen
Test
Sr. Test Objective Expected
Case Test Cases Actual Result Status
No (Specification) Result
ID
Verify the
Add a plant to The ImageButton ImageButton
appearance of a
the next to the is highlighted
highlighted
5. TC-5 Favourites selected plant is for selected Pass
ImageButton for
section. highlighted or plant.
a selected plant
visually different
in the Favourites
to indicate
section.
selection.
7. 2. 6 Flowers Screen
Test
Sr. Test Objective Expected
Case Test Cases Actual Result Status
No (Specification) Result
ID
7. 2. 7 Favourite Screen
Test
Sr. Test Objective Expected
Case Test Cases Actual Result Status
No (Specification) Result
ID
Favourites
Section.
7. 2. 8 Profile Screen
Test
Sr. Test Expected
Case Test Cases Actual Result Status
No Objective Result
ID
(Specificat
ion)
Verify login Log out and The user can log User can log in
after logout. then log in in without any without any
4. TC-4 again with the issues. issues. Pass
same existing
credentials.
CHAPTER VIII
SNAPSHOTS
8. 1 Splash Screen
anim_vectr.xml
Slide_in_bottom.xml
Zoom_in.xml
8. 2 Login Screen
@+id/edtEmail
@+id/edtPassword
@+id/btnLogin
@+id/txtRegister
@+id/forgot_password
8. 3 Register Screen
@+id/edtName
@+id/edtEmail
@+id/edtPassword
@+id/edtCnfPass
@+id/btnSignUp
@+id/txtLogin
8. 4 Bottom Navigation
fragment_homeplants.xml
fragment_flowers.xml
fragment_favourite.xml
fragment_profile.xml
8. 5 Profile Screen
@+id/profileImg
@+id/floatingActionB3
@+id/profileName
@+id/profileEmail
@+id/logoutButton
8. 6 Favourite Screen
Item_favourite
Dialog Fragment : timePickerFragment
@+id/favoritesRecyclerView
showTimePickerDialog()
@+id/addToFavoritesButton
8. 7 Flowers Screen
@+id/recyclerView
item_plant
@+id/favoriteIcon
updateFavourite()
8. 8 Home Screen
@+id/appbar
@+id/button1
@+id/button2
@+id/appbar
item_plant
@+id/recyclerView
@+id/sprayingFrequencyInfo
@+id/fertilizingFrequencyInfo
@+id/wateringDay
s
@+id/sprayingDays
@+id/sprayingDays
@+id/descriptionInfo
@+id/Advice1 @+id/Advice2 @+id/Advice3
@+id/wateringFrequencyInfo
@+id/emailBox
Click to reset
password
@+id/btnCancel
@+id/btnReset
CHAPTER IX
ADVANTAGES & LIMITATIONS
9. 1 Advantages
1] User-friendly interface:
The app boasts a user-friendly interface, marked by an animated splash screen
and a bottom navigation system for seamless exploration. This design choice
enhances user engagement and satisfaction by providing a visually appealing
and intuitive platform for accessing plant care resources. From the login page to
the plant details section, the app prioritizes simplicity and ease of use, ensuring
that users can navigate effortlessly and find the information they need without
unnecessary complexity.
3] Customizable notifications:
The app offers customizable notifications for watering, spraying, and fertilizing
plants, allowing users to tailor their plant care routines to suit their schedules
and preferences. This functionality ensures that users never miss a crucial care
task, as they can set reminders at specific times or intervals according to their
individual needs. Whether they prefer daily reminders or weekly alerts, users
have the flexibility to configure notifications as per their convenience, thereby
enhancing the efficiency and effectiveness of their plant care efforts.
4] Favourites feature:
The inclusion of a favourites feature adds a layer of personalization to the app,
allowing users to curate a collection of their preferred plants for easy access. By
enabling users to designate certain plants as favourites and store them in a
dedicated section, the app enhances user engagement and satisfaction.
Whether users have particular favourites they wish to monitor closely or simply
want to bookmark plants for future reference, this feature streamlines the
browsing experience and fosters a sense of ownership over their plant care
journey.
6] Educational value:
Beyond its practical utility, the app serves as an educational resource for users
interested in expanding their knowledge of plant care practices. By offering
detailed information on watering, spraying, fertilizing, and other aspects of plant
maintenance, the app empowers users to develop a deeper understanding of
the needs and characteristics of various plant species. This educational value not
only enhances users' gardening skills but also fosters a greater appreciation for
the natural world, inspiring curiosity and lifelong learning. Whether users are
novice gardeners or seasoned plant enthusiasts, the app provides valuable
insights and resources to support their journey towards successful plant care.
9. 2 Limitations
1] Limited platform availability:
The app's availability exclusively on the Android platform may pose a limitation
for users who prefer or utilize other operating systems such as iOS. This
restriction could potentially alienate a significant portion of the user base who
may not have access to Android devices, thereby limiting the app's reach and
potential impact. Without cross-platform compatibility, the app may struggle to
cater to the diverse needs and preferences of a broader audience, hindering its
ability to achieve widespread adoption and success.
2] Dependency on Firebase:
The app's reliance on Firebase for storing plant care information and user data
introduces a potential limitation in terms of data security and privacy. While
Firebase offers convenient cloud-based storage and real-time database
functionality, it also raises concerns regarding data ownership, privacy policies,
and potential vulnerabilities. Users may be apprehensive about entrusting their
sensitive information to a third-party service, especially if the app lacks robust
data protection measures or clear transparency regarding how user data is
handled and safeguarded.
5] Offline functionality:
The app's reliance on an internet connection for accessing plant care information
and user data stored in Firebase may pose a limitation in areas with poor or
unreliable connectivity. Users who encounter network issues or find themselves
without internet access may experience disruptions in their ability to use the app
effectively. Without offline functionality or local caching mechanisms, the app
may fail to provide a consistent and seamless user experience across all
scenarios, detracting from its reliability and usability in diverse environments.
CHAPTER X
PROJECT RELEVANCE
10. 2 Ethics
1. Ensure that user data, including personal information and plant care
preferences, is securely stored and handled in compliance with privacy
regulations.
2. Provide accurate and reliable information on plant care to users, sourced from
reputable botanical and horticultural sources.
3. Design the app interface to be user-friendly and accessible to individuals of
diverse backgrounds and abilities, including considerations for visual
impairments and language preferences.
4. Clearly communicate the app's functionality, including data collection
practices and any potential limitations or risks associated with plant care
recommendations.
5. Obtain explicit consent from users before accessing or utilizing their personal
data for purposes such as sending notifications or customizing plant care
recommendations.
CHAPTER XI
CONCLUSION & FUTURE SCOPE
11. 1 Conclusion
After developing the plant care app, we are confident that it will significantly
assist users in managing their plant care routines effectively. The app aims to
guide users in caring for their plants and raise awareness about their daily plant
care activities. It will be particularly beneficial for individuals who struggle with
plant care management, feel overwhelmed by the demands of plant care, and
seek better ways to organize their plant care tasks. Additionally, the app will
enable users to track plants, facilitating better planning and management of
household plant care budgets. It acts as a user-friendly tool for indoor plant care,
offering customized care plans, watering reminders, and pest control advice. It
serves as an educational plant encyclopedia, enhancing users' gardening
experience with detailed information and interactive features. The goal is to
make plant care accessible and enjoyable for all, regardless of their gardening
expertise.
CHAPTER XII
BIBLIOGRAPHY