You are on page 1of 28

PROJECT ID: D14

TABLE OF FIGURES
Fig: 2.1 Project Planning...................................................................................................... 4
Fig 2.2 Agile Model. ............................................................................................................ 6
Fig. 2.3 Work scheduling part 1........................................................................................... 7
Fig. 2.4 Work scheduling part 2........................................................................................... 8
Fig. 2.5 Gantt chart. ............................................................................................................. 8
Fig. 3.1 User Interaction. ..................................................................................................... 9
Fig. 4.1 Work Flow Diagram. ............................................................................................ 12
Fig. 4.2 Characteristic Chart. ............................................................................................. 13
Fig. 5.1 Database Schema. ................................................................................................. 14
Fig. 5.2 Login Screen. ........................................................................................................ 16
Fig. 5.3 Home Page. ........................................................................................................... 17
Fig. 5.4 View Post Page. .................................................................................................... 18
Fig. 5.5 Create Post Page. .................................................................................................. 19
Fig 5.6 Apply for Post. ....................................................................................................... 20
Fig. 5.7 Application Form View. ....................................................................................... 21

LIST OF TABLES
Table 1.1 Tools and Technology used. ................................................................................ 2
Table 5.1 Data Dictionary Table. ....................................................................................... 15
Table 6.1 Test cases results. ............................................................................................... 24

CSPIT(IT)
PROJECT ID: D14 1.0 INTRODUCTION

1.0 INTRODUCTION

1.1 PROJECT OVERVIEW


Adopt Me is an android application made for adoption of dogs specifically, it can be stray
dogs, or any dog for readoption or even for first time breed dog adoption. Users can post a
picture of the dog using their camera or through their phone gallery, they need to give basic
information of the dog like age of age, breed of the dog, reasons of giving the dog for
adoption, nature of the dog, meaning if the dog is friendly with other dogs or it’s behaviour
towards humans, etc., vaccination status of the dog, medical condition of the dog, like if it
has any type of deformity or any other medical history of parvo, or distemper or any of
such major disease, if the dog has anxiety issues, and any of such basic information about
the dog that a eligible pet parent should know before adopting a dog. Once the post is
created, other users of the application can view it, if they the picture of the dog they can tap
on the picture and view details about the dog. They have to fill out an application form that
is created with the help of an adoption worker at Jivdaya Cheritable Trust, Ahmedabad.
The form contains various questions like the number of family members, taking care
abilities, handling a dog in the past if any, vet contacts if required, information about
various common diseases and vaccinations, and other few questions to understand whether
the applicant is fully aware of the situations he/she might get himself into after adopting a
dog, and whether he/she is ready for it or not. The whole questionnaire contains around 20
carefully chosen and consulted questions that covers everything that is necessary. Every
user can see in their account the applications for the post they have made. If they like the
applicant they can directly contact them through the mail id. For authentication, I have used
firebase authentication (Firebase Auth), and for its implementation I used Firebase UI. The
post and application data is stored in firebase database as well.

1.2 SCOPE
The user can post pictures of dogs in their locality, add a few details like age, gender, breed,
nature, vaccination status, etc. The users looking to adopt can go through the posts and fill
an application form with basic questions that generally NGOs ask while adoption. If the
poster is convinced by the application form, they can contact directly using the contact info
provided in the app.

CSPIT(IT) 1
PROJECT ID: D14 1.0 INTRODUCTION

