Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bucketonhead/java-task-tracker-telegram-bot

Telegram bot for tracking tasks :warning: NOT WORK NOW :warning:
https://github.com/bucketonhead/java-task-tracker-telegram-bot

caffeine docker docker-compose environment-variables java11 jpa lombok maven mit-license modules rabbitmq readme spring-boot-2 telegram-bot

Last synced: 26 days ago
JSON representation

Telegram bot for tracking tasks :warning: NOT WORK NOW :warning:

Awesome Lists containing this project

README

        

# TaskTrackifyBot v1.1.1

> TaskTrackifyBot - это телеграм-бот, предназначенный
> для планирования задач и повышения продуктивности.
> Он обеспечивает удобный способ записи, просмотра
> и удаления задач, помогая вам организовать свою работу.

## Оглавление

- [Архитектура проекта](#архитектура-проекта)
- [Инструкция по установке](#инструкция-по-установке)
- [Лицензия](#лицензия)
- [Описание переменных окружения](#описание-переменных-окружения)
- [Функционал](#функционал)
- [Хеширование](#хеширование)

## Архитектура проекта

![project_architecture.png](.readme/project_architecture.png)


назад

## Инструкция по установке

- [Требования](#требования)
- [Установка](#установка)
- [Запуск](#запуск)


назад

### Требования

- Git
- Docker
- JDK 11
- Apache Maven


назад

### Установка

1. Склонируйте проект с помощью команды:

```bash
git clone https://github.com/BucketOnHead/java-task-tracker-telegram-bot
```

2. Заполните файл `.env.example` и переименуйте его в `.env`:

```dotenv
TELEGRAM_BOT_USERNAME=YourBotUsername
TELEGRAM_BOT_TOKEN=YourBotToken
# and others
```

3. Перейдите в директорию проекта:

```bash
cd java-task-tracker-telegram-bot
```

4. Соберите проект с помощью Apache Maven:

```bash
mvn clean install
```


назад

### Запуск

После установки проекта, вы можете запустить его с помощью команды:

```bash
docker-compose up -d
```


назад

## Лицензия

Этот проект лицензирован в соответствии с [лицензией MIT](LICENSE.md).

Пожалуйста, ознакомьтесь с полным текстом лицензии, прежде чем использовать данный проект.


назад

## Описание переменных окружения

> [!IMPORTANT]
> Указанная информация может устареть со временем.

| Переменная окружения | Описание |
|:------------------------|:------------------------------------------|
| `TELEGRAM_BOT_USERNAME` | Имя вашего бота в Telegram |
| `TELEGRAM_BOT_TOKEN` | Токен вашего бота в Telegram |
| `RABBITMQ_DEFAULT_USER` | Имя пользователя для RabbitMQ |
| `RABBITMQ_DEFAULT_PASS` | Пароль пользователя для RabbitMQ |
| `COMMON_DB_NAME` | Имя общей базы данных |
| `COMMON_DB_USER` | Имя пользователя для общей базы данных |
| `COMMON_DB_PASSWORD` | Пароль пользователя для общей базы данных |


назад

## Функционал

> [!IMPORTANT]
> Указанная информация может устареть со временем.

| Команда | Функция |
|:------------|:------------------------------------|
| `/start` | Запуск бота |
| `/delete` | Удаление аккаунта |
| `/help` | Получение списка доступных команд |
| `/profile` | Получить информацию о профиле |
| `/taskmode` | Переход в режим управления задачами |
| `/main` | Переход в главный режим |
| `/task` | Создание задачи |
| `/tasks` | Получение списка задач |
| `/donetask` | Удаление задачи из списка |


назад

## Хеширование

- [Добавление хеширования](#добавление-хеширования)
- [Настройка хеширования](#настройка-хеширования)


назад

### Добавление хеширования

> [!IMPORTANT]
> Указанная информация может устареть со временем.

Если вам необходимо добавить хеширование для вашей сущности и вы хотите
использовать библиотеку `Caffeine`, вы можете воспользоваться классом
`AbstractCaffeineAppCache` из модуля `node`, который уже содержит базовые
методы. Вы можете помещать сущность в хеш `без явного указания ключа`, если
переопределите метод `K getKey(V value)`. В противном случае будет сгенерировано
исключение `RuntimeException` с сообщением:
`"Saving entity only by value is not provided or not implemented".`


назад

### Настройка хеширования

> [!IMPORTANT]
> Указанная информация может устареть со временем.

Настройка хеширования выполняется в модуле `node`
в классе конфигурации `AppCacheConfig` с использованием
библиотеки `Caffeine`. Пример настройки представлен ниже:

```java
package com.github.bucketonhead.config;

@Configuration
public class AppCacheConfig {

@Bean
public Cache appUserCaffeine() {
return Caffeine.newBuilder()
.expireAfterAccess(10, TimeUnit.MINUTES)
.maximumSize(100)
.build();
}
}
```

По умолчанию, пользователь будет удален из кеша
через `10 минут` после `последнего обращения`.
Максимальное количество мест в кеше составляет `100`.


назад