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

Shree Swaminarayan College of

The document outlines a project titled 'Contact Management System' developed by Pavasiya Yash K. for a Bachelor of Computer Applications degree at Shree Swaminarayan College of Computer Science. It details the system's objectives, functionalities such as CRUD operations, categorization of contacts, and offline storage using SQLite, along with the software development life cycle (SDLC) and requirements. The project aims to provide a user-friendly and secure solution for managing personal and professional contacts without reliance on cloud services.

Uploaded by

yashpavasiya892
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views47 pages

Shree Swaminarayan College of

The document outlines a project titled 'Contact Management System' developed by Pavasiya Yash K. for a Bachelor of Computer Applications degree at Shree Swaminarayan College of Computer Science. It details the system's objectives, functionalities such as CRUD operations, categorization of contacts, and offline storage using SQLite, along with the software development life cycle (SDLC) and requirements. The project aims to provide a user-friendly and secure solution for managing personal and professional contacts without reliance on cloud services.

Uploaded by

yashpavasiya892
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 47

Shree Swaminarayan College of Computer Science

(Affiliated to M. K. Bhavnagar University)


Project title:Contact Management system BCA-6/E
Shree Swaminarayan College of
Computer Science

Contact Management System


By
Pavasiya Yash K. (2223316)

UNDER GUIDANCE OF
Mr. Parthiv Andharia

SUBMITED TO

SHREE SWAMINARAYAN COLLEGE OF COMPUTER SCIENCE


GURUKUL CAMPUS,SARDARNAGAR, BHAVNAGAR–364001

FOR DEGREE OF
Bachelor of Computer Applications

Made by : Pavasiya Yash k. Page 1


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Made by : Pavasiya Yash k. Page 2


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

1. Introduction Page No.


1.1 Background 07
1.2 Objective 07
1.3 Purpose 08
1.4 Scope 08
1.5 Applicability 09

2. Requirement And Analysis


2.1 SDLC 10
2.2 Problem definition 11
2.3 Requirement specification 12
2.4 Hardware Software Requirement. 14
2.5 Planning and Scheduling 14

3. System design
3.1 Over all System design using designing Tools 16
3.2 Data Flow Diagram(DFD) 18
3.3 E-R Diagram 21
3.4 Data Dictionary 23
3.5 Input /Output Design 26

4. Testing and implementation


4.1 Testing Approach used 36
4.2 Test cases 38
4.3 Implementation Approach or Implementation Tools 44

5. Conclusion
5.1 Conclusion 45
5.2 Limitation of system 46
5.3 Future Scope of system 46
5.4 Bibliography 47

Made by : Pavasiya Yash k. Page 3


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Acknowledgement

Every work that one complete successfully on the constant encouragement, goodwill and support
of the people around. We, hereby, avail this opportunity to express our heartfelt gratitude to a
number of people who extended their valuable time, full support and cooperation in developing
this project. We convey our heartfelt gratitude to our collage "Shree Swaminarayan College of
Computer Science" for giving us this precious opportunity to work for the real-time project.

I wish to express my deep sense of gratitude and honour toward head of Maharaja
Krishnakumarsinhji Bhavnagar University for given chance me to work with study. We are
thankful to our principal Mr. Paresh Rathod and H.O.D Mr. Kalpesh Gundigara for his guidance
and encouragement and also for providing necessary facilities to complete our project and
implement in right way.

We would like to acknowledge by thanking each and every individual who guided us in making
this project. First we would like to thank our guide Ms. Kinjal Sarvaiya who led us on how to
complete this project. This project would have been impossible without their continuous
encouragement and trust in our project ideas. She is one of the major sources behind the success
of the project.

Finally, yet importantly, we would like to express our heartfelt thanks to our beloved Parents for
their blessings, our Friends/Classmates for their help and wishes for the successful completion of
this project.

Made by : Pavasiya Yash k. Page 4


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

PreFace

It has been stated, each long journey starts with a little step now a day. The world becomes
complex and going towards direction of computerization so the Bhavnagar University has
included project and industrial study as a part of B.C.A course.

Today's competitive market works on current market technologies. Therefore it is necessary that
the system developed by you should be based on that technology.

Now a day, computers are used in all most all fields. We hardly find any field that does not make
use of computers. This it says that the working method of people has changed a lot from ancient
times to today's fast and efficient widely used technology.

With knowledge you know only words,


With experience you know the meanings.