1.2 MOTIVATION
In India alone, there are more than 35 million street dogs which is highest in the entire
world. These dogs are responsible for around 20000 human rabies death in India every year.
There are so many new outbreaks of diseases in stray dogs because of overpopulation and
poor living condition. This is a big problem. With the growing industrialization, and
colonization, there is no place left for the strays to take shelter. The other side of the story
is worse, street dogs have to be dependent on various NGOs and people every day for their
food which isn’t always the most reliable way and thus they have to sleep hungry on
occasions. They have to struggle for what is considered to be the most basic requirement
of any living species, a shelter and food. On top of that statistics say over 6,000,000 dogs
killed on roads in 2020 (with a lockdown situation when vehicles are less, think of the time
when people are fearlessly and recklessly racing around). Over 100 dogs euthanized in
shelters every month. With a 10 million pet population in our country half of them end up
abandoned by their pet parents due to old age, or disability, or medical condition or they
simply can’t afford the money or time a dog’s needs. Recent events due to covid–19
pandemic has shed light on the fact that within a month, I found around 40 abandoned dogs
in a locality of around 5-6 kms, now consider the numbers for entire area, or even entire
city. Due to these reasons and many more, it is necessary to take care of these poor souls.
Our PM it also appealing the citizens to adopt Indian “desi” breed as a part of the go
domestic movement, that had led on a very healthy increase in the number of street dog
adopters in India. People are now looking to adopt Indian dogs rather than dogs of foreign
breed, and our application will help them in the same. Currently the situation is, sharing
photos and videos on social media, someone reshares it and then this whole resharing forms
a big chain. The person who actually wants to adopt and the poster, get into much more
miscommunication and confusion then needed for a basic adopting procedure.

1.3 PROBLEM DEFINITION


People who are looking to adopt, or give a dog for adoption, and they want to avoid all the
miscommunication and confusion in the conventional social media method, can use the
Adopt Me application. They can very easily post a picture, fill out details and put up a dog
for adoption. For adopting they just need to fill out an application form and wait for the
response. It makes a chaotic process very easy for both adopter and poster.

1.4 TOOLS AND TECHNOLOGY

Table 1.1 Tools and Technology used.

TECHNOLOGY DESCRIPTION

Android Studio Android App Development Platform using Java


Firebase database Cloud Hosted Database

CSPIT(IT) 2
PROJECT ID: D14 1.0 INTRODUCTION

1.4.1 Android studio


Android studio is the official IDE for developing android applications. It is java integrated
development environment, based on the IntelliJ IDEA. In order to support development of
application it uses a gradle-based system, emulator, code templates and GitHub integration.
It has structures modules of code which allows developer to divide their project into various
units of functionality which can be independently tested, built and debugged.
Every project in Android studio will mainly contain one or more modules which will have
resource files and source files. The different types of modules would be Android app
modules, Library modules and google App Engine modules. It has an Instant Push feature
which will push the code, enabling resource to change into a running application. The Apps
built in android studio are compiled in APK format and then can sent to Google Play store.

1.4.2 JAVA
Java is a programming language, which is the official language for Android development.
It is an easy-to-use language and has open libraries that are easily accessible to users. Java
is a technology that provides better documentation and community support. With Java,
developers can build any mobile app

1.4.3 Firebase database


The Firebase Realtime data domain is a cloud-based database. The data is stored as JSON
and synced in real time to all connected clients. When the user creates cross-platform apps
with iOS, Android, and JavaScript SDKs, all of its clients are able to share one instance of
the Database and automatically receive updates with brand new data. The Firebase
Realtime data source can be accessed directly from a mobile phone or web browser; no
need for an app server. Data security and authentication are provided by Firebase Realtime
database security rules, the rules based on the speech that takes place when reading or
writing data.

CSPIT(IT) 3
PROJECT ID: D14 2.0 PROJECT MANAGEMENT

2.0 PROJECT MANAGEMENT

2.1 PROJECT PLANNING

Fig: 2.1 Project Planning.

CSPIT(IT) 4
PROJECT ID: D14 2.0 PROJECT MANAGEMENT

The above diagram indicates the flow via step wise procedure as below: -
P1 → Designing UI of Login and Sign-Up page for users
Description: It is the first page which user will be directed to on opening the application. It
will contain 3 methods for login/signup, using email/password, using facebook account and
using google account.

P2 → User Authentication
Description: During logging in, I have used Firebase UI for Firebase Auth, for the user’s
account verification and authentication.

P3 → Designing UI for Home Page


Description: After login, the user is forwarded to the home page where all the posts are
visible, it had a grid of pictures which is redirected in the post view module. The home page
consists of two buttons at the bottom having options for creating post and viewing
applications for posts already created.

P4 → Designing UI for Create Post page


Description: The create post page has options of uploading pictures and filling out a few
details about the post.

P5 → Designing UI for View Post page


Description: The posts can be views in detail by clicking on the picture on home page. The
bottom bar contains a button for filling out application for the adoption of the dog.

