Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 18

Contact Book - Python Using MySql

A Project Work submitted in partial fulfillment of the


requirements for the degree of
Bachelor of Computer Application
To the
Periyar University,Salem-11
By
SRINIVASAN.P
C21UG105CAP043

GOVERNMENT ARTS COLLEGE-105


(AFFILIATED TO PERIYAR UNIVERSITY)
Dharmapuri-6363701
MARCH-2024
Abstract

A Contact Book application is a software tool designed to manage and organize contact information
efficiently. In this abstract, we'll outline the key components and functionalities of a Contact Book
application implemented in Python using MySQL as the database management system.
Table Of Content

Chapter One :-
Acknowledgements…………………………………………….
1.1-Introduction………………………………………………...
1.2-Over View……………………………………………….
1.3- System Specification………………………………………
1. Hardware………………………………………..
2. Software…………………………………………….

Chapter two :-
2. System Study……………………………………….
2.1- Exiting System………………………………….
1.Description………………………………..
2.Draw Backs………………………………….
2.2- Propose System……………………………………..
1.Description…………………………………
2.Features……………………………………

Chapter Three:-
3. Software Design System……………………………….
3.1- Input Design…………………………………………
3.2- Output Design…………………………………………
3.3- Code Design…………………………………………..
3.4- Modules………………………………………………..

Chapter four:-
4. System Informations…………………………………….

Chapter five:-
5.Conclusion……………………………………….
Chapter six:-
6. References…………………………………

Chapter seven:-
7. Source Code………………………………………..

Chapter eight:-
8. Screen Layout………………………………………….
Acknowledgements:

We would like to express our gratitude to all those who contributed directly or indirectly to the development
of the Contact Book Application with Python and MySQL.
First and foremost, we extend our heartfelt thanks to the Python community for fostering an environment of
collaboration and knowledge sharing.
The abundance of resources, documentation, and open-source libraries provided invaluable support
throughout the development process.
We are also indebted to the developers and maintainers of MySQL for their continuous efforts in advancing
the field of relational database management.MySQL's robust features, scalability, and reliability served as
the backbone of our application, enabling seamless data management and retrieval.
CHAPTER 1
1.INTRODUCTION

In today's interconnected world, managing contact information efficiently is essential for personal and
professional communication. The Contact Book System offers a comprehensive solution for individuals and
businesses to organize, access, and update their contact lists seamlessly. With its intuitive interface and
robust features, the Contact Book System simplifies the process of storing, retrieving, and managing contact
details effectively.
Project Overview:-

A contact book is a tool for saving a contact’s details, such as name, address, phone number, and
email address.

In this project, you will build a Contact Book application that allows users to:
1. Add new contact records.
2. Search for contacts by name.
3. Display all contact records.
4. Delete contact records.
5. Modify contact records.

System Specification:-
1. Hardware Requirements:
Processor: Dual-core processor or higher
RAM: 2 GB or higher
Storage: At least 100 MB of free disk space
Display: Monitor with a resolution of 1024x768 pixels or higher
Input Devices: Keyboard, Mouse (for desktop applications).
2. Software Requirements:
Operating System: Windows 7 or later, macOS, Linux
Python: Version 3.6 or higher
MySQL: Version 5.7 or higher
mysql-connector-python: Latest version
IDE or Text Editor: Any IDE or text editor of choice (e.g., Visual Studio Code, PyCharm, Sublime
Text)
MySQL Workbench (Optional): For database administration and management.
CHAPTER 2
SYSTEM SYUDY

A system study involves analyzing the requirements, functionalities, and constraints of the Contact Book
System to ensure its successful implementation. Here's an overview of the system study for the project:
EXISTING SYSTEM:-
Before developing the Contact Book Application with Python and MySQL, it's essential to analyze
the existing systems or approaches to managing contacts. Understanding the strengths,
weaknesses, and limitations of current solutions can help identify areas for improvement and
inform the design and implementation of the new application.

1.Description:
Many users rely on manual methods such as physical address books, spreadsheets, or notes to store
contact information.
Manual Methods (e.g., Physical Address Books, Spreadsheets):
Limited Accessibility: Physical address books or spreadsheets are often confined to specific
physical locations, making it challenging to access contacts when away from these locations.
Scalability Issues: As the number of contacts grows, maintaining and organizing them
manually becomes increasingly laborious and prone to errors.
Data Vulnerability: Physical address books and spreadsheets are susceptible to loss, damage,
or theft, potentially resulting in the permanent loss of valuable contact information.
Limited Features: Manual methods lack advanced features such as search functionality,
categorization, or synchronization across devices.

Built-in Contacts Apps (e.g., Smartphone Contacts, Email Contacts):