Computers are finding an important place in all fields because of its user friendly so establish
yourself in this market you need to design the system in such a way that they don't find any
difficulty to the extent possible. This is probably one of the most difficult tasks for the
developers also the system must adapt to new skills that are friendliness and practical usefulness
is taken into account. I strongly believe that this report will be helpful in guiding the user about
our system and making them feel comfortable while working with the system.

Made by : Pavasiya Yash k. Page 5


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Introduction

1.1 Background :

In today’s digital world, people manage a vast number of personal and professional
contacts.However, default contact apps often lack advanced features such as
categorization, favorites management, and in-app contact storage.

This project aims to overcome these limitations by providing a custom Contact


Management System that allows users to:

 Store contacts privately within the app (without syncing with Google Contacts).
 Categorize contacts into groups like Public, Private, and Friends.
 Mark contacts as favorites for quick access.
 Search contact easily.

1.2 Objective :

1.Implement CRUD Operations – Enable users to Create, Read, Update, and Delete
contacts.

2. Categorize Contacts into Groups – Allow users to assign contacts to Public, Private,
and friendsgroups.

3. Mark Contacts as Favorites – Provide an option to mark/unmark contacts as


favorites and display them in the FavoriteFragment.

4. Enable Efficient Searching & Filtering – Implement a search function to quickly


find contacts based on name or phone number.

5. Store & Retrieve Contact Images – Support profile picture storage using
ByteArray in SQLite.

Made by : Pavasiya Yash k. Page 6


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
6. Implement Bottom Navigation – Provide smooth navigation between Contacts,
Favorites, and Groups using BottomNavigationView.

7. Manage Permissions – Handle READ/WRITE contacts and image permissions


securely.

1.3 Purpose and Scope

Purspose:
The Contact Management System is designed to provide users with a personalized, efficient, and
feature-rich contact management solution that operates independently of cloud-based services.
Unlike traditional phone contact apps, this system allows users to:
 Store contacts locally using SQLite for offline access.
 Categorize contacts into groups like Public, Private, and Friends.
 Mark important contacts as favorites for quick retrieval.
 Search and filter contacts efficiently.

Scope:

Contact Management:

 Add, update, delete, and retrieve contacts.


 Store contact details like name, phone number, email, and profile image.

Favorites & Groups:

 Mark/unmark contacts as favorites and display them in the FavoriteFragment.


 Categorize contacts into Public, Private, and Friends groups and display them in
GroupFragment.

User Interface & Navigation:

 Implement BottomNavigationView to switch between Contacts, Favorites, and


Groups.
 Use RecyclerView to display contacts dynamically.
 Floating Action Button (FAB) for quick contact addition.

Search & Filtering:

 Implement a search function for quick retrieval.


Made by : Pavasiya Yash k. Page 7
Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
 Filter contacts by name, phone number, or group.

Data Storage & Permissions:

 Use SQLite Database for storing contacts.


 Request READ/WRITE contact permissions for seamless integration.
 Store images using ByteArray for efficiency.

1.5 Applicability :

The Contact Management System is applicable in various real-world scenarios where users
need an efficient, organized, and private way to store and manage their contacts. Below are
some key areas where this project can be useful:

 Organized Contact Storage – Users can store their contacts in a structured way with
groups like Public, Private, and Friends.
 Favorites Section – Frequently contacted people can be marked as favorites for quick
access.
 Efficient Search & Filtering – Helps users quickly find contacts without scrolling
through long lists.
 Offline Access – Since data is stored locally in SQLite, users can access contacts even
without the internet.
 Group-Based Organization – Store VIP clients, potential leads, or regular customers
separately.
 Image Storage for Identification – Helps businesses store customer profile pictures
for better recognition.

Made by : Pavasiya Yash k. Page 8


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Required And Analysis

2.1 SDLC - Software Development Life Cycle


SDLC stands for Software Development Life Cycle. It is a systematic process used by
developers to design, develop, test, and deploy software applications. The SDLC provides a
structured approach that ensures software is developed with high quality, within budget, and on
time.

Why SDLC?
1. SDLC ensures a structured and systematic approach to software development.
2. It helps in better planning, designing, and testing of the software.
3. It enables effective project management and tracking.
4. It minimizes the risks and errors during the development phase.
5. It improves the quality of the final product and ensures customer satisfaction.