P6 → Designing UI for Application Form Viewing


Description: User can view applications on their post from home page. The list consists of
pictures of dog, name of applicant, and name of dog. By clicking on the title, user can view
the answers of all the questions in the application and the email id/facebook user id of the
applicant for further communication.

P7 → Final UI design completion


Description: Giving final edits to all the pages of the application and making them as user
interactive and catchy as possible for better user experience.

CSPIT(IT) 5
PROJECT ID: D14 2.0 PROJECT MANAGEMENT

2.1.1 Project development approach and Justification.

Agile development model


In Agile development model the entire software is developed in rapid, incremental cycle.
It relies on continuous development and testing of the project through the course of project
software development. It is a type of Incremental model.

Phases of Agile Model:


• Requirements gathering- In this phase all the requirements of projects and the
amount of time and effort the project is going to require are decided. Upon these
requirements the feasibility of the project and its economic cost are evaluated.
• Design the requirements: Once the project has been identified, requirements are
defined with the help of stakeholders.
• Construction/Iteration- Once the requirements are decided, the work on project
begins. Team of developers and designers will begin working on their project,
aiming to deploy a working product. The product undergoes different stages of
improvement, in order to include simple and minimal functionality.
• Testing- In this phase the product is tested by Quality Assurance Team and the
entire product is examined thoroughly.
• Deployment- At this stage, the team releases the product of the user's workplace.
• Feedback-In this phase the feedback on the product is received and accordingly
changes are made into the product by the team.

Fig 2.2 Agile Model.

CSPIT(IT) 6
PROJECT ID: D14 2.0 PROJECT MANAGEMENT

This model enables clients to evaluate and work with an effective product at the end of each
iterations and it also provides feedback at each step. It thereby opens the scope for working
on the changes more conveniently and all the required adjustments can also be made easily.
In this model, at each iteration, new developments and releases have been made in the
product.

Advantages of Agile Methodology:


• The customers are satisfied is attained because of by rapid, continuous delivery of
the software.
• Constant interaction between customers, developers and testers
• At any stage customer is able to make changes, and monitor product’s performance,
hence their expectations are fulfilled.
• In this method continuous attention is given to product design and excellence
• If any changes are required in the intermediate stages, then those can be achieved
as well.

Why have I selected Agile model?


With agile model, changes can be made very quickly and with no hassle. I chose agile
model because in the beginning of the developing stages very few features of my app were
defined. As the app progressed further, I added new features at every successive iteration.
Initially the goal of the project was just to provide information of the dogs up for adoption.
However, as I progressed through the app and decided to add in a feature of application
form and actually creating a contact between the adopter and the poster. At every iteration
I tested and evaluated the apps performance with every new implementation.

2.2 OBJECT WORK SCHEDULING

Fig. 2.3 Work scheduling part 1.

CSPIT(IT) 7
PROJECT ID: D14 2.0 PROJECT MANAGEMENT

Fig. 2.4 Work scheduling part 2.

Fig. 2.5 Gantt chart.

CSPIT(IT) 8
PROJECT ID: D14 3.0 SYSTEM REQUIREMENTS STUDY

3.0 SYSTEM REQUIREMENTS STUDY

3.1 USER CHARACTERISTICS


This app is intended to be majorly used by two types of users, first the people who want to
put up the dog for adoption (poster) and other the people looking to adopt a dog (adopter).
The poster can post the picture, view the picture, and view application form filler by the
adopter.

Fig. 3.1 User Interaction.

CSPIT(IT) 9
PROJECT ID: D14 3.0 SYSTEM REQUIREMENTS STUDY

3.2 HARDWARE AND SOFTWARE REQUIREMENTS


3.2.1 Software Requirement:
• Platform-Android
• Integration tool-firebase database
• Development tool-android studio

3.2.2 Hardware Requirement


• Android Phone 4.0 or above
• 128MB RAM
• 40Mb required space

3.3 ASSUMPTIONS AND CONSTRAINTS


Following are the assumptions taken while documenting the report:
• The coding is error free
• The user should have good internet connection to run the app.
• All the software and hardware requirements are met.

Following are the dependencies:


• The application is dependent only on working on android.

CSPIT(IT) 10
PROJECT ID: D14 4.0 SYSTEM ANALYSIS