Platform Dependency: Contacts stored within built-in apps are often tied to specific platforms
or devices, limiting accessibility and interoperability across different ecosystems.
Limited Customization: Built-in contacts apps may offer limited customization options,
restricting users from organizing contacts according to their preferences or adding custom fields.
Data Synchronization Issues: Inconsistent synchronization across devices or services may
lead to data discrepancies or loss of information, especially when managing contacts across multiple
platforms or accounts.
Privacy Concerns: Users may have concerns about the privacy and security of their contact
information stored within built-in apps, particularly regarding data sharing practices or unauthorized
access.
Third-party Contact Management Software:
Costly Subscriptions: Many third-party contact management software solutions require paid
subscription for access to advanced features or cloud storage, making them financially burdensome
for some user.
Data Privacy Concerns: Users may be hesitant to entrust their sensitive contact information
to third-party providers, especially if the software involves storing data on external servers or sharing
data with third parties.
Learning Curve: Transitioning to a new contact management software often requires time and
effort to learn the interface and features, potentially disrupting productivity for users accustomed to
existing workflows.
Integration Challenges: Integrating third-party contact management software with existing
workflows, applications, or databases may pose challenges, requiring technical expertise and
additional resources for implementation and maintenance.

2.Draw Backs:
While the Contact Book System offers numerous benefits and functionalities, it's essential to
recognize potential drawbacks and challenges that users may encounter. Here are some possible drawbacks
of the Contact Book System:
Limited Features: Some existing contact book systems may lack advanced features such as
tagging, categorization, or advanced search capabilities, limiting their usefulness for users with
specific needs.

Poor User Interface (UI): The user interface in existing systems might be outdated, unintuitive, or
not user-friendly. A clunky UI can lead to frustration and reduced productivity for users.

Lack of Customization: Users may find existing systems lacking in customization options. For
example, they may not be able to customize fields or layouts according to their preferences or
specific use cases.

Security Concerns: Security is a significant concern, especially for contact book systems that
store sensitive personal or business contact information. Existing systems might have
vulnerabilities or lack proper encryption and authentication mechanisms.
Limited Integration: Some contact book systems may not integrate well with other tools or
platforms that users rely on. This can lead to duplication of efforts and inefficiencies in managing
contacts across multiple systems.

PROPOSE SYSTEM:-
The proposed Contact Book System aims to address the limitations of traditional contact
management methods by offering a modern, user-friendly, and feature-rich solution. Here's an outline of the proposed
system:

1. Description:

The Contact Book System is a proposed Python-based application designed to streamline the

management of contacts for individuals and businesses. With an emphasis on simplicity,

efficiency, and versatility, the system aims to provide users with a comprehensive platform for

organizing and accessing their contact information securely.

2. Key Features:

User-friendly Interface: The system will feature an intuitive user interface, allowing users to

navigate effortlessly and perform tasks with ease. Clean design and straightforward functionality

ensure a pleasant user experience.

Contact Management: Users can add, view, update, and delete contacts seamlessly. Each

contact entry may include standard fields such as name, phone number, email address, along

with customizable fields to accommodate specific user needs.

Search and Filtering: Robust search and filtering capabilities enable users to quickly locate

contacts based on various criteria such as name, phone number, or category. Advanced filtering

options allow for efficient organization and retrieval of contacts.

Customization Options: The system offers users the flexibility to customize contact fields,

categories, and tags according to their preferences. This customization empowers users to tailor

the system to their unique requirements and workflows.

Import and Export Functionality: Users can import contacts from external sources such as CSV

files or vCard format, facilitating easy migration of existing contact lists. Similarly, the system
supports export functionality for backup and sharing purposes.
CHAPTER 3

SOFTWARE DESIGN SYSTEM

The software design system for the Contact Book System encompasses various architectural
components, design patterns, and implementation strategies to ensure a robust, scalable, and
maintainable application. Here's an outline of the software design system:

1. Input Desing:-

The input design of the Contact Book System focuses on creating user-friendly interfaces for
capturing and processing user inputs effectively. Here's how input design is implemented in the
system:

1. Contact Form:

The system presents a user-friendly contact form for adding or updating contact details.

Fields include:

Name: Text input field for entering the contact's name.

Phone Number: Numeric input field for entering the contact's phone number.

Email Address: Text input field for entering the contact's email address.

Additional Notes: Textarea field for adding any extra information about the contact.

2. Validation:

Each field incorporates validation rules to ensure data integrity and accuracy.

Validation includes:

Name: Ensures the name field is not empty and within a reasonable length.

Phone Number: Validates the format of the phone number (e.g., xxx-xxx-xxxx).

Email Address: Validates the email format (e.g., example@email.com).

Additional Notes: No specific validation, but length may be limited for usability.

