← Back to Final Projects
Final ProjectIntermediate3-4 hours

Contact Management System

Professional-grade contact manager with search, categories, and export features.

📋 Project Overview

Build a comprehensive contact management system that stores contact information including names, phone numbers, emails, and addresses. Implement search functionality, categories, and import/export capabilities with CSV files.

🎯 Learning Objectives

  • Design contact data structure with multiple fields
  • Implement full CRUD operations for contacts
  • Create search functionality (name, phone, email)
  • Work with CSV files for import/export
  • Organize contacts into categories
  • Validate phone numbers and email formats
  • Generate contact statistics and reports

✨ Features to Implement

CoreMust-Have Features

  • Add new contacts with multiple fields
  • View all contacts in organized format
  • Search contacts by name, phone, or email
  • Update existing contact information
  • Delete contacts from system
  • Save/load contacts to/from JSON

EnhancedRecommended Features

  • Import contacts from CSV file
  • Export contacts to CSV format
  • Organize contacts into groups (work, personal, family)
  • Mark favorite contacts
  • Display contact statistics
  • Sort contacts by name

BonusChallenge Features

  • Track and display upcoming birthdays
  • Add notes field for each contact
  • Phone number formatting
  • Email validation
  • Duplicate detection
  • Backup and restore functionality

🗂️ Data Structure

Example of how to structure your data:

{
    "id": 1,
    "name": "John Smith",
    "phone": "555-1234",
    "email": "john@example.com",
    "address": "123 Main St",
    "category": "work",
    "favorite": false,
    "birthday": "1990-05-15",
    "notes": "Client from ABC Corp"
}

🛠️ Implementation Guide

1

Design Data Structure

20 min

Plan the contact dictionary structure and fields needed.

💡 Hints
  • Include essential fields: name, phone, email
  • Add optional fields: address, category, birthday
  • Use unique ID for each contact
  • Consider future expansion
2

Implement Add Contact

40 min

Create function to add contacts with input validation.

💡 Hints
  • Prompt for all required fields
  • Validate email format (contains @)
  • Format phone numbers consistently
  • Generate unique ID automatically
3

Create Display Functions

30 min

Display contacts in organized, readable format.

💡 Hints
  • Format output neatly with alignment
  • Show category and favorite status
  • Add visual separators
  • Handle empty contact list
4

Implement Search

45 min

Add search by name, phone, and email with partial matches.

💡 Hints
  • Use .lower() for case-insensitive search
  • Check if search term in field value
  • Return list of matching contacts
  • Display search results
5

Add CSV Import/Export

60 min

Implement CSV file operations for data portability.

💡 Hints
  • Use csv module from Python
  • Write headers for CSV file
  • Handle missing fields gracefully
  • Test with sample CSV file

✅ Testing Checklist

Make sure all these work before considering your project complete:

Add contact with all fields
View contacts displays correctly
Search finds correct contacts
Update contact modifies data
Delete removes contact
Export creates valid CSV
Import reads CSV correctly
Categories work properly

📊 Project Info

Difficulty

Intermediate

Estimated Time

3-4 hours

Prerequisites

Modules 1-6

💡 Tips for Success

  • Start with core features first
  • Test each function as you build
  • Use meaningful variable names
  • Handle errors gracefully
  • Add comments for complex logic
  • Take breaks when stuck