4.0 SYSTEM ANALYSIS


4.1 STUDY OF EXISTING SOLUTION
A few applications in India namely, pet adoption, pets adoption, dogs adoption, let’s adopt,
and pet ad.

4.2 LIMITATIONS OF EXISTING SOLUTION


There are a few limitations like in pet ad, people can buy or sell animals, it is an application
for basically backyard breeding. the other applications are owned by NGOs and are
governed by them only. this means that they post pictures of dogs available at their shelter
only, it is not for all the stray dogs. I wanted to create a platform where anybody can post
picture of any dog not necessarily a breed or a shelter dog, everyone has access to the
functionality.

4.3 REQUIREMENTS OF PROPOSED SYSTEM


4.3.1 Functional requirement
• User can easily register him/herself with necessary details.
• User can even sign in using google sign in feature.
• User can even sign in using facebook sign in feature.
• User can even sign in using email/password sign in feature.
• User can view pictures of dogs up for adoption.
• User can read the details of the dogs.
• User is able to fill out an application form if he/she is interested in adopting.
• Poster can view applications.
• Poster can contact the adopter directly for any further questions.

4.3.2 Non-functional Requirements


• Usability - User interface of the application must be easy to use and effective.
Mostly people above 12 can use this application.
• Reliability - All possible errors should get handled during the development phase
of the application. After that if error occurs user should be acknowledged of the
error with meaningful message.
• Availability - For all users cost is free and android version 7.0+ required'
• Serviceability - Set of features that support the ease and speed with which corrective
or preventive maintenance can be conducted on a system
• Portability - Ability to obtain and reuse data across different services'
• Security - User's data must be secured and no one should be able to get hands on
user's data.
• Maintainability - When a dog is adopted, all the applicants will be notified so as not
to wait to hear from the poster.

CSPIT(IT) 11
PROJECT ID: D14 4.0 SYSTEM ANALYSIS

4.4 SYSTEM WORKFLOW


4.4.1 Work flow
To use Adopt Me application, it is just like a normal mobile application. Firstly, user have
to register him/herself or login directly using google, facebook or email/password method.
It leads to home page with all the posts. The user can view the details of the dog by clicking
on any picture and further fill out application form if interested. To create a post, user has
to post a picture and give information about the dog. The poster can view the application
form filled out by other users and contact them directly if the application seems appealing
enough, for any further questions.

Fig. 4.1 Work Flow Diagram.

CSPIT(IT) 12
PROJECT ID: D14 4.0 SYSTEM ANALYSIS

4.5 MAJOR CHARATERISTICS

Fig. 4.2 Characteristic Chart.

• Login/Sign up – User can login or signup to their facebook or google account or


simply use the conventional email/password method.

• Home Page – Home page consists of the grid of pictures posted by other users of
himself/herself. He/She can further click on the pictures to view further details
about the dogs.

• Application form- The app provides application form for all the interested adopters
for the given post with basic questions formed by collaboration with NGO adopt
worker. The poster can view the application form and decide if the applicant is
worthy or not.

• Contact – If the poster likes an applicant he/she can directly contact the applicant
for any further questions or discussion or any other decision making.

CSPIT(IT) 13
PROJECT ID: D14 5.0 SYSTEM DESIGN

5.0 SYSTEM DESIGN

5.1DATABASE SCHEMA DESIGN

Fig. 5.1 Database Schema.

CSPIT(IT) 14
PROJECT ID: D14 5.0 SYSTEM DESIGN

5.2DATA DICTIONARY
Table 5.1 Data Dictionary Table.

Field Name Data type Field length Constraint Description


Email Email 30 Not null User email
address
id Varchar 25 Primary Key User id: Auto
generated
User Name Varchar 30 Not null Name to be
displayed
Age Number 2 Not null Dog age
Breed Varchar 20 Not null Dog breed
Current living Varchar 20 Not null Current living
situation of
dog
Location Varchar 20 Not null Dog’s
adoption loc.
Vaccination Varchar 30 Not null Vaccination
Status
Medical Varchar 300 Not null Medical
Condition Condition of
dog
Nature Varchar2 300 Not null Nature of dog
Reason Varchar 500 Not null Reason dog is
for adoption