SDLC for Contact Management System in Android Studio with Kotlin and
SQLite
For developing a Contact Management System in Android Studio using Kotlin and SQLiteDatabase, SDLC
provides a clear roadmap through the following phases:
1. **Requirement Analysis**: Understanding and gathering the features needed in the contact
management system such as adding, editing, deleting contacts, and using SQLite for storage.
2. **Planning**: Creating a development plan, estimating time, cost, and resources.
3. **Design**: Designing the UI using XML layouts and database schema using SQLite.
4. **Implementation**: Writing the actual Kotlin code in Android Studio to implement the desired
features.
5. **Testing**: Verifying the app functionality, performing unit tests, and UI testing to ensure
everything works correctly.
6. **Deployment**: Launching the application for use on Android devices.
7. **Maintenance**: Updating the app based on user feedback and fixing any bugs that arise post-
deployment.

Made by : Pavasiya Yash k. Page 9


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

2.2 Problem Defination :


Problem:
 Lack of Categorization – Default contact apps do not allow users to group
contacts into custom categories.
 Inefficient Search & Filtering – Searching for contacts in large lists can be
time-consuming and cumbersome.
 No Favorite Section – Users need quick access to important contacts without
scrolling through entire lists.
 Privacy Issues in Cloud-Based Storage – Many contact apps sync data to the
cloud, which raises security concerns.
 No Offline Access – Some apps require an internet connection to access certain
contact details.
 Limited Image Handling – Default contact apps may not provide efficient image
storage in local databases.

Solution :

The Contact Management System solves these problems by providing:

 CRUD Operations – Allow users to add, update, delete, and retrieve contacts.
 Favorites Section – Mark contacts as favorites and display them in
FavoriteFragment.
 Group-Based Organization – Store contacts in Public, Private, and Friends
categories in GroupFragment.
 SQLite Database for Offline Storage – No internet required, ensuring data
privacy and accessibility.
 Efficient Search & Filtering – Users can search by name, phone number, or
group.
 Bottom Navigation for Easy Access – Seamless navigation between Contacts,
Favorites, and Groups.
 Image Storage with SQLite – Allows users to store profile pictures efficiently.

Made by : Pavasiya Yash k. Page 10


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

2.3 Requirement Specifications :

2.3.1 Functional Requirements (FRs)

Contact Management
 Users should be able to add, edit, delete, and view contacts.
 Contact details should include name, phone number, email, and profile image.
 Contacts should be stored locally in SQLite database for offline access.

Grouping & Categorization

 Users should be able to assign contacts to groups (Public, Private, Friends).


 Contacts should be displayed based on their assigned group in
GroupFragment.

Favorites Feature

 Users should be able to mark/unmark contacts as favorites.


 Favorite contacts should be displayed separately in FavoriteFragment.

Search & Filtering

 Users should be able to search contacts dynamically using name, phone


number, or group.
 Contacts should be filtered based on favorites and groups.

Image Handling

 Users should be able to add a profile picture when saving a contact.


 The system should store images in ByteArray format in SQLite.

Navigation & UI

 Bottom Navigation View should allow users to switch between Contacts,


Favorites, and Groups.
 Floating Action Button (FAB) should allow users to quickly add a new
contact.
 RecyclerView should be used for displaying contact lists.

Made by : Pavasiya Yash k. Page 11


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Permissions Management

 The app should request READ and WRITE contact permissions.


 Permissions for accessing images from storage should also be handled.

2.3.2 Non-Functional Requirements (NFRs)

Performance

 The app should quickly load and display contacts.


 Search operations should be optimized to work efficiently with large contact lists.

Usability

 The UI should be simple, intuitive, and user-friendly.


 The system should provide error messages and validation for incorrect inputs.

Security & Privacy

 Contacts should be stored locally in SQLite (no cloud sync for privacy).
 The system should not share contact data with third-party apps.

Reliability

 The app should ensure data persistence (contacts should not be lost after closing the
app).
 It should handle app crashes and errors gracefully.

Made by : Pavasiya Yash k. Page 12


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

2.4 Hardware Software Requirement :

Software Requirements

 Operating System: Windows / macOS / Linux (for development), Android (for


deployment)
 Development Tool: Android Studio (latest version)
 Programming Language: Kotlin
 Database: SQLite

Hardware Requirements

 Processor: Minimum 1.5 GHz (Recommended: 2.0 GHz+)


 RAM: Minimum 4GB (Recommended: 8GB+)
 Storage: At least 500MB free space for installation and development

