A command-line personal assistant for managing contacts and notes.
This Python-based Personal Assistant helps you organize your contacts and notes through an intuitive command-line interface. Developed as a team project with 5 contributors, the application follows clean architecture principles with a focus on maintainability and expandability.
- Add contacts with name, phone, email, address, and birthday information
- Find contacts using various search criteria (name, phone, email, address, birthday)
- Edit existing contact information
- Delete contacts
- Display all contacts in a clean tabular format
- Birthday notification for upcoming birthdays
- Add text notes with tags
- Search notes by content and tags
- Edit and delete notes
- Organize notes with tags
- Interactive command-line interface with autocompletion
- Color-coded output for better readability
- Intuitive command structure
- Help command for quick reference
The application follows a clean architecture approach with several key components:
- Commands: Each feature is implemented as a separate command
- Entities: Core business objects (Contact, Note)
- Repositories: Manages data persistence
- Storage: Handles the physical storage of data
- Input/Output: Manages user interaction
- Python 3.10+
- Required packages listed in requirements.txt
- Clone the repository:
git clone https://github.com/s-rybak/goit-pycore-fp.git
cd goit-pycore-fp
- Install the required dependencies:
pip3 install -r requirements.txt
- Run the application:
python main.py
Once the application is running, you can use the following commands:
help- Display all available commands or get help for a specific commandall_contacts- Get all contactsadd_contact- Add a new contactfind_contact- Find contacts by name, phone, email, address or birthdayedit_contact- Edit contact by namedelete_contact- Delete contact by nameadd_note- Add a new noteall_notes- Get all notesedit_note- Edit note by titlefind_note- Find notes by title and contentdelete_note- Delete note by titlebirthday_in_days- Display contacts with birthdays in the N daysexit/quit/bye- Exit the application
# Add a new contact
add_contact
# Shaw all notes
all_notes
# Edit a contact
edit_contact
# Delete a contact
delete_contact
# Display all commands and their descriptions
help
This project was developed as a team effort by:
- [Serhii Rybak ] - Team Lead
- [Olha Osypenko ] - Scrum manager
- [Iurii Shcherbyna ] - Full stack developer
- [Olena Trzewik ] - Full stack developer
- [Nataliya Pustelnyk ] - Full stack developer
This project was developed as part of the Python Programming: Foundations and Best Practices 2.0 course at GoIT Neoversity.