Contact-management
Contact management project
Contact management project is basically a console project developed using python and Sqlite databse, which can handle CRUD operations easily,following project creates a new db. extension file in your local directory
Basic feature available :
- User can Add new contact detail
- Can information about current database
- User can delete and manipulate the contacts easily
About databse management:
I have used “Server-less database” for user to perform CRUD operation locally.
Libray used in Python:
- Sqlite3 : To handle databse
- Prettytable : To show data in tabular format.
Source Code: contact_management.py
from prettytable import PrettyTable
import sqlite3
import os
os.chdir('E:\project')
#--------------------------------------------------
my_database = sqlite3.connect('contact.db')
try:
my_database.execute('select * from contact')
except:
my_database.execute('''CREATE TABLE CONTACT
(NAME char(30) primary key NOT NULL,
Phone_no INT NOT NULL,
ADDRESS CHAR(50),
EMAIL_ID CHAR(50));''')
#--------------------------------------------------------
#print(my_database.execute('select * from contact'))
class contacts:
Name = str()
Mobile_no = str()
Address = str()
Email = str()
def __init__(self):#constructor used for declaring variable
self.Name = ''
self.Mobile_no = ''
self.Address =''
self.Email = ''
def show_table_format(self,contact_detail):
myview = PrettyTable(['Name','Phone no.','Address','Email Id'])
data = []
for i in contact_detail:
data.append(i)
if(not data):
print('oops no data found !!! :(')
return
myview.add_rows(data)
print(myview)
return
def Add_contact(self):
self.Name = input('Enter the name: ')
self.Mobile_no = input('Enter the number: ')
self.Address = input('Enter the address: ')
self.Email = input('Enter the email: ')
my_database.execute('Insert into contact values("{}","{}","{}","{}")'.format(self.Name,self.Mobile_no,self.Address,self.Email))
my_database.commit()
print('Data saved succesfully')
return
def show_contacts(self):
contact_detail = my_database.execute('select * from contact')
self.show_table_format(contact_detail)
def Edit_contacts(self):
self.Delete_contacts()
self.Add_contact()
def Delete_contacts(self):
delete_name = input('Enter the name of contact to edit/delete: ')
my_database.execute('Delete from contact where NAME = "{}" COLLATE NOCASE'.format(delete_name))
my_database.commit()
print('Data deleted succefully')
def search_contacts(self):
search_name = input('Enter the name of contact to search: ')
data = my_database.execute("select * from contact where name = '{}' COLLATE NOCASE".format(search_name))
self.show_table_format(data)
def start_up():
print(' '*15,'1. Press a to add new contact')
print(' '*15,'2. Press s to show contacts')
print(' '*15,'3. Press e to edit contacts')
print(' '*15,'4. Press d to delete contacts')
print(' '*15,'5. Press g to search contacts')
if __name__ == "__main__":
person = contacts()
print('----------------:Welcome to contact list management system:-------------')
answer = 'y'
while answer in ['y','Y']:
start_up()
choice = input('Enter your choice: ')
if choice in ['a','A']:
person.Add_contact()
elif choice in ['s','S']:
person.show_contacts()
elif choice in ['e','E']:
person.Edit_contacts()
elif choice in ['d','D']:
person.Delete_contacts()
elif choice in ['g','G']:
person.search_contacts()
else:
print('oops invalid choice !!! ')
answer = input('Want to perform more operation y/n !!')
print('Programme closed succesfully')