2.5 Planning and Scheduling :

1. Planning

 Identify project objectives, scope, and feasibility.


 Define resources, timeline, and cost estimation.
 There many applicatons that are used in market that can rival any company.

2. Requirement Analysis

 Gather and document functional & non-functional requirements.


 Understand user expectations and technical constraints.

3. System Design

 Create UI wireframes, database schema, and system architecture.

Made by : Pavasiya Yash k. Page 13


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
 Plan how different components will interact.

4. Implementation (Development)

 Write the actual code based on design specifications.


 Use programming languages, databases, and tools.

5. Testing

 Identify and fix bugs, errors, and performance issues.


 Conduct unit testing, integration testing, and user acceptance testing (UAT).

6. Deployment

 Release the software for users or clients.


 Deploy in a test or production environment.

7. Maintenance & Updates

 Provide bug fixes, security patches, and performance improvements.


 Upgrade the system with new features based on feedback.

Phase Days
Analysis 10 days
Designing 30 days
Coding 20 days
Testing 10 days
Implementation 10 days
Documentation 10 days

System Design

3.1 Designing Tools :

Android Studio

Made by : Pavasiya Yash k. Page 14


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Android Studio is the official Integrated Development Environment (IDE) for
Android app development. Based on the powerful code editor and developer tools
from Iintellij idea , Android Studio offers even more features that enhance your
productivity when building Android apps, such as:

 A flexible Gradle-based build system


 A fast and feature-rich emulator
 A unified environment where you can develop for all Android devices
 Live Edit to update composables in emulators and physical devices in real time
 Code templates and GitHub integration to help you build common app features
and import sample code
 Extensive testing tools and frameworks
 Lint tools to catch performance, usability, version compatibility, and other
problems
 C++ and NDK support
 Built-in support for google cloud platform, making it easy to integrate Google
Cloud Messaging and App Engine

This page provides an introduction to basic Android Studio features. For a


summary of the latest changes, see the studio release notes.

Features of android Studio


Development Environment & Tools:
 Visual Layout Editor:
Create and edit user interfaces using a drag-and-drop interface, making it easy
to design layouts for various screen sizes.
 Fast and Feature-Rich Emulator:

Test your app on a variety of Android devices without needing physical


hardware.
 Gradle-Based Build System:
Automate the build process and manage dependencies efficiently.
 Code Templates and GitHub Integration:

Made by : Pavasiya Yash k. Page 15


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Speed up development by using pre-built code snippets and integrating with
GitHub for version control.

 Intelligent Code Editor:


Benefit from features like code completion, syntax highlighting, and refactoring
tools.
 Lint Tools:
Catch potential issues like performance problems, usability issues, and version
compatibility problems.
 Android Profiler:
Analyze your app's performance, including CPU, memory, network, and battery
usage.
 Live Edit:
Update composables in emulators and physical devices in real time.

Build and Deployment:


 Build Variants: Create multiple build variants for different device types and
configurations.
 SDK Manager: Download and manage Android SDK components, including
build tools and platform APIs.
 Android SDK Build-Tools: Compile, link, and package your app for installation
on a device.
 Android SDK Platform: Choose the version of the Android platform you want
to target.
 App Modules: Organize your project into modules for better code structure and
reusability.
Testing and Debugging:
 Extensive Testing Tools and Frameworks: Use JUnit, Espresso, and other tools
to test your app thoroughly.

 Debugging Tools: Debug your app line by line, set breakpoints, and inspect
variables.
Other Notable Features:
 Kotlin and Java Support: Develop apps using either Kotlin or Java, or a
combination of both.

Made by : Pavasiya Yash k. Page 16


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
 Firebase Integration: Connect your app to Firebase services like real-time
databases, authentication, and analytics.
 C++ and NDK Support: Develop performance-critical parts of your app using
C++ and the Native Development Kit (NDK).
 Android Dynamic Performance Framework updates
 Jetpack Compose: Use Jetpack Compose, a modern UI toolkit, for building
Android apps.
 App Indexing: Help users find your app through Google Search by adding
indexable URLs.
 Android Studio Preview: Get access to the latest features and technologies
before they are officially released.

3.2 Data Flow Diagram

 A Data Flow Diagram (DFD) is a graphical representation of how data flows through a
system.
 It visualizes inputs, processes, and outputs, making it easier to understand system