3. User Interface Components:

Buttons: Action buttons include "Add Contact", "Update Contact", and "Delete Contact" for

performing relevant operations.

Dropdowns: A dropdown menu for selecting contact categories (e.g., personal, work).

Date Picker: For selecting dates related to contacts (e.g., birthdate).

4. Accessibility Considerations:
Keyboard Navigation: Users can navigate through form fields and buttons using keyboard

shortcuts (e.g., Tab key).

Screen Reader Compatibility: All form fields are appropriately labeled to ensure compatibility

with screen readers for visually impaired users.

5. Input Methods:

Text Input: Allows alphanumeric characters for name and email fields.

Numeric Input: Accepts only numeric characters for the phone number field.

File Upload: Supports importing contacts from external files (e.g., CSV, vCard) through a file

upload interface.

6. Usability Testing:

User Feedback: Conduct usability testing to gather feedback on the effectiveness and ease of

use of input components.

User Training: Provide user training materials to educate users on how to interact with input
fields

effectively, reducing errors and improving productivity.

7. Security Measures:

Input Sanitization: Implements input sanitization techniques to prevent injection attacks and

ensure data integrity. Special characters are escaped or filtered out to mitigate security

abilities.

8. Technology Stack:

Frontend Frameworks: HTML, CSS, and JavaScript with frameworks like Bootstrap for designin

and implementing input components.

Validation Libraries: Utilizes client-side validation libraries such as jQuery Validation for real-
time validation of input fields.

2. Output Design:-

The output design of the Contact Book System focuses on presenting contact information and
system feedback to users in a clear, organized, and visually appealing manner. Here's how output
design is implemented in the system:

1. Contact Listing:
The system displays a list of contacts in a tabular format, showing relevant information such as

name, phone number, and email address.

Each contact entry may include options for editing or deleting the contact.

2. Search Results:

When users perform a search, the system displays matching contacts based on the search

criteria.

Search results are presented in a clear and organized manner, highlighting relevant information.

3. Contact Details:

Clicking on a contact from the listing reveals detailed information about the contact.

Contact details include name, phone number, email address, and any additional notes.

4. Categories and Tags:

Contacts may be organized into categories or tagged for easy filtering and retrieval.

The system displays categories/tags and allows users to browse contacts within each

category/tag.

5. Import/Export Confirmation:

After importing or exporting contacts, the system provides a confirmation message to indicate

the success of the operation.

Any errors or warnings encountered during the import/export process are also displayed for user

reference.

6. Notifications and Alerts:

The system generates notifications and alerts to inform users about important events or actions.

For example, notifications may be sent for successful contact additions, updates, or deletions.

7. Print and Export Options:

Users can print contact lists or export them to various file formats (e.g., CSV, PDF).

The system offers options for customizing the output format and content before printing or

exporting.

8. Graphical Representations:

The system may include graphical representations (e.g., charts, graphs) to visualize contact
statistics or trends.

Graphical elements enhance data presentation and facilitate quick insights into contact data.

3. Code Design:-

In the Contact Book System, a well-structured and organized codebase is essential for
maintainability, scalability, and collaboration among developers. Here's a breakdown of the
code design considerations for the system:

1. Modular Structure:

The codebase is organized into modular components to facilitate maintainability and scalability.

Each module is responsible for a specific set of functionalities (e.g., contact management,
authentication, database interaction).

2. Separation of Concerns:

The code follows the principle of separation of concerns, with clear distinctions between
presentation, business logic, and data access layers.

Presentation layer handles user interface interactions and displays data to users.

Business logic layer contains application-specific logic for processing user requests and
implementing business rules.

Data access layer interacts with the database to perform CRUD operations and manage data
persistence.

3. Object-Oriented Design:

Object-oriented programming principles are employed to model real-world entities and interactions.

Classes and objects are used to encapsulate data and behavior related to contacts, users, and other
system entities.

Inheritance, polymorphism, and encapsulation are utilized to promote code reuse and maintainability.

4. Design Patterns:

Design patterns such as MVC (Model-View-Controller) or MVVM (Model-View-ViewModel) may


be employed to structure the application architecture.

MVC separates application into Model (data and business logic), View (presentation layer), and
Controller (handles user input and coordinates interactions).

5. Database Design:

The database schema is designed to efficiently store and retrieve contact information.

Tables are normalized to minimize data redundancy and ensure data integrity.
Relationships between tables (e.g., one-to-many relationship between users and contacts) are defined
to maintain referential integrity.

6. Error Handling:

Robust error handling mechanisms are implemented to gracefully handle exceptions and errors.

Error messages are informative and user-friendly, guiding users on how to resolve issues or recover
from errors.

