- Overview
- Project Structure
- Getting Started
- Features
- Error Handling
- Future Enhancements
- Contributing
- License
This project is a simple CLI-based address book application. Users can perform operations such as adding a new contact, viewing all contacts, searching, editing, and deleting a contact. Contacts are stored in a CSV file (address_book.csv), ensuring data persistence across sessions.
- main.py: The main driver of the application, providing an interactive CLI menu for users to perform various contact-related operations.
- src/contact.py: Contains the
Contactclass representing an individual contact with attributes: name, email, and phone number. - src/address_book.py: Contains the
AddressBookclass responsible for managing contacts, including adding, editing, deleting, viewing, and saving contacts to and from the CSV file.
- Ensure Python is installed on your machine.
- Clone the project repository or download the source code.
- Navigate to the project directory in your terminal.
- Run the application with the following command:
python -m main- Follow the on-screen prompts to perform various operations on the address book.
- Add a New Contact: Allows the user to add a new contact by entering the name, email, and phone number.
- View All Contacts: Displays a list of all contacts in the address book.
- Search for a Contact: Enables searching for a contact by name.
- Edit a Contact: Allows modifying the name, email, or phone number of an existing contact.
- Delete a Contact: Removes an existing contact from the address book.
- Exit: Closes the application.
The program provides feedback and guidance for incorrect actions, such as trying to edit a non-existent contact.
- Implement advanced search functionality allowing searches by email or phone in addition to name.
- Implement input validation for email and phone.
- Add an option for backing up the address book to cloud storage.
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change. Please ensure to update tests as appropriate.
This project is licensed under the MIT License.