functionality.

Context Level Diagram

Made by : Pavasiya Yash k. Page 17


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
First Level DFD[Admin] :

Made by : Pavasiya Yash k. Page 18


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

First Level DFD[User] :

Made by : Pavasiya Yash k. Page 19


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

3.3 Entity-Relationship (ER) Diagram for Contact Management System

The ER Diagram represents the database structure of the Contact Management System
with entities, attributes, and relationships.

Entities & Attributes

1. Contact (Contact_ID as Primary Key)


o Contact_ID (PK)
o Name
o Phone_Number
o Email
o Image
o Favorite
o Group

2. Favorite (Favorite_ID as Primary Key)


o Favorite_ID (PK)
o Contact_ID (FK, references Contact)

3. Group (Group_ID as Primary Key)


o Group_ID (PK)
o Group_Name (Public, Private, Friends)

4. Contact_Group (Many-to-Many Relationship)


o Contact_ID (FK, references Contact)
o Group_ID (FK, references Group)

Made by : Pavasiya Yash k. Page 20


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

E-R Diagram

Made by : Pavasiya Yash k. Page 21


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

3.4 Data Dictionary :

Contact Table :

Field Name Data Type Contstrints Description


Contact_id Integer Primary Unique ID for each
key,Autoincrement contact
Name Text NOT NULL Contact's full name
Phone_Number Text Not Null,Unique Contact’s phone
number
Email Text Nullable Contact’s email
address
Group Text Nullable Contact’s is
public,private or
friend
Favorite Boolean Default false Unfavorite until it is
clicked
Group String Public Group name such as
public,private or
friend

Favourite Table :

Field Name Data Type Constraints Description


Favorite_id Integer Primary Unique ID for favorite
key,AutoIncrement contact
Contact_ID Ineteger Foreign Key Contact marked as
References favorite

Group Table :

Field Name Data type Constraints Description


Group_ID Integer Primary key Unique Id for each group
Group_Name Text Not Null,Unique Name of the

Made by : Pavasiya Yash k. Page 22


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Group(public,private,friends)

Contact_Group Table (Mapping Table for Many-to-Many Relationship) :

Name Type Constraints Description


Contact_ID Integer FOREIGN KEY Contact assigned to a
REFERENCES group
Contact(Contact_ID)
ON DELETE
CASCADE
Group_ID Integer FOREIGN KEY Group where the
REFERENCES contact belongs.
Group_Table(Group_ID
) ON DELETE
CASCADE

Made by : Pavasiya Yash k. Page 23


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

3.5 Input/output Design

Output Design:

The above page will show the inserted,edited data in an contact.

Anyone can access the data there is no restrictions.

Made by : Pavasiya Yash k. Page 24


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Input Design :

This will show an fragment page or an userInterface where you can enter
name,lastnae,phoneNumber,email and it’s group from public,private and friends.

Here Created_At is for time and date which is not much use.

Made by : Pavasiya Yash k. Page 25


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Edit Contact :

This will show you the editing part of an particular contact.

It may or may not change it real time but any changes can be made.

You can edit which ever column you want to edit.

Made by : Pavasiya Yash k. Page 26


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Delete Design

You can delete any contact you want without any difficulty.

You just have to click on delete icon to delete the contact.

Made by : Pavasiya Yash k. Page 27


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Group Output :

 Private Contact display

As you can see in group fragment shows the data of any particular group or category.
You can edit,delete or add to favorite contact if you wish in groupFragment.
This shows data which are private group related.
You can select the group category and you can see that particular category data from all entered
contact.

Made by : Pavasiya Yash k. Page 28


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

 Public Contact display

As you can see in group fragment shows the data of any particular group or category.
You can edit,delete or add to favorite contact if you wish in groupFragment.
This shows data which are public group related.
You can select the group category and you can see that particular category data from all entered
contact.

Made by : Pavasiya Yash k. Page 29


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

 Friend Contact display

As you can see in group fragment shows the data of any particular group or category.
You can edit,delete or add to favorite contact if you wish in groupFragment.
This shows data which are friend group related.
You can select the group category and you can see that particular category data from all entered
contact

Made by : Pavasiya Yash k. Page 30


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Favorite Output

You can select any favourite contact from favoriteFragment which display only favorite contact
of yours without any difficulty.

You can add to favorite or remove from any three fragment and you can also delete from any
three fragment.

