orgApp 0.0.3
personal organizing tool
License: MIT License

# orgApp
## personal organizing tool

<pre>
                                    .o.                             
                                   .888.                            
 .ooooo.  oooo d8b  .oooooooo     .8"888.     oo.ooooo.  oo.ooooo.  
d88' `88b `888""8P 888' `88b     .8' `888.     888' `88b  888' `88b 
888   888  888     888   888    .88ooo8888.    888   888  888   888 
888   888  888     `88bod8P'   .8'     `888.   888   888  888   888 
`Y8bod8P' d888b    `8oooooo.  o88o     o8888o  888bod8P'  888bod8P' 
================== d"     YD ================= 888 ====== 888 ===== 
                   "Y88888P'                  o888o      o888o      
</pre>
With this app You can deal with your notes and contacts  
Use `nbk` or `notebook` command to open your notebook manager.<br>
Type `abk` or `addressbook` below to manage your contacts.<br>
Also You are able to sort your files with `sorter`.<br>
And if you are tired you can play simple games:<br>
`tictactoe`, `bandergoose`, `hannoitower` or `snake`.<br>

### to install `orgApp` package run `pip install orgApp`:<br> 
### or
* clone this repository https://github.com/Vskesha/orgApp.git
* browse in terminal to root folder which contain `setup.py`
* use `pip install .` or `pip install -e .` command in terminal

It will install `orgApp` python package to your system.


### for running programs use:

#### Use next commands in terminal anywhere:

#### command `orgapp` to run main 'orgApp' application.

#### command `abk` or `addressbook` to run 'adress_book' application.

#### command `nbk` or `notebook` to run main 'note_book' manager.

#### command `sorter` to run 'sorter' application.

#### and commands `bandergoose` or `hannoitower` or `snake` or `tictactoe` to run relevant GUI game.


###