7. Testing and Debugging:

Unit tests, integration tests, and end-to-end tests are conducted to validate the correctness and
reliability of the code.

Debugging tools and techniques are used to identify and fix bugs efficiently.

4. Modules:-

For the Contact Book System, organizing the codebase into modular components enhances
maintainability, scalability, and reusability. Here's a breakdown of potential modules for the system:

1. User Authentication Module:


Responsible for user registration, login, and session management.
Handles authentication and authorization of users accessing the system.
Manages user profiles and permissions.
2. Contact Management Module:
Handles CRUD (Create, Read, Update, Delete) operations for contacts.
Provides functionalities for adding, viewing, updating, and deleting contacts.
Validates and sanitizes contact data to ensure data integrity.
3. Search and Filtering Module:
Implements search functionality to retrieve contacts based on specific criteria.
Provides filtering options to categorize and organize contacts.
Utilizes efficient algorithms for quick retrieval of search results.
4. Customization Module:
Allows users to customize contact fields, categories, and tags according to their preferences.
Provides options for adding custom fields or modifying existing fields.
Handles data schema modifications and updates accordingly.
5. Import and Export Module:
Enables users to import contacts from external sources (e.g., CSV files, vCard format).
Supports exporting contacts to various file formats for backup or sharing purposes.
Provides data conversion mechanisms to handle different file formats.
6. Security Module:
Implements security measures to protect sensitive data and prevent unauthorized access.
Enforces encryption techniques for data storage and transmission.
Incorporates input validation and sanitization to mitigate security vulnerabilities.
7. User Interface Module:
Handles presentation layer components such as web pages, forms, and client-side scripts.
Renders contact lists, forms, and other user interface elements.
Ensures responsiveness and accessibility across different devices and screen sizes.
8. Database Interaction Module:
Manages interactions with the database for storing and retrieving contact information.
Handles database connections, queries, and transactions.
CHAPTER 4

SYSTEM INFORMATIONS

In the context of the Contact Book System, system information refers to the details about the
environment, dependencies, and configurations required to run the application effectively. Here's a
breakdown of the system information for the project:
1. Operating System Compatibility:
Specify the operating systems supported by the Contact Book System. This could include:
Windows
macOS
Linux distributions (e.g., Ubuntu, CentOS)
2. Programming Language and Version:
Identify the programming language used to develop the system and its version. For example:
Python 3.x
3. Web Framework and Dependencies:
If the system includes a web-based user interface, specify the web framework used and its
dependencies. For instance:
Flask or Django
List any additional Python packages required for the web framework (e.g., Flask-WTF, Django Rest
Framework)
4. Database Management System:
Specify the database management system (DBMS) used for storing contact information. This could
be:
MySQL
PostgreSQL
SQLite (for development/testing purposes)
5. Database Connection Information:
Provide details about the database connection, including:
Hostname/IP address
Port number
Database name
Username and password (if applicable)
Connection URL or configuration file path
6. Web Server Information (if applicable):
If the system is deployed on a web server, specify details about the web server software:
Apache HTTP Server
Nginx
Microsoft Internet Information Services (IIS)
7. Browser Compatibility:
Mention the web browsers supported by the system's user interface:
Google Chrome
Mozilla Firefox
Microsoft Edge
Safari
8. Other Dependencies and Configurations:
Include any other dependencies or configurations required to run the system, such as:
JavaScript libraries (e.g., jQuery, Bootstrap)
Additional Python packages/modules
Environment variables
Configuration files (e.g., for application settings, logging)
9. Deployment Environment:
Specify whether the system is intended for deployment in a production environment or for
development/testing purposes.
Provide information about the deployment environment, such as:
Cloud platform (e.g., AWS, Azure, Google Cloud)
On-premises server
Docker containerization
10. System Architecture Diagram (optional):
Optionally, include a system architecture diagram depicting the components and interactions of the
Contact Book System within the broader system environment.

CHAPTER 5
CONCLUSION

One of the most well-known and most used feature of devices to all users, developers or not, is the
Contact Book. For those who use a lot the device as a phone all important and vital information they
need exist in their contacts. Till today, many applications have been developed, and even more can be
built that make use the device’s Contact book data Contact Book is a contact management software,
wherewith you can note the addresses, phone numbers, mobile, fax, company name, country, city,
website address and email addresses of your contacts and partners. You can easy print list of contacts
and details of selected contact, has a local database and user interface for finding and editing information
about people 31
Future Works:
The work done in project can be extended along several interesting directions, among these are:
1- This project can be applied in distributed databases.
2- This project can be online Contact book.
3- This project can be applied to other programming languages.

CHAPTER 6
REFERANCES
CHAPTER 7
SOURCE CODE

You might also like