Made by : Pavasiya Yash k. Page 31


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Search Category

Here search function is excuted which is in ContactFragment.

But search by using phone number is not included because of condition error.

That’s why filter also not added in it.

Made by : Pavasiya Yash k. Page 32


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Permission :

Contact Read/Write Permission :

Here you give the permission to Read/Write your contact information of each
people and make changes such as image edit,name edit and etc.

But you cannot change the phone number once you saved that phone number.

Made by : Pavasiya Yash k. Page 33


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Contact Read/Write Permission :

This permission helps you to access data such as image to be set during adding an
new contact.

You can also change the image during editing.

Made by : Pavasiya Yash k. Page 34


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

Testing and Implementation

4.1 Testing Approach Used

Proactive : -
o This approach defines amd presents the approach or way to carry out the testing
procedures,as soon as possible,even before the development of the initial software
build.

o The said technique may be seen as a preventive approach,in order to find and fix
defects

Reactive : -

o Reactive Testing is a dynamic testing approach where tests are adapted based on
real-time application behavior.
o Instead of predefining all test cases upfront, test strategies evolve as issues
emerge, making it highly effective for event-driven and interactive
applications like a Contact Management System.

Testing Methods :-

What is testing?

Testing is the process of evaluating software to ensure it meets the required


functionality, performance, security, and usability. It helps identify bugs, errors,
or defects before software is deployed to users.

1.Black Box Testing

Black Box Testing is a software testing technique where the tester evaluates the
functionality of an application without knowing its internal code, logic, or
structure. The focus is on input and output rather than the internal workings.

2.White Box Testing

White Box Testing is a software testing technique where the tester evaluates the
internal structure, logic, and code of the application. Unlike Black Box Testing,

Made by : Pavasiya Yash k. Page 35


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
testers have full access to the code, algorithms, and data flow.

3.Unit Testing

Unit Testing is a software testing technique where individual components (or


units) of an application are tested in isolation to verify they function correctly. A
unit can be a function, method, class, or module.

4.Integrated Testing

Integration Testing is a software testing technique where multiple units/modules


are combined and tested as a group to ensure they work together correctly. It
verifies data flow, communication, and interactions between different
components.

5.System Testing

System Testing is a software testing technique where the entire application is


tested as a whole to ensure it meets functional and non-functional requirements. It
evaluates the end-to-end behavior of the system, including UI, databases, APIs,
and integrations.

6.Acceptance Testing

Acceptance Testing is the final phase of testing before a software product is


delivered to end users. It ensures the application meets business requirements
and user expectations. The goal is to verify whether the system is ready for
deployment.

Made by : Pavasiya Yash k. Page 36


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

4.2 Test Cases

Case 1 :

Test Case ID 1
Module Contact Addition
Test Scenario Add a new contact with valid details
Test Steps  Open the app.
 Click add contact
 Enter name,phone number etc
 Click save

Expected Result Contact is saved and appers in the list


Status Pass

Case 2:

Test Case ID 2
Module Contact Addition
Test Scenario Try adding a contact without a name
Test Steps  Open the app.
 Leave name empty
 Fill phone number etc
 Click save

Expected Result Please fill all the reqirement


Status Pass

Case 3:

Test Case ID 3
Module Contact Addition
Test Scenario Try adding a contact with an invalid
number or empty.
Test Steps  Open the app.
 enter name empty
 leave phone number empty or invalid

Made by : Pavasiya Yash k. Page 37


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
 Click save

Expected Result Please fill all the reqirement


Status pass

Case 4:

Test Case ID 4
Module Contact Addition
Test Scenario Delete a contact from the list
Test Steps  Open contacts list.
 Click on delete icon design
 Click save

Expected Result Contact is removed from the list


Status pass

Case 5:

Test Case ID 5
Module Favourite Feature
Test Scenario Mark a contact as favorite
Test Steps  Open contact list.
 Select a contact
 Click favorite

Expected Result Contact is added to the favorites list


Status pass

Made by : Pavasiya Yash k. Page 38


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Case 6:

Test Case ID 6
Module Favourite Feature
Test Scenario Unmark a contact as favorite
Test Steps  Open favorites list.
 Select a contact
 Click unfavorite

Expected Result Contact is removes from favorites list


Status pass

Case 7:

Test Case ID 7
Module groups Feature
Test Scenario Unmark a contact as favorite
Test Steps  Open contacts list.
 Select a contact
 Click assign to group
 Choose friends/public/private