[![Language](https://img.shields.io/badge/language-python-blue?&style=plastic)](https://www.python.org)
[![Language version](https://img.shields.io/badge/version-3.10-red?&style=plastic)](https://www.python.org/downloads/)
![GitHub repo size](https://img.shields.io/badge/repo%20size-340%20kB-pink?&style=plastic)
![GitHub followers](https://img.shields.io/github/followers/Vskesha?style=plastic)


---

### Technology which used:
[![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](https://www.python.org)
[![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white)](https://git-scm.com/)
[![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](https://github.com/)
![Markdown](https://img.shields.io/badge/markdown-%23000000.svg?style=for-the-badge&logo=markdown&logoColor=white)


- Technologies
  -
  - Python
  - Git
  - MarkDown

- Packages: 
  - 
  - calendar, collections, colorama, datetime,
  - functools, json, os, pygame, pathlib,
  - prompt_toolkit, random, Faker,
  - re, shutil, sys, textwrap, time
  - tkinter, prompt_toolkit# AdressBook Application
Welcome to your adress-taking app!

<pre>
                .o8
               "888
 .oooo.    .oooo888  oooo d8b  .ooooo.   .oooo.o  .oooo.o
`P  )88b  d88' `888  `888""8P d88' `88b d88(  "8 d88(  "8
 .oP"888  888   888   888     888ooo888 `"Y88b.  `"Y88b.
d8(  888  888   888   888     888    .o o.  )88b o.  )88b
`Y888""8o `Y8bod88P" d888b    `Y8bod8P' 8""888P' 8""888P'

        "888                           `888
         888oooo.   .ooooo.   .ooooo.   888  oooo
         d88' `88b d88' `88b d88' `88b  888 .8P'
         888   888 888   888 888   888  888888.
         888   888 888   888 888   888  888 `88b.
         `Y8bod8P' `Y8bod8P' `Y8bod8P' o888o o888o
</pre>

### To run this app use `addressbook` or `abk` in terminal after installing `orgApp`.

Follow the prompts and enter the desired command and arguments.


 Available commands:

| Commands             | Description                                |
|:---------------------|:-------------------------------------------|
| add_email            | add an email                               |
| add_phone            | add a phone number                         |
| add                  | add contact to AdressBook                  |
| change_email         | change an email                            |
| change_phone         | change phone number                        |
| when_birthday        | return days until birthday                 |
| exit                 | exit from AdressBook                       |
| find                 | find contact in AdressBook                 |
| all                  | display all contacts                       |
| get_list             | return list of birthdays                   |
| load                 | load information about contacts from file  |
| remove_email         | remove an email                            |
| remove_phone         | remove phone number                        |
| remove               | remove contact from AdressBook             |
| save                 | save information about contacts to file    |
| help                 | display help                               |



This application may be used as a standalone unit for managing your address book 
or can be integrated into a larger organizing application.
###
#### Simple examples of using:

`>>> add_record<br>
Enter contact details:<br>
Name: John Doe<br>
Phone Number (+380________): +380123456789<br>
Birthday (dd.mm.yyyy): 01.01.1990<br>
Email: johndoe@example.com<br>

`>>> add_email<br>
Enter contact name: John Doe<br>
Enter a new email address: johndoe@example.com<br>
Email address successfully added to John Doe's contact.

#### Example Usage for "add_phone_number":

`>>> add_phone_number<br>
Enter contact name: Jane Smith<br>
Enter a new phone number (+380________): +380987654321<br>
Phone number successfully added to Jane Smith's contact.<br>

#### Example Usage for "find_records":

`>>> find_records<br>
Search by criteria:<br>
1.Search by name<br>
2.Search by phone number<br>
Select an option (1 or 2): 1<br>
Enter the name to search for (at least 2 characters): John<br>

Contacts found matching the name "John":<br>
1.John Doe (+380123456789)<br> 
2.Johnny Johnson (+380987654321)<br>
###
#### Example Usage for "get_birthdays_per_week":

`>>> get_birthdays_per_week<br>
Enter the number of days to look ahead: 7<br>
Upcoming birthdays in the next 7 days:<br> 
1.Jane Smith - 04.09.1995<br> 
2.Michael Johnson - 09.09.1988<br>

These examples demonstrate how users can interact with your console bot for various commands. 
<br>
<br># NoteBook Application
Welcome to your note-taking app!

<pre>
                          .                     
                        .o8                     
ooo. .oo.    .ooooo.  .o888oo  .ooooo.   
`888P"Y88b  d88' `88b   888   d88' `88b   
 888   888  888   888   888   888ooo888    
 888   888  888   888   888 . 888    .o  
o888o o888o `Y8bod8P'   "888" `Y8bod8P'  
 .o8                           oooo
"888                           `888
 888oooo.   .ooooo.   .ooooo.   888  oooo
 d88' `88b d88' `88b d88' `88b  888 .8P'
 888   888 888   888 888   888  888888.
 888   888 888   888 888   888  888 `88b.
 `Y8bod8P' `Y8bod8P' `Y8bod8P' o888o o888o
</pre>

### To run this app use `notebook` or `abk` in terminal after installing `orgApp`.

Follow the prompts and enter the desired command and arguments.

 Available commands:

| Commands                       | Action                                  |
|:-------------------------------|:----------------------------------------|
| add, plus                      | adds note to your NoteBook              |
| add_tags                       | add tag to note                         |
| add_fake_notes                 | adds fdke data to the notebook          |
| all, all_notes, view           | displays all notes.                     |
| edit                           | edit a note content in the NoteBook     |
| bye, close, exit, goodbye      | exits the program                       |
| delete                         | deletes note from NoteBook              |
| delete_tag                     | deletes tag from note in NoteBook       |
| tag, find_tag, search_tag      | returns notes with given tags           |
| help                           | outputs this list of commands           |
| load                           | loads notes from the given file         |
| save                           | saves notes to file                     |
| find, search                   | returns notes with given keyword        |


This is a simple console bot for managing notebook
Enter one of the listed commands followed by arguments

`command` `args`. Values must be separated with space.

This application may work as a discrete unit or can be 
a part of a greater orgApp application.


### Simple example of using:

`>>> add<br>
Enter note title: Love<br>
Enter note text: This is a wonderful and amazing feeling!<br>
Enter note tags: life happy<br>
Note added successfully.<br>

`>>> delete<br>
Enter note title: Yesterday<br>
Note deleted successfully.<br>

`>>> all<br>
 All notes:

  1. Title: Today<br>
     Content: Some text<br>
     Tags: a, b, c


  2. Title: Love<br>
     Content: This is a wonderful and amazing feeling!<br>
     Tags: life, happy<br>
<br>
<br># Sorter Application
<pre>
 .oooooo..o                        .                      
d8P'    `Y8                      .o8                      
Y88bo.       .ooooo.  oooo d8b .o888oo  .ooooo.  oooo d8b 
 `"Y8888o.  d88' `88b `888""8P   888   d88' `88b `888""8P 
     `"Y88b 888   888  888       888   888ooo888  888     
oo     .d8P 888   888  888       888 . 888    .o  888     
8""88888P'  `Y8bod8P' d888b      "888" `Y8bod8P' d888b    
</pre>

### To run this app use `sorter` command in terminal after installing `orgApp`.

Follow the prompts and enter the desired command and arguments.

This application may work as a discrete unit or can be 
a part of a greater orgApp application.

### for sorting folder use:

#### command `sorter path_to_folder` in terminal

if `path_to_folder` is not given, current folder will be sorted

functions in `sorter.py`: 
* recursively scans given `path_to_folder`:
* collects all directories' paths to list `FOLDERS`
* creates new subfolders (`IMAGES`, `VIDEO`, `DOCS`, `MUSIC`, `ARCHIVES` and `MY_OTHER`)
* sorts files in the given `path_to_folder` according to the `REGISTERED_EXTENSIONS`
<br>
<br>