CSPIT(IT) 15
PROJECT ID: D14 5.0 SYSTEM DESIGN

5.3 SCREEN LAYOUT

Fig. 5.2 Login Screen.

Here, I have used the Firebase UI for having authentication using email/password, google
account and Facebook account. I have used firebase auth for authentication.

CSPIT(IT) 16
PROJECT ID: D14 5.0 SYSTEM DESIGN

Fig. 5.3 Home Page.

The home page consists of grid of pictures as posts, when a user clicks on the picture, the
user is directed to a view post page where he/she can see details regarding a particular post.
At the bottom there are two buttons create post, for generating a new post, and application,
for viewing the application forms filled on user’s own post.

CSPIT(IT) 17
PROJECT ID: D14 5.0 SYSTEM DESIGN

Fig. 5.4 View Post Page.

The view post page, as discussed earlier, consists of the details that the user has provided
while creating a post for any particular dog. The viewer can click on the apply button below
to fill out the application form if he/she likes the dog.

CSPIT(IT) 18
PROJECT ID: D14 5.0 SYSTEM DESIGN

Fig. 5.5 Create Post Page.

The user can click on the dog icon on the create post page to upload a picture from gallery
or click a picture, he/she can fill out the edit texts provided and can easily create a post.

CSPIT(IT) 19
PROJECT ID: D14 5.0 SYSTEM DESIGN

Fig 5.6 Apply for post.

The users after pressing the apply button at the bottom of the view post section, are
prompted to fill out an application form carefully designed with all the questions asked by
an NGO before giving up a dog for adoption. User has to submit this form and wait to hear
back from the poster.

CSPIT(IT) 20
PROJECT ID: D14 5.0 SYSTEM DESIGN

Fig. 5.7 Application form view.

In the applications section, the user can view the details of the interested people for a
particular dog, and the answers to their application questions. They can decide on its basis
whether they want further communication or not.

CSPIT(IT) 21
PROJECT ID: D14 6.0 SYSTEM IMPLEMENTATION AND TESTING

6.0 SYSTEM IMPLEMENTATION AND TESTING

6.1 CODING STANDARDS


For Java language used in android studio
• Don’t ignore exceptions
• Don’t catch generic exception
• Use spaces for indentation
• Use standard brace style

6.2 TESTING METHODS


Testing methods provide strategies or approach which needs to be used to test an
application. These are used to evaluate product’s performance and behavior. It
encompasses testing for the entire product from front to back-end testing, which also
includes unit and system testing. Test plans are used to understand test strategy, objectives
and estimation which are required for performing software testing. To create test plans
following process needs to be performed.
Create test plans
• Analyze and review product
• Create a test strategy
• Outline test objectives
• Plan Test environment
• Test deliverables

Item to be tested:
• Android app

Features to be tested:
• Verify the device compatibility
• Verify Application crash
• Verify getting news data in application from the firebase
• Verify user authentication
• Verify user is getting news as user’s preference
• Verify user can share news
• Verify user can comment on news
• Verify user can bookmark news

CSPIT(IT) 22
PROJECT ID: D14 6.0 SYSTEM IMPLEMENTATION AND TESTING

6.3 TEST SUITES DESIGN


The development process will repeat the sub processes of testing until it finds an adequate
result.
• Unit testing
• Integration testing
• system testing
• Acceptance testing

6.3.1 Unit testing


Mostly executed by developers, unit testing involves testing of individual components of
the software at coding level and ensuring that those components are working efficiently for
the purpose they are designed.
6.3.2 Integration Testing
This testing methodology ensures that each interaction among different software
components is smooth and error free.
6.3.3 System testing
A black box testing method, system testing tests the entire system and looks for errors and
bugs. It evaluates the integrated system as a whole and verifies if all the specific
requirements for the product are met.
6.3.4 Acceptance testing
Being the final phase for testing, Acceptance testing evaluates the final piece of software
where in it checks if the product meets the business requirement of the client and fulfils
end-user needs.
Testing of software needs to be accomplished in an orderly manner where in every module
of the software is tested intricately. We have carried out both Unit Testing and System
Testing in order to identify errors and fixing all the bugs.