Expected Result Contact is assigned to the selected group


Status pass

Case 8:

Test Case ID 8
Module groups Feature
Test Scenario Remove a contact from a group.
Test Steps  Open group list.
 Select a group
 Remove a contact

Expected Result Contact is unassigned from the group


Status pass

Case 9:

Test Case ID 9
Module Search

Made by : Pavasiya Yash k. Page 39


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Test Scenario Search for a contact by name
Test Steps  Open a search bar
 Type contact name
 Press enter

Expected Result Matching contacts are displayed


Status pass

Case 10:

Test Case ID 10
Module Search
Test Scenario Search contact does not exist
Test Steps  Open a search bar
 Type a random name
 Press enter

Expected Result Message no contact found


Status pass

Case 11:

Test Case ID 11
Module Permissions
Test Scenario Deny Contact Read/Write Permission
Test Steps  Install the app
 Deny contact permission
 Try accessing contact List

Expected Result Permission Deny


Status pass

Made by : Pavasiya Yash k. Page 40


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Case 12:

Test Case ID 12
Module Permissions
Test Scenario Grant permission to read/write contact
Test Steps  Install the app
 allow contact permission
 access Contacts List

Expected Result Contacts should be visible


Status pass

Case 13:

Test Case ID 13
Module Filter
Test Scenario Filter contacts by group
Test Steps  open filter menu
 select a group
 view filtered contacts

Expected Result Only contacts from the selected group


apper
Status pending

Case 14:

Test Case ID 14
Module Navigation
Test Scenario Open the app and navigate to contact list
Test Steps  open the app
 click the contacts tab

Expected Result Contact list should open


Status pass

Case 15:

Made by : Pavasiya Yash k. Page 41


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
Test Case ID 15
Module Navigation
Test Scenario Open the favorite contacts tab
Test Steps  open the app
 click on favorites tab

Expected Result Favorite contacts list should appear


Status pass

Case 16:

Test Case ID 16
Module Navigation
Test Scenario Open the group contacts tab
Test Steps  open the app
 click on group tab

Expected Result group contacts list should appear


Status pass

4.3 Implementation Approach or Implementation Tools

Implementation Approaches for Contact Management System (Android - Kotlin)

The implementation of the Contact Management System in Android Studio using Kotlin
follows different approaches to ensure a structured, scalable, and efficient application. Below are
the main implementation approaches:

1.Architectural Approach – MVVM(Model – View –ViewModel)

Why MVVM?

Made by : Pavasiya Yash k. Page 42


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
 Separation of concerns (UI, business logic, and data management are separated).
 Better maintainability (easy to modify and extend).
 Improves performance (reduces unnecessary UI updates).

Component Purpose
Model Represents data (Contact entity, database)
View UI layer (XML layouts, Fragments)
ViewModel Manages UI-related data and business logic

2. Database Approach - SQLite with Room Database

Why Room?

 Abstraction over SQLite (easier to use).


 Built-in LiveData and Coroutines support.
 Better performance than raw SQLite queries.

Component Purpose
Defines database
Entity (Contact.kt)
table structure
Manages database
DAO (ContactDao.kt)
operations
Database Creates Room
(ContactDatabase.kt) database instance

3.UI Implemtation – jetpack Compnents

 Navigation Component → Handles fragment transitions.


 RecyclerView + ViewBinding → Displays contacts efficiently.
 LiveData → Updates UI automatically when data changes.

UI Component Description
Used for switching between Contact, Favorite, and Group
Bottom Navigation
Fragments
Floating Action Button
Adds new contacts
(FAB)
SearchView Filters contacts
CardView & RecyclerView Displays contacts

Made by : Pavasiya Yash k. Page 43


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
4. Image Handling - ByteArray Storage

Why store images as ByteArray?

 Efficient for small images.


 Reduces file access overhead.
 Works well with SQLite.

Method Description
Convert Image to ByteArray Stores image in the database
Convert ByteArray to Image Retrieves image from the database

5. Search & Filter Implementation

Approach:

 SQLite Queries with LIKE for search.


 LiveData & ViewModel for automatic UI updates.
 Spinner & Radio Buttons for group-based filtering.

