
# Personal Assistant - Address Book (Jarvis)

[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)

Welcome to Jarvis, your personal assistant! Jarvis is here to help you stay organized and manage your contacts, reminders, notes, and files efficiently. With Jarvis, you can easily handle your daily tasks and keep your information in one place.In addition, Jarvis integrates with ChatGPT, an AI language model, to provide interactive chat functionality. And to add some entertainment after a hard working day, Jarvis also includes a fun game about Bandera-goose.

## Table of Contents

- [Features](#features)
- [Getting Started](#getting-started)
  - [Prerequisites](#prerequisites)
  - [Installation](#installation)
- [Usage](#usage)
- [Contacts](#contacts)
- [License](#license)

## Features

Jarvis offers the following features:

- **Contact Book**: You can save and manage your contacts with names, addresses, phone numbers, email addresses, and birthdays. Jarvis securely stores this information, allowing you to easily access and update it whenever needed. It can also remind you of upcoming birthdays from your contact book.

- **Notebook**: Jarvis provides a notebook feature where you can create and store text-based notes. These notes can contain important information, ideas, or anything you want to remember. You can search for specific notes using keywords or tags. Jarvis allows you to edit and delete notes, ensuring your information remains organized.

- **File Sorting**: If you have files in a specified folder, Jarvis can help you sort them by categories such as images, documents, videos, and more. This feature ensures that your files are organized and easily accessible.

- **NEW UPDATE**: *Interactive chat functionality with ChatGPT.*

- **NEW UPDATE**: *Enjoy a fun game about Bandera-goose after a hard working day!*

## Getting Started

To get started with Jarvis, follow these steps:

### Prerequisites

- Python 3.x
- Git  

### Installation by clone from github

1. Clone the repository.
   ```sh
   git clone https://github.com/UkrainianEagleOwl/tp_personal_assistant.git
   ```

2. Change to the project directory.
   ```sh
   cd tp_personal_assistant
   ```

3. Install the required dependencies.
   ```sh
   pip install -e.
   ```
### Installation from pypi

1. Load from pip.
   ```sh
    pip install jarvis-assistant-bot
   ```

## Usage

1. Run the application.
   ```sh
   jarvis
   ```

2. Follow the on-screen instructions to access and use Jarvis's various features, such as managing contacts, creating notes, and sorting files. You can also interact with ChatGPT by typing messages. ChatGPT will respond to your inputs.

## API Key

In order to use the interactive chat functionality powered by ChatGPT, you will need an API key from OpenAI. Here's how you can obtain your API key:

1. Visit the OpenAI website at [https://www.openai.com](https://www.openai.com).
2. Create an account or log in to your existing account.
3. Navigate to the API section and generate an API key for the GPT-3.5 model.
4. Copy the API key to a secure location.

When you run Jarvis for the first time, you will be prompted to enter your API key. Once entered, the key will be encrypted and saved on your computer for future usage. The encrypted key is used by the application to access the API and is only sent to OpenAI for processing your requests.

## Privacy

Jarvis takes privacy and data security seriously. The API key you provide is encrypted and stored locally on your computer. It is used solely for the purpose of accessing the OpenAI API to facilitate the interactive chat functionality. The key is not shared with any third parties or sent over the network. Your data and conversations are kept confidential.

## Game

Jarvis includes a fun game about Bandera-goose, designed to provide some entertainment after a hard working day. Interact with the game during your leisure time and enjoy the experience.

## Contacts

Please feel free to reach out to any of the following team members if you have any questions, suggestions, or would like to contribute to this project:

- Dmytro Filin - GitHub: [dmytrofilin](https://github.com/UkrainianEagleOwl) LinkedIn: [Dmytro Filin](https://www.linkedin.com/in/dmytro-filin-18716b198/) 
- Illya Hryhoriev - GitHub: [illyagrygoriev](https://github.com/Adentas)
- Dmytro Klymenko - GitHub: [dmytroklymenko](https://github.com/leegosx)
- Dmytro Paukov - GitHub: [dmytropaukov](https://github.com/paukdv)
- Alexandr - GitHub: [alexandr](https://github.com/sanyashahter)

Please ensure that you follow our [Code of Conduct](CODE_OF_CONDUCT.md) when interacting with team members.

## License

This project is licensed under the [MIT License](https://opensource.org/licenses/MIT).