CSPIT(IT) 23
PROJECT ID: D14 6.0 SYSTEM IMPLEMENTATION AND TESTING

6.4 TEST CASES

Table 6.1 Test cases results.

Test Cases Expected Actual Result Component Priority Status


Result
Verify the device App should run Successfully Functional Critical PASS
compatibility on major working on
android 7.0+ Android
version device devices
Verify Application Application is Functional Major PASS
Application crash should not not crashing in
crash in any any way
circumstances
Verify getting dog Getting all the Application is Functional Critical PASS
data in the data from the getting all the
application from database details from the
the firebase database
Verify User should be User is Functional Major PASS
authentication of authenticated authenticated
user when signed in
Verify user is User should get User is getting Functional Major PASS
getting applications applications on
applications filled filled by his/her post
applicants

CSPIT(IT) 24
PROJECT ID: D14 7.0 FUTURE ENHANCEMENT

7.0 FUTURE ENHANCEMENT

• I have planned to include reviews of the dogs adopted through my application in


form of short-lasting stories.
• Filters on locations of the posts, gender, age, or any other information.
• Using analytics of firebase to authenticate a picture uploaded.
• Planning to make this a common platform for all the animal activists, for
donations, fostering, etc.
• Creating the same functionality for IOS.
• Providing information regarding dog care, the basic of “to do” and “not to do” list.
• Providing basic news regarding dog adoption or stray matters.

CSPIT(IT) 25
PROJECT ID: D14 8.0 CONCLUSION

8.0 CONCLUSION
The developed application will be able to provide information on dogs to be put up for
adopted and any adopter can apply or post with no administrative interference. The posts
consist of all the information an adopter needs to know before selecting their furry buddy
and the application form consists of a 20 questions questionnaire every NGO asks before
giving up the dog.

8.1 SELF-ANALYSIS OF PROJECT VIABILITIES


The Adopt Me app has been developed by keeping the final user in mind. I have tried to let
the user customise as much as I can when it comes to providing information on any dog. I
haven’t been able to successfully implement the app administrator part, but I will be
working on that. By implementing the application form our users communication has gotten
much more clear and direct, the non- interference of any other party helps avoid the
confusion.

8.2 PROBLEM ENCOUNTERED AND THEIR SOLUTIONS


The problems faced were not major ones with this application, some were with the
pictures, the orientation of the pictures was locked to landscape even after editing a few
times.
There was an issue with the text color, some text was visible in dark mode and some not
and vice versa with the light mode.
It was my first time working with camera and gallery access, so faced some difficulties
there.
Facebook authentication in firebase auth using firebase UI was new to me too.

8.3 SUMMARY OF PROJECT WORK


Implementing the project provided us with a wonderful opportunity to learn various
technical and soft skills. It provided me with an opportunity to work for BISAG to
implement this project which was a very valuable learning experience. Working alone
forced me to learn various time management related things for the implementation to be
smooth and easy. It also gave me an opportunity to learn from our mentors in the collage,
Mr. Sagar Patel and Dr. Parth Shah, and BISAG, Mrs. Vibhuti Patel and Mr. Sidhharth
Patel. At the end of it I am pleased to have developed such a project using all the
technologies I have had and will look forward to keep working on it. Moreover creating a
project that will help various voiceless souls is satisfactory.

CSPIT(IT) 26
PROJECT ID: D14 REFERENCES

REFERENCES
1. Android Studio -
https://developer.android.com/studio?gclid=Cj0KCQjw1PSDBhDbARIsAPeTqrd
EN8WlITkqU52OEwldBvhGcDsRL_iSaK5Q3_yQbADCmrf4HuRogd4aAru5EA
Lw_wcB&gclsrc=aw.ds
2. Firebase Authentication - https://firebase.google.com/docs/auth
3. Facebook Authentication – https://firebase.google.com/docs/auth/web/facebook-
login
4. Firebase UI - https://firebase.google.com/docs/auth/web/firebaseui
5. Firebase Realtime Database - https://firebase.google.com/docs/database
6. Image uploading - https://www.geeksforgeeks.org/android-how-to-upload-an-
image-on-firebase-storage/
7. Material Design - https://material.io/develop/android

CSPIT(IT) 27

You might also like