This project represents the implementation of a personal assistant with a command line interface (CLI). The project is installed as a Python package and can be called anywhere in the system by the appropriate command after installation;
This simple python app will help you to manage: your address book , your notes , your list of task (with the responsible persons and deadlines), sort files on your computer , have rate of currency (used API website of NBU).
This project was written in the OOP paradigm, the following libraries were used: re, datetime, pathlib, collections, shutil, prompt_toolkit, requests, pickle, pyttsx3. The address book, notes, task book save to pickle file.
Download package, unpack it and use next command to install it from unpacked folder:
pip install -e .
Launch command line and use command assistant
Auto-completion of commands in the command line will help you manage this application.
CLI Assistant can:
- To get short tips on how to use you can call
help
command at any time during your work with assistant
- to add new contact and one or more phones (for example 2 phones) use command:
add contact <name> <phone> <phone>
- to remove contact use command:
remove contact <name>
- to add phone to contact use command:
add phone <name> <one phone>
- to change phone of contact use command:
change phone <name> <old phone> <new phone>
- to remove phone of contact use command:
remove phone <name> <old phone>
- to add e-mail to contact use command:
add email <name> <e-mail>
- to change e-mail of contact use command:
change email <name> <new e-mail>
- to remove e-mail of contact use command:
remove email <name>
- to add address to contact use command:
add address <name> <address>
- to change address of contact use command:
change address <name> <new address>
- to remove address of contact use command:
remove address <name>
- to add birthday of contact use command:
add birthday <name> <dd/mm/yyyy>
- to remove birthday, write command:
remove birthday <name>
- to change birthday, write command:
change birthday <name> <dd/mm/yyyy>
- to see how many days to contact's birthday use command:
days to birthday <name>
- to see list of birthdays in period (sorted by days of birthday) use command:
birthdays <number of days>
- to search contacts with < text to search > use command:
search contacts <text to search>
- to see full record of contact use command:
phone <name>
- to see all contacts use command:
show addressbook
- to say goodbye use one of these commands:
good bye
orclose
orexit
or.
- to say hello use command:
hello
This script can manage personal notes.
- to add note use command:
add note <text>
- to edit note use command:
change note <id> <edited text>
- to add tags use command:
add tags <id> <tag1 tag2 tag3...>
- to see all notes use command:
show notes
- to see and listen any note use command:
note <id>
- to delete note use command:
remove note <id>
- to search notes use command:
search notes <text_to_search>
- to search tags use command:
search tags <tag_to_search>
This script can manage list of task with deadlines and responsible persons.
- to add task use command:
add task <name of responsible persons> <deadline in format dd/mm/yyyy> <text of task>
- to remove task use command:
remove task <ID of task>
- to see all tasks use command:
show tasks
- to change deadline of task use command:
change deadline <ID of task> <new deadline in format dd/mm/yyyy
- to search tasks use command:
search tasks <text_to_search>
- to search tasks of responsible person use command:
responsible person <name>
- to set status of task 'done' use command:
done <id>
- to see rate of currency today use command:
currency <name of currency>
This script can sort all files in the folder. The script sorts all files according to file's extensions.
- to sort files in folder use command:
clean-folder <path to folder>
...
-
if this folder is not exists, you'll see a message in console.
-
The script sorts files according to file's extensions and replaces files to the destination folders.
-
Default destination folders are
documents
,images
,video
,music
,archives
andunknown
. -
if you want to set your own rules of sorting files you have to change extensions dict:
extensions = { "images": ['.jpeg', '.png', '.jpg', '.svg'], "video": ['.avi', '.mp4', '.mov', '.mkv'], "documents": ['.doc', '.docx', '.txt', '.pdf', '.xlsx', '.pptx'], "music": ['.mp3', '.ogg', '.wav', '.amr'], "archives": ['.zip', '.gz', '.tar'], "unknown": [""] }
-
All files with relevant extensions will be moved to these folders;
-
if these folders were not exist it will be created;
-
The script recursively checks all subfolders and replaces all files to destination folders;
-
Empty folders will be deleted;
-
Files with Cyrillic name will be renamed to Latin name;
-
if subfolders involve the files with the same name, these files will be renamed - date-time will be added to file's name;
-
All archives will be unpacked to subfolder with the name as archive's name in folder
archive
; -
if archive is broken, script will continue its work without unpacking this archive. In console you'll see message about this broken archive;
-
When script finishes cleaning the folder, you'll see the report.
Oleksandr Gnatiuk (Team Lead)
Anastasiia Kholodko (Scrum Master)
Oleg Veisa
Artem Danilov
Tatiana Maximenko