Feature Implementation
Search by Name `SELECT * FROM contacts WHERE name LIKE '%'
Filter by Group SELECT * FROM contacts WHERE groupType = :selectedGroup

6. Permissions Handling - Android Runtime Permissions

Permissions Used:

 READ_CONTACTS → To read contacts from the device.


 WRITE_CONTACTS → To save contacts.
 READ_EXTERNAL_STORAGE → To access images.

Step Implementation
Request permission ActivityCompat.requestPermissions()
Check permission ContextCompat.checkSelfPermission()
Handle result onRequestPermissionsResult()

Made by : Pavasiya Yash k. Page 44


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E

7. Testing Approach

Manual Testing:

 UI Testing (Adding, Editing, Deleting contacts).


 Functional Testing (Search, Grouping, Favorites).
 Security Testing (Permissions, Unauthorized Access).

Automated Testing (JUnit + Espresso):

 Unit Testing (Testing ViewModel functions).


 UI Testing (Testing RecyclerView with Espresso).

Conclusion

5.1 Conclusion
The Contact Management System developed in Android Studio using Kotlin successfully implements
CRUD operations, favorites, group management, search, and image handling.

This application follows the MVVM architecture, utilizes Room Database for efficient storage, and
incorporates Jetpack components for modern UI development.

1. Efficient Contact Handling – Users can add, edit, delete, and search contacts easily.
2. Favorites & Groups Feature – Allows organizing contacts based on priority or category.
3. Robust Database Implementation – Uses Room Database for structured data
management.
4. Optimized UI & Navigation – Implements Bottom Navigation, RecyclerView, and
SearchView.
5. Secure & Permission-Controlled – Uses Android Runtime Permissions to ensure data
security.
6. Performance & Scalability – Supports large contact lists with smooth UI rendering.
7. Testing & Reliability – Implemented manual and automated testing (JUnit, Espresso)
for stability.
8. The Contact Management System developed using Android Studio with Kotlin and
SQLite provides a reliable and user-friendly solution for efficiently managing personal
and professional contacts.

Made by : Pavasiya Yash k. Page 45


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
9. By incorporating essential features such as adding, editing, deleting, searching, and
grouping contacts, along with favorite tagging and image handling, the system enhances
usability and data organization.
10. The use of SQLite ensures secure and offline storage, while modern Android UI
practices offer a seamless user experience.
11. Overall, the system demonstrates a practical implementation of mobile application
development, showcasing strong design principles, data validation, and effective use of
the Software Development Life Cycle (SDLC).

5.2 Limitations of program

 The Contact Management System is a well-structured application, but it has several


limitations.
 The SQLite-based storage restricts scalability, lacks real-time syncing, and can become
inefficient when handling large datasets, especially due to storing images as ByteArray.
 Performance issues may arise with large contact lists, causing UI lag, while the search
feature is case-sensitive and lacks fuzzy search capabilities.
 The absence of batch operations, biometric security, and data encryption makes it
less secure.
 Additionally, the app does not support contact import/export, duplicate detection, or
direct call/messaging integration, limiting its functionality.
 Since contacts are stored locally, there is no cloud backup or multi-device syncing,
meaning users risk losing all data upon uninstalling the app.
 Enhancements such as Firebase Cloud Sync, pagination for large datasets, batch
operations, security encryption, and advanced search optimization can significantly
improve scalability, security, and user experience.

5.3 Future Scope of the program

o Sync contacts with Google Drive, Firebase, or a cloud database for backup &
multi-device access.

o Enable real-time contact updates across multiple devices.

Made by : Pavasiya Yash k. Page 46


Rollno:2223316
Shree Swaminarayan College of Computer Science
(Affiliated to M. K. Bhavnagar University)
Project title:Contact Management system BCA-6/E
o Implement QR Code-based contact sharing for quick exchange.

o Allow Bluetooth or NFC-based contact transfer.


o Add password protection or biometric authentication for private contacts.
o Implement end-to-end encryption for storing sensitive data.
o AI-based duplicate contact detection & merging.
o Voice search & voice commands for contact management.
o Add one-tap call & message functionality within the app.

o Display call history & recent interactions with contacts.


o Use machine learning to auto-categorize contacts based on call frequency or
keywords.
o Implement custom tags for better organization.
o Multi-user support for team contact management.

o Integration with CRM (Customer Relationship Management) for


business use.

5.Biblography

https://chatgpt.com/

https://github.com/

https://www.microsoft.com/

https://androidknowledge.com/

Made by : Pavasiya Yash k. Page 47


Rollno:2223